Beispiel #1
0
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')
Beispiel #2
0
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")
Beispiel #3
0
class Worklog(db.Model):
    __tablename__ = 'jira_work_stat'
    id = Column(db.Integer, primary_key=True)
    project_id = db.Column(db.Integer, db.ForeignKey('jira_projects.id'), nullable=False)
    sprint_id = db.Column(db.Integer, db.ForeignKey('jira_velocity.sprint_id'), nullable=False)
    completed_worklog = Column(db.INTEGER, nullable=True)
    not_completed_worklog = Column(db.INTEGER, nullable=True)
    dev_count = Column(db.INTEGER, nullable=True)
    created_at = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)

    @staticmethod
    def create_new_worklog(data):
        exists = db.session.query(Worklog.sprint_id).filter_by(sprint_id=data['sprint_id']).scalar() is not None
        if not exists:
            worklog = Worklog(**data)
            db.session.add(worklog)
            logging.info('Create a new worklog data for sprint: ' + str(worklog.sprint_id))
            db.session.commit()
        else:
            logging.info('Nothing changed')
Beispiel #4
0
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')
Beispiel #5
0
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')
Beispiel #6
0
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')
Beispiel #7
0
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')
Beispiel #8
0
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')
Beispiel #9
0
from appvars import db


association_table = db.Table('association',
                             db.Column('author_id', db.Integer, db.ForeignKey('authors.author_id')),
                             db.Column('nom_zak', db.Integer, db.ForeignKey('izd.Nom_zak')))


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 Authors(db.Model):
    def __repr__(self):
        return f'{self.author_id}|{self.author_name}'