Jul 16 - Update issue handler Janitorial staff - add input staff contact
This commit is contained in:
+4
-2
@@ -110,6 +110,7 @@ def _issue_payload(issue):
|
||||
'vendor_contact': issue.vendor_contact or None,
|
||||
'vendor_notes': issue.vendor_notes or None,
|
||||
'internal_handler_name': issue.internal_handler_name or None,
|
||||
'internal_handler_contact': issue.internal_handler_contact or None,
|
||||
}
|
||||
|
||||
|
||||
@@ -425,7 +426,8 @@ def update_issue_handler(issue_id):
|
||||
"vendor_name": "...", // optional (vendor handler)
|
||||
"vendor_contact": "...", // optional
|
||||
"vendor_notes": "...", // optional
|
||||
"internal_handler_name": "..." // optional (janitorial staff name)
|
||||
"internal_handler_name": "...", // optional (janitorial staff name)
|
||||
"internal_handler_contact": "..." // optional (janitorial staff contact)
|
||||
}
|
||||
|
||||
Only keys present in the body are updated; empty strings clear a field.
|
||||
@@ -465,7 +467,7 @@ def update_issue_handler(issue_id):
|
||||
_text_fields = (
|
||||
'facility_handler_name', 'facility_handler_contact', 'facility_handler_notes',
|
||||
'vendor_name', 'vendor_contact', 'vendor_notes',
|
||||
'internal_handler_name',
|
||||
'internal_handler_name', 'internal_handler_contact',
|
||||
)
|
||||
for field in _text_fields:
|
||||
if field in data:
|
||||
|
||||
@@ -99,6 +99,7 @@ class Issue(db.Model):
|
||||
# used when handler_type == 'internal'. Distinct from assigned_to (the JQC
|
||||
# User who owns follow-up): the actual crew member may not be a system user.
|
||||
internal_handler_name = db.Column(db.String(100), nullable=True)
|
||||
internal_handler_contact = db.Column(db.String(200), nullable=True) # phone or email
|
||||
|
||||
# Relationships
|
||||
# NOTE: Issue.area is provided by the backref on Area.issues (facility.py).
|
||||
|
||||
@@ -469,7 +469,8 @@ def view(issue_id):
|
||||
issue.facility_handler_contact = (form.facility_handler_contact.data or '').strip() or None
|
||||
issue.facility_handler_notes = (form.facility_handler_notes.data or '').strip() or None
|
||||
|
||||
issue.internal_handler_name = (form.internal_handler_name.data or '').strip() or None
|
||||
issue.internal_handler_name = (form.internal_handler_name.data or '').strip() or None
|
||||
issue.internal_handler_contact = (form.internal_handler_contact.data or '').strip() or None
|
||||
|
||||
from app.routes.inspections import _save_photo
|
||||
new_photos = []
|
||||
@@ -761,7 +762,8 @@ def create():
|
||||
issue.vendor_name = (form.vendor_name.data or '').strip() or None
|
||||
issue.vendor_contact = (form.vendor_contact.data or '').strip() or None
|
||||
issue.vendor_notes = (form.vendor_notes.data or '').strip() or None
|
||||
issue.internal_handler_name = (form.internal_handler_name.data or '').strip() or None
|
||||
issue.internal_handler_name = (form.internal_handler_name.data or '').strip() or None
|
||||
issue.internal_handler_contact = (form.internal_handler_contact.data or '').strip() or None
|
||||
|
||||
db.session.add(issue)
|
||||
db.session.commit()
|
||||
|
||||
@@ -54,12 +54,17 @@
|
||||
|
||||
{# Janitorial-staff handler — shown when Handled By = Janitorial Staff #}
|
||||
<div id="internal_handler_block" style="display:none;">
|
||||
<div class="mb-3">
|
||||
<div class="mb-2">
|
||||
{{ form.internal_handler_name.label(class="form-label small fw-semibold mb-1") }}
|
||||
{{ form.internal_handler_name(class="form-control form-control-sm",
|
||||
placeholder="Name of the crew member who will handle it") }}
|
||||
<div class="form-text">Optional — the janitorial staff member doing the work.</div>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
{{ form.internal_handler_contact.label(class="form-label small fw-semibold mb-1") }}
|
||||
{{ form.internal_handler_contact(class="form-control form-control-sm",
|
||||
placeholder="Phone or email") }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{# Facility-staff handler — shown when Handled By = Facility Staff #}
|
||||
|
||||
@@ -94,6 +94,9 @@
|
||||
<dd class="col-sm-9">
|
||||
<i class="bi bi-people text-secondary me-1"></i>
|
||||
<strong>{{ issue.internal_handler_name }}</strong>
|
||||
{% if issue.internal_handler_contact %}
|
||||
<span class="text-muted ms-2">{{ issue.internal_handler_contact }}</span>
|
||||
{% endif %}
|
||||
</dd>
|
||||
{% endif %}
|
||||
|
||||
@@ -408,12 +411,18 @@
|
||||
<p class="fw-semibold small mb-2">
|
||||
<i class="bi bi-people me-1 text-secondary"></i>Janitorial Staff
|
||||
</p>
|
||||
<div class="mb-3">
|
||||
<div class="mb-2">
|
||||
{{ form.internal_handler_name.label(class="form-label small fw-semibold mb-1") }}
|
||||
{{ form.internal_handler_name(class="form-control form-control-sm",
|
||||
placeholder="Name of the crew member who will handle it",
|
||||
value=issue.internal_handler_name or '') }}
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
{{ form.internal_handler_contact.label(class="form-label small fw-semibold mb-1") }}
|
||||
{{ form.internal_handler_contact(class="form-control form-control-sm",
|
||||
placeholder="Phone or email",
|
||||
value=issue.internal_handler_contact or '') }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{# ── Facility-staff handler (shown when Handled By = Facility Staff) ── #}
|
||||
|
||||
+6
-4
@@ -184,8 +184,9 @@ class IssueForm(FlaskForm):
|
||||
vendor_name = StringField('Contractor Name', validators=[Optional(), Length(max=100)])
|
||||
vendor_contact = StringField('Contractor Contact', validators=[Optional(), Length(max=200)])
|
||||
vendor_notes = TextAreaField('Contractor Notes', validators=[Optional(), Length(max=1000)])
|
||||
# Janitorial staff member's name — used when handler_type == 'internal'
|
||||
internal_handler_name = StringField('Staff Name', validators=[Optional(), Length(max=100)])
|
||||
# Janitorial staff member's name + contact — used when handler_type == 'internal'
|
||||
internal_handler_name = StringField('Staff Name', validators=[Optional(), Length(max=100)])
|
||||
internal_handler_contact = StringField('Staff Contact', validators=[Optional(), Length(max=200)])
|
||||
|
||||
|
||||
class IssueUpdateForm(FlaskForm):
|
||||
@@ -214,8 +215,9 @@ class IssueUpdateForm(FlaskForm):
|
||||
vendor_name = StringField('Contractor Name', validators=[Optional(), Length(max=100)])
|
||||
vendor_contact = StringField('Contractor Contact', validators=[Optional(), Length(max=200)])
|
||||
vendor_notes = TextAreaField('Contractor Notes', validators=[Optional(), Length(max=1000)])
|
||||
# Janitorial staff member's name — used when handler_type == 'internal'
|
||||
internal_handler_name = StringField('Staff Name', validators=[Optional(), Length(max=100)])
|
||||
# Janitorial staff member's name + contact — used when handler_type == 'internal'
|
||||
internal_handler_name = StringField('Staff Name', validators=[Optional(), Length(max=100)])
|
||||
internal_handler_contact = StringField('Staff Contact', validators=[Optional(), Length(max=200)])
|
||||
|
||||
# ── Projects ─────────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
Reference in New Issue
Block a user