Ejemplo n.º 1
0
class Task(db.Model, At, By):
    __tablename__ = "Task"
    PRIORITY_VALUES = [('low', 'low'), ('medium', 'medium'), ('high', 'high')]
    STATUS_VALUES = [('TODO', 'TODO'), ('DOING', 'DOING'), ('DONE', 'DONE')]
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100))
    description = db.Column(db.String(1000))
    start_date = db.Column(db.Date(), nullable=False)
    expected_end_date = db.Column(db.Date(), nullable=True)
    actual_end_date = db.Column(db.Date())
    task_status = db.Column(ChoiceType(STATUS_VALUES, impl=db.String(5)),
                            default='TODO',
                            nullable=True)
    priority = db.Column(ChoiceType(PRIORITY_VALUES, impl=db.String(7)),
                         default='medium')

    reporter_id = db.Column(db.Integer, db.ForeignKey('User.id'))
    assignee_id = db.Column(db.Integer, db.ForeignKey('User.id'))
    team_id = db.Column(db.Integer, db.ForeignKey('Team.id'))

    reporter = db.relationship('User',
                               backref=db.backref('as_reporter'),
                               primaryjoin="User.id==Task.reporter_id")
    assignee = db.relationship('User',
                               backref=db.backref('as_assignee'),
                               primaryjoin="User.id==Task.assignee_id")

    team = db.relationship('Team', backref=db.backref('tasks', lazy='dynamic'))
Ejemplo n.º 2
0
class Serial(db.Model):
    __tablename__ = "serials"
    id = db.Column(db.Integer, primary_key=True)
    number = db.Column(db.Integer)
    timestamp = db.Column(db.DateTime(), index=True, default=datetime.utcnow)
    date = db.Column(db.Date(), default=datetime.utcnow().date)
    name = db.Column(db.String(300), nullable=True)
    n = db.Column(db.Boolean)
    p = db.Column(db.Boolean)
    # stands for proccessed , which be modified after been processed
    pdt = db.Column(db.DateTime())
    # Fix: adding pulled by feature to tickets
    pulledBy = db.Column(db.Integer)
    office_id = db.Column(db.Integer, db.ForeignKey('offices.id'))
    task_id = db.Column(db.Integer, db.ForeignKey('tasks.id'))

    def __init__(self,
                 number=100,
                 office_id=1,
                 task_id=1,
                 name=None,
                 n=False,
                 p=False,
                 pulledBy=0):
        self.number = number
        self.office_id = office_id
        self.task_id = task_id
        self.name = name
        self.n = n
        # fixing mass use tickets multi operators conflict
        self.p = p
        self.pulledBy = pulledBy
Ejemplo n.º 3
0
class Task(db.Model, base_task.BaseTask):
    __tablename__ = "Task"
    Priority = [('major', 'major'), ('normal', 'normal'), ('minor', 'minor')]
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100))
    description = db.Column(db.String(500))
    start_date = db.Column(db.Date(), nullable=False)
    expected_end_date = db.Column(db.Date(), nullable=True)
    actual_end_date = db.Column(db.Date(), nullable=True)
    status = db.Column(db.Integer, db.ForeignKey('Task_status.id'))
    Task_status = relationship("Task_status",
                               backref=backref("Task_status", uselist=False))
    priority = db.Column(ChoiceType(Priority))

    reporter = db.Column(db.Integer, db.ForeignKey("User.id"))
    assignee = db.Column(db.Integer, db.ForeignKey('User.id'))

    User = relationship('User',
                        primaryjoin=('and_('
                                     'Task.reporter == User.id, '
                                     'Task.assignee == User.id'
                                     ')'),
                        innerjoin=True)

    # User_reporter = relationship("User", backref="User_reporter", foreign_keys="User.reporter")
    # User_assignee = relationship("User", backref="User_assigned", foreign_keys="User.assignee")
    def __init__(self, title, description, start_date, expected_end_date,
                 actual_end_date, status, priority, reporter, assignee):
        self.title = title
        self.description = description
        self.start_date = start_date
        self.expected_end_date = expected_end_date
        self.actual_end_date = actual_end_date
        self.status = status
        self.priority = priority
        self.reporter = reporter
        self.assignee = assignee
class Record(Model):
    __tablename__ = 'records'
    id = Column(db.Integer, primary_key=True)
    hrsa_id = Column(db.String())
    entity = Column(db.String())
    hrsa_designation_id = Column(db.Integer,
                                 db.ForeignKey('hrsa_designations.id'))
    state_id = Column(db.Integer, db.ForeignKey('states.id'))
    year = Column(db.String())
    full_year = Column(db.Integer)
    opa_findings = Column(db.String())
    sanction = Column(db.String())
    cap_status = Column(db.String())
    closure_date = Column(db.Date())
    entity_contact = Column(db.String())
    tags = relationship('Tag',
                        secondary='tags',
                        lazy='dynamic',
                        backref=db.backref('records', lazy=True))
