def resend(request): logging.debug("resending the phone number") user = request.user.get_profile() sendConfirmation(user, user.phone_number) rc = callmeutil.populatecreatepage(request.user) rc["numbersent"] = True return render_to_response(request, "createprofile.html", rc)
def createprofile(request): # logging.warn(dir(request)) # logging.warn(type(request.user)) logging.debug("entering createprofile") templatepage = "createprofile.html" rc = {} rc.update(callmeutil.populatecreatepage(request.user)) post = request.POST if request.user.get_profile(): # logging.warn("We DO NOT want to create the new user: he looks like this: "+ request.user.get_profile()) logging.warn("We DO NOT want to create the new user") #: he looks like this: "+ request.user.get_profile()) # if phone number entered then we set up the new CUser if post.has_key("phone_number1") and post.has_key("phone_number2") and post.has_key("phone_number3"): phone_number = extractPhoneNumber(post) now = datetime.now() secret = int(random() * 100000) userProfile = CUser(phone_number=phone_number, date_last_used=now, verified=False, clients=1, secret=secret) # if there are test results then something is wrong, need to send that # otherwise profile looks good so far, we can send the sms if not userProfile.validate(): rc["val"] = 1 rc["response"] = "error in input" # userProfile.popitem() logging.error("error in validation of phone number") else: # logging.warn("request.user type: " + str(type(user))) userProfile = CUser( user=request.user, phone_number=phone_number, date_last_used=now, verified=False, clients=1, secret=secret, ) userProfile.save() # user.save() # request.user = user sendConfirmation(userProfile, phone_number) rc["val"] = 0 rc["numbersent"] = True rc["profile"] = userProfile elif post.has_key("code"): # see if it is the correct code code = post.get("code", "") if str(request.user.get_profile().secret) == str(code): user = request.user.get_profile() user.verified = True user.save() templatepage = "create.html" else: rc["numbersent"] = True return render_to_response(request, templatepage, rc)
def start(request): logging.debug("start") user = request.user if user.is_authenticated(): logging.debug("authenticated") if user.get_profile(): logging.debug("there is a profile") ret = render_to_response(request, "create.html", callmeutil.populatecreatepage(request.user)) else: logging.debug("there is no profile") ret = render_to_response(request, "createprofile.html", {}) else: logging.debug("not authenticated") ret = HttpResponseRedirect("/account/register/") return ret
def newaction(request): logging.debug("new request") templatepage = "create.html" rc = {"val": 0, "response": "success"} months_map = { "january": 1, "february": 2, "march": 3, "april": 4, "may": 5, "june": 6, "july": 7, "august": 8, "september": 9, "october": 10, "november": 11, "december": 12, } # validate post = request.POST name = post.get("name", "") hour = post.get("hour", "") minute = post.get("minute", "") day = post.get("day", "") ampm = post.get("ampm", "") year = post.get("year", "") memo = post.get("memo", "") # adjustments # month month = post.get("month", "january") month = months_map[month] # TODO set 12AM to 0 if ampm == "pm" and int(hour) != 12: hour = int(hour) + 12 # get the date date = None try: date = datetime(year=int(year), month=int(month), day=int(day), hour=int(hour), minute=int(minute), second=0) except ValueError: response = "invalid date, please try another" rc = {"val": 1, "response": response} now = datetime.now() email = post.get("email", "") phone_number = extractPhoneNumber(post) # phone_number = post.get('phone_number', '') adjustedNow = datetime.now() adjustedNow = adjustedNow + timedelta(hours=-7) logging.debug("now " + str(datetime.now())) logging.debug("now adjusted " + str(adjustedNow)) if not validate_phone(phone_number): response = "invalid phone number" rc = {"val": 1, "response": response} # Do not really need email address here # elif not validate_email(email): # response = "invalid email" # rc={'val':1, 'response':response} elif date and date < adjustedNow: logging.debug("date: " + str(date) + " " + str(adjustedNow)) response = "date is before now" rc = {"val": 1, "response": response} if rc["val"] != 0: rc.update(callmeutil.populatecreatepage(request.user)) logging.debug("fail to create: " + rc["response"]) return render_to_response(request, "create.html", rc) # create the action message = "You need to call " + phone_number action = CAction() if users.get_current_user(): action.sender = users.get_current_user() else: logging.error("No user for this users object") action.phone_number = phone_number action.message = 1 # message # TODO Need to make a more robust timezone thing. this is so whack. action.date_to_be_executed = date # + timedelta(hours=+7) action.date_created = now action.date_finished = now action.memo = memo action.finished = False action.sender = request.user.get_profile() action.put() rc.update(callmeutil.populatecreatepage(request.user)) return render_to_response(request, templatepage, rc)