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, })
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."
def _httpget_forgot_password(): form = _forgot_passwd_form() return render_template("forgot_password.html", **{ "form": generate_form(form, **{ "action": "/user/forgot-password/", "method": "post", }) })
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, })
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, })
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"
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!"
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"