示例#1
0
def index():
    #commentable campaigns
    commentable_campaigns = scheduling.get_before(campaigns.Campaign, limit=3)
    campaign_w_comments = [(x, comments.get_all(x.obj_id(), campaigns.Campaign.coll_name(), limit=3))
                           for x in commentable_campaigns]
    verbose_campaign_comments = []
    for campaign in campaign_w_comments:
        campaign_obj = campaign[0]
        comment_obj = campaign[1]
        lis_of_comments = []
        for c in comment_obj:
            comment_str = c.comment
            commentee_user = users.get(c.user_id)
            lis_of_comments += [(commentee_user.first_name, comment_str)]
        verbose_campaign_comments += [(campaign_obj, lis_of_comments)]
    comment_name_form = generate_form(__comment_name_form(), id="comment-name-form")

    #event campaigns
    event_campaigns = __event_campaigns()
    rsvp_form = __rsvp_email_form()
    form = generate_form(rsvp_form, action="/campaign/rsvp/", method="post", id="rsvp-form")

    return render_template("demo.html", **{
        "commentable": verbose_campaign_comments,
        "comment_name_form": comment_name_form,
        "events": event_campaigns,
        "rsvp_form": form,
        "is_campaign": True,
    })
示例#2
0
def register():
    if request.method == "GET":
        registration_form = generate_form(__get_registration_form(), **{
            "action": "/register/",
            "method": "post",
        })
        return render_template("registration.html", **{
            "registration_form": registration_form,
            "is_register": True,
        })
    else:
        values = get_form_values(request, __get_registration_form())
        dic = {k: v for k, v in values.iteritems()}
        user_obj = users.User(
            **dic
        )
        user_obj.account_status = users.AccountStatus.AWAITING_CONFIRMATION
        if not users.get_user_by_attr({
            "$or": [{
                        "email": user_obj.email
                    }, {
                        "username": user_obj.username
                    }]
        }):
            user_obj = users.save(user_obj, need_confirmation=True,
                confirmation_email_subject="Complete your account registration",
                confirmation_relative_url="/register/confirm/")
            users.set_passwd(user_obj, values["password"])
            return "Saved!"
        return "Already registered."
示例#3
0
def _httpget_forgot_password():
    form = _forgot_passwd_form()
    return render_template("forgot_password.html", **{
        "form": generate_form(form, **{
            "action": "/user/forgot-password/",
            "method": "post",
        })
    })
示例#4
0
def _httpget_register():
    registration_form = generate_form(_get_registration_form(), **{
        "action": "/register?redirect_to=/",
        "method": "post",
    })
    return render_template("registration.html", **{
        "registration_form": registration_form,
        "is_register": True,
    })
示例#5
0
def _httpget_login():
    login_form = generate_login_form()
    login_form = generate_form(login_form, **{
        "action": "/login",
        "method": "post",
    })
    return render_template("login.html", **{
        "login_form": login_form,
        "is_login": True,
    })
示例#6
0
def forgot_password():
    form = __forgot_passwd_form()
    if request.method == "GET":
        return render_template("forgot_password.html", **{
            "form": generate_form(form, **{
                "action": "/user/forgot-password/",
                "method": "post",
            })
        })

    elif request.method == "POST":
        form_values = get_form_values(request, __forgot_passwd_form())
        user_obj = users.get_user_by_attr({"email": form_values["email"]})
        users.send_reset_passwd_notice(user_obj)
        return "Check your email"
示例#7
0
def reset_password(user_id, token):
    user_obj = users.get(user_id)
    if users.check_token(user_obj, users.AccountActivity.RESET_PASSWORD, token):
        #show passwd reset form
        if request.method == "GET":
            form = __passwd_reset_form()
            return render_template("passwd_reset.html", **{
                "form": generate_form(form, **{
                    "method": "post"
                }),
            })

        #parse reset form
        else:
            values = get_form_values(request, __passwd_reset_form())
            new_passwd = values["passwd"]
            users.set_passwd(user_obj, new_passwd)
            users.remove_token(user_obj, users.AccountActivity.RESET_PASSWORD)
            return "Changed password!"

    return "Fail!"
示例#8
0
def login():
    login_form = generate_login_form()

    #login form
    if request.method == "GET":
        login_form = generate_form(login_form, **{
            "action": "/login/",
            "method": "post",
        })
        return render_template("login.html", **{
            "login_form": login_form,
            "is_login": True,
        })

    #parse login credentials
    form_values = get_form_values(request, login_form)
    username = form_values["username"]
    passwd = form_values["password"]
    user_obj = users.get_user_by_attr({"username": username})
    if users.auth(user_obj, passwd):
        login_user(user_obj)
        return "Logined"
    return "Did not auth"