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