コード例 #1
0
ファイル: models.py プロジェクト: imwm/mediapublic
class Recordings(Base, CreationMixin, TimeStampMixin):
    __tablename__ = 'recordings'

    id = Column(UUIDType(binary=False), primary_key=True)
    title = Column(UnicodeText, nullable=False)
    url = Column(UnicodeText, nullable=False)
    recorded_datetime = Column(DateTime, nullable=False)

    organization_id = Column(ForeignKey('organizations.id'))

    def to_dict(self):
        resp = super(Recordings, self).to_dict()
        resp.update(
            title=self.title,
            url=self.url,
            recorded_datetime=str(self.recorded_datetime),
            organization_id=self.organization_id,
        )
        return resp

    @classmethod
    def get_by_organization_id(cls, id):
        with transaction.manager:
            recordings = DBSession.query(
                Recordings,
            ).filter(
                Recordings.organization_id == id,
            ).all()
        return recordings
コード例 #2
0
class File(db.Model):
    """
    A File.
    """

    __tablename__ = 'files'
    file_location = db.Column(db.Text, unique=False, nullable=False,
                              primary_key=True)
    file_name = db.Column(db.Text, unique=False, nullable=False)
    file_id = db.Column(UUIDType(binary=False), primary_key=True)
    is_duplicate = db.Column(db.Boolean, default=False, nullable=False)
    is_ocrable = db.Column(db.Boolean, default=False, nullable=False)

    @property
    def serialize(self):
        """
        Transforms the object into a json object.
        This will be used at the front-end, so dont include
        sensitive information in the json object.
        """
        return {
            'file_location': self.file_location,
            'file_name': self.file_name,
            'is_duplicate': self.is_duplicate,
            'is_ocrable': self.is_ocrable
        }

    @property
    def checkValid(self):
        pass
コード例 #3
0
ファイル: models.py プロジェクト: imwm/mediapublic
class PlaylistAssignments(Base, CreationMixin, TimeStampMixin):
    __tablename__ = 'playlist_assignments'

    id = Column(UUIDType(binary=False), primary_key=True)
    playlist_id = Column(ForeignKey('playlists.id'))
    recording_id = Column(ForeignKey('recordings.id'), nullable=False)

    @classmethod
    def delete_by_playlist_id_and_recording_id(cls, pid, rid):
        success = False
        with transaction.manager:
            playlist = DBSession.query(
                PlaylistAssignments,
            ).filter(
                PlaylistAssignments.playlist_id == pid,
                PlaylistAssignments.recording_id == rid,
            ).first()
            if playlist is not None:
                DBSession.remove(playlist)
                transaction.commit()
                success = True
        return success

    def to_dict(self):
        resp = super(PlaylistAssignments, self).to_dict()
        resp.update(
            playlist_id=self.playlist_id,
            recording_id=self.recording_id,
        )
        return resp
コード例 #4
0
ファイル: models.py プロジェクト: imwm/mediapublic
class People(Base, CreationMixin, TimeStampMixin):
    __tablename__ = 'people'

    id = Column(UUIDType(binary=False), primary_key=True)
    first = Column(UnicodeText, nullable=False)
    last = Column(UnicodeText, nullable=False)
    address_0 = Column(UnicodeText, nullable=False)
    address_1 = Column(UnicodeText, nullable=False)
    city = Column(UnicodeText, nullable=False)
    state = Column(UnicodeText, nullable=False)
    zipcode = Column(UnicodeText, nullable=False)
    phone = Column(UnicodeText, nullable=False)
    fax = Column(UnicodeText, nullable=False)
    primary_website = Column(UnicodeText, nullable=False)
    secondary_website = Column(UnicodeText, nullable=False)

    # these should probably be brough out into a seperate table as
    # many to one so we don't have to keep adding columns ...
    twitter = Column(UnicodeText, nullable=False)
    facebook = Column(UnicodeText, nullable=False)
    instagram = Column(UnicodeText, nullable=False)
    periscope = Column(UnicodeText, nullable=False)

    user_id = Column(ForeignKey('users.id'), nullable=False)

    organization_id = Column(ForeignKey('organizations.id'), nullable=True)

    def to_dict(self):
        resp = super(People, self).to_dict()
        resp.update(
            first=self.first,
            address_0=self.address_0,
            address_1=self.address_1,
            city=self.city,
            state=self.state,
            zipcode=self.zipcode,
            phone=self.phone,
            fax=self.fax,
            primary_website=self.primary_website,
            secondary_website=self.secondary_website,

            # see note on definitions
            twitter=self.twitter,
            facebook=self.facebook,
            instagram=self.instagram,
            periscope=self.periscope,
            user_id=self.user_id,
            organization_id=self.organization_id,
        )
        return resp

    @classmethod
    def get_by_organization_id(cls, id):
        with transaction.manager:
            people = DBSession.query(
                People,
            ).filter(
                People.organization_id == id,
            ).all()
        return people
