05/04 Replace issue Area with Facility
This commit is contained in:
+18
-7
@@ -409,17 +409,28 @@ def unfollow(issue_id):
|
||||
@supervisor_required
|
||||
def create():
|
||||
form = IssueForm()
|
||||
areas = Area.query.join(Facility).filter(Facility.active == True).order_by(Facility.name, Area.name).all()
|
||||
facilities = Facility.query.filter_by(active=True).order_by(Facility.name).all()
|
||||
staff = User.query.filter(User.role.in_(['admin', 'director', 'inspector'])).order_by(User.username).all()
|
||||
|
||||
form.area_id.choices = [(a.id, f"{a.facility.name} — {a.name}") for a in areas]
|
||||
form.assigned_to.choices = [(0, '— Unassigned —')] + [(u.id, u.username) for u in staff]
|
||||
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]
|
||||
|
||||
if form.validate_on_submit():
|
||||
from app.routes.inspections import _save_photo
|
||||
photo_path = _save_photo(form.photo.data, subfolder='issue_photos')
|
||||
|
||||
# Derive area_id from the selected facility — use its first active area.
|
||||
# area_id is required on the Issue model so we must resolve it here.
|
||||
area = (Area.query
|
||||
.filter_by(facility_id=form.facility_id.data)
|
||||
.order_by(Area.name)
|
||||
.first())
|
||||
if area is None:
|
||||
form.facility_id.errors.append('Selected facility has no areas. Please add an area first.')
|
||||
return render_template('issues/form.html', form=form, title='Log New Issue')
|
||||
|
||||
issue = Issue(
|
||||
area_id = form.area_id.data,
|
||||
area_id = area.id,
|
||||
severity = form.severity.data,
|
||||
description = form.description.data,
|
||||
photo_path = photo_path,
|
||||
@@ -430,11 +441,11 @@ def create():
|
||||
db.session.add(issue)
|
||||
db.session.commit()
|
||||
current_app.logger.info(
|
||||
'ISSUE CREATED | id=%s | severity=%s | area_id=%s | assigned_to=%s | created_by=%s',
|
||||
issue.id, issue.severity, issue.area_id, issue.assigned_to, current_user.username
|
||||
'ISSUE CREATED | id=%s | severity=%s | facility_id=%s | area_id=%s | assigned_to=%s | created_by=%s',
|
||||
issue.id, issue.severity, form.facility_id.data, issue.area_id, issue.assigned_to, current_user.username
|
||||
)
|
||||
log_action(ACTION_CREATE, 'Issue', issue.id,
|
||||
f'#{issue.id} {issue.severity} in {issue.area.name}',
|
||||
f'#{issue.id} {issue.severity} in {issue.area.facility.name}',
|
||||
f'severity={issue.severity}; assigned_to={issue.assigned_to}')
|
||||
|
||||
if issue.assigned_to:
|
||||
|
||||
Reference in New Issue
Block a user