class Authors(db.Model): def __repr__(self): return f'{self.author_id}|{self.author_name}' __tablename__ = 'authors' author_id = db.Column(db.Integer(), primary_key=True) author_name = db.Column(db.String(100)) izds = db.relationship("Izd", secondary=association_table, back_populates="authors")
class Velocity(db.Model): """ Jira velocity statistic """ __tablename__ = 'jira_velocity' sprint_id = Column(db.INTEGER, nullable=False, unique=True, primary_key=True) project_id = db.Column(db.Integer, db.ForeignKey('jira_projects.id'), nullable=False) name = Column(db.VARCHAR(length=256), nullable=False) commitment = Column(db.FLOAT(), nullable=False) completed = Column(db.FLOAT(), nullable=False) start_at = Column(db.TIMESTAMP(), nullable=False) end_at = Column(db.TIMESTAMP(), nullable=False) created_at = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) project_key = db.relationship('Projects', backref=db.backref('project_name', lazy='dynamic')) @staticmethod def create_new_report(data): """ :param data: dict :return: """ # Update project_key, get Project instance data['project_key'] = Projects.query.filter_by(project_key=data['project_key']).first() exists = db.session.query(Velocity.sprint_id).filter_by(sprint_id=data['sprint_id']).scalar() is not None if not exists: report = Velocity(**data) db.session.add(report) logging.info('Create a new velocity data ' + str(report.project_key.project_key) + ' ' + str(report.name)) db.session.commit() else: logging.info('Nothing changed, sprint_id: ' + str(data['sprint_id']) + ' already exist')
class Izd(db.Model): def __repr__(self): return f'{self.Nom_zak}|{self.book_name}|{self.vid_id}|{self.perep_id}|{self.kol_str}|{self.format_id}|' \ f'{self.tirazh}|{self.data_izg}' __tablename__ = 'izd' Nom_zak = db.Column(db.Integer(), primary_key=True, auto_increment=True) book_name = db.Column(db.String(100)) vid_id = db.Column(db.Integer(), db.ForeignKey('vidi_izd.vid_id')) ISBN = db.Column(db.String(100)) perep_id = db.Column(db.Integer(), db.ForeignKey('tipi_perep.perep_id')) kol_str = db.Column(db.String(40)) format_id = db.Column(db.Integer(), db.ForeignKey('formati.format_id')) tirazh = db.Column(db.String(100)) data_izg = db.Column(db.Date()) god_izd = db.Column(db.String(40)) status_id = db.Column(db.Integer(), db.ForeignKey('statusi.status_id')) stoim = db.Column(db.Integer()) authors = db.relationship('Authors', secondary=association_table, back_populates='izds')
class Statusi(db.Model): __tablename__ = 'statusi' status_id = db.Column(db.Integer(), primary_key=True) status_name = db.Column(db.String(100)) izd = db.relationship('Izd', backref='status')
class Formats(db.Model): __tablename__ = 'formati' format_id = db.Column(db.Integer(), primary_key=True) format_name = db.Column(db.String(40)) izd = db.relationship('Izd', backref='format')
class TipiPerep(db.Model): __tablename__ = 'tipi_perep' perep_id = db.Column(db.Integer(), primary_key=True) perep_name = db.Column(db.String(100)) izd = db.relationship('Izd', backref='tip_perep')
class VidiIzd(db.Model): __tablename__ = 'vidi_izd' vid_id = db.Column(db.Integer(), primary_key=True) vid_name = db.Column(db.String(100)) izd = db.relationship('Izd', backref='vid_izd')