cockpit/Model/ItemCrudModel.py

63 lines
2.5 KiB
Python

from sqlalchemy import Column, String, Float, Integer, DateTime, Date, Enum
from sqlalchemy.dialects.mysql import LONGTEXT
from Schemas.ProjectSchemas import WorkStatusEnum, ProjectStatusEnum
from Utils.CrudUtils import auto_create_crud
from Utils.SqlAlchemyUtils import Base
class DepartmentalDailyReports(Base):
__tablename__ = 'departmental_daily_reports'
id = Column(Integer, primary_key=True, index=True)
department = Column(String(32), default=None)
staff_name = Column(String(32), default=None)
work_date = Column(Date, default=None)
work_content = Column(LONGTEXT, default=None)
work_status = Column(Enum(WorkStatusEnum, values_callable=lambda x: [e.value for e in x]), default=None)
def to_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
reports_model = auto_create_crud(DepartmentalDailyReports, 'departmental_daily_reports', '部门日报')
class ProjectDataSheet(Base):
__tablename__ = 'project_data_sheet'
id = Column(Integer, primary_key=True, index=True)
project = Column(String(128), default=None)
client = Column(String(32), default=None)
client_labels = Column(String(128), default=None)
master = Column(String(32), default=None)
participants = Column(String(128), default=None)
departments = Column(String(128), default=None)
project_type = Column(String(128), default=None)
project_labels = Column(String(128), default=None)
project_status = Column(Enum(ProjectStatusEnum, values_callable=lambda x: [e.value for e in x]), default=None)
start_date = Column(Date, default=None)
finish_date = Column(Date, default=None)
amount = Column(Float, default=None)
remarks = Column(LONGTEXT, default=None)
def to_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
projects_model = auto_create_crud(ProjectDataSheet, 'project_data_sheet', '项目数据')
class InformationDataSheet(Base):
__tablename__ = 'information_data_sheet'
id = Column(Integer, primary_key=True, index=True)
title = Column(String(128), default=None)
post_time = Column(DateTime, default=None)
source = Column(String(128), default=None)
link = Column(String(128), default=None)
type = Column(String(128), default=None)
def to_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
information_model = auto_create_crud(InformationDataSheet, 'information_data_sheet', '资讯数据')