Jun 24 - Issue details page, add filter by Reporter
This commit is contained in:
@@ -111,6 +111,7 @@ def export_list_pdf():
|
||||
contract_filter = request.args.get('contract_id', '')
|
||||
date_from_filter = request.args.get('date_from', '')
|
||||
date_to_filter = request.args.get('date_to', '')
|
||||
reporter_filter = request.args.get('reporter_id', '')
|
||||
|
||||
if issue_id_filter.isdigit():
|
||||
q = q.filter(Issue.id == int(issue_id_filter))
|
||||
@@ -140,6 +141,8 @@ def export_list_pdf():
|
||||
if facility_filter:
|
||||
fid = int(facility_filter)
|
||||
q = q.filter(db.or_(Issue.facility_id == fid, Area.facility_id == fid))
|
||||
if reporter_filter.isdigit():
|
||||
q = q.filter(Issue.reported_by == int(reporter_filter))
|
||||
|
||||
all_issues = q.all()
|
||||
if sla_filter:
|
||||
@@ -168,6 +171,10 @@ def export_list_pdf():
|
||||
f = db.session.get(Facility, int(facility_filter))
|
||||
if f:
|
||||
filter_parts.append(f'Facility: {f.name}')
|
||||
if reporter_filter.isdigit():
|
||||
r = db.session.get(User, int(reporter_filter))
|
||||
if r:
|
||||
filter_parts.append(f'Reporter: {r.display_name}')
|
||||
|
||||
filter_summary = ' | '.join(filter_parts) if filter_parts else 'All issues'
|
||||
|
||||
@@ -235,6 +242,7 @@ def index():
|
||||
contract_filter = request.args.get('contract_id', '')
|
||||
date_from_filter = request.args.get('date_from', '')
|
||||
date_to_filter = request.args.get('date_to', '')
|
||||
reporter_filter = request.args.get('reporter_id', '')
|
||||
|
||||
if issue_id_filter.isdigit():
|
||||
q = q.filter(Issue.id == int(issue_id_filter))
|
||||
@@ -261,6 +269,8 @@ def index():
|
||||
Issue.facility_id.in_(_contract_fids),
|
||||
Area.facility_id.in_(_contract_fids),
|
||||
)) if _contract_fids else q.filter(False)
|
||||
if reporter_filter.isdigit():
|
||||
q = q.filter(Issue.reported_by == int(reporter_filter))
|
||||
if facility_filter:
|
||||
fid = int(facility_filter)
|
||||
q = q.filter(
|
||||
@@ -325,6 +335,12 @@ def index():
|
||||
User.role.in_(['admin', 'director', 'inspector']), User.active == True
|
||||
).order_by(User.username).all()
|
||||
|
||||
# Reporters dropdown — users who have actually filed at least one issue
|
||||
reporter_ids = db.session.execute(
|
||||
db.select(Issue.reported_by).where(Issue.reported_by.isnot(None)).distinct()
|
||||
).scalars().all()
|
||||
reporters = User.query.filter(User.id.in_(reporter_ids)).order_by(User.full_name, User.username).all()
|
||||
|
||||
return render_template('issues/list.html',
|
||||
issues=issues_paged,
|
||||
issue_id_filter=issue_id_filter,
|
||||
@@ -335,9 +351,11 @@ def index():
|
||||
contract_filter=contract_filter,
|
||||
date_from_filter=date_from_filter,
|
||||
date_to_filter=date_to_filter,
|
||||
reporter_filter=reporter_filter,
|
||||
facilities=facilities,
|
||||
projects=projects,
|
||||
staff=staff,
|
||||
reporters=reporters,
|
||||
followed_ids=followed_ids)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user