Ejemplo n.º 5
0
class Mesures(db.Model):
    __tablename__ = 'mesures'

    id = db.Column(db.Integer, primary_key=True)
    niveau = db.Column(db.String(100), nullable=False)
    etat = db.Column(db.String(100), )
    date = db.Column(db.Date(), nullable=False)
    code_station = db.Column(db.Integer,
                             db.ForeignKey('station.code'),
                             nullable=False)
    id_polluant = db.Colulmn(db.Integer,
                             db.ForeignKey('polluant.id'),
                             nullable=False)

    def __init__(self, niveau, etat, date, code_station, id_polluant):
        self.niveau = niveau
        self.etat = etat
        self.date = date
        self.code_station = code_station
        self.id_polluant = id_polluant

    def __str__(self):
        return f'relevé du {self.date}'
Ejemplo n.º 6
0
class VSProject(CRUDMixin, db.Model):
    """"
    项目模型
    """
    __tablename__ = 'tbl_vsppm_project'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    # 名称
    name = db.Column(db.String(90), nullable=False, unique=True)
    # 开始日期
    begin = db.Column(db.Date())
    # 结束日期
    end = db.Column(db.Date())
    # 项目类型
    type = db.Column(db.String(20), default='sprint')
    # 历时天数
    days = db.Column(db.Integer)
    # 状态
    status = db.Column(db.String(30), default='wait')
    # 描述
    desc = db.Column(db.String(256))
    # 公司id
    company_id = db.Column(db.Integer, db.ForeignKey('tbl_vsppm_company.id'))
    # 部门id
    department_id = db.Column(db.Integer,
                              db.ForeignKey('tbl_vsppm_department.id'))
    # 项目开启者
    opened_by_id = db.Column(db.Integer, db.ForeignKey('tbl_vsppm_user.id'))
    # 项目开启日期
    opened_datetime = db.Column(db.DateTime(timezone=True))
    # 项目关闭者
    closed_by_id = db.Column(db.Integer, db.ForeignKey('tbl_vsppm_user.id'))
    # 项目关闭日期
    closed_datetime = db.Column(db.DateTime(timezone=True))
    # 项目取消者
    canceled_by_id = db.Column(db.Integer, db.ForeignKey('tbl_vsppm_user.id'))
    # 项目取消日期
    canceled_datetime = db.Column(db.DateTime(timezone=True))
    # 项目管理员id
    manager_admin_id = db.Column(db.Integer,
                                 db.ForeignKey('tbl_vsppm_user.id'))
    # 测试管理员id
    test_admin_id = db.Column(db.Integer, db.ForeignKey('tbl_vsppm_user.id'))
    # 发布管理员id
    release_admin_id = db.Column(db.Integer,
                                 db.ForeignKey('tbl_vsppm_user.id'))
    # 需求管理员id
    require_admin_id = db.Column(db.Integer,
                                 db.ForeignKey('tbl_vsppm_user.id'))
    access = db.Column(db.String(20), default='open')
    # 创建时间
    created_ts = db.Column(db.DateTime(timezone=True),
                           default=datetime.datetime.utcnow)
    # 更新时间
    updated_ts = db.Column(db.DateTime(timezone=True),
                           default=datetime.datetime.utcnow)
    # 激活状态
    active = db.Column(db.Boolean(), default=True)

    # http://docs.sqlalchemy.org/en/rel_0_9/orm/join_conditions.html#handling-multiple-join-paths
    opened_by = db.relationship('VSUser', foreign_keys=[opened_by_id])
    closed_by = db.relationship('VSUser', foreign_keys=[closed_by_id])
    canceled_by = db.relationship('VSUser', foreign_keys=[canceled_by_id])
    manager_admin = db.relationship('VSUser', foreign_keys=[manager_admin_id])
    test_admin = db.relationship('VSUser', foreign_keys=[test_admin_id])
    release_admin = db.relationship('VSUser', foreign_keys=[release_admin_id])
    require_admin = db.relationship('VSUser', foreign_keys=[require_admin_id])

    # 项目成员
    members = db.relationship('VSUser',
                              secondary=vsppm_project_member,
                              backref=db.backref('projects'))
    company = db.relationship('VSCompany', backref=db.backref('projects'))
    department = db.relationship('VSDepartment',
                                 backref=db.backref('projects'))

    def __init__(self, **kwargs):
        super(VSProject, self).__init__(**kwargs)

    def __repr__(self):
        return '<VSProject #%s:%r>' % (self.id, self.name)