Add system reset button to admin dashboard with confirmation
This commit is contained in:
parent
3db7d6449e
commit
c532f1dc1c
3 changed files with 40 additions and 1 deletions
24
app.py
24
app.py
|
|
@ -1,4 +1,5 @@
|
|||
import os
|
||||
import shutil
|
||||
import smtplib
|
||||
import ssl
|
||||
from email.message import EmailMessage
|
||||
|
|
@ -8,7 +9,7 @@ from flask import Flask, request, render_template, redirect, url_for, flash, ses
|
|||
from werkzeug.utils import secure_filename
|
||||
|
||||
from config import Config
|
||||
from models import init_db, close_db, create_request, get_request_by_id, get_request_by_token, list_requests, update_request, now_utc, delete_request
|
||||
from models import init_db, close_db, create_request, get_request_by_id, get_request_by_token, list_requests, update_request, now_utc, delete_request, reset_all_requests
|
||||
|
||||
app = Flask(__name__)
|
||||
app.config.from_object(Config)
|
||||
|
|
@ -292,6 +293,27 @@ def admin_delete_request(rid):
|
|||
flash(f'Request #{rid} deleted.', 'success')
|
||||
return redirect(url_for('admin_dashboard'))
|
||||
|
||||
@app.route('/admin/reset', methods=['POST'])
|
||||
def admin_reset_system():
|
||||
redir = require_admin()
|
||||
if redir:
|
||||
return redir
|
||||
|
||||
upload_root = Path(current_app.config['UPLOAD_FOLDER'])
|
||||
if upload_root.exists():
|
||||
for entry in upload_root.iterdir():
|
||||
try:
|
||||
if entry.is_file():
|
||||
entry.unlink()
|
||||
elif entry.is_dir():
|
||||
shutil.rmtree(entry)
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
reset_all_requests()
|
||||
flash('System reset complete. All orders and files have been cleared.', 'success')
|
||||
return redirect(url_for('admin_dashboard'))
|
||||
|
||||
# ---------------- init ----------------
|
||||
|
||||
@app.cli.command('init-db')
|
||||
|
|
|
|||
Reference in a new issue