From 9b7751a5cc8be0c2804de30ed84b4e18f8e1f25d Mon Sep 17 00:00:00 2001 From: jasonMPM Date: Thu, 5 Mar 2026 16:58:36 -0600 Subject: [PATCH] Add files via upload --- backend/app/models.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/backend/app/models.py b/backend/app/models.py index cedd5c4..a600007 100644 --- a/backend/app/models.py +++ b/backend/app/models.py @@ -1,5 +1,5 @@ from .extensions import db -from datetime import datetime +from datetime import datetime, date class Project(db.Model): __tablename__ = 'projects' @@ -42,12 +42,22 @@ class Deliverable(db.Model): status = db.Column(db.String(20), nullable=False, default='upcoming') created_at = db.Column(db.DateTime, default=datetime.utcnow) + def effective_status(self): + """ + Returns 'overdue' if the due date has passed and the deliverable + has not been marked completed. Completed deliverables are never + auto-downgraded regardless of date. + """ + if self.status != 'completed' and self.due_date < date.today(): + return 'overdue' + return self.status + def to_dict(self): return { 'id': self.id, 'project_id': self.project_id, 'title': self.title, 'due_date': self.due_date.isoformat() if self.due_date else None, - 'status': self.status, + 'status': self.effective_status(), 'created_at': self.created_at.isoformat() if self.created_at else None, }