コード例 #5
0
ファイル: models.py プロジェクト: Sylver11/pasclepius
class User(UserMixin, db.Model):
    def __init__(self, id, first_name='', uuid='', practice_uuid='',
            practice_name='', practice_id='', practice_admin='', invoice_layout = '', namaf_profession = '', practice_role='', practice_folder_id='', active=True):
        self.uuid = uuid
        self.first_name = first_name
        self.practice_uuid = practice_uuid
        self.practice_name = practice_name
        self.practice_id = practice_id
        self.practice_admin = practice_admin
        self.invoice_layout = invoice_layout
        self.namaf_profession = namaf_profession
        self.practice_role = practice_role
        self.id = id
        self.practice_folder_id = practice_folder_id
        self.active = active

    __tablename__ = 'users'
    id = db.Column(db.Integer(), primary_key=True)
    uuid_bin =  db.Column(UUIDType(binary=False))
    uuid_text = db.Column(db.String(36), nullable=False)
    title = db.Column(db.String(255), nullable=True)
    first_name = db.Column(db.String(255), nullable=False)
    second_name = db.Column(db.String(255), nullable=False)
    email = db.Column(db.String(100), unique=True)
    current_practice_uuid = db.Column(db.String(36), nullable=True)
    current_practice_role = db.Column(db.DateTime, nullable=False)
    created_on = db.Column(db.DateTime(),default=datetime.utcnow)
    last_active = db.Column(db.DateTime(),default=datetime.utcnow,onupdate=datetime.utcnow)
コード例 #6
0
class Device(db.Model):

    __tablename__ = 'device'

    baked_query = db.bakery(lambda session: session.query(Device))

    uuid = db.Column(
        UUIDType(binary=True),
        nullable=False,
        primary_key=True,
        unique=True,
    )

    name = db.Column(db.String(128), nullable=False)

    registered_at = db.Column(ArrowType, default=arrow.utcnow)

    owner_id = db.Column(db.Integer,
                         db.ForeignKey('user.id', ondelete='CASCADE'),
                         nullable=False)

    device_logs = db.relationship(DeviceLog,
                                  backref='device',
                                  cascade='all, delete-orphan')

    device_tasks = db.relationship(DeviceTask,
                                   backref='device',
                                   cascade='all, delete-orphan')
コード例 #7
0
def upgrade():
    bind = op.get_bind()
    session = db.Session(bind=bind)

    for table_name, model in models.items():
        # this script adds missing uuid columns
        if has_uuid_column(table_name, bind):
            continue

        with op.batch_alter_table(table_name) as batch_op:
            batch_op.add_column(
                sa.Column(
                    "uuid",
                    UUIDType(binary=True),
                    primary_key=False,
                    default=uuid4,
                ), )
        add_uuids(model, table_name, session)

        # add uniqueness constraint
        with op.batch_alter_table(table_name) as batch_op:
            # batch mode is required for sqllite
            batch_op.create_unique_constraint(f"uq_{table_name}_uuid",
                                              ["uuid"])

    # add UUID to Dashboard.position_json; this function is idempotent
    # so we can call it for all objects
    slice_uuid_map = {
        slc.id: slc.uuid
        for slc in session.query(models["slices"]).options(
            load_only("id", "uuid")).all()
    }
    update_dashboards(session, slice_uuid_map)
