def do_upgrade():
    """Implement your upgrades here."""
    # add column "id" in the table
    op.add_column(
        'collection_field_fieldvalue',
        db.Column('id', db.MediumInteger(9, unsigned=True), nullable=False))

    # set all new ids
    records = run_sql("""SELECT id_collection, id_field, id_fieldvalue,
                      type, score, score_fieldvalue
                      FROM collection_field_fieldvalue AS cff
                      ORDER BY cff.id_collection, id_field, id_fieldvalue,
                      type, score, score_fieldvalue""")
    for index, rec in enumerate(records):
        sql = """UPDATE collection_field_fieldvalue
                 SET id = %%s
                 WHERE id_collection = %%s AND id_field = %%s
                 AND type = %%s AND score = %%s AND score_fieldvalue = %%s
                 AND id_fieldvalue %s
              """ % ('=%s' % (rec[2], ) if rec[2] is not None else 'is NULL', )
        run_sql(sql, (index + 1, rec[0], rec[1], rec[3], rec[4], rec[5]))

    # create new primary key with id
    op.create_primary_key('pk_collection_field_fieldvalue_id',
                          'collection_field_fieldvalue', ['id'])

    # set id as autoincrement
    op.alter_column('collection_field_fieldvalue',
                    'id',
                    existing_type=db.MediumInteger(9, unsigned=True),
                    existing_nullable=False,
                    autoincrement=True)
Beispiel #2
0
class IdxINDEXField(db.Model):
    """Represent a IdxINDEXField record."""

    __tablename__ = 'idxINDEX_field'
    id_idxINDEX = db.Column(db.MediumInteger(9, unsigned=True),
                            db.ForeignKey(IdxINDEX.id),
                            primary_key=True)
    id_field = db.Column(db.MediumInteger(9, unsigned=True),
                         db.ForeignKey(Field.id),
                         primary_key=True)
    regexp_punctuation = db.Column(db.String(255),
                                   nullable=False,
                                   server_default='[.,:;?!"]')
    regexp_alphanumeric_separators = db.Column(db.String(255),
                                               nullable=False)  # FIX ME ,
    # server_default='[!"#$\\%&''()*+,-./:;<=>?@[\\]^\\_`{|}~]')
    idxINDEX = db.relationship(IdxINDEX,
                               backref='fields',
                               lazy='joined',
                               innerjoin=True)
    field = db.relationship(Field,
                            backref='idxINDEXes',
                            lazy='joined',
                            innerjoin=True)

    @classmethod
    def get_field_tokenizers(cls):
        """Get field tokenizers."""
        return db.session.query(Field.name, IdxINDEX.tokenizer).all()
Beispiel #3
0
class KnwKBDDEF(db.Model):
    """Represent a KnwKBDDEF record."""

    __tablename__ = 'knwKBDDEF'
    id_knwKB = db.Column(db.MediumInteger(8, unsigned=True),
                         db.ForeignKey(KnwKB.id),
                         nullable=False,
                         primary_key=True)
    id_collection = db.Column(db.MediumInteger(unsigned=True),
                              db.ForeignKey(Collection.id),
                              nullable=True)
    output_tag = db.Column(db.Text, nullable=True)
    search_expression = db.Column(db.Text, nullable=True)
    kb = db.relationship(KnwKB,
                         backref=db.backref('kbdefs',
                                            uselist=False,
                                            cascade="all, delete-orphan"),
                         single_parent=True)
    collection = db.relationship(Collection, backref=db.backref('kbdefs'))

    def to_dict(self):
        """Return a dict representation of KnwKBDDEF."""
        return {
            'field': self.output_tag,
            'expression': self.search_expression,
            'coll_id': self.id_collection,
            'collection': self.collection.name if self.collection else None
        }
