Development

This commit is contained in:
Matthew Grotke 2026-05-29 23:10:04 -04:00
parent 33b639a353
commit 113328c566
3 changed files with 27 additions and 15 deletions

View file

@ -55,23 +55,36 @@ def history_revert():
@bp.route('/action/actions/history_clear', methods=['POST'])
@require_level('manager')
def history_clear():
selected_uuids = request.form.getlist('selected_uuids')
if not selected_uuids:
flash('No items selected.', 'info')
return redirect(f'/{_PAGE}')
count = 0
for fname in os.listdir(SNAPSHOTS_DIR):
fpath = os.path.join(SNAPSHOTS_DIR, fname)
if os.path.isfile(fpath):
os.remove(fpath)
count += 1
if not fname.endswith('.json'):
continue
if any(fname.endswith(f'-{uuid}.json') for uuid in selected_uuids):
fpath = os.path.join(SNAPSHOTS_DIR, fname)
if os.path.isfile(fpath):
os.remove(fpath)
count += 1
plural = 's' if count != 1 else ''
flash(f'History cleared ({count} record{plural} removed).', 'success')
flash(f'{count} history record{plural} cleared.', 'success')
return redirect(f'/{_PAGE}')
@bp.route('/action/actions/pending_dismiss', methods=['POST'])
@require_level('manager')
def pending_dismiss():
if not get_dashboard_pending():
pending = get_dashboard_pending()
dismissible = [(u, t, c, usr) for u, t, c, usr in pending if c != 'fix problems']
if not dismissible:
flash('No pending changes to dismiss.', 'info')
return redirect(f'/{_PAGE}')
open(DASHBOARD_PENDING, 'w').close()
flash('Pending changes dismissed.', 'success')
keep = [(u, t, c, usr) for u, t, c, usr in pending if c == 'fix problems']
with open(DASHBOARD_PENDING, 'w') as f:
for u, t, c, usr in keep:
f.write(f'{u} {t} [{c}] ({usr})\n')
plural = 's' if len(dismissible) != 1 else ''
flash(f'{len(dismissible)} pending change{plural} dismissed.', 'success')
return redirect(f'/{_PAGE}')