05/25 Improvement 1

This commit is contained in:
2026-05-25 12:23:59 -04:00
parent e375f1f70e
commit 9574d15f20
15 changed files with 610 additions and 82 deletions
+37
View File
@@ -180,6 +180,8 @@ def view(issue_id):
if not facility or facility.id not in cids:
flash('Access denied.', 'danger')
return redirect(url_for('issues.index'))
if request.method == 'POST':
abort(403)
form = IssueUpdateForm(obj=issue)
staff = User.query.filter(User.role.in_(['admin', 'director', 'inspector'])).order_by(User.username).all()
@@ -542,6 +544,41 @@ def verify(issue_id):
return redirect(url_for('issues.view', issue_id=issue_id))
@bp.route('/bulk-verify', methods=['POST'])
@login_required
@supervisor_required
def bulk_verify():
"""Verify multiple pending-verification issues in a single action."""
issue_ids = request.form.getlist('issue_ids', type=int)
if not issue_ids:
flash('No issues selected.', 'warning')
return redirect(url_for('issues.verification_queue'))
verified_count = 0
for issue_id in issue_ids:
issue = db.session.get(Issue, issue_id)
if issue is None or issue.status not in ('resolved', 'pending_verification'):
continue
issue.status = 'resolved'
issue.verified_by = current_user.id
issue.verified_at = now_eastern()
if not issue.resolved_at:
issue.resolved_at = now_eastern()
verified_count += 1
if verified_count:
db.session.commit()
for issue_id in issue_ids:
issue = db.session.get(Issue, issue_id)
if issue and issue.verified_by == current_user.id:
log_action(ACTION_UPDATE, 'Issue', issue_id,
f'#{issue_id}',
f'bulk_verified_by={current_user.username}')
flash(f'{verified_count} issue{"s" if verified_count != 1 else ""} verified and closed.', 'success')
return redirect(url_for('issues.verification_queue'))
@bp.route('/<int:issue_id>/request-verification', methods=['POST'])
@login_required
def request_verification(issue_id):