Beispiel #4
0
class BibdocBibdoc(db.Model):
    """Represent a BibdocBibdoc record."""

    __tablename__ = 'bibdoc_bibdoc'
    id = db.Column(db.MediumInteger(9, unsigned=True),
                   primary_key=True,
                   nullable=False,
                   autoincrement=True)
    id_bibdoc1 = db.Column(db.MediumInteger(9, unsigned=True),
                           db.ForeignKey(Bibdoc.id),
                           nullable=True)
    version1 = db.Column(db.TinyInteger(4, unsigned=True))
    format1 = db.Column(db.String(50))
    id_bibdoc2 = db.Column(db.MediumInteger(9, unsigned=True),
                           db.ForeignKey(Bibdoc.id),
                           nullable=True)
    version2 = db.Column(db.TinyInteger(4, unsigned=True))
    format2 = db.Column(db.String(50))
    rel_type = db.Column(db.String(255), nullable=True)
    bibdoc1 = db.relationship(Bibdoc,
                              backref='bibdoc2s',
                              primaryjoin=Bibdoc.id == id_bibdoc1)
    bibdoc2 = db.relationship(Bibdoc,
                              backref='bibdoc1s',
                              primaryjoin=Bibdoc.id == id_bibdoc2)
Beispiel #5
0
class FieldTag(db.Model):
    """Represent a FieldTag record."""
    __tablename__ = 'field_tag'
    id_field = db.Column(db.MediumInteger(9, unsigned=True),
                         db.ForeignKey('field.id'),
                         nullable=False,
                         primary_key=True)
    id_tag = db.Column(db.MediumInteger(9, unsigned=True),
                       db.ForeignKey('tag.id'),
                       nullable=False,
                       primary_key=True)
    score = db.Column(db.TinyInteger(4, unsigned=True),
                      nullable=False,
                      server_default='0')
    tag = db.relationship(Tag, backref='fields', order_by=score)
    field = db.relationship(Field, backref='tags', order_by=score)

    def __init__(self, score=None, tup=None, *args, **kwargs):
        if score is not None:
            self.score = score
        if tup is not None:
            self.tag = Tag(tup)
        super(FieldTag, self).__init__(*args, **kwargs)

    @property
    def as_tag(self):
        """ Returns Tag record directly."""
        return self.tag
Beispiel #6
0
class HstDOCUMENT(db.Model):
    """Represent a HstDOCUMENT record."""

    __tablename__ = 'hstDOCUMENT'
    id = db.Column(db.Integer(15, unsigned=True),
                   primary_key=True,
                   nullable=False,
                   autoincrement=True)
    id_bibdoc = db.Column(db.MediumInteger(9, unsigned=True),
                          db.ForeignKey(Bibdoc.id),
                          primary_key=True,
                          nullable=False,
                          autoincrement=False)
    docname = db.Column(db.String(250), nullable=False, index=True)
    docformat = db.Column(db.String(50), nullable=False, index=True)
    docversion = db.Column(db.TinyInteger(4, unsigned=True), nullable=False)
    docsize = db.Column(db.BigInteger(15, unsigned=True), nullable=False)
    docchecksum = db.Column(db.Char(32), nullable=False)
    doctimestamp = db.Column(db.DateTime, nullable=False, index=True)
    action = db.Column(db.String(50), nullable=False, index=True)
    job_id = db.Column(db.MediumInteger(15, unsigned=True),
                       nullable=True,
                       index=True)
    job_name = db.Column(db.String(255), nullable=True, index=True)
    job_person = db.Column(db.String(255), nullable=True, index=True)
    job_date = db.Column(db.DateTime, nullable=True, index=True)
    job_details = db.Column(db.iBinary, nullable=True)
