diff --git a/app/routes.py b/app/routes.py index 836897c..ee922c0 100644 --- a/app/routes.py +++ b/app/routes.py @@ -309,6 +309,9 @@ def appeal_detail(appeal_id): abort(403) form = AppealMessageForm() if form.validate_on_submit(): + if appeal.status in ['approved', 'rejected']: + flash('该申诉已关闭,无法继续对话。', 'warning') + return redirect(url_for('main.appeal_detail', appeal_id=appeal.id)) msg = AppealMessage( body=form.body.data, author_id=current_user.id, @@ -319,7 +322,7 @@ def appeal_detail(appeal_id): appeal.status = 'awaiting_user_reply' else: appeal.status = 'awaiting_admin_reply' - + db.session.add(msg) db.session.commit() flash('消息已发送。', 'success') @@ -347,6 +350,9 @@ def appeal_list(): @permission_required('admin') # 必须是管理员 def decide_appeal(appeal_id): appeal = Appeal.query.get_or_404(appeal_id) + if appeal.status in ['approved', 'rejected']: + flash('该申诉已处理,无法重复操作。', 'warning') + return redirect(url_for('main.appeal_detail', appeal_id=appeal.id)) action = request.form.get('action') if action == 'approve': # 批准申诉:删除黑名单记录,更新申诉状态 @@ -376,6 +382,24 @@ def decide_appeal(appeal_id): db.session.commit() return redirect(url_for('main.appeal_list')) +@main.route('/my/reports') +@login_required +def my_reports(): + page = request.args.get('page', 1, type=int) + reports_pagination = Report.query.filter_by(reporter_id=current_user.id).order_by( + Report.created_at.desc() + ).paginate(page=page, per_page=20, error_out=False) + return render_template('my_reports.html', reports=reports_pagination) + +@main.route('/my/appeals') +@login_required +def my_appeals(): + page = request.args.get('page', 1, type=int) + appeals_pagination = Appeal.query.filter_by(appealer_id=current_user.id).order_by( + Appeal.created_at.desc() + ).paginate(page=page, per_page=20, error_out=False) + return render_template('my_appeals.html', appeals=appeals_pagination) + @main.route('/admin/sites', methods=['GET', 'POST']) @login_required @admin_required diff --git a/app/templates/base.html b/app/templates/base.html index de7b008..0c5c8e3 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -60,8 +60,9 @@ 你好, {{ current_user.username }}
diff --git a/app/templates/my_appeals.html b/app/templates/my_appeals.html new file mode 100644 index 0000000..d1ff804 --- /dev/null +++ b/app/templates/my_appeals.html @@ -0,0 +1,73 @@ +{% extends "base.html" %} + +{% block title %}我的申诉{% endblock %} + +{% block content %} +| ID | +针对站点 | +状态 | +提交时间 | +最后更新 | +操作 | +
|---|---|---|---|---|---|
| #{{ appeal.id }} | +{{ appeal.blacklist_entry.pt_site if appeal.blacklist_entry else '已删除' }} | ++ + {{ appeal.status }} + + | +{{ appeal.created_at.strftime('%Y-%m-%d %H:%M') }} | +{{ appeal.updated_at.strftime('%Y-%m-%d %H:%M') }} | ++ 查看详情 + | +
您还没有提交过任何申诉。
+| ID | +被举报站点 | +被举报邮箱 | +举报类型 | +状态 | +提交时间 | +操作 | +
|---|---|---|---|---|---|---|
| #{{ report.id }} | +{{ report.reported_pt_site }} | +{{ report.reported_email }} | +{{ report.reason_category }} | ++ + {{ report.status }} + + | +{{ report.created_at.strftime('%Y-%m-%d %H:%M') }} | ++ 查看详情 + | +
您还没有提交过任何举报。立即提交举报
+