Browse Source

feat: 新增删除归档

SongZihuan 3 years ago
parent
commit
98ede7b601
2 changed files with 38 additions and 5 deletions
  1. 23 1
      templates/archive/archive.html
  2. 15 4
      view/archive.py

+ 23 - 1
templates/archive/archive.html

@@ -35,7 +35,7 @@
                                             <p> 是否确认创建归档? </p>
                                             <p> 是否确认创建归档? </p>
                                         </div>
                                         </div>
                                         <div class="modal-footer">
                                         <div class="modal-footer">
-                                            {{ form.submit(class="btn btn-info", value="创建归档") }}
+                                            {{ form.submit(class="btn btn-info", value="确认") }}
                                             <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
                                             <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
                                         </div>
                                         </div>
                                     </div>
                                     </div>
@@ -59,6 +59,28 @@
                 <p> {{ archive[2] }} </p>
                 <p> {{ archive[2] }} </p>
                 <p> 篇数: {{ archive[3] }} </p>
                 <p> 篇数: {{ archive[3] }} </p>
                 <a class="btn btn-info" href="{{ url_for("docx.archive_page", archive=archive[0], page=1) }}"> 进入 </a>
                 <a class="btn btn-info" href="{{ url_for("docx.archive_page", archive=archive[0], page=1) }}"> 进入 </a>
+                {% if current_user.check_role("DeleteBlog") %}
+                    <div id="DeleteModal{{archive[0]}}" class="modal fade" role="dialog" aria-hidden="true">
+                        <div class="modal-dialog">
+                            <div class="modal-content text-left">
+                                <div class="modal-header">
+                                    <h4 class="modal-title"> 确认删除归档? </h4>
+                                </div>
+                                <div class="modal-body">
+                                    <p> 是否确认删除归档 {{ archive[1] }}? </p>
+                                </div>
+                                <div class="modal-footer">
+                                    <a class="btn btn-danger"
+                                       href="{{ url_for("archive.delete_archive", archive_id=archive[0]) }}"> 删除 </a>
+                                    <button type="button" class="btn btn-secondary" data-dismiss="modal"> 取消 </button>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+
+                    <button type="button" class="btn btn-danger"
+                            data-toggle="modal" data-target="#DeleteModal{{archive[0]}}"> 删除归档 </button>
+                {% endif %}
             </div>
             </div>
         {% endfor %}
         {% endfor %}
     </section>
     </section>

+ 15 - 4
view/archive.py

@@ -6,7 +6,6 @@ from wtforms import StringField, SubmitField
 from wtforms.validators import DataRequired, Length
 from wtforms.validators import DataRequired, Length
 
 
 from view.base import App
 from view.base import App
-from core.user import User
 from core.archive import Archive
 from core.archive import Archive
 
 
 archive = Blueprint("archive", __name__)
 archive = Blueprint("archive", __name__)
@@ -25,13 +24,12 @@ def archive_page():
     return render_template("archive/archive.html", archive_list=archive_list, form=CreateArchiveForm())
     return render_template("archive/archive.html", archive_list=archive_list, form=CreateArchiveForm())
 
 
 
 
-@archive.route("create-archive", methods=["POST"])
+@archive.route("create", methods=["POST"])
 @login_required
 @login_required
 def create_archive_page():
 def create_archive_page():
     form = CreateArchiveForm()
     form = CreateArchiveForm()
     if form.validate_on_submit():
     if form.validate_on_submit():
-        auth: User = current_user
-        if not auth.check_role("WriteBlog"):  # 检查相应的权限
+        if not current_user.check_role("WriteBlog"):  # 检查相应的权限
             abort(403)
             abort(403)
             return
             return
 
 
@@ -43,6 +41,19 @@ def create_archive_page():
     abort(404)
     abort(404)
 
 
 
 
+@archive.route("delete/<int:archive_id>")
+@login_required
+def delete_archive(archive_id: int):
+    if not current_user.check_role("DeleteBlog"):
+        abort(403)
+        return
+    if Archive(None, None, archive_id).delete():
+        flash("归档删除成功")
+    else:
+        flash("归档删除失败")
+    return redirect(url_for("archive.archive_page"))
+
+
 @archive.context_processor
 @archive.context_processor
 def inject():
 def inject():
     return {"top_nav": ["", "active", "", "", "", ""]}
     return {"top_nav": ["", "active", "", "", "", ""]}