Aug 27 - Updated web dashboard card, inspection ownership
This commit is contained in:
@@ -240,6 +240,32 @@ class Inspection(db.Model):
|
||||
follow-up.
|
||||
"""
|
||||
return self.follow_up_assignee or self.inspector
|
||||
|
||||
@staticmethod
|
||||
def follow_up_owned_by(user_id):
|
||||
"""SQL predicate: *user_id* owns this inspection's follow-up.
|
||||
|
||||
The query-side mirror of `follow_up_owner` above. Ownership has to be
|
||||
expressed twice — once for a loaded row, once in SQL — so both live
|
||||
here, together, and every caller uses one of them.
|
||||
|
||||
The two arms are mutually exclusive on purpose. Drop the `is_(None)`
|
||||
from the second and an inspector keeps matching a follow-up that was
|
||||
handed to someone else: two people turn up for the same re-inspection.
|
||||
|
||||
Callers: the mobile list filter, the web dashboard card, and the iPad
|
||||
stats KPI. They previously each wrote their own version, and three of
|
||||
them tested AUTHORSHIP — so an assignee saw the work in their list but
|
||||
a 0 on both dashboards.
|
||||
"""
|
||||
return db.or_(
|
||||
Inspection.follow_up_assigned_to == user_id,
|
||||
db.and_(
|
||||
Inspection.follow_up_assigned_to.is_(None),
|
||||
Inspection.inspector_id == user_id,
|
||||
),
|
||||
)
|
||||
|
||||
follow_ups = db.relationship('Inspection', backref=db.backref('parent', remote_side='Inspection.id'),
|
||||
lazy='dynamic', foreign_keys='Inspection.parent_inspection_id')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user