v1.8.5: fix onupdate NOW() → func.now(), удалён main-header, правила по Идеям, синхронизация версии в контейнере
This commit is contained in:
@@ -10,7 +10,7 @@ ORM-модели для service portal (SQLAlchemy 2.0).
|
||||
"""
|
||||
from datetime import datetime
|
||||
from sqlalchemy import (
|
||||
Column, Integer, String, Boolean, Text, DateTime, Numeric, Date, BigInteger, SmallInteger, JSON, ForeignKey, CheckConstraint
|
||||
Column, Integer, String, Boolean, Text, DateTime, Numeric, Date, BigInteger, SmallInteger, JSON, ForeignKey, CheckConstraint, func
|
||||
)
|
||||
from sqlalchemy.orm import relationship, declarative_base
|
||||
|
||||
@@ -30,7 +30,7 @@ class User(Base):
|
||||
max_user_id = Column(BigInteger, nullable=True)
|
||||
is_active = Column(Boolean, nullable=False, default=True)
|
||||
created_at = Column(DateTime, nullable=False, server_default="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate=func.now())
|
||||
|
||||
__table_args__ = (
|
||||
CheckConstraint("role IN ('owner','engineer','technician')", name="ck_users_role"),
|
||||
@@ -76,7 +76,7 @@ class Customer(Base):
|
||||
notes = Column(Text)
|
||||
created_by = Column(Integer, ForeignKey("users.id", ondelete="SET NULL"))
|
||||
created_at = Column(DateTime, nullable=False, server_default="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate=func.now())
|
||||
|
||||
__table_args__ = (
|
||||
CheckConstraint("status IN ('active','inactive','prospect')", name="ck_customers_status"),
|
||||
@@ -109,7 +109,7 @@ class Object(Base):
|
||||
region_factor = Column(Numeric(3, 2), default=1.00)
|
||||
created_by = Column(Integer, ForeignKey("users.id", ondelete="SET NULL"))
|
||||
created_at = Column(DateTime, nullable=False, server_default="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate=func.now())
|
||||
|
||||
__table_args__ = (
|
||||
CheckConstraint("status IN ('active','inactive','audit','prospective')", name="ck_objects_status"),
|
||||
@@ -163,7 +163,7 @@ class Task(Base):
|
||||
result_notes = Column(Text)
|
||||
closed_at = Column(DateTime)
|
||||
created_at = Column(DateTime, nullable=False, server_default="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate=func.now())
|
||||
|
||||
__table_args__ = (
|
||||
CheckConstraint("priority IN ('P1','P2','P3','P4')", name="ck_tasks_priority"),
|
||||
@@ -227,7 +227,7 @@ class Report(Base):
|
||||
status = Column(String(20), nullable=False, default="draft")
|
||||
client_confirmed = Column(Boolean, default=False)
|
||||
created_at = Column(DateTime, nullable=False, server_default="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate=func.now())
|
||||
|
||||
__table_args__ = (
|
||||
CheckConstraint("report_type IN ('inspection','service','emergency','audit','monthly')", name="ck_reports_type"),
|
||||
@@ -255,7 +255,7 @@ class QuestionnaireSession(Base):
|
||||
object_index = Column(Numeric(5, 2), default=0)
|
||||
sla_price_monthly = Column(Numeric(12, 2), default=0)
|
||||
created_at = Column(DateTime, nullable=False, server_default="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate=func.now())
|
||||
|
||||
__table_args__ = (
|
||||
CheckConstraint("status IN ('draft','completed','cancelled')", name="ck_qsessions_status"),
|
||||
@@ -293,7 +293,7 @@ class QuestionnaireItem(Base):
|
||||
is_active = Column(Boolean, nullable=False, default=True)
|
||||
help_text = Column(String(500), default="")
|
||||
created_at = Column(DateTime, nullable=False, server_default="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate=func.now())
|
||||
|
||||
__table_args__ = (
|
||||
CheckConstraint("type IN ('text','number','select','radio','checkbox','textarea')", name="ck_qitems_type"),
|
||||
@@ -340,7 +340,7 @@ class SLAContract(Base):
|
||||
status = Column(String(20), nullable=False, default="negotiation")
|
||||
created_by = Column(Integer, ForeignKey("users.id", ondelete="SET NULL"))
|
||||
created_at = Column(DateTime, nullable=False, server_default="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate=func.now())
|
||||
|
||||
__table_args__ = (
|
||||
CheckConstraint("service_level IN ('start','business','enterprise')", name="ck_sla_level"),
|
||||
@@ -369,7 +369,7 @@ class Incident(Base):
|
||||
sla_breached = Column(Boolean, default=False)
|
||||
resolved_at = Column(DateTime)
|
||||
created_at = Column(DateTime, nullable=False, server_default="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate=func.now())
|
||||
|
||||
__table_args__ = (
|
||||
CheckConstraint("severity IN ('P1','P2','P3')", name="ck_incidents_severity"),
|
||||
@@ -438,7 +438,7 @@ class BlogPost(Base):
|
||||
status = Column(String(20), nullable=False, default="draft")
|
||||
published_at = Column(DateTime)
|
||||
created_at = Column(DateTime, nullable=False, server_default="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate=func.now())
|
||||
|
||||
__table_args__ = (
|
||||
CheckConstraint("category IN ('audit','sla','incident','supervision','documentation','risk','cases')", name="ck_blog_category"),
|
||||
@@ -458,7 +458,7 @@ class FormulaCoefficient(Base):
|
||||
formula_ref = Column(String(255), default="")
|
||||
is_active = Column(Boolean, nullable=False, default=True)
|
||||
updated_by = Column(Integer, ForeignKey("users.id", ondelete="SET NULL"))
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate=func.now())
|
||||
|
||||
updater = relationship("User")
|
||||
|
||||
@@ -473,7 +473,7 @@ class Case(Base):
|
||||
sort_order = Column(Integer, nullable=False, default=0)
|
||||
is_active = Column(Boolean, nullable=False, default=True)
|
||||
created_at = Column(DateTime, nullable=False, server_default="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate=func.now())
|
||||
|
||||
|
||||
class Idea(Base):
|
||||
@@ -485,7 +485,7 @@ class Idea(Base):
|
||||
status = Column(String(20), nullable=False, default="normal")
|
||||
created_by = Column(Integer, ForeignKey("users.id", ondelete="SET NULL"))
|
||||
created_at = Column(DateTime, nullable=False, server_default="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate=func.now())
|
||||
|
||||
__table_args__ = (
|
||||
CheckConstraint("status IN ('normal','in_progress','completed')", name="ck_ideas_status"),
|
||||
@@ -503,7 +503,7 @@ class QuickMenuItem(Base):
|
||||
url = Column(String(500), nullable=False)
|
||||
sort_order = Column(Integer, nullable=False, default=0)
|
||||
created_by = Column(Integer, ForeignKey("users.id", ondelete="SET NULL"))
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate="NOW()")
|
||||
updated_at = Column(DateTime, nullable=False, server_default="NOW()", onupdate=func.now())
|
||||
|
||||
creator = relationship("User")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user