Beispiel #7
0
class CollectionFieldFieldvalue(db.Model):
    """Represent a CollectionFieldFieldvalue record."""

    __tablename__ = 'collection_field_fieldvalue'
    id_collection = db.Column(db.MediumInteger(9, unsigned=True),
                              db.ForeignKey(Collection.id),
                              primary_key=True,
                              nullable=False)
    id_field = db.Column(db.MediumInteger(9, unsigned=True),
                         db.ForeignKey(Field.id),
                         primary_key=True,
                         nullable=False)
    id_fieldvalue = db.Column(db.MediumInteger(9, unsigned=True),
                              db.ForeignKey(Fieldvalue.id),
                              primary_key=True,
                              nullable=True)
    type = db.Column(db.Char(3), nullable=False, server_default='src')
    score = db.Column(db.TinyInteger(4, unsigned=True),
                      nullable=False,
                      server_default='0')
    score_fieldvalue = db.Column(db.TinyInteger(4, unsigned=True),
                                 nullable=False,
                                 server_default='0')

    collection = db.relationship(Collection,
                                 backref='field_fieldvalues',
                                 order_by=score)
    field = db.relationship(Field,
                            backref='collection_fieldvalues',
                            lazy='joined')
    fieldvalue = db.relationship(Fieldvalue,
                                 backref='collection_fields',
                                 lazy='joined')
Beispiel #8
0
def do_upgrade():
    """Implement your upgrades here."""
    # drop primary keys
    # (not necessary, because trick in invenio/base/scripts/database.py already
    # remove the primary key)
    # op.drop_constraint(None, 'collection_field_fieldvalue',
    #                    type_='primary')

    # add column "id" in the table
    op.add_column('collection_field_fieldvalue',
                  db.Column('id', db.MediumInteger(9, unsigned=True),
                            nullable=False))

    # set all new ids
    records = run_sql("""SELECT id_collection, id_field, type, score,
                      score_fieldvalue
                      FROM collection_field_fieldvalue AS cff
                      ORDER BY cff.id_collection, id_field, type, score,
                      score_fieldvalue""")
    for index, rec in enumerate(records):
        run_sql("""UPDATE collection_field_fieldvalue
                SET id = %s WHERE id_collection = %s AND id_field = %s
                AND type = %s AND score = %s AND score_fieldvalue = %s """,
                (index + 1, rec[0], rec[1], rec[2], rec[3], rec[4]))

    # create new primary key with id
    op.create_primary_key('pk_collection_field_fieldvalue_id',
                          'collection_field_fieldvalue', ['id'])

    # set id as autoincrement
    op.alter_column('collection_field_fieldvalue', 'id',
                    existing_type=db.MediumInteger(9, unsigned=True),
                    existing_nullable=False, autoincrement=True)
Beispiel #9
0
class CollectionCollection(db.Model):
    """Represent a CollectionCollection record."""

    __tablename__ = 'collection_collection'
    id_dad = db.Column(db.MediumInteger(9, unsigned=True),
                       db.ForeignKey(Collection.id),
                       primary_key=True)
    id_son = db.Column(db.MediumInteger(9, unsigned=True),
                       db.ForeignKey(Collection.id),
                       primary_key=True)
    type = db.Column(db.Char(1), nullable=False, server_default='r')
    score = db.Column(db.TinyInteger(4, unsigned=True),
                      nullable=False,
                      server_default='0')
    son = db.relationship(
        Collection,
        primaryjoin=id_son == Collection.id,
        backref='dads',
        # FIX
        # collection_class=db.attribute_mapped_collection('score'),
        order_by=db.asc(score))
    dad = db.relationship(Collection,
                          primaryjoin=id_dad == Collection.id,
                          backref='sons',
                          order_by=db.asc(score))
