05/26 Add Contract filter in Inspections page

This commit is contained in:
2026-05-26 12:33:28 -04:00
parent c944b3a0b3
commit 280f520bd6
4 changed files with 68 additions and 7 deletions
+21 -3
View File
@@ -216,8 +216,15 @@ def index():
status_filter = request.args.get('status', '')
facility_filter = request.args.get('facility_id', '')
follow_up_filter = request.args.get('follow_up', '')
contract_filter = request.args.get('contract_id', '')
if status_filter:
q = q.filter(Inspection.status == status_filter)
if contract_filter.isdigit():
_contract_fids = [
f.id for f in Facility.query.filter_by(project_id=int(contract_filter)).all()
]
q = q.filter(Inspection.facility_id.in_(_contract_fids)) if _contract_fids else q.filter(False)
if facility_filter.isdigit():
q = q.filter(Inspection.facility_id == int(facility_filter))
if follow_up_filter == '1':
@@ -227,21 +234,32 @@ def index():
).filter(~Inspection.follow_ups.any())
inspections = q.paginate(page=page, per_page=20, error_out=False)
if current_user.role == 'inspector':
fids = get_inspector_scope(current_user) or []
facilities = Facility.query.filter(Facility.id.in_(fids), Facility.active == True).order_by(Facility.name).all()
_fq = Facility.query.filter(Facility.id.in_(fids), Facility.active == True)
elif 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()
_fq = Facility.query.filter(Facility.id.in_(cids), Facility.active == True)
else:
facilities = Facility.query.filter_by(active=True).order_by(Facility.name).all()
_fq = Facility.query.filter_by(active=True)
if contract_filter.isdigit():
_fq = _fq.filter(Facility.project_id == int(contract_filter))
facilities = _fq.order_by(Facility.name).all()
from app.models.project import Project
projects = Project.query.filter_by(active=True).order_by(Project.name).all()
return render_template('inspections/list.html',
inspections=inspections,
facilities=facilities,
projects=projects,
status_filter=status_filter,
facility_filter=facility_filter,
follow_up_filter=follow_up_filter,
contract_filter=contract_filter,
now=now_eastern())