def question(self, request, slug, sort='votes', page=1): question = Question.query.filter_by(slug=slug).one() answer_query = Answer.query.filter_by(question=question) # Order by "votes", "latest" or "oldest" answer_query = getattr(answer_query, sort) pagination = URLPagination(answer_query, page) form = AnswerQuestionForm(request.form) if form.validate_on_submit(): answer = Answer(author=request.user, question=question, text=form.text.data) db.session.commit() return redirect(href(question)) # increase counters question.touch() # precalculate user votes answers = pagination.query user_votes = Vote.query.get_user_votes_on(request.user.id, [a.id for a in answers]) return { 'sort': sort, 'question': question, 'answers': pagination.query, 'form': form, 'pagination': pagination, 'user_votes': user_votes }
def deactivate(self, request): form = DeactivateProfileForm(request.form) if form.validate_on_submit(): if not request.user.check_password(form.password.data): form.password.errors = [_(u'The password was not correct.')] else: user = request.user get_auth_system().logout(request) user.deactivate() db.session.commit() request.flash(_(u'Your profile was deactivated successfully'), success=True) return redirect(href('portal/index')) return { 'form': form }
def password(self, request): form = get_change_password_form(request)(request.form) if form.validate_on_submit(): if not request.user.check_password(form.old_password.data): form.old_password.errors = [_(u'The password you entered ' u'doesn\'t match your old one.')] else: request.user.set_password(form.new_password.data) db.session.commit() request.flash(_(u'Your password was changed successfully'), success=True) return redirect(href('usercp/index')) return { 'random_pw': form.new_password.data, 'form': form, }