示例#1
0
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)
示例#2
0
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)
示例#3
0
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
示例#4
0
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)