feat: 初始版本,圆角主题与首次管理员引导
This commit is contained in:
37
app/blueprints/activities.py
Normal file
37
app/blueprints/activities.py
Normal file
@@ -0,0 +1,37 @@
|
||||
import os
|
||||
from flask import Blueprint, render_template, request, redirect, url_for, flash, current_app
|
||||
from flask_login import login_required, current_user
|
||||
from ..extensions import db
|
||||
from ..models import Activity, ActivityStatus, ActivitySubmission, SubmissionImage, ReviewStatus
|
||||
from ..services.images import save_image
|
||||
|
||||
bp = Blueprint("activities", __name__, url_prefix="/activities")
|
||||
|
||||
@bp.route("")
|
||||
def list_activities():
|
||||
acts = Activity.query.filter(Activity.status != ActivityStatus.draft).order_by(Activity.start_at).all()
|
||||
return render_template("activities/list.html", activities=acts)
|
||||
|
||||
@bp.route("/<int:act_id>")
|
||||
def detail(act_id):
|
||||
act = Activity.query.get_or_404(act_id)
|
||||
return render_template("activities/detail.html", activity=act)
|
||||
|
||||
@bp.route("/<int:act_id>/submit", methods=["GET", "POST"])
|
||||
@login_required
|
||||
def submit(act_id):
|
||||
act = Activity.query.get_or_404(act_id)
|
||||
if request.method == "POST":
|
||||
files = request.files.getlist("images")
|
||||
sub = ActivitySubmission(activity_id=act.id, user_id=current_user.id, status=ReviewStatus.pending)
|
||||
db.session.add(sub)
|
||||
db.session.flush()
|
||||
upload_dir = os.path.join(current_app.config["UPLOAD_FOLDER"], "activities")
|
||||
for idx, f in enumerate(files):
|
||||
original, web, thumb, exif = save_image(f, upload_dir)
|
||||
img = SubmissionImage(submission_id=sub.id, original_path=original, web_path=web, thumb_path=thumb, exif_json=exif, order_index=idx)
|
||||
db.session.add(img)
|
||||
db.session.commit()
|
||||
flash("投稿已提交,待审核")
|
||||
return redirect(url_for("activities.detail", act_id=act.id))
|
||||
return render_template("activities/submit.html", activity=act)
|
||||
Reference in New Issue
Block a user