06/09 Add Inspecter filters, and allow customer to flag issue

This commit is contained in:
2026-06-09 13:26:09 -04:00
parent 711ecb8d27
commit 792e84f439
5 changed files with 145 additions and 42 deletions
+25 -8
View File
@@ -478,16 +478,33 @@ def unfollow(issue_id):
@bp.route('/new', methods=['GET', 'POST'])
@login_required
@supervisor_required
def create():
from app.models.project import Project
form = IssueForm()
facilities = Facility.query.filter_by(active=True).order_by(Facility.name).all()
projects = Project.query.filter_by(active=True).order_by(Project.name).all()
staff = User.query.filter(User.role.in_(['admin', 'director', 'inspector'])).order_by(User.username).all()
if current_user.role not in ('admin', 'director', 'customer'):
abort(403)
form.facility_id.choices = [(f.id, f.name) for f in facilities]
form.assigned_to.choices = [(0, '— Unassigned —')] + [(u.id, u.username) for u in staff]
from app.models.project import Project, CustomerAssignment
form = IssueForm()
if current_user.role == 'customer':
cids = get_customer_scope(current_user) or []
facilities = (Facility.query
.filter(Facility.id.in_(cids), Facility.active == True)
.order_by(Facility.name).all()) if cids else []
assigned_pids = {
a.project_id for a in
CustomerAssignment.query.filter_by(user_id=current_user.id).all()
}
projects = Project.query.filter(
Project.active == True, Project.id.in_(assigned_pids)
).order_by(Project.name).all()
staff = []
else:
facilities = Facility.query.filter_by(active=True).order_by(Facility.name).all()
projects = Project.query.filter_by(active=True).order_by(Project.name).all()
staff = User.query.filter(User.role.in_(['admin', 'director', 'inspector'])).order_by(User.username).all()
form.facility_id.choices = [(f.id, f.name) for f in facilities]
form.assigned_to.choices = [(0, '— Unassigned —')] + [(u.id, u.username) for u in staff]
# On POST validation error: identify which contract the submitted facility
# belongs to so the contract selector can be restored on re-render.