Beispiel #10
0
class OaiHARVESTLOG(db.Model):
    """Represents a OaiHARVESTLOG record."""

    __tablename__ = 'oaiHARVESTLOG'
    id_oaiHARVEST = db.Column(db.MediumInteger(9, unsigned=True),
                              db.ForeignKey(OaiHARVEST.id),
                              nullable=False)
    id_bibrec = db.Column(db.MediumInteger(8, unsigned=True),
                          db.ForeignKey(Bibrec.id),
                          nullable=False,
                          server_default='0')
    bibupload_task_id = db.Column(db.Integer(11),
                                  db.ForeignKey(SchTASK.id),
                                  nullable=False,
                                  server_default='0',
                                  primary_key=True)
    oai_id = db.Column(db.String(40),
                       nullable=False,
                       server_default='',
                       primary_key=True)
    date_harvested = db.Column(db.DateTime,
                               nullable=False,
                               server_default='1900-01-01 00:00:00',
                               primary_key=True)
    date_inserted = db.Column(db.DateTime,
                              nullable=False,
                              server_default='1900-01-01 00:00:00')
    inserted_to_db = db.Column(db.Char(1), nullable=False, server_default='P')
    bibrec = db.relationship(Bibrec, backref='harvestlogs')
    schtask = db.relationship(SchTASK)
Beispiel #11
0
class CollectionExternalcollection(db.Model):
    """Represent a CollectionExternalcollection record."""

    __tablename__ = 'collection_externalcollection'
    id_collection = db.Column(db.MediumInteger(9, unsigned=True),
                              db.ForeignKey(Collection.id),
                              primary_key=True,
                              server_default='0')
    id_externalcollection = db.Column(db.MediumInteger(9, unsigned=True),
                                      db.ForeignKey(Externalcollection.id),
                                      primary_key=True,
                                      server_default='0')
    type = db.Column(db.TinyInteger(4, unsigned=True),
                     server_default='0',
                     nullable=False)

    def _collection_type(type_):
        return db.relationship(
            Collection,
            primaryjoin=lambda: db.and_(
                CollectionExternalcollection.id_collection == Collection.id,
                CollectionExternalcollection.type == type_),
            backref='_externalcollections_{0}'.format(str(type_)))

    collection_0 = _collection_type(0)
    collection_1 = _collection_type(1)
    collection_2 = _collection_type(2)

    externalcollection = db.relationship(Externalcollection)
Beispiel #12
0
class RnkDOWNLOADS(db.Model):
    """Represent a RnkDOWNLOADS record."""

    __tablename__ = 'rnkDOWNLOADS'
    id = db.Column(db.Integer,
                   primary_key=True,
                   nullable=False,
                   autoincrement=True)
    id_bibrec = db.Column(db.MediumInteger(8, unsigned=True),
                          db.ForeignKey(Bibrec.id),
                          nullable=True)
    download_time = db.Column(db.DateTime,
                              nullable=True,
                              server_default='1900-01-01 00:00:00')
    client_host = db.Column(db.Integer(10, unsigned=True), nullable=True)
    id_user = db.Column(db.Integer(15, unsigned=True),
                        db.ForeignKey(User.id),
                        nullable=True)
    id_bibdoc = db.Column(db.MediumInteger(9, unsigned=True),
                          db.ForeignKey(Bibdoc.id),
                          nullable=True)
    file_version = db.Column(db.SmallInteger(2, unsigned=True), nullable=True)
    file_format = db.Column(db.String(50), nullable=True)
    bibrec = db.relationship(Bibrec, backref='downloads')
    bibdoc = db.relationship(Bibdoc, backref='downloads')
    user = db.relationship(User, backref='downloads')
Beispiel #13
0
class IdxINDEXIdxINDEX(db.Model):

    """Represent an IdxINDEXIdxINDEX record."""

    __tablename__ = 'idxINDEX_idxINDEX'
    id_virtual = db.Column(db.MediumInteger(9, unsigned=True),
                           db.ForeignKey(IdxINDEX.id), nullable=False,
                           server_default='0', primary_key=True)
    id_normal = db.Column(db.MediumInteger(9, unsigned=True),
                          db.ForeignKey(IdxINDEX.id), nullable=False,
                          server_default='0', primary_key=True)

    virtual = db.relationship(
        IdxINDEX,
        backref=db.backref('normal'),
        primaryjoin="and_(IdxINDEXIdxINDEX.id_virtual==IdxINDEX.id)"
    )

    normal = db.relationship(
        IdxINDEX,
        backref=db.backref('virtual'),
        primaryjoin="and_(IdxINDEXIdxINDEX.id_normal==IdxINDEX.id)"
    )

    @staticmethod
    def is_virtual(id_virtual):
        """Check if index is virtual."""
        return db.session.query(
            IdxINDEXIdxINDEX.query.filter_by(
                id_virtual=id_virtual).exists()).scalar()