コード例 #8
0
class CveTag(BaseModel):
    __tablename__ = "cves_tags"

    tags = db.Column(JSONB)

    # Relationships
    user_id = db.Column(UUIDType(binary=False), db.ForeignKey("users.id"))
    user = db.relationship("User", back_populates="cve_tags")

    cve_id = db.Column(UUIDType(binary=False), db.ForeignKey("cves.id"))

    # Index
    __table_args__ = (db.Index("ix_cves_tags", tags, postgresql_using="gin"), )

    def __repr__(self):
        return "<CveTag {}>".format(self.id)
コード例 #9
0
class FormInstance(db.Model):
    id = db.Column(UUIDType(binary=False),
                   primary_key=True,
                   default=generate_uuid)
    template = db.Column(
        EncryptedType(db.String, SECRET_KEY, AesEngine, 'pkcs5'))
    created_at = db.Column(db.DateTime)
コード例 #10
0
ファイル: tasks.py プロジェクト: yzdann/celery-director
class Task(BaseModel):
    __tablename__ = "tasks"

    key = db.Column(db.String(), nullable=False)
    status = db.Column(db.Enum(StatusType),
                       default=StatusType.pending,
                       nullable=False)
    previous = db.Column(JSONBType, default=[])

    # Relationship
    workflow_id = db.Column(UUIDType(binary=False),
                            db.ForeignKey("workflows.id"),
                            nullable=False)
    workflow = db.relationship("Workflow",
                               backref=db.backref("tasks", lazy=True))

    def __repr__(self):
        return f"<Task {self.key}>"

    def to_dict(self):
        d = super().to_dict()
        d.update({
            "key": self.key,
            "status": self.status.value,
            "task": self.id,
            "previous": self.previous,
        })
        return d
コード例 #11
0
class WorkingFile(db.Model, BaseMixin, SerializerMixin):
    """
    Describes the file related to the work done on a given task. It is
    used as source of output files published for a given entity.
    """
    shotgun_id = db.Column(db.Integer(), index=True)

    name = db.Column(db.String(250))
    description = db.Column(db.String(200))
    comment = db.Column(db.Text())
    revision = db.Column(db.Integer())
    size = db.Column(db.Integer())
    checksum = db.Column(db.Integer())
    path = db.Column(db.String(400))
    data = db.Column(JSONB)

    task_id = db.Column(
        UUIDType(binary=False),
        db.ForeignKey("task.id"),
        index=True
    )
    entity_id = db.Column(
        UUIDType(binary=False),
        db.ForeignKey("entity.id"),
        index=True
    )
    person_id = \
        db.Column(UUIDType(binary=False), db.ForeignKey("person.id"))
    software_id = \
        db.Column(UUIDType(binary=False), db.ForeignKey("software.id"))
    outputs = relationship(
        "OutputFile",
        back_populates="source_file"
    )

    __table_args__ = (
        db.UniqueConstraint(
            "name",
            "task_id",
            "entity_id",
            "revision",
            name="working_file_uc"
        ),
    )

    def __repr__(self):
        return "<WorkingFile %s>" % self.id
コード例 #12
0
ファイル: label_event.py プロジェクト: hananather/ml-annotate
class LabelEvent(db.Model):
    __tablename__ = 'label_event'

    id = db.Column(
        UUIDType(binary=False),
        server_default=db.func.uuid_generate_v4(),
        primary_key=True
    )

    data_id = db.Column(
        UUIDType(binary=False),
        db.ForeignKey(Dataset.id, ondelete='CASCADE'),
        nullable=False,
        index=True,
    )

    data = db.relationship(Dataset, backref='label_events')

    label_id = db.Column(
        UUIDType(binary=False),
        db.ForeignKey('problem_label.id', ondelete='CASCADE'),
        nullable=False,
        index=True,
    )

    label = db.relationship(
        'ProblemLabel'
    )

    label_matches = db.Column(
        db.Boolean(),
        nullable=True
    )

    created_at = db.Column(
        db.DateTime,
        server_default=db.func.now(),
        nullable=False
    )

    created_by = db.Column(
        db.Unicode(255),
        nullable=False,
    )
    
    def __repr__(self):
        return '<LabelEvent label=%r>' % self.label
