예제 #1
0
파일: views.py 프로젝트: injetlee/maple-bbs
def question(class_url):
    error = None
    form = QuestionForm()
    fileform = PhotoForm()
    if form.validate_on_submit():
        title = form.title.data
        content = form.content.data
        choice = form.choice.data
        tags = form.tags.data
        tags = sp(',|;|,|;| ', tags)
        tags = list(set(tags))[:4]
        post_tags = []
        for tag in tags:
            if tag != '':
                t = Tags(author=current_user.name, name=tag)
                post_tags.append(t)
        question = Questions(title=title, content=content, kind=g.forums_url)
        question.tags = post_tags
        if choice == 'Markdown':
            question.is_markdown = True
        board = Board_S.load_by_name(class_url)
        board.count.topic += 1
        board.count.all_topic += 1
        board.board_f.count.topic += 1
        board.board_f.count.all_topic += 1
        question.board_id = board.id
        question.author_id = current_user.id
        current_user.infor.score -= 5
        '''随机赠送'''
        random_gift()
        db.session.add(question)
        db.session.commit()
        '''使用redis记录'''
        RedisData.set_question()
        RedisData.set_user()
        return jsonify(judge=True, error=error)
    else:
        if form.errors:
            return return_errors(form)
        else:
            pass
        board = Board_S.query.join(Board_F).\
            filter(Board_F.enname_f == g.forums_url).\
            filter(Board_S.enname_s == class_url).first_or_404()
        return render_template('question/question.html',
                               fileform=fileform,
                               form=form,
                               board=board)
예제 #2
0
def private():
    form = QuestionForm()
    questions = Questions.load_by_private()
    return render_template('question/question.html',
                           questions=questions,
                           title='自问自答-HonMaple',
                           form=form)
예제 #3
0
def index():
    form = QuestionForm()
    questions = Questions.query.filter_by(private=False).all()
    return render_template('question/question.html',
                           title='自问自答-HonMaple',
                           questions=questions,
                           form=form)
예제 #4
0
def question(group):
    group = Group.load_by_name(group)
    form = QuestionForm()
    fileform = PhotoForm()
    error = None
    if form.validate_on_submit():
        title = form.title.data
        content = form.content.data
        choice = form.choice.data
        tags = form.tags.data
        tags = sp(',|;|,|;| ', tags)
        tags = list(set(tags))[:4]
        post_tags = []
        for tag in tags:
            if tag != '':
                t = Tags(author=current_user.name, name=tag)
                post_tags.append(t)
        question = Questions(title=title, content=content, kind=group.kind)
        question.tags = post_tags
        if choice == 'Markdown':
            question.is_markdown = True
        question.is_group = True
        question.group_id = group.id
        question.author_id = current_user.id
        group.count.topic += 1
        group.count.all_topic += 1
        current_user.infor.score -= 5
        '''随机赠送'''
        random_gift()
        db.session.add(question)
        db.session.commit()
        '''使用redis记录'''
        RedisData.set_question()
        RedisData.set_user()
        return jsonify(judge=True, error=error)
    else:
        if form.errors:
            return return_errors(form)
        else:
            pass
        return render_template('group/question.html',
                               group=group,
                               form=form,
                               fileform=fileform)
예제 #5
0
파일: views.py 프로젝트: injetlee/maple-bbs
def question(group):
    group = Group.load_by_name(group)
    form = QuestionForm()
    fileform = PhotoForm()
    error = None
    if form.validate_on_submit():
        title = form.title.data
        content = form.content.data
        choice = form.choice.data
        tags = form.tags.data
        tags = sp(',|;|,|;| ', tags)
        tags = list(set(tags))[:4]
        post_tags = []
        for tag in tags:
            if tag != '':
                t = Tags(author=current_user.name, name=tag)
                post_tags.append(t)
        question = Questions(title=title, content=content, kind=group.kind)
        question.tags = post_tags
        if choice == 'Markdown':
            question.is_markdown = True
        question.is_group = True
        question.group_id = group.id
        question.author_id = current_user.id
        group.count.topic += 1
        group.count.all_topic += 1
        current_user.infor.score -= 5
        '''随机赠送'''
        random_gift()
        db.session.add(question)
        db.session.commit()
        '''使用redis记录'''
        RedisData.set_question()
        RedisData.set_user()
        return jsonify(judge=True, error=error)
    else:
        if form.errors:
            return return_errors(form)
        else:
            pass
        return render_template('group/question.html',
                               group=group,
                               form=form,
                               fileform=fileform)
예제 #6
0
def post():
    form = QuestionForm()
    if form.validate_on_submit() and request.method == "POST":
        post_question = Questions(author=current_user.username,
                                  title=form.title.data,
                                  describ=form.describ.data,
                                  answer=form.answer.data)
        '''简单私人日记实现'''
        post_question.publish = datetime.now()
        post_question.private = form.private.data
        db.session.add(post_question)
        db.session.commit()
        flash('感谢你的提交')
        return redirect(url_for('question.index'))
    else:
        if form.errors:
            flash_errors(form)
        else:
            pass
        return redirect(url_for('question.index'))
