import datetime as dt import json from enum import Enum from sqlalchemy import Boolean, Column, DateTime from sqlalchemy import Enum as SqlEnum from sqlalchemy import ForeignKey, Integer, UnicodeText, func from sqlalchemy.ext.hybrid import hybrid_method, hybrid_property from sqlalchemy.orm import relationship from megaqc.database import CRUDMixin from megaqc.extensions import db user_plotconfig_map = db.Table( "user_plotconfig_map", db.Column("user_id", Integer, db.ForeignKey("users.user_id")), db.Column("plot_config_id", Integer, db.ForeignKey("plot_config.config_id")), ) user_sampletype_map = db.Table( "user_sampletype_map", db.Column("user_id", Integer, db.ForeignKey("users.user_id")), db.Column( "sample_data_type_id", Integer, db.ForeignKey("sample_data_type.sample_data_type_id"), ), ) class Report(db.Model, CRUDMixin):
# -*- coding: utf-8 -*- import datetime as dt from sqlalchemy.orm import relationship from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Table, ForeignKey, Column, Boolean, Integer, Float, String, TIMESTAMP, Binary, DateTime, func from megaqc.database import CRUDMixin from megaqc.extensions import db user_plotconfig_map = db.Table('user_plotconfig_map', db.Column('user_id', Integer, db.ForeignKey('users.user_id')), db.Column('plot_config_id', Integer, db.ForeignKey('plot_config.config_id')) ) class Report(db.Model, CRUDMixin): """a MultiQC report""" __tablename__ = 'report' report_id = Column(Integer, primary_key=True) report_hash = Column(String) created_at = Column(DateTime, nullable=False, default=dt.datetime.utcnow) user_id = Column(Integer, ForeignKey('users.user_id')) @staticmethod def get_next_id(): return (db.session.query(func.max(Report.report_id)).first()[0] or 0) + 1 def __init__(self, **kwargs): """Create instance."""
# -*- coding: utf-8 -*- import datetime as dt from sqlalchemy.orm import relationship from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Table, ForeignKey, Column, Boolean, Integer, Float, String, TIMESTAMP, Binary, DateTime, func from megaqc.database import CRUDMixin from megaqc.extensions import db user_plotconfig_map = db.Table('user_plotconfig_map', db.Column('user_id', Integer, db.ForeignKey('users.user_id')), db.Column('plot_config_id', Integer, db.ForeignKey('plot_config.config_id')) ) user_sampletype_map = db.Table('user_sampletype_map', db.Column('user_id', Integer, db.ForeignKey('users.user_id')), db.Column('sample_data_type_id', Integer, db.ForeignKey('sample_data_type.sample_data_type_id')) ) class Report(db.Model, CRUDMixin): """a MultiQC report""" __tablename__ = 'report' report_id = Column(Integer, primary_key=True) report_hash = Column(String) created_at = Column(DateTime, nullable=False, default=dt.datetime.utcnow) user_id = Column(Integer, ForeignKey('users.user_id')) @staticmethod