コード例 #13
0
class Dispatchers(Base, CreationMixin, TimeStampMixin):

    __tablename__ = 'dispatchers'
    scraper_id = Column(
        UUIDType(binary=False),
        ForeignKey('scrapers.id'),
        nullable=False,
    )
    current_job_id = Column(
        UUIDType(binary=False),
        ForeignKey('jobs.id'),
        nullable=True,
    )
    last_callin_datetime = Column(DateTime, nullable=True)
    up_time = Column(Integer, nullable=False)
    idle = Column(Boolean, nullable=False)
    dispatch_count = Column(Integer, nullable=False)
    workers = relationship('Workers', backref='dispatcher', lazy='joined')

    @classmethod
    def update_status(self,
                      dispatcher_id,
                      last_callin_datetime,
                      up_time,
                      idle=True):
        with transaction.manager:
            dispatcher = DBSession.query(Dispatchers, ).filter(
                Dispatchers.id == dispatcher_id, ).first()
            if dispatcher is not None:
                dispatcher.last_callin_datetime = last_callin_datetime
                dispatcher.up_time = up_time
                dispatcher.idle = idle
                transaction.commit()
        return dispatcher

    def to_dict(self):
        resp = super(Dispatchers, self).to_dict()
        current_job = None
        if self.current_job:
            current_job = self.current_job.to_dict()
        current_job_run = None
        resp.update(
            scraper=self.scraper.to_dict(),
            wrokers=[w.to_dict() for w in self.workers],
            current_job=current_job,
        )
        return resp
コード例 #14
0
ファイル: model.py プロジェクト: cosmic-byte/feature-request
class Feature(db.Model):
    """Model for tracking feature requests."""
    __tablename__ = "home_feature"

    REQUEST_STATUS_PENDING = 0
    REQUEST_STATUS_APPROVED = 1
    REQUEST_STATUS_REJECTED = 2
    REQUEST_STATUS_ONGOING = 3
    REQUEST_STATUS_RESCHEDULED = 4
    REQUEST_STATUS_COMPLETED = 5

    REQUEST_STATUS = ((REQUEST_STATUS_PENDING,
                       'Pending'), (REQUEST_STATUS_APPROVED, 'Approved'),
                      (REQUEST_STATUS_REJECTED,
                       'Rejected'), (REQUEST_STATUS_ONGOING, 'Ongoing'),
                      (REQUEST_STATUS_RESCHEDULED,
                       'Rescheduled'), (REQUEST_STATUS_COMPLETED, 'Completed'))

    PRODUCT_AREA_POLICIES = 0
    PRODUCT_AREA_BILLING = 1
    PRODUCT_AREA_CLAIMS = 2
    PRODUCT_AREA_REPORTS = 3

    PRODUCT_AREAS = ((PRODUCT_AREA_POLICIES,
                      'Policies'), (PRODUCT_AREA_BILLING, 'Billing'),
                     (PRODUCT_AREA_CLAIMS, 'Claims'), (PRODUCT_AREA_REPORTS,
                                                       'Reports'))

    id = db.Column(UUIDType(binary=False),
                   primary_key=True,
                   unique=True,
                   default=uuid.uuid4)
    title = db.Column(db.String(200), nullable=False)
    description = db.Column(db.Text(), nullable=False)
    client = db.Column(db.ForeignKey('home_client.id'), nullable=False)
    client_priority = db.Column(db.Integer, nullable=False)
    target_date = db.Column(db.Date, nullable=False)
    product_area = db.Column(ChoiceType(PRODUCT_AREAS, impl=db.Integer()),
                             default=PRODUCT_AREA_POLICIES)
    requested_by = db.Column(db.ForeignKey('auth_user.id'), nullable=False)
    request_status = db.Column(ChoiceType(REQUEST_STATUS, impl=db.Integer()),
                               default=REQUEST_STATUS_PENDING)
    date_added = db.Column(db.DateTime,
                           nullable=False,
                           default=datetime.utcnow)
    deleted = db.Column(db.Boolean, nullable=False, default=False)

    def __repr__(self):
        return "{}_{}".format(self.shortened_title, self.shortened_id)

    @property
    def shortened_title(self):
        """Get shortened version title."""
        return str(self.title)[:20]

    @property
    def shortened_id(self):
        """Get shortened version of id."""
        return str(self.id)[-8:]
