new questions

ajax_post
Shenyuan Jin 3 years ago
parent 11b7943642
commit ab3763565c

@ -9,7 +9,7 @@ from werkzeug.utils import secure_filename
from . import main
from .forms import UploadPhotoForm, CommentForm, PostMdForm
from .. import db, csrf
from ..models import Permission, User, Post, Comment, Notification, Like, Transaction, Activity, Collect, Want
from ..models import Permission, User, Post, Comment, Notification, Like, Transaction, Activity, Collect, Want, Question
from ..decorators import permission_required
@ -671,12 +671,45 @@ def new_post_md():
return render_template('new_posting/new_mdpost.html', form=form)
@main.route('/questions', methods=['GET', 'POST'])
def view_quesiton():
@main.route('/new_question_md', methods=['GET', 'POST'])
@login_required
def new_question_md():
form = PostMdForm()
if current_user.can(Permission.WRITE) and form.validate_on_submit():
title = request.form.get('title')
body = form.body.data
if request.form.get('anonymous') == "on":
is_anonymous = True
else:
is_anonymous = False
if title == "":
flash("Title cannot be None!")
return render_template('new_posting/new_mdpost.html', form=form)
body_html = request.form['test-editormd-html-code']
question = Question(title=title,
body=body,
body_html=body_html,
is_anonymous=is_anonymous,
author=current_user._get_current_object())
question.recent_activity = datetime.utcnow()
db.session.add(question)
db.session.commit()
if question.is_anonymous:
flash("You have just posted a posting anonymously", 'success')
else:
flash("You have just posted a posting", 'success')
return redirect(url_for('main.user', username=current_user.username))
return render_template('new_posting/new_mdpost.html', form=form)
@main.route('/questions/<question_id>', methods=['GET', 'POST'])
def view_quesiton(question_id):
if request.method == 'GET':
question = Question.query.get_or_404(id)
page1 = request.args.get('page', 1, type=int)
query1 = Post.query
pagination1 = query1.order_by(Post.recent_activity.desc()).paginate(
pagination1 = query1.with_parent(question).order_by(Post.timestamp.asc()).paginate(
page1, per_page=current_app.config['FLASKY_POSTS_PER_PAGE'],
error_out=False)
posts1 = pagination1.items
@ -693,8 +726,8 @@ def view_quesiton():
li_num = db.session.query(func.count(Want.wanter_id)).filter_by(wanted_Activity_id=item.id).scalar()
item.important = li_num
hot_activity = li.order_by(Activity.important.desc())
return render_template('POsts/question.html', posts1=posts1, posts5=hot,
pagination1=pagination1, hot_activity=hot_activity)
return render_template('Posts/question.html', posts1=posts1, posts5=hot,
pagination1=pagination1, hot_activity=hot_activity, question=question)
else:
inf = request.form["search"]
return redirect(url_for('.query', content=inf))

@ -113,7 +113,7 @@ class User(UserMixin, db.Model):
avatar_hash = db.Column(db.String(32))
avatar_img = db.Column(db.String(120), nullable=True)
# 发帖、评论与点赞
# 写问题、回答、评论与点赞
posts = db.relationship('Post', backref='author', lazy='dynamic', cascade='all, delete-orphan')
questions = db.relationship('Question', backref='author', lazy='dynamic', cascade='all, delete-orphan')
comments = db.relationship('Comment', backref='author', lazy='dynamic', cascade='all, delete-orphan')

@ -1,4 +1,3 @@
{% extends "base.html" %}
{% import "_macros.html" as macros %}
{% block title %}Student Exchange Forum of BJUT{% endblock %}

@ -330,7 +330,7 @@
<div class="inner2-left col-sm-3">
<div class="new-posts">
<div>
<a href="{{ url_for('.new_post_md') }}">
<a href="{{ url_for('.new_question_md') }}">
<svg class="icon" viewBox="0 0 1024 1024" version="1.1" width="40" height="40">
<defs>
<style type="text/css"></style>
@ -344,7 +344,7 @@
</svg>
</a>
</div>
<div class="icon-word">New Post</div>
<div class="icon-word">New Questions</div>
</div>
</div>
<div class="inner2-left col-sm-3">

Loading…
Cancel
Save