예제 #7
0
 def post(self):
     form = QuestionForm()
     user = request.user
     if not writer_permission.can():
         flash(_('You have not confirm your account'))
         return redirect(url_for('question.quelist'))
     if form.validate_on_submit():
         question = Question()
         question.author = user
         question.title = form.title.data
         question.describ = form.describ.data
         question.answer = form.answer.data
         '''简单私人日记实现'''
         question.is_private = form.private.data
         question.save()
         flash('感谢你的提交')
         return redirect(url_for('question.quelist'))
     else:
         if form.errors:
             flash_errors(form)
         return redirect(url_for('question.quelist'))
예제 #8
0
 def get(self):
     query_dict = request.data
     page, number = self.page_info
     keys = ['title']
     equal_key = []
     order_by = gen_order_by(query_dict, keys)
     filter_dict = gen_filter_dict(query_dict, keys, equal_key)
     filter_dict.update(dict(is_private=False))
     questions = Question.query.filter_by(**filter_dict).order_by(
         *order_by).paginate(page, number)
     data = {
         'title': _('Answer-HonMaple'),
         'questions': questions,
         'form': QuestionForm()
     }
     return render_template('question/questionlist.html', **data)
예제 #9
0
def admin_edit_save(category, post_id):
    if category == 'article':
        form = ArticleForm()
    elif category == 'question':
        form = QuestionForm()
    else:
        form = EditRegisterForm()

    action = EditManager(post_id, form)

    if form.validate_on_submit() and request.method == "POST":
        if category == 'article':
            action.edit_article()
            return redirect(url_for('admin.admin_article'))
        elif category == 'question':
            action.edit_question()
            return redirect(url_for('admin.admin_question'))
        elif category == 'user':
            action.edit_user()
            return redirect(url_for('admin.admin_account'))
        else:
            return redirect(url_for('admin.index'))
예제 #10
0
class QueListView(MethodView):
    def __init__(self):
        super(MethodView, self).__init__()
        self.form = QuestionForm()

    @cache.cached(timeout=180)
    def get(self):
        page = request.args.get('page', 1, type=int)
        filter_dict = {}
        filter_dict.update(dict(is_private=False))
        questions = Question.get_question_list(page, filter_dict)
        data = {
            'title': _('自问自答-HonMaple'),
            'questions': questions,
            'form': self.form
        }
        return render_template('question/questionlist.html', **data)

    @login_required
    def post(self):
        if not writer_permission.can():
            flash(_('You have not confirm your account'))
            return redirect(url_for('question.quelist'))
        if self.form.validate_on_submit():
            question = Question()
            question.author = current_user
            question.title = self.form.title.data
            question.describ = self.form.describ.data
            question.answer = self.form.answer.data
            '''简单私人日记实现'''
            question.is_private = self.form.private.data
            db.session.add(question)
            db.session.commit()
            flash('感谢你的提交')
            return redirect(url_for('question.quelist'))
        else:
            if self.form.errors:
                flash_errors(self.form)
            return redirect(url_for('question.quelist'))
예제 #11
0
class QueListView(MethodView):
    def __init__(self):
        super(MethodView, self).__init__()
        self.form = QuestionForm()

    @cache.cached(timeout=180)
    def get(self):
        page = request.args.get('page', 1, type=int)
        filter_dict = {}
        filter_dict.update(dict(is_private=False))
        questions = Question.get_list(page, 18, filter_dict)
        data = {
            'title': _('Answer-HonMaple'),
            'questions': questions,
            'form': self.form
        }
        return render_template('question/questionlist.html', **data)

    @login_required
    def post(self):
        if not writer_permission.can():
            flash(_('You have not confirm your account'))
            return redirect(url_for('question.quelist'))
        if self.form.validate_on_submit():
            question = Question()
            question.author = current_user
            question.title = self.form.title.data
            question.describ = self.form.describ.data
            question.answer = self.form.answer.data
            '''简单私人日记实现'''
            question.is_private = self.form.private.data
            db.session.add(question)
            db.session.commit()
            flash('感谢你的提交')
            return redirect(url_for('question.quelist'))
        else:
            if self.form.errors:
                flash_errors(self.form)
            return redirect(url_for('question.quelist'))
예제 #12
0
def admin_edit(category, post_id):
    if category == 'article':
        article = Articles.query.filter_by(id=post_id).first()
        form = ArticleForm()
        form.content.data = article.content
        form.title.data = article.title
        form.category.data = article.category
        '''得到节点内容'''
        tags = ''
        leng = 1
        for tag in article.tags:
            if leng == len(article.tags):
                tags += tag.name
            else:
                tags += tag.name + ','
            leng += 1
        form.tags.data = tags
    if category == 'question':
        question = Questions.query.filter_by(id=post_id).first()
        form = QuestionForm()
        form.title.data = question.title
        form.describ.data = question.describ
        form.answer.data = question.answer
    if category == 'user':
        user = User.query.filter_by(id=post_id).first()
        form = EditRegisterForm()
        form.name.data = user.name
        form.roles.data = user.roles
        form.is_superuser.data = str(user.is_superuser)
        form.is_confirmed.data = str(user.is_confirmed)

    category = category
    post_id = post_id
    return render_template('admin/admin_edit.html',
                           form=form,
                           category=category,
                           post_id=post_id)
예제 #13
0
 def __init__(self):
     super(MethodView, self).__init__()
     self.form = QuestionForm()
예제 #14
0
 def __init__(self):
     super(MethodView, self).__init__()
     self.form = QuestionForm()