コード例 #15
0
class Site(db.Model, Timestamp):
    id = db.Column(db.Integer, primary_key=True)
    uuid = db.Column(UUIDType(binary=False),
                     default=uuid.uuid4,
                     nullable=False)

    url = db.Column(db.String(120), unique=True, nullable=False)
    origins = db.Column(ScalarListType())
def upgrade():
    """Upgrade database."""
    op.create_table(
        'rdm_parents_community',
        sa.Column(
            'community_id',
            UUIDType(),
            nullable=False
        ),
        sa.Column(
            'record_id',
            UUIDType(),
            nullable=False
        ),
        sa.Column(
            'request_id',
            UUIDType(),
            nullable=True
        ),
        sa.ForeignKeyConstraint(
            ['community_id'],
            ['communities_metadata.id'],
            name=op.f(
                'fk_rdm_parents_community_community_id_communities_metadata'),
            ondelete='CASCADE'
        ),
        sa.ForeignKeyConstraint(
            ['record_id'],
            ['rdm_parents_metadata.id'],
            name=op.f(
                'fk_rdm_parents_community_record_id_rdm_parents_metadata'),
            ondelete='CASCADE'
        ),
        sa.ForeignKeyConstraint(
            ['request_id'],
            ['request_metadata.id'],
            name=op.f(
                'fk_rdm_parents_community_request_id_request_metadata'),
            ondelete='SET NULL'
        ),
        sa.PrimaryKeyConstraint(
            'community_id',
            'record_id',
            name=op.f('pk_rdm_parents_community')
        )
    )
コード例 #17
0
ファイル: mixins.py プロジェクト: ismewen/aggregation
class TransactionRecord(db.Model):
    __table__ = "transaction_record"
    id = db.Column(db.Integer, primary_key=True)
    transaction_id = db.Column(UUIDType(), db.ForeignKey("transaction.id"))
    field = db.Column(db.String(32), doc=_("Field"))
    before = db.Column(db.PickleType, doc=_('Original Value'))
    after = db.Column(db.PickleType, doc=_('New Value'))
    transactions = db.relationship(Transaction, )
コード例 #18
0
class User(CreatedAtMixin, UpdatedAtMixin, Base):
    id = Column(UUIDType(), default=uuid.uuid4, primary_key=True)
    name = Column(String(50), nullable=False)

    __tablename__ = 'users'

    def __repr__(self):
        return "<User(id='%s', name='%s')>" % (self.id, self.name)
コード例 #19
0
ファイル: models.py プロジェクト: Emilabbas679/flo-admin
class OrderPayment(Model):
    __tablename__ = 'order_payments'

    order_id = Column(UUIDType(binary=False),
                      ForeignKey('order.id'),
                      nullable=False)
    payment_details = Column(JSONB)
    status = Column(order_payment_status)
コード例 #20
0
ファイル: models.py プロジェクト: Emilabbas679/flo-admin
class DriverDeposit(Model):
    __tablename__ = "driver_deposit"

    driver_id = Column(UUIDType(binary=False), ForeignKey('drivers.id'))
    amount = Column(Float(10))

    def __repr__(self):
        return f'DriverDeposit: {self.id}'
コード例 #21
0
class UserAppData(db.Model):
    '''
    the user app data model tracks the version of the app installed @ the client
    '''
    user_id = db.Column('user_id', UUIDType(binary=False), db.ForeignKey("user.user_id"), primary_key=True, nullable=False)
    app_ver = db.Column(db.String(40), primary_key=False, nullable=False)
    update_at = db.Column(db.DateTime(timezone=False), server_default=db.func.now(), onupdate=db.func.now())
    completed_tasks = db.Column(db.JSON)