Beispiel #14
0
class CollectionClsMETHOD(db.Model):
    """Represents a Collection_clsMETHOD record."""
    __tablename__ = 'collection_clsMETHOD'
    id_collection = db.Column(db.MediumInteger(9, unsigned=True),
                              db.ForeignKey(Collection.id),
                              primary_key=True,
                              nullable=False)
    id_clsMETHOD = db.Column(db.MediumInteger(9, unsigned=True),
                             db.ForeignKey(ClsMETHOD.id),
                             primary_key=True,
                             nullable=False)
    collection = db.relationship(Collection, backref='clsMETHODs')
    clsMETHOD = db.relationship(ClsMETHOD, backref='collections')
Beispiel #15
0
class CollectionExample(db.Model):

    """Represent a CollectionExample record."""

    __tablename__ = 'collection_example'
    id_collection = db.Column(db.MediumInteger(9, unsigned=True),
                              db.ForeignKey(Collection.id), primary_key=True)
    id_example = db.Column(db.MediumInteger(9, unsigned=True),
                           db.ForeignKey(Example.id), primary_key=True)
    score = db.Column(db.TinyInteger(4, unsigned=True), nullable=False,
                      server_default='0')
    collection = db.relationship(Collection, backref='_examples',
                                 order_by=score)
    example = db.relationship(Example, backref='collections', order_by=score)
Beispiel #16
0
class IdxQMixin(TableNameMixin):

    """Mixin for Idx(PAIR|PHRASE|WORD)01Q tables."""

    id = db.Column(db.MediumInteger(10, unsigned=True),
                   primary_key=True, autoincrement=True)
    runtime = db.Column(db.DateTime, nullable=False, index=True,
                        server_default='0001-01-01 00:00:00')
    id_bibrec_low = db.Column(db.MediumInteger(9, unsigned=True),
                              nullable=False)
    id_bibrec_high = db.Column(db.MediumInteger(9, unsigned=True),
                               nullable=False)
    index_name = db.Column(db.String(50), nullable=False, server_default='',
                           index=True)
    mode = db.Column(db.String(50), nullable=False, server_default='update')
Beispiel #17
0
class AccAuthorization(db.Model):
    """Represent an authorization."""

    __tablename__ = 'accROLE_accACTION_accARGUMENT'
    id = db.Column(db.Integer(15, unsigned=True),
                   primary_key=True,
                   autoincrement=True)
    id_accROLE = db.Column(db.Integer(15, unsigned=True),
                           db.ForeignKey(AccROLE.id),
                           nullable=True,
                           index=True)
    id_accACTION = db.Column(db.Integer(15, unsigned=True),
                             db.ForeignKey(AccACTION.id),
                             nullable=True,
                             index=True)
    _id_accARGUMENT = db.Column(db.Integer(15),
                                db.ForeignKey(AccARGUMENT.id),
                                nullable=True,
                                name="id_accARGUMENT",
                                index=True)
    argumentlistid = db.Column(db.MediumInteger(8), nullable=True)

    role = db.relationship(AccROLE, backref='authorizations')
    action = db.relationship(AccACTION, backref='authorizations')
    argument = db.relationship(AccARGUMENT, backref='authorizations')

    @db.hybrid_property
    def id_accARGUMENT(self):
        """get id_accARGUMENT."""
        return self._id_accARGUMENT

    @id_accARGUMENT.setter
    def id_accARGUMENT(self, value):
        """set id_accARGUMENT."""
        self._id_accARGUMENT = value or None
