Feb 02 2026: implement remembering logged in, correct timezone
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
from app import db
|
||||
from datetime import datetime
|
||||
from app.utils.time_utils import now_eastern
|
||||
import json
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ class InspectionTemplate(db.Model):
|
||||
description = db.Column(db.Text)
|
||||
frequency = db.Column(db.Enum('daily', 'weekly', 'monthly', 'quarterly'))
|
||||
created_by = db.Column(db.Integer, db.ForeignKey('users.id'))
|
||||
created_at = db.Column(db.DateTime, default=datetime.utcnow)
|
||||
created_at = db.Column(db.DateTime, default=now_eastern)
|
||||
form_schema = db.Column(db.JSON, nullable=True)
|
||||
|
||||
checklist_items = db.relationship('ChecklistItem', backref='template', lazy='dynamic', cascade='all, delete-orphan')
|
||||
@@ -57,7 +57,7 @@ class Inspection(db.Model):
|
||||
facility_id = db.Column(db.Integer, db.ForeignKey('facilities.id'), nullable=False)
|
||||
area_id = db.Column(db.Integer, db.ForeignKey('areas.id'))
|
||||
inspector_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
|
||||
inspection_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
|
||||
inspection_date = db.Column(db.DateTime, nullable=False, default=now_eastern)
|
||||
overall_score = db.Column(db.Numeric(5, 2))
|
||||
status = db.Column(db.Enum('in_progress', 'completed', 'flagged'), default='in_progress')
|
||||
notes = db.Column(db.Text) # inspector free-text notes
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
from app import db
|
||||
from datetime import datetime
|
||||
from app.utils.time_utils import now_eastern
|
||||
|
||||
|
||||
class IssueComment(db.Model):
|
||||
@@ -10,7 +10,7 @@ class IssueComment(db.Model):
|
||||
user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
|
||||
status_at_time = db.Column(db.String(20)) # snapshot of issue status when comment was made
|
||||
body = db.Column(db.Text, nullable=False)
|
||||
created_at = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
|
||||
created_at = db.Column(db.DateTime, default=now_eastern, nullable=False)
|
||||
|
||||
# Relationships
|
||||
author = db.relationship('User', foreign_keys=[user_id])
|
||||
@@ -30,7 +30,7 @@ class Issue(db.Model):
|
||||
photo_path = db.Column(db.String(255))
|
||||
status = db.Column(db.Enum('open', 'in_progress', 'resolved'), default='open')
|
||||
assigned_to = db.Column(db.Integer, db.ForeignKey('users.id'))
|
||||
reported_at = db.Column(db.DateTime, default=datetime.utcnow)
|
||||
reported_at = db.Column(db.DateTime, default=now_eastern)
|
||||
resolved_at = db.Column(db.DateTime)
|
||||
result_notes = db.Column(db.Text)
|
||||
result_photos = db.Column(db.JSON) # list of relative paths e.g. ["uploads/issue_photos/abc.jpg"]
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
from app import db, login_manager
|
||||
from flask_login import UserMixin
|
||||
from werkzeug.security import generate_password_hash, check_password_hash
|
||||
from datetime import datetime
|
||||
from app.utils.time_utils import now_eastern
|
||||
|
||||
@login_manager.user_loader
|
||||
def load_user(user_id):
|
||||
@@ -15,7 +15,7 @@ class User(UserMixin, db.Model):
|
||||
email = db.Column(db.String(255), unique=True, nullable=False, index=True)
|
||||
password_hash = db.Column(db.String(255), nullable=False)
|
||||
role = db.Column(db.Enum('admin', 'supervisor', 'inspector'), nullable=False)
|
||||
created_at = db.Column(db.DateTime, default=datetime.utcnow)
|
||||
created_at = db.Column(db.DateTime, default=now_eastern)
|
||||
|
||||
# Relationships
|
||||
inspections = db.relationship('Inspection', backref='inspector', lazy='dynamic')
|
||||
|
||||
Reference in New Issue
Block a user