コード例 #22
0
class UserTaskResults(db.Model):
    '''
    the user task results
    '''
    user_id = db.Column('user_id', UUIDType(binary=False), db.ForeignKey("user.user_id"), primary_key=True, nullable=False)
    task_id = db.Column(db.String(40), nullable=False, primary_key=True)
    results = db.Column(db.JSON)
    update_at = db.Column(db.DateTime(timezone=False), server_default=db.func.now(), onupdate=db.func.now())
コード例 #23
0
class User(db.Model):
    __tablename__ = "users"

    id = db.Column('id', UUIDType(binary=False), primary_key=True)
    username = db.Column('username', db.Unicode, unique=True)
    password = db.Column('password', db.Unicode)
    first_name = db.Column('first_name', db.Unicode)
    last_name = db.Column('last_name', db.Unicode)
コード例 #24
0
class AuthApi(db.Model, AuditEntity):
    __tablename__ = 'xf_auth_api'

    internal = db.Column(UUIDType(binary=False),
                         primary_key=True,
                         default=uuid.uuid4)
    client_secret = db.Column(db.String(), nullable=False, unique=True)
    api_key = db.Column(db.String(), nullable=False, unique=True)
コード例 #25
0
        class ProjectionRecord(Base):
            __tablename__ = "projections"

            # Projection ID.
            projection_id = Column(UUIDType(), primary_key=True)

            # State of the projection (serialized dict, possibly encrypted).
            state = Column(Text())
コード例 #26
0
class PublicationImage(db.Model):  # type: ignore
    """Images for publications."""

    id = db.Column(UUIDType(binary=False), primary_key=True, default=uuid4)
    url = db.Column(db.String, nullable=False)
    publication_id = db.Column(db.Integer,
                               db.ForeignKey('publication.id'),
                               nullable=False)
コード例 #27
0
ファイル: guest.py プロジェクト: J4LP/mumble
class GuestUser(db.Model):
    id = db.Column(UUIDType(binary=False),
                   default=uuid.uuid4,
                   primary_key=True)
    password = db.Column(PasswordType(schemes=['bcrypt']), nullable=False)
    name = db.Column(db.String, nullable=False)
    corporation_id = db.Column(db.Integer, nullable=True)
    corporation = db.Column(db.String, nullable=True)
    alliance_id = db.Column(db.Integer, nullable=True)
    alliance = db.Column(db.String, nullable=True)
    guest_pass_id = db.Column(UUIDType(binary=False),
                              db.ForeignKey('guest_pass.id'))
    banned = db.Column(db.Boolean, default=False)
    last_ip = db.Column(IPAddressType, default=u'127.0.0.1')
    last_login_on = db.Column(ArrowType, default=arrow.utcnow)
    created_on = db.Column(ArrowType, default=arrow.utcnow, nullable=False)
    updated_on = db.Column(ArrowType, default=arrow.utcnow, nullable=False)
コード例 #28
0
class Gym(Base):
    __tablename__ = 'gym'

    id = Column(UUIDType(binary=False), primary_key=True, default=uuid.uuid4)
    name = Column(String(100))
    city = Column(String(100))
    MAC_address = Column(String(17), unique=True)
    spotify_playlist_id = Column(String(50))
コード例 #29
0
class MalwareMeta(Base):
    __tablename__ = 'malpedia_malware_meta'

    uuid = Column(UUIDType(), primary_key=True, index=True)
    name = Column(Text, index=True)
    commonname = Column(Text)
    description = Column(Text)
    updated = Column(Text)
コード例 #30
0
ファイル: models.py プロジェクト: data4society/mpro-rp
class Reference(Base):
    """symbol coordinates of spans linked with entity class and, possible, entity"""
    __tablename__ = 'references'

    reference_id = Column(UUIDType(binary=False), server_default=text("uuid_generate_v4()"), primary_key=True)
    markup = Column(UUIDType(binary=False), ForeignKey('markups.markup_id'))
    markup_rel = relationship(Markup)
    # class of ontology
    entity_class = Column(String(40))
    # example of class of ontology
    entity = Column(UUIDType(binary=False), ForeignKey('entities.entity_id'))
    # symbol coordinates
    start_offset = Column(Integer())
    end_offset = Column(Integer())
    length_offset = Column(Integer())
    # outer id (for example - in Open Corpora)
    outer_id = Column(Integer())