Beispiel #18
0
 def id_bibxxx(cls):
     return db.Column(db.MediumInteger(8, unsigned=True),
                      db.ForeignKey(cls._bibxxx.id),
                      nullable=False,
                      primary_key=True,
                      index=True,
                      server_default='0')
Beispiel #19
0
class JrnJOURNAL(db.Model):
    """Represents a JrnJOURNAL record."""
    __tablename__ = 'jrnJOURNAL'
    id = db.Column(db.MediumInteger(9, unsigned=True), nullable=False,
                primary_key=True, autoincrement=True)
    name = db.Column(db.String(50), nullable=False, unique=True,
                server_default='')
Beispiel #20
0
class Collectionname(db.Model):
    """Represent a Collectionname record."""

    __tablename__ = 'collectionname'

    id_collection = db.Column(db.MediumInteger(9, unsigned=True),
                              db.ForeignKey(Collection.id),
                              nullable=False,
                              primary_key=True)
    ln = db.Column(db.Char(5),
                   nullable=False,
                   primary_key=True,
                   server_default='')
    type = db.Column(db.Char(3),
                     nullable=False,
                     primary_key=True,
                     server_default='sn')
    value = db.Column(db.String(255), nullable=False)

    @db.hybrid_property
    def ln_type(self):
        """Get ln type."""
        return (self.ln, self.type)

    @ln_type.setter
    def set_ln_type(self, value):
        """Set ln type."""
        (self.ln, self.type) = value
Beispiel #21
0
class Collectionboxname(db.Model):
    """Represent a Collectionboxname record."""

    __tablename__ = 'collectionboxname'

    TYPES = {
        'v': 'Focus on:',
        'r': 'Narrow by collection:',
        'l': 'Latest additions:',
    }

    id_collection = db.Column(db.MediumInteger(9, unsigned=True),
                              db.ForeignKey(Collection.id),
                              nullable=False,
                              primary_key=True)
    ln = db.Column(db.Char(5),
                   nullable=False,
                   primary_key=True,
                   server_default='')
    type = db.Column(db.Char(3),
                     nullable=False,
                     primary_key=True,
                     server_default='r')
    value = db.Column(db.String(255), nullable=False)

    @db.hybrid_property
    def ln_type(self):
        return (self.ln, self.type)

    @ln_type.setter
    def set_ln_type(self, value):
        (self.ln, self.type) = value
Beispiel #22
0
class LnkENTRY(db.Model):
    """Represents a LnkENTRY record."""
    __tablename__ = 'lnkENTRY'

    id = db.Column(db.Integer(15, unsigned=True),
                   primary_key=True,
                   nullable=False)
    origin_url = db.Column(db.String(100), nullable=False)
    id_bibrec = db.Column(db.MediumInteger(8, unsigned=True),
                          db.ForeignKey(Bibrec.id),
                          nullable=False)
    additional_properties = db.Column(db.Binary)
    type = db.Column(db.String(30), nullable=False, index=True)
    status = db.Column(db.String(30),
                       nullable=False,
                       server_default='PENDING',
                       index=True)
    insert_time = db.Column(db.DateTime,
                            server_default='1900-01-01 00:00:00',
                            index=True)

    @property
    def title(self):
        try:
            return db.object_session(self).query(LnkENTRYURLTITLE).\
                filter(db.and_(
                    LnkENTRYURLTITLE.url==self.origin_url,
                    LnkENTRYURLTITLE.title<>"",
                    LnkENTRYURLTITLE.broken==0)).first().title
        except:
            return self.origin_url
def do_upgrade():
    """Carry out the upgrade."""
    op.alter_column(table_name='oaiHARVESTLOG',
                    column_name='bibupload_task_id',
                    type_=db.MediumInteger(15, unsigned=True),
                    existing_nullable=False,
                    existing_server_default='0')
Beispiel #24
0
class Bibdoc(db.Model):
    """Represent a Bibdoc record."""

    __tablename__ = 'bibdoc'
    id = db.Column(db.MediumInteger(9, unsigned=True),
                   primary_key=True,
                   nullable=False,
                   autoincrement=True)
    status = db.Column(db.Text, nullable=False)
    docname = db.Column(
        db.String(250),
        nullable=True,  # collation='utf8_bin'
        index=True)
    creation_date = db.Column(db.DateTime,
                              nullable=False,
                              server_default='1900-01-01 00:00:00',
                              index=True)
    modification_date = db.Column(db.DateTime,
                                  nullable=False,
                                  server_default='1900-01-01 00:00:00',
                                  index=True)
    text_extraction_date = db.Column(db.DateTime,
                                     nullable=False,
                                     server_default='1900-01-01 00:00:00')
    doctype = db.Column(db.String(255))
Beispiel #25
0
class AccAuthorization(db.Model):
    """Represent an authorization."""

    __tablename__ = 'accROLE_accACTION_accARGUMENT'
    id_accROLE = db.Column(db.Integer(15, unsigned=True),
                           db.ForeignKey(AccROLE.id),
                           nullable=True,
                           autoincrement=False,
                           primary_key=True,
                           index=True)
    id_accACTION = db.Column(db.Integer(15, unsigned=True),
                             db.ForeignKey(AccACTION.id),
                             nullable=True,
                             autoincrement=False,
                             primary_key=True,
                             index=True)
    id_accARGUMENT = db.Column(db.Integer(15),
                               db.ForeignKey(AccARGUMENT.id),
                               nullable=True,
                               primary_key=True,
                               autoincrement=False,
                               index=True)
    argumentlistid = db.Column(db.MediumInteger(8),
                               nullable=True,
                               autoincrement=False,
                               primary_key=True)

    role = db.relationship(AccROLE, backref='authorizations')
    action = db.relationship(AccACTION, backref='authorizations')
    argument = db.relationship(AccARGUMENT, backref='authorizations')
Beispiel #26
0
class BsrMETHODDATABUCKET(db.Model):

    """Represent a BsrMETHODDATABUCKET record."""

    __tablename__ = 'bsrMETHODDATABUCKET'

    id_bsrMETHOD = db.Column(db.MediumInteger(9, unsigned=True),
                             db.ForeignKey(BsrMETHOD.id), autoincrement=False,
                             primary_key=True, nullable=False)
    bucket_no = db.Column(db.TinyInteger(2), primary_key=True, nullable=False,
                          autoincrement=False)
    bucket_data = db.Column(db.LargeBinary)
    bucket_last_value = db.Column(db.String(255))
    last_updated = db.Column(db.DateTime)

    method = db.relationship(BsrMETHOD, backref=db.backref(
        "buckets",
        collection_class=attribute_mapped_collection("bucket_no"),
        cascade="all, delete-orphan"
        )
    )

    @property
    def data(self):
        """Return bucket data as intbitset."""
        return intbitset(self.bucket_data)
Beispiel #27
0
class CrcITEM(db.Model):
    """Represents a CrcITEM record."""
    def __init__(self):
        pass

    __tablename__ = 'crcITEM'
    barcode = db.Column(db.String(30),
                        nullable=False,
                        server_default='',
                        primary_key=True)
    id_bibrec = db.Column(db.MediumInteger(8, unsigned=True),
                          db.ForeignKey(Bibrec.id),
                          nullable=False,
                          server_default='0')
    id_crcLIBRARY = db.Column(db.Integer(15, unsigned=True),
                              db.ForeignKey(CrcLIBRARY.id),
                              nullable=False,
                              server_default='0')
    collection = db.Column(db.String(60), nullable=True)
    location = db.Column(db.String(60), nullable=True)
    description = db.Column(db.String(60), nullable=True)
    loan_period = db.Column(db.String(30), nullable=False, server_default='')
    status = db.Column(db.String(20), nullable=False, server_default='')
    expected_arrival_date = db.Column(db.String(60),
                                      nullable=False,
                                      server_default='')
    creation_date = db.Column(db.DateTime,
                              nullable=False,
                              server_default='1900-01-01 00:00:00')
    modification_date = db.Column(db.DateTime,
                                  nullable=False,
                                  server_default='1900-01-01 00:00:00')
    number_of_requests = db.Column(db.Integer(3, unsigned=True),
                                   nullable=False,
                                   server_default='0')
Beispiel #28
0
class Bibfmt(db.Model):
    """Represent a Bibfmt record."""

    __tablename__ = 'bibfmt'

    id_bibrec = db.Column(db.MediumInteger(8, unsigned=True),
                          db.ForeignKey(Bibrec.id),
                          nullable=False,
                          server_default='0',
                          primary_key=True,
                          autoincrement=False)

    format = db.Column(db.String(10),
                       nullable=False,
                       server_default='',
                       primary_key=True,
                       index=True)

    kind = db.Column(db.String(10),
                     nullable=False,
                     server_default='',
                     index=True)

    last_updated = db.Column(db.DateTime,
                             nullable=False,
                             server_default='1900-01-01 00:00:00',
                             index=True)

    value = db.Column(db.iLargeBinary)

    needs_2nd_pass = db.Column(db.TinyInteger(1), server_default='0')

    bibrec = db.relationship(Bibrec, backref='bibfmt')
Beispiel #29
0
class CmtNOTECOLLAPSED(db.Model):
    """Represents a CmtNOTECOLLAPSED record."""

    __tablename__ = 'cmtNOTECOLLAPSED'

    id = \
        db.Column(db.Integer(15, unsigned=True),
                  primary_key=True,
                  autoincrement=True,
                  nullable=False,
                  unique=True)

    id_bibrec = \
        db.Column(db.MediumInteger(8, unsigned=True),
                  db.ForeignKey(Bibrec.id),
                  primary_key=False,
                  nullable=False,
                  unique=False)

    # e.g., P1-F2 is the path for a note on Page 1, Figure 2
    path = \
        db.Column(db.Text,
                  primary_key=False,
                  nullable=False,
                  unique=False)

    id_user = \
        db.Column(db.Integer(15, unsigned=True),
                  db.ForeignKey(User.id),
                  primary_key=False,
                  nullable=False,
                  unique=False)
Beispiel #30
0
class CrcPURCHASE(db.Model):
    """Represents a CrcPURCHASE record."""
    def __init__(self):
        pass

    __tablename__ = 'crcPURCHASE'
    id = db.Column(db.Integer(15, unsigned=True),
                   nullable=False,
                   primary_key=True,
                   autoincrement=True)
    id_bibrec = db.Column(db.MediumInteger(8, unsigned=True),
                          db.ForeignKey(Bibrec.id),
                          nullable=False,
                          server_default='0')
    id_crcVENDOR = db.Column(db.Integer(15, unsigned=True),
                             db.ForeignKey(CrcVENDOR.id),
                             nullable=False,
                             server_default='0')
    ordered_date = db.Column(db.DateTime,
                             nullable=False,
                             server_default='1900-01-01 00:00:00')
    expected_date = db.Column(db.DateTime,
                              nullable=False,
                              server_default='1900-01-01 00:00:00')
    price = db.Column(db.String(20), nullable=False, server_default='0')
    status = db.Column(db.String(20), nullable=False, server_default='')
    notes = db.Column(db.Text, nullable=True)
    bibrec = db.relationship(Bibrec, backref='purchases')
    vendor = db.relationship(CrcVENDOR, backref='purchases')