From 3880f2e336105a43444217ffa5c897f04cac7305 Mon Sep 17 00:00:00 2001 From: Jiri Kuncar Date: Wed, 18 Jan 2012 14:52:34 +0100 Subject: [PATCH] SQLAlchemy: initial commit * Ands and reworks models and uses db namespace. --- configure.ac | 16 +- modules/bibauthorid/lib/Makefile.am | 1 + modules/bibauthorid/lib/bibauthorid_model.py | 221 ++ modules/bibcirculation/lib/Makefile.am | 1 + .../lib/bibcirculation_model.py | 260 ++ modules/bibclassify/lib/Makefile.am | 1 + modules/bibclassify/lib/bibclassify_model.py | 48 + modules/bibedit/lib/Makefile.am | 1 + modules/bibedit/lib/bibedit_model.py | 3279 +++++++++++++++++ modules/bibexport/lib/Makefile.am | 1 + modules/bibexport/lib/bibexport_model.py | 157 + modules/bibindex/lib/Makefile.am | 1 + modules/bibindex/lib/bibindex_model.py | 1489 ++++++++ modules/bibknowledge/lib/Makefile.am | 1 + .../bibknowledge/lib/bibknowledge_model.py | 75 + modules/bibrank/lib/Makefile.am | 1 + modules/bibrank/lib/bibrank_model.py | 174 + modules/bibsched/lib/Makefile.am | 1 + modules/bibsched/lib/bibsched_model.py | 70 + modules/bibsword/lib/Makefile.am | 1 + modules/bibsword/lib/bibsword_model.py | 93 + modules/bibupload/lib/Makefile.am | 1 + modules/bibupload/lib/bibupload_model.py | 49 + modules/miscutil/lib/Makefile.am | 4 + modules/miscutil/lib/errorlib_model.py | 51 + modules/miscutil/lib/miscutil_model.py | 48 + modules/miscutil/lib/sqlalchemyutils.py | 193 + modules/miscutil/lib/sqlalchemyutils_mysql.py | 171 + modules/oaiharvest/lib/Makefile.am | 1 + modules/oaiharvest/lib/oai_harvest_model.py | 114 + modules/refextract/lib/Makefile.am | 1 + modules/refextract/lib/refextract_model.py | 41 + modules/webaccess/lib/Makefile.am | 1 + modules/webaccess/lib/webaccess_model.py | 126 + modules/webalert/lib/Makefile.am | 1 + modules/webalert/lib/webalert_model.py | 63 + modules/webbasket/lib/Makefile.am | 1 + modules/webbasket/lib/webbasket_model.py | 173 + modules/webcomment/lib/Makefile.am | 1 + modules/webcomment/lib/webcomment_model.py | 116 + modules/webjournal/lib/Makefile.am | 1 + modules/webjournal/lib/webjournal_model.py | 61 + modules/webmessage/etc/templates/Makefile.am | 5 +- .../templates/webmessage_confirm_delete.html | 42 + .../etc/templates/webmessage_display.html | 23 +- .../etc/templates/webmessage_display_msg.html | 91 + .../etc/templates/webmessage_write.html | 45 +- modules/webmessage/lib/Makefile.am | 2 + .../webmessage/lib/webmessage_blueprint.py | 131 +- modules/webmessage/lib/webmessage_model.py | 80 + modules/webmessage/lib/webmessage_query.py | 569 +++ modules/websearch/lib/Makefile.am | 1 + modules/websearch/lib/websearch_model.py | 462 +++ modules/websession/lib/Makefile.am | 1 + modules/websession/lib/websession_model.py | 103 + modules/webstat/lib/Makefile.am | 1 + modules/webstat/lib/webstat_model.py | 45 + modules/websubmit/lib/Makefile.am | 1 + modules/websubmit/lib/websubmit_model.py | 465 +++ 59 files changed, 9116 insertions(+), 61 deletions(-) create mode 100644 modules/bibauthorid/lib/bibauthorid_model.py create mode 100644 modules/bibcirculation/lib/bibcirculation_model.py create mode 100644 modules/bibclassify/lib/bibclassify_model.py create mode 100644 modules/bibedit/lib/bibedit_model.py create mode 100644 modules/bibexport/lib/bibexport_model.py create mode 100644 modules/bibindex/lib/bibindex_model.py create mode 100644 modules/bibknowledge/lib/bibknowledge_model.py create mode 100644 modules/bibrank/lib/bibrank_model.py create mode 100644 modules/bibsched/lib/bibsched_model.py create mode 100644 modules/bibsword/lib/bibsword_model.py create mode 100644 modules/bibupload/lib/bibupload_model.py create mode 100644 modules/miscutil/lib/errorlib_model.py create mode 100644 modules/miscutil/lib/miscutil_model.py create mode 100644 modules/miscutil/lib/sqlalchemyutils.py create mode 100644 modules/miscutil/lib/sqlalchemyutils_mysql.py create mode 100644 modules/oaiharvest/lib/oai_harvest_model.py create mode 100644 modules/refextract/lib/refextract_model.py create mode 100644 modules/webaccess/lib/webaccess_model.py create mode 100644 modules/webalert/lib/webalert_model.py create mode 100644 modules/webbasket/lib/webbasket_model.py create mode 100644 modules/webcomment/lib/webcomment_model.py create mode 100644 modules/webjournal/lib/webjournal_model.py create mode 100644 modules/webmessage/etc/templates/webmessage_confirm_delete.html create mode 100644 modules/webmessage/etc/templates/webmessage_display_msg.html create mode 100644 modules/webmessage/lib/webmessage_model.py create mode 100644 modules/webmessage/lib/webmessage_query.py create mode 100644 modules/websearch/lib/websearch_model.py create mode 100644 modules/websession/lib/websession_model.py create mode 100644 modules/webstat/lib/webstat_model.py create mode 100644 modules/websubmit/lib/websubmit_model.py diff --git a/configure.ac b/configure.ac index ef5019b997..90144f7b2a 100644 --- a/configure.ac +++ b/configure.ac @@ -20,9 +20,7 @@ ## script. ## Initialize autoconf and automake: -AC_INIT([invenio], - m4_esyscmd([./git-version-gen .tarball-version]), - [info@invenio-software.org]) +AC_INIT([invenio],[m4_esyscmd(./git-version-gen .tarball-version)],[info@invenio-software.org]) AM_INIT_AUTOMAKE([tar-ustar]) ## By default we shall install into /opt/invenio. (Do not use @@ -42,7 +40,7 @@ AM_GNU_GETTEXT_VERSION(0.14.4) ## Check for MySQL client: AC_MSG_CHECKING(for mysql) -AC_ARG_WITH(mysql, AC_HELP_STRING([--with-mysql], [path to a specific MySQL binary (optional)]), MYSQL=${withval}) +AC_ARG_WITH(mysql, AS_HELP_STRING([--with-mysql],[path to a specific MySQL binary (optional)]), MYSQL=${withval}) if test -n "$MYSQL"; then AC_MSG_RESULT($MYSQL) else @@ -57,7 +55,7 @@ fi ## Check for Python: AC_MSG_CHECKING(for python) -AC_ARG_WITH(python, AC_HELP_STRING([--with-python], [path to a specific Python binary (optional)]), PYTHON=${withval}) +AC_ARG_WITH(python, AS_HELP_STRING([--with-python],[path to a specific Python binary (optional)]), PYTHON=${withval}) if test -n "$PYTHON"; then AC_MSG_RESULT($PYTHON) else @@ -72,7 +70,7 @@ fi ## Check for OpenOffice.org Python binary: AC_MSG_CHECKING(for OpenOffice.org Python binary) -AC_ARG_WITH(openoffice-python, AC_HELP_STRING([--with-openoffice-python], [path to a specific OpenOffice.org Python binary (optional)]), OPENOFFICE_PYTHON=`which ${withval}`) +AC_ARG_WITH(openoffice-python, AS_HELP_STRING([--with-openoffice-python],[path to a specific OpenOffice.org Python binary (optional)]), OPENOFFICE_PYTHON=`which ${withval}`) if test -z "$OPENOFFICE_PYTHON"; then OPENOFFICE_PYTHON=`locate -l 1 -r "o.*office/program/python$"` @@ -415,7 +413,7 @@ fi ## Check for CLISP: AC_MSG_CHECKING(for clisp) -AC_ARG_WITH(clisp, AC_HELP_STRING([--with-clisp], [path to a specific CLISP binary (optional)]), CLISP=${withval}) +AC_ARG_WITH(clisp, AS_HELP_STRING([--with-clisp],[path to a specific CLISP binary (optional)]), CLISP=${withval}) if test -n "$CLISP"; then AC_MSG_RESULT($CLISP) else @@ -434,7 +432,7 @@ fi ## Check for CMUCL: AC_MSG_CHECKING(for cmucl) -AC_ARG_WITH(cmucl, AC_HELP_STRING([--with-cmucl], [path to a specific CMUCL binary (optional)]), CMUCL=${withval}) +AC_ARG_WITH(cmucl, AS_HELP_STRING([--with-cmucl],[path to a specific CMUCL binary (optional)]), CMUCL=${withval}) if test -n "$CMUCL"; then AC_MSG_RESULT($CMUCL) else @@ -457,7 +455,7 @@ fi ## Check for SBCL: AC_MSG_CHECKING(for sbcl) -AC_ARG_WITH(sbcl, AC_HELP_STRING([--with-sbcl], [path to a specific SBCL binary (optional)]), SBCL=${withval}) +AC_ARG_WITH(sbcl, AS_HELP_STRING([--with-sbcl],[path to a specific SBCL binary (optional)]), SBCL=${withval}) if test -n "$SBCL"; then AC_MSG_RESULT($SBCL) else diff --git a/modules/bibauthorid/lib/Makefile.am b/modules/bibauthorid/lib/Makefile.am index 3bf23836ac..5317566910 100644 --- a/modules/bibauthorid/lib/Makefile.am +++ b/modules/bibauthorid/lib/Makefile.am @@ -42,6 +42,7 @@ pylib_DATA = \ bibauthorid_general_utils.py \ bibauthorid_name_utils.py \ bibauthorid_recipes.py \ + bibauthorid_model.py \ bibauthorid_templates.py \ bibauthorid_wedge.py \ bibauthorid_webauthorprofileinterface.py diff --git a/modules/bibauthorid/lib/bibauthorid_model.py b/modules/bibauthorid/lib/bibauthorid_model.py new file mode 100644 index 0000000000..d787e19263 --- /dev/null +++ b/modules/bibauthorid/lib/bibauthorid_model.py @@ -0,0 +1,221 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +bibauthorid database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +#FIX ME Add db.relationships + +class AidAUTHORNAMES(db.Model): + """Represents a AidAUTHORNAMES record.""" + def __init__(self): + pass + __tablename__ = 'aidAUTHORNAMES' + __table_args__ = {'useexisting':True}#, 'extend_existing': True} + id = db.Column(db.BigInteger(15), nullable=False, + primary_key=True, + autoincrement=True) + Name = db.Column(db.String(255), nullable=False, + index=True) + bibrefs = db.Column(db.String(200), nullable=False, + index=True) + db_name = db.Column(db.String(255), nullable=True, + index=True) + +class AidAUTHORNAMESBIBREFS(db.Model): + """Represents a AidAUTHORNAMESBIBREFS record.""" + def __init__(self): + pass + __tablename__ = 'aidAUTHORNAMESBIBREFS' + id = db.Column(db.BigInteger(15), nullable=False, + primary_key=True, + autoincrement=True) + Name_id = db.Column(db.BigInteger(15), nullable=False, + index=True) + bibref = db.Column(db.String(200), nullable=False, + index=True) + +class AidCACHE(db.Model): + """Represents a AidCACHE record.""" + def __init__(self): + pass + __tablename__ = 'aidCACHE' + id = db.Column(db.Integer(15), nullable=False, + primary_key=True, + autoincrement=True) + object_name = db.Column(db.String(120), nullable=False, + index=True) + object_key = db.Column(db.String(120), nullable=False, + index=True) + object_value = db.Column(db.Text, nullable=True) + last_updated = db.Column(db.DateTime, nullable=False, + index=True) + + +class AidDOCLIST(db.Model): + """Represents a AidDOCLIST record.""" + def __init__(self): + pass + __tablename__ = 'aidDOCLIST' + id = db.Column(db.BigInteger(15), nullable=False, + primary_key=True, + autoincrement=True) + bibrecID = db.Column(db.BigInteger(15), nullable=False, + index=True) + processed_author = db.Column(db.BigInteger(15), nullable=True, + index=True) + +class AidPERSONID(db.Model): + """Represents a AidPERSONID record.""" + def __init__(self): + pass + __tablename__ = 'aidPERSONID' + id = db.Column(db.BigInteger(15), nullable=False, + primary_key=True, + autoincrement=True) + personid = db.Column(db.BigInteger(15), nullable=False, + index=True) + tag = db.Column(db.String(50), nullable=False, + index=True) + data = db.Column(db.String(250), nullable=False, + index=True) + flag = db.Column(db.Integer(11), nullable=False, server_default='0', + index=True) + lcul = db.Column(db.Integer(11), nullable=False, server_default='0', + index=True) + #__table_args__ = {#'indexes': (db.Index('tdf-b', tag, data, flag), + # # db.Index('ptf-b', personid, data, flag)), + # 'extend_existing': True} + +class AidREALAUTHORDATA(db.Model): + """Represents a AidREALAUTHORDATA record.""" + def __init__(self): + pass + __tablename__ = 'aidREALAUTHORDATA' + id = db.Column(db.BigInteger(15), nullable=False, + primary_key=True, + autoincrement=True) + realauthorID = db.Column(db.BigInteger(15), nullable=False) + tag = db.Column(db.String(50), nullable=False, + index=True) + value = db.Column(db.String(255), nullable=False, + index=True) + va_count = db.Column(db.Integer(8), nullable=False, + server_default='0') + va_names_p = db.Column(db.Double, nullable=False, + server_default='0') + va_p = db.Column(db.Double, nullable=False, server_default='0') + #__table_args__ = (db.Index('realauthorID-b', realauthorID, tag), + # {}) + + +class AidUSERINPUTLOG(db.Model): + """Represents a AidUSERINPUTLOG record.""" + def __init__(self): + pass + __tablename__ = 'aidUSERINPUTLOG' + id = db.Column(db.BigInteger(15), nullable=False, + primary_key=True, + autoincrement=True) + transactionid = db.Column(db.BigInteger(15), nullable=False, + primary_key=True, + autoincrement=True, index=True) + timestamp = db.Column(db.DateTime, nullable=False, + index=True) + userinfo = db.Column(db.String(255), nullable=False, + index=True) + personid = db.Column(db.BigInteger(15), nullable=False, + primary_key=True, + autoincrement=True, index=True) + action = db.Column(db.String(50), nullable=False, + index=True) + tag = db.Column(db.String(50), nullable=False, + index=True) + value = db.Column(db.String(200), nullable=False, + index=True) + comment = db.Column(db.Text, nullable=True) + +class AidVIRTUALAUTHORS(db.Model): + """Represents a AidVIRTUALAUTHORS record.""" + def __init__(self): + pass + __tablename__ = 'aidVIRTUALAUTHORS' + id = db.Column(db.BigInteger(15), nullable=False, + primary_key=True, + autoincrement=True) + virtualauthorID = db.Column(db.BigInteger(15), + db.ForeignKey(AidAUTHORNAMES.id), + nullable=False, index=True) + authornamesID = db.Column(db.BigInteger(15), nullable=False, + index=True) + p = db.Column(db.Float, nullable=False) + clusterID = db.Column(db.BigInteger(15), nullable=False, + server_default='0', + index=True) + +class AidVIRTUALAUTHORSCLUSTERS(db.Model): + """Represents a AidVIRTUALAUTHORSCLUSTERS record.""" + def __init__(self): + pass + __tablename__ = 'aidVIRTUALAUTHORSCLUSTERS' + id = db.Column(db.Integer(15), nullable=False, + primary_key=True, + autoincrement=True) + cluster_name = db.Column(db.String(60), nullable=False) + +class AidVIRTUALAUTHORSDATA(db.Model): + """Represents a AidVIRTUALAUTHORSDATA record.""" + def __init__(self): + pass + __tablename__ = 'aidVIRTUALAUTHORSDATA' + id = db.Column(db.BigInteger(15), nullable=False, + primary_key=True, + autoincrement=True) + virtualauthorID = db.Column(db.BigInteger(15), + db.ForeignKey(AidVIRTUALAUTHORS.id), + nullable=False, index=True) + tag = db.Column(db.String(255), nullable=False, + index=True) + value = db.Column(db.String(255), nullable=False, + index=True) + +class AidREALAUTHORS(db.Model): + """Represents a AidREALAUTHORS record.""" + def __init__(self): + pass + __tablename__ = 'aidREALAUTHORS' + id = db.Column(db.BigInteger(15), nullable=False, + primary_key=True, + autoincrement=True) + realauthorID = db.Column(db.BigInteger(15), nullable=False, + index=True) + virtualauthorID = db.Column(db.BigInteger(15), + db.ForeignKey(AidVIRTUALAUTHORS.id), + nullable=False, index=True) + p = db.Column(db.Float, nullable=False) + + diff --git a/modules/bibcirculation/lib/Makefile.am b/modules/bibcirculation/lib/Makefile.am index 23894dafae..a596198858 100644 --- a/modules/bibcirculation/lib/Makefile.am +++ b/modules/bibcirculation/lib/Makefile.am @@ -27,6 +27,7 @@ pylib_DATA = bibcirculation.py \ bibcirculation_dblayer.py \ bibcirculation_config.py \ bibcirculation_daemon.py \ + bibcirculation_model.py \ bibcirculation_utils.py \ bibcirculation_cern_ldap.py \ bibcirculation_regression_tests.py diff --git a/modules/bibcirculation/lib/bibcirculation_model.py b/modules/bibcirculation/lib/bibcirculation_model.py new file mode 100644 index 0000000000..7981fe3e05 --- /dev/null +++ b/modules/bibcirculation/lib/bibcirculation_model.py @@ -0,0 +1,260 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +bibcirculation database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +from bibedit_model import Bibrec + +class CrcBORROWER(db.Model): + """Represents a CrcBORROWER record.""" + def __init__(self): + pass + __tablename__ = 'crcBORROWER' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + name = db.Column(db.String(255), nullable=False, + server_default='') + email = db.Column(db.String(255), nullable=False, + server_default='') + phone = db.Column(db.String(60), nullable=True) + address = db.Column(db.String(60), nullable=True) + mailbox = db.Column(db.String(30), nullable=True) + borrower_since = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + borrower_until = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + notes = db.Column(db.Text, nullable=True) + +class CrcLIBRARY(db.Model): + """Represents a CrcLIBRARY record.""" + def __init__(self): + pass + __tablename__ = 'crcLIBRARY' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + name = db.Column(db.String(80), nullable=False, + server_default='') + address = db.Column(db.String(255), nullable=False, + server_default='') + email = db.Column(db.String(255), nullable=False, + server_default='') + phone = db.Column(db.String(30), nullable=False, + server_default='') + type = db.Column(db.String(30), nullable=True) + notes = db.Column(db.Text, nullable=True) + +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.Integer(15, unsigned=True), + nullable=False, + server_default='0') + id_crcLIBRARY = db.Column(db.Integer(15, unsigned=True), + 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='') + creation_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + modification_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + number_of_requests = db.Column(db.Integer(3, unsigned=True), + nullable=False, + server_default='0') + +class CrcILLREQUEST(db.Model): + """Represents a CrcILLREQUEST record.""" + def __init__(self): + pass + __tablename__ = 'crcILLREQUEST' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + id_crcBORROWER = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(CrcBORROWER.id), + nullable=False, + server_default='0') + barcode = db.Column(db.String(30), db.ForeignKey(CrcITEM.barcode), + nullable=False, + server_default='') + period_of_interest_from = db.Column(db.DateTime, + nullable=False, + server_default='0000-00-00 00:00:00') + period_of_interest_to = db.Column(db.DateTime, + nullable=False, + server_default='0000-00-00 00:00:00') + id_crcLIBRARY = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(CrcLIBRARY.id), nullable=False, + server_default='0') + request_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + expected_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + arrival_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + due_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + return_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + status = db.Column(db.String(20), nullable=False, + server_default='') + cost = db.Column(db.String(30), nullable=False, + server_default='') + item_info = db.Column(db.Text, nullable=True) + request_type = db.Column(db.Text, nullable=True) + borrower_comments = db.Column(db.Text, nullable=True) + only_this_edition = db.Column(db.String(10), nullable=False, + server_default='') + library_notes = db.Column(db.Text, nullable=True) + borrower = db.relationship(CrcBORROWER, backref='illrequests') + item = db.relationship(CrcITEM, backref='illrequests') + library = db.relationship(CrcLIBRARY, backref='illrequests') + + +class CrcLOAN(db.Model): + """Represents a CrcLOAN record.""" + def __init__(self): + pass + __tablename__ = 'crcLOAN' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + id_crcBORROWER = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(CrcBORROWER.id), nullable=False, server_default='0') + id_bibrec = db.Column(db.Integer(15, unsigned=True), db.ForeignKey(Bibrec.id), + nullable=False, server_default='0') + barcode = db.Column(db.String(30), db.ForeignKey(CrcITEM.barcode), nullable=False, + server_default='') + loaned_on = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + returned_on = db.Column(db.Date, nullable=False, + server_default='0000-00-00') + due_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + number_of_renewals = db.Column(db.Integer(3, unsigned=True), nullable=False, + server_default='0') + overdue_letter_number = db.Column(db.Integer(3, unsigned=True), nullable=False, + server_default='0') + overdue_letter_date = db.Column(db.DateTime, + nullable=False, + server_default='0000-00-00 00:00:00') + status = db.Column(db.String(20), nullable=False, + server_default='') + type = db.Column(db.String(20), nullable=False, + server_default='') + notes = db.Column(db.Text, nullable=True) + borrower = db.relationship(CrcBORROWER, backref='loans') + bibrec = db.relationship(Bibrec, backref='loans') + item = db.relationship(CrcITEM, backref='loans') + +class CrcLOANREQUEST(db.Model): + """Represents a CrcLOANREQUEST record.""" + def __init__(self): + pass + __tablename__ = 'crcLOANREQUEST' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + id_crcBORROWER = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(CrcBORROWER.id), nullable=False, server_default='0') + id_bibrec = db.Column(db.Integer(15, unsigned=True), db.ForeignKey(Bibrec.id), + nullable=False, server_default='0') + barcode = db.Column(db.String(30), db.ForeignKey(CrcITEM.barcode), nullable=False, + server_default='') + period_of_interest_from = db.Column(db.DateTime, + nullable=False, + server_default='0000-00-00 00:00:00') + period_of_interest_to = db.Column(db.DateTime, + nullable=False, + server_default='0000-00-00 00:00:00') + status = db.Column(db.String(20), nullable=False, + server_default='') + notes = db.Column(db.Text, nullable=True) + request_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + borrower = db.relationship(CrcBORROWER, backref='loanrequests') + bibrec = db.relationship(Bibrec, backref='loanrequests') + item = db.relationship(CrcITEM, backref='loanrequests') + +class CrcVENDOR(db.Model): + """Represents a CrcVENDOR record.""" + def __init__(self): + pass + __tablename__ = 'crcVENDOR' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + name = db.Column(db.String(80), nullable=False, + server_default='') + address = db.Column(db.String(255), nullable=False, + server_default='') + email = db.Column(db.String(255), nullable=False, + server_default='') + phone = db.Column(db.String(30), nullable=False, + server_default='') + notes = db.Column(db.Text, nullable=True) + +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.Integer(15, 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='0000-00-00 00:00:00') + expected_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 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') + + + + diff --git a/modules/bibclassify/lib/Makefile.am b/modules/bibclassify/lib/Makefile.am index a3462fbcc7..0d82c67b91 100644 --- a/modules/bibclassify/lib/Makefile.am +++ b/modules/bibclassify/lib/Makefile.am @@ -24,6 +24,7 @@ pylib_DATA = bibclassify_acronym_analyzer.py \ bibclassify_engine.py \ bibclassify_keyword_analyzer.py \ bibclassify_regression_tests.py \ + bibclassify_model.py \ bibclassify_ontology_reader.py \ bibclassify_text_extractor.py \ bibclassify_text_normalizer.py \ diff --git a/modules/bibclassify/lib/bibclassify_model.py b/modules/bibclassify/lib/bibclassify_model.py new file mode 100644 index 0000000000..b79e260cf5 --- /dev/null +++ b/modules/bibclassify/lib/bibclassify_model.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +bibclassify database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +class ClsMETHOD(db.Model): + """Represents a ClsMETHOD record.""" + def __init__(self): + pass + __tablename__ = 'clsMETHOD' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True) #, + #autoincrement=True) + name = db.Column(db.String(50), nullable=False, unique=True, + server_default='') + location = db.Column(db.String(255), nullable=False, + server_default='') + description = db.Column(db.String(255), nullable=False, + server_default='') + last_updated = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + + diff --git a/modules/bibedit/lib/Makefile.am b/modules/bibedit/lib/Makefile.am index 36a0e7abb9..217eb10f27 100644 --- a/modules/bibedit/lib/Makefile.am +++ b/modules/bibedit/lib/Makefile.am @@ -18,6 +18,7 @@ pylibdir = $(libdir)/python/invenio pylib_DATA = bibedit_config.py \ + bibedit_model.py \ bibedit_dblayer.py \ bibedit_engine.py \ bibedit_regression_tests.py \ diff --git a/modules/bibedit/lib/bibedit_model.py b/modules/bibedit/lib/bibedit_model.py new file mode 100644 index 0000000000..3712eb2271 --- /dev/null +++ b/modules/bibedit/lib/bibedit_model.py @@ -0,0 +1,3279 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +BibEdit database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +class Bibrec(db.Model): + """Represents a Bibrec record.""" + def __init__(self): + pass + __tablename__ = 'bibrec' + id = db.Column(db.MediumInteger(8, unsigned=True), primary_key=True, + nullable=False, + autoincrement=True) + creation_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00', + index=True) + modification_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00', + index=True) + +class Bibfmt(db.Model): + """Represents a Bibfmt record.""" + def __init__(self): + pass + __tablename__ = 'bibfmt' + id = db.Column(db.MediumInteger(8, unsigned=True), primary_key=True, + nullable=False, + autoincrement=True) + id_bibrec = db.Column(db.Integer(8, unsigned=True), db.ForeignKey(Bibrec.id), + nullable=False, + server_default='0') + format = db.Column(db.String(10), nullable=False, + server_default='') + last_updated = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + value = db.Column(db.iLargeBinary) + bibrec = db.relationship(Bibrec, backref='bibfmt') + +class BibHOLDINGPEN(db.Model): + """Represents a BibHOLDINGPEN record.""" + def __init__(self): + pass + __tablename__ = 'bibHOLDINGPEN' + changeset_id = db.Column(db.Integer(11), primary_key=True, + autoincrement=True) + changeset_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + changeset_xml = db.Column(db.Text, nullable=False) + oai_id = db.Column(db.String(40), nullable=False, + server_default='') + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), nullable=False, server_default='0') + bibrec = db.relationship(Bibrec, backref='holdingpen') + +class Bibdoc(db.Model): + """Represents a Bibdoc record.""" + def __init__(self): + pass + __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=False, + server_default='file', + index=True) + creation_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00', + index=True) + modification_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00', + index=True) + text_extraction_date = db.Column(db.DateTime, + nullable=False, + server_default='0000-00-00 00:00:00') + more_info = db.Column(db.iMediumBinary, nullable=True) + +class BibdocBibdoc(db.Model): + """Represents a BibdocBibdoc record.""" + def __init__(self): + pass + __tablename__ = 'bibdoc_bibdoc' + id_bibdoc1 = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibdoc.id), nullable=False, primary_key=True) + id_bibdoc2 = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibdoc.id), nullable=False, primary_key=True) + 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) + +class BibrecBibdoc(db.Model): + """Represents a BibrecBibdoc record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bibdoc' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), nullable=False, + server_default='0', primary_key=True) + id_bibdoc = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibdoc.id), nullable=False, + server_default='0', primary_key=True) + type = db.Column(db.String(255), nullable=True) + bibrec = db.relationship(Bibrec, backref='bibdocs') + bibdoc = db.relationship(Bibdoc, backref='bibrecs') + +class HstDOCUMENT(db.Model): + """Represents a HstDOCUMENT record.""" + def __init__(self): + pass + __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), nullable=False, + primary_key=True) + docname = db.Column(db.String(250), nullable=False) + docformat = db.Column(db.String(50), nullable=False) + 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) + action = db.Column(db.String(50), nullable=False) + job_id = db.Column(db.MediumInteger(15, unsigned=True), + nullable=True) + job_name = db.Column(db.String(255), nullable=True) + job_person = db.Column(db.String(255), nullable=True) + job_date = db.Column(db.DateTime, nullable=True) + job_details = db.Column(db.iBinary, nullable=True) + +class HstRECORD(db.Model): + """Represents a HstRECORD record.""" + def __init__(self): + pass + __tablename__ = 'hstRECORD' + id = db.Column(db.Integer(15, unsigned=True), primary_key=True, + nullable=False, + autoincrement=True) + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), nullable=False, + primary_key=True) + marcxml = db.Column(db.iBinary, nullable=False) + job_id = db.Column(db.MediumInteger(15, unsigned=True), + nullable=False) + job_name = db.Column(db.String(255), nullable=False) + job_person = db.Column(db.String(255), nullable=False) + job_date = db.Column(db.DateTime, nullable=False) + job_details = db.Column(db.iBinary, nullable=False) + + +# GENERATED + +class Bib00x(db.Model): + """Represents a Bib00x record.""" + def __init__(self): + pass + __tablename__ = 'bib00x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib00x(db.Model): + """Represents a BibrecBib00x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib00x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib00x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib00xs') + bibxxx = db.relationship(Bib00x, backref='bibrecs') + +class Bib01x(db.Model): + """Represents a Bib01x record.""" + def __init__(self): + pass + __tablename__ = 'bib01x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib01x(db.Model): + """Represents a BibrecBib01x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib01x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib01x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib01xs') + bibxxx = db.relationship(Bib01x, backref='bibrecs') + +class Bib02x(db.Model): + """Represents a Bib02x record.""" + def __init__(self): + pass + __tablename__ = 'bib02x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib02x(db.Model): + """Represents a BibrecBib02x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib02x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib02x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib02xs') + bibxxx = db.relationship(Bib02x, backref='bibrecs') + +class Bib03x(db.Model): + """Represents a Bib03x record.""" + def __init__(self): + pass + __tablename__ = 'bib03x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib03x(db.Model): + """Represents a BibrecBib03x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib03x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib03x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib03xs') + bibxxx = db.relationship(Bib03x, backref='bibrecs') + +class Bib04x(db.Model): + """Represents a Bib04x record.""" + def __init__(self): + pass + __tablename__ = 'bib04x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib04x(db.Model): + """Represents a BibrecBib04x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib04x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib04x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib04xs') + bibxxx = db.relationship(Bib04x, backref='bibrecs') + +class Bib05x(db.Model): + """Represents a Bib05x record.""" + def __init__(self): + pass + __tablename__ = 'bib05x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib05x(db.Model): + """Represents a BibrecBib05x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib05x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib05x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib05xs') + bibxxx = db.relationship(Bib05x, backref='bibrecs') + +class Bib06x(db.Model): + """Represents a Bib06x record.""" + def __init__(self): + pass + __tablename__ = 'bib06x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib06x(db.Model): + """Represents a BibrecBib06x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib06x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib06x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib06xs') + bibxxx = db.relationship(Bib06x, backref='bibrecs') + +class Bib07x(db.Model): + """Represents a Bib07x record.""" + def __init__(self): + pass + __tablename__ = 'bib07x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib07x(db.Model): + """Represents a BibrecBib07x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib07x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib07x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib07xs') + bibxxx = db.relationship(Bib07x, backref='bibrecs') + +class Bib08x(db.Model): + """Represents a Bib08x record.""" + def __init__(self): + pass + __tablename__ = 'bib08x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib08x(db.Model): + """Represents a BibrecBib08x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib08x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib08x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib08xs') + bibxxx = db.relationship(Bib08x, backref='bibrecs') + +class Bib09x(db.Model): + """Represents a Bib09x record.""" + def __init__(self): + pass + __tablename__ = 'bib09x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib09x(db.Model): + """Represents a BibrecBib09x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib09x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib09x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib09xs') + bibxxx = db.relationship(Bib09x, backref='bibrecs') + +class Bib10x(db.Model): + """Represents a Bib10x record.""" + def __init__(self): + pass + __tablename__ = 'bib10x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib10x(db.Model): + """Represents a BibrecBib10x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib10x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib10x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib10xs') + bibxxx = db.relationship(Bib10x, backref='bibrecs') + +class Bib11x(db.Model): + """Represents a Bib11x record.""" + def __init__(self): + pass + __tablename__ = 'bib11x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib11x(db.Model): + """Represents a BibrecBib11x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib11x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib11x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib11xs') + bibxxx = db.relationship(Bib11x, backref='bibrecs') + +class Bib12x(db.Model): + """Represents a Bib12x record.""" + def __init__(self): + pass + __tablename__ = 'bib12x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib12x(db.Model): + """Represents a BibrecBib12x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib12x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib12x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib12xs') + bibxxx = db.relationship(Bib12x, backref='bibrecs') + +class Bib13x(db.Model): + """Represents a Bib13x record.""" + def __init__(self): + pass + __tablename__ = 'bib13x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib13x(db.Model): + """Represents a BibrecBib13x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib13x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib13x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib13xs') + bibxxx = db.relationship(Bib13x, backref='bibrecs') + +class Bib14x(db.Model): + """Represents a Bib14x record.""" + def __init__(self): + pass + __tablename__ = 'bib14x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib14x(db.Model): + """Represents a BibrecBib14x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib14x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib14x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib14xs') + bibxxx = db.relationship(Bib14x, backref='bibrecs') + +class Bib15x(db.Model): + """Represents a Bib15x record.""" + def __init__(self): + pass + __tablename__ = 'bib15x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib15x(db.Model): + """Represents a BibrecBib15x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib15x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib15x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib15xs') + bibxxx = db.relationship(Bib15x, backref='bibrecs') + +class Bib16x(db.Model): + """Represents a Bib16x record.""" + def __init__(self): + pass + __tablename__ = 'bib16x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib16x(db.Model): + """Represents a BibrecBib16x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib16x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib16x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib16xs') + bibxxx = db.relationship(Bib16x, backref='bibrecs') + +class Bib17x(db.Model): + """Represents a Bib17x record.""" + def __init__(self): + pass + __tablename__ = 'bib17x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib17x(db.Model): + """Represents a BibrecBib17x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib17x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib17x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib17xs') + bibxxx = db.relationship(Bib17x, backref='bibrecs') + +class Bib18x(db.Model): + """Represents a Bib18x record.""" + def __init__(self): + pass + __tablename__ = 'bib18x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib18x(db.Model): + """Represents a BibrecBib18x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib18x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib18x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib18xs') + bibxxx = db.relationship(Bib18x, backref='bibrecs') + +class Bib19x(db.Model): + """Represents a Bib19x record.""" + def __init__(self): + pass + __tablename__ = 'bib19x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib19x(db.Model): + """Represents a BibrecBib19x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib19x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib19x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib19xs') + bibxxx = db.relationship(Bib19x, backref='bibrecs') + +class Bib20x(db.Model): + """Represents a Bib20x record.""" + def __init__(self): + pass + __tablename__ = 'bib20x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib20x(db.Model): + """Represents a BibrecBib20x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib20x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib20x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib20xs') + bibxxx = db.relationship(Bib20x, backref='bibrecs') + +class Bib21x(db.Model): + """Represents a Bib21x record.""" + def __init__(self): + pass + __tablename__ = 'bib21x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib21x(db.Model): + """Represents a BibrecBib21x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib21x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib21x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib21xs') + bibxxx = db.relationship(Bib21x, backref='bibrecs') + +class Bib22x(db.Model): + """Represents a Bib22x record.""" + def __init__(self): + pass + __tablename__ = 'bib22x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib22x(db.Model): + """Represents a BibrecBib22x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib22x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib22x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib22xs') + bibxxx = db.relationship(Bib22x, backref='bibrecs') + +class Bib23x(db.Model): + """Represents a Bib23x record.""" + def __init__(self): + pass + __tablename__ = 'bib23x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib23x(db.Model): + """Represents a BibrecBib23x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib23x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib23x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib23xs') + bibxxx = db.relationship(Bib23x, backref='bibrecs') + +class Bib24x(db.Model): + """Represents a Bib24x record.""" + def __init__(self): + pass + __tablename__ = 'bib24x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib24x(db.Model): + """Represents a BibrecBib24x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib24x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib24x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib24xs') + bibxxx = db.relationship(Bib24x, backref='bibrecs') + +class Bib25x(db.Model): + """Represents a Bib25x record.""" + def __init__(self): + pass + __tablename__ = 'bib25x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib25x(db.Model): + """Represents a BibrecBib25x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib25x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib25x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib25xs') + bibxxx = db.relationship(Bib25x, backref='bibrecs') + +class Bib26x(db.Model): + """Represents a Bib26x record.""" + def __init__(self): + pass + __tablename__ = 'bib26x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib26x(db.Model): + """Represents a BibrecBib26x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib26x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib26x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib26xs') + bibxxx = db.relationship(Bib26x, backref='bibrecs') + +class Bib27x(db.Model): + """Represents a Bib27x record.""" + def __init__(self): + pass + __tablename__ = 'bib27x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib27x(db.Model): + """Represents a BibrecBib27x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib27x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib27x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib27xs') + bibxxx = db.relationship(Bib27x, backref='bibrecs') + +class Bib28x(db.Model): + """Represents a Bib28x record.""" + def __init__(self): + pass + __tablename__ = 'bib28x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib28x(db.Model): + """Represents a BibrecBib28x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib28x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib28x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib28xs') + bibxxx = db.relationship(Bib28x, backref='bibrecs') + +class Bib29x(db.Model): + """Represents a Bib29x record.""" + def __init__(self): + pass + __tablename__ = 'bib29x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib29x(db.Model): + """Represents a BibrecBib29x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib29x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib29x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib29xs') + bibxxx = db.relationship(Bib29x, backref='bibrecs') + +class Bib30x(db.Model): + """Represents a Bib30x record.""" + def __init__(self): + pass + __tablename__ = 'bib30x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib30x(db.Model): + """Represents a BibrecBib30x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib30x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib30x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib30xs') + bibxxx = db.relationship(Bib30x, backref='bibrecs') + +class Bib31x(db.Model): + """Represents a Bib31x record.""" + def __init__(self): + pass + __tablename__ = 'bib31x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib31x(db.Model): + """Represents a BibrecBib31x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib31x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib31x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib31xs') + bibxxx = db.relationship(Bib31x, backref='bibrecs') + +class Bib32x(db.Model): + """Represents a Bib32x record.""" + def __init__(self): + pass + __tablename__ = 'bib32x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib32x(db.Model): + """Represents a BibrecBib32x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib32x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib32x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib32xs') + bibxxx = db.relationship(Bib32x, backref='bibrecs') + +class Bib33x(db.Model): + """Represents a Bib33x record.""" + def __init__(self): + pass + __tablename__ = 'bib33x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib33x(db.Model): + """Represents a BibrecBib33x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib33x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib33x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib33xs') + bibxxx = db.relationship(Bib33x, backref='bibrecs') + +class Bib34x(db.Model): + """Represents a Bib34x record.""" + def __init__(self): + pass + __tablename__ = 'bib34x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib34x(db.Model): + """Represents a BibrecBib34x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib34x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib34x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib34xs') + bibxxx = db.relationship(Bib34x, backref='bibrecs') + +class Bib35x(db.Model): + """Represents a Bib35x record.""" + def __init__(self): + pass + __tablename__ = 'bib35x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib35x(db.Model): + """Represents a BibrecBib35x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib35x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib35x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib35xs') + bibxxx = db.relationship(Bib35x, backref='bibrecs') + +class Bib36x(db.Model): + """Represents a Bib36x record.""" + def __init__(self): + pass + __tablename__ = 'bib36x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib36x(db.Model): + """Represents a BibrecBib36x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib36x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib36x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib36xs') + bibxxx = db.relationship(Bib36x, backref='bibrecs') + +class Bib37x(db.Model): + """Represents a Bib37x record.""" + def __init__(self): + pass + __tablename__ = 'bib37x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib37x(db.Model): + """Represents a BibrecBib37x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib37x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib37x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib37xs') + bibxxx = db.relationship(Bib37x, backref='bibrecs') + +class Bib38x(db.Model): + """Represents a Bib38x record.""" + def __init__(self): + pass + __tablename__ = 'bib38x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib38x(db.Model): + """Represents a BibrecBib38x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib38x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib38x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib38xs') + bibxxx = db.relationship(Bib38x, backref='bibrecs') + +class Bib39x(db.Model): + """Represents a Bib39x record.""" + def __init__(self): + pass + __tablename__ = 'bib39x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib39x(db.Model): + """Represents a BibrecBib39x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib39x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib39x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib39xs') + bibxxx = db.relationship(Bib39x, backref='bibrecs') + +class Bib40x(db.Model): + """Represents a Bib40x record.""" + def __init__(self): + pass + __tablename__ = 'bib40x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib40x(db.Model): + """Represents a BibrecBib40x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib40x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib40x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib40xs') + bibxxx = db.relationship(Bib40x, backref='bibrecs') + +class Bib41x(db.Model): + """Represents a Bib41x record.""" + def __init__(self): + pass + __tablename__ = 'bib41x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib41x(db.Model): + """Represents a BibrecBib41x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib41x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib41x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib41xs') + bibxxx = db.relationship(Bib41x, backref='bibrecs') + +class Bib42x(db.Model): + """Represents a Bib42x record.""" + def __init__(self): + pass + __tablename__ = 'bib42x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib42x(db.Model): + """Represents a BibrecBib42x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib42x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib42x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib42xs') + bibxxx = db.relationship(Bib42x, backref='bibrecs') + +class Bib43x(db.Model): + """Represents a Bib43x record.""" + def __init__(self): + pass + __tablename__ = 'bib43x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib43x(db.Model): + """Represents a BibrecBib43x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib43x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib43x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib43xs') + bibxxx = db.relationship(Bib43x, backref='bibrecs') + +class Bib44x(db.Model): + """Represents a Bib44x record.""" + def __init__(self): + pass + __tablename__ = 'bib44x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib44x(db.Model): + """Represents a BibrecBib44x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib44x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib44x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib44xs') + bibxxx = db.relationship(Bib44x, backref='bibrecs') + +class Bib45x(db.Model): + """Represents a Bib45x record.""" + def __init__(self): + pass + __tablename__ = 'bib45x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib45x(db.Model): + """Represents a BibrecBib45x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib45x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib45x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib45xs') + bibxxx = db.relationship(Bib45x, backref='bibrecs') + +class Bib46x(db.Model): + """Represents a Bib46x record.""" + def __init__(self): + pass + __tablename__ = 'bib46x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib46x(db.Model): + """Represents a BibrecBib46x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib46x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib46x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib46xs') + bibxxx = db.relationship(Bib46x, backref='bibrecs') + +class Bib47x(db.Model): + """Represents a Bib47x record.""" + def __init__(self): + pass + __tablename__ = 'bib47x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib47x(db.Model): + """Represents a BibrecBib47x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib47x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib47x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib47xs') + bibxxx = db.relationship(Bib47x, backref='bibrecs') + +class Bib48x(db.Model): + """Represents a Bib48x record.""" + def __init__(self): + pass + __tablename__ = 'bib48x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib48x(db.Model): + """Represents a BibrecBib48x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib48x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib48x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib48xs') + bibxxx = db.relationship(Bib48x, backref='bibrecs') + +class Bib49x(db.Model): + """Represents a Bib49x record.""" + def __init__(self): + pass + __tablename__ = 'bib49x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib49x(db.Model): + """Represents a BibrecBib49x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib49x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib49x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib49xs') + bibxxx = db.relationship(Bib49x, backref='bibrecs') + +class Bib50x(db.Model): + """Represents a Bib50x record.""" + def __init__(self): + pass + __tablename__ = 'bib50x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib50x(db.Model): + """Represents a BibrecBib50x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib50x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib50x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib50xs') + bibxxx = db.relationship(Bib50x, backref='bibrecs') + +class Bib51x(db.Model): + """Represents a Bib51x record.""" + def __init__(self): + pass + __tablename__ = 'bib51x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib51x(db.Model): + """Represents a BibrecBib51x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib51x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib51x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib51xs') + bibxxx = db.relationship(Bib51x, backref='bibrecs') + +class Bib52x(db.Model): + """Represents a Bib52x record.""" + def __init__(self): + pass + __tablename__ = 'bib52x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib52x(db.Model): + """Represents a BibrecBib52x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib52x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib52x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib52xs') + bibxxx = db.relationship(Bib52x, backref='bibrecs') + +class Bib53x(db.Model): + """Represents a Bib53x record.""" + def __init__(self): + pass + __tablename__ = 'bib53x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib53x(db.Model): + """Represents a BibrecBib53x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib53x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib53x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib53xs') + bibxxx = db.relationship(Bib53x, backref='bibrecs') + +class Bib54x(db.Model): + """Represents a Bib54x record.""" + def __init__(self): + pass + __tablename__ = 'bib54x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib54x(db.Model): + """Represents a BibrecBib54x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib54x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib54x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib54xs') + bibxxx = db.relationship(Bib54x, backref='bibrecs') + +class Bib55x(db.Model): + """Represents a Bib55x record.""" + def __init__(self): + pass + __tablename__ = 'bib55x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib55x(db.Model): + """Represents a BibrecBib55x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib55x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib55x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib55xs') + bibxxx = db.relationship(Bib55x, backref='bibrecs') + +class Bib56x(db.Model): + """Represents a Bib56x record.""" + def __init__(self): + pass + __tablename__ = 'bib56x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib56x(db.Model): + """Represents a BibrecBib56x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib56x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib56x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib56xs') + bibxxx = db.relationship(Bib56x, backref='bibrecs') + +class Bib57x(db.Model): + """Represents a Bib57x record.""" + def __init__(self): + pass + __tablename__ = 'bib57x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib57x(db.Model): + """Represents a BibrecBib57x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib57x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib57x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib57xs') + bibxxx = db.relationship(Bib57x, backref='bibrecs') + +class Bib58x(db.Model): + """Represents a Bib58x record.""" + def __init__(self): + pass + __tablename__ = 'bib58x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib58x(db.Model): + """Represents a BibrecBib58x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib58x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib58x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib58xs') + bibxxx = db.relationship(Bib58x, backref='bibrecs') + +class Bib59x(db.Model): + """Represents a Bib59x record.""" + def __init__(self): + pass + __tablename__ = 'bib59x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib59x(db.Model): + """Represents a BibrecBib59x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib59x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib59x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib59xs') + bibxxx = db.relationship(Bib59x, backref='bibrecs') + +class Bib60x(db.Model): + """Represents a Bib60x record.""" + def __init__(self): + pass + __tablename__ = 'bib60x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib60x(db.Model): + """Represents a BibrecBib60x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib60x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib60x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib60xs') + bibxxx = db.relationship(Bib60x, backref='bibrecs') + +class Bib61x(db.Model): + """Represents a Bib61x record.""" + def __init__(self): + pass + __tablename__ = 'bib61x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib61x(db.Model): + """Represents a BibrecBib61x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib61x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib61x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib61xs') + bibxxx = db.relationship(Bib61x, backref='bibrecs') + +class Bib62x(db.Model): + """Represents a Bib62x record.""" + def __init__(self): + pass + __tablename__ = 'bib62x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib62x(db.Model): + """Represents a BibrecBib62x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib62x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib62x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib62xs') + bibxxx = db.relationship(Bib62x, backref='bibrecs') + +class Bib63x(db.Model): + """Represents a Bib63x record.""" + def __init__(self): + pass + __tablename__ = 'bib63x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib63x(db.Model): + """Represents a BibrecBib63x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib63x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib63x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib63xs') + bibxxx = db.relationship(Bib63x, backref='bibrecs') + +class Bib64x(db.Model): + """Represents a Bib64x record.""" + def __init__(self): + pass + __tablename__ = 'bib64x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib64x(db.Model): + """Represents a BibrecBib64x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib64x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib64x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib64xs') + bibxxx = db.relationship(Bib64x, backref='bibrecs') + +class Bib65x(db.Model): + """Represents a Bib65x record.""" + def __init__(self): + pass + __tablename__ = 'bib65x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib65x(db.Model): + """Represents a BibrecBib65x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib65x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib65x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib65xs') + bibxxx = db.relationship(Bib65x, backref='bibrecs') + +class Bib66x(db.Model): + """Represents a Bib66x record.""" + def __init__(self): + pass + __tablename__ = 'bib66x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib66x(db.Model): + """Represents a BibrecBib66x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib66x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib66x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib66xs') + bibxxx = db.relationship(Bib66x, backref='bibrecs') + +class Bib67x(db.Model): + """Represents a Bib67x record.""" + def __init__(self): + pass + __tablename__ = 'bib67x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib67x(db.Model): + """Represents a BibrecBib67x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib67x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib67x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib67xs') + bibxxx = db.relationship(Bib67x, backref='bibrecs') + +class Bib68x(db.Model): + """Represents a Bib68x record.""" + def __init__(self): + pass + __tablename__ = 'bib68x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib68x(db.Model): + """Represents a BibrecBib68x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib68x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib68x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib68xs') + bibxxx = db.relationship(Bib68x, backref='bibrecs') + +class Bib69x(db.Model): + """Represents a Bib69x record.""" + def __init__(self): + pass + __tablename__ = 'bib69x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib69x(db.Model): + """Represents a BibrecBib69x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib69x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib69x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib69xs') + bibxxx = db.relationship(Bib69x, backref='bibrecs') + +class Bib70x(db.Model): + """Represents a Bib70x record.""" + def __init__(self): + pass + __tablename__ = 'bib70x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib70x(db.Model): + """Represents a BibrecBib70x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib70x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib70x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib70xs') + bibxxx = db.relationship(Bib70x, backref='bibrecs') + +class Bib71x(db.Model): + """Represents a Bib71x record.""" + def __init__(self): + pass + __tablename__ = 'bib71x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib71x(db.Model): + """Represents a BibrecBib71x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib71x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib71x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib71xs') + bibxxx = db.relationship(Bib71x, backref='bibrecs') + +class Bib72x(db.Model): + """Represents a Bib72x record.""" + def __init__(self): + pass + __tablename__ = 'bib72x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib72x(db.Model): + """Represents a BibrecBib72x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib72x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib72x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib72xs') + bibxxx = db.relationship(Bib72x, backref='bibrecs') + +class Bib73x(db.Model): + """Represents a Bib73x record.""" + def __init__(self): + pass + __tablename__ = 'bib73x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib73x(db.Model): + """Represents a BibrecBib73x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib73x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib73x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib73xs') + bibxxx = db.relationship(Bib73x, backref='bibrecs') + +class Bib74x(db.Model): + """Represents a Bib74x record.""" + def __init__(self): + pass + __tablename__ = 'bib74x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib74x(db.Model): + """Represents a BibrecBib74x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib74x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib74x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib74xs') + bibxxx = db.relationship(Bib74x, backref='bibrecs') + +class Bib75x(db.Model): + """Represents a Bib75x record.""" + def __init__(self): + pass + __tablename__ = 'bib75x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib75x(db.Model): + """Represents a BibrecBib75x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib75x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib75x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib75xs') + bibxxx = db.relationship(Bib75x, backref='bibrecs') + +class Bib76x(db.Model): + """Represents a Bib76x record.""" + def __init__(self): + pass + __tablename__ = 'bib76x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib76x(db.Model): + """Represents a BibrecBib76x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib76x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib76x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib76xs') + bibxxx = db.relationship(Bib76x, backref='bibrecs') + +class Bib77x(db.Model): + """Represents a Bib77x record.""" + def __init__(self): + pass + __tablename__ = 'bib77x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib77x(db.Model): + """Represents a BibrecBib77x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib77x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib77x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib77xs') + bibxxx = db.relationship(Bib77x, backref='bibrecs') + +class Bib78x(db.Model): + """Represents a Bib78x record.""" + def __init__(self): + pass + __tablename__ = 'bib78x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib78x(db.Model): + """Represents a BibrecBib78x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib78x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib78x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib78xs') + bibxxx = db.relationship(Bib78x, backref='bibrecs') + +class Bib79x(db.Model): + """Represents a Bib79x record.""" + def __init__(self): + pass + __tablename__ = 'bib79x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib79x(db.Model): + """Represents a BibrecBib79x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib79x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib79x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib79xs') + bibxxx = db.relationship(Bib79x, backref='bibrecs') + +class Bib80x(db.Model): + """Represents a Bib80x record.""" + def __init__(self): + pass + __tablename__ = 'bib80x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib80x(db.Model): + """Represents a BibrecBib80x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib80x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib80x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib80xs') + bibxxx = db.relationship(Bib80x, backref='bibrecs') + +class Bib81x(db.Model): + """Represents a Bib81x record.""" + def __init__(self): + pass + __tablename__ = 'bib81x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib81x(db.Model): + """Represents a BibrecBib81x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib81x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib81x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib81xs') + bibxxx = db.relationship(Bib81x, backref='bibrecs') + +class Bib82x(db.Model): + """Represents a Bib82x record.""" + def __init__(self): + pass + __tablename__ = 'bib82x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib82x(db.Model): + """Represents a BibrecBib82x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib82x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib82x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib82xs') + bibxxx = db.relationship(Bib82x, backref='bibrecs') + +class Bib83x(db.Model): + """Represents a Bib83x record.""" + def __init__(self): + pass + __tablename__ = 'bib83x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib83x(db.Model): + """Represents a BibrecBib83x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib83x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib83x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib83xs') + bibxxx = db.relationship(Bib83x, backref='bibrecs') + +class Bib84x(db.Model): + """Represents a Bib84x record.""" + def __init__(self): + pass + __tablename__ = 'bib84x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib84x(db.Model): + """Represents a BibrecBib84x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib84x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib84x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib84xs') + bibxxx = db.relationship(Bib84x, backref='bibrecs') + +class Bib85x(db.Model): + """Represents a Bib85x record.""" + def __init__(self): + pass + __tablename__ = 'bib85x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib85x(db.Model): + """Represents a BibrecBib85x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib85x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib85x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib85xs') + bibxxx = db.relationship(Bib85x, backref='bibrecs') + +class Bib86x(db.Model): + """Represents a Bib86x record.""" + def __init__(self): + pass + __tablename__ = 'bib86x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib86x(db.Model): + """Represents a BibrecBib86x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib86x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib86x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib86xs') + bibxxx = db.relationship(Bib86x, backref='bibrecs') + +class Bib87x(db.Model): + """Represents a Bib87x record.""" + def __init__(self): + pass + __tablename__ = 'bib87x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib87x(db.Model): + """Represents a BibrecBib87x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib87x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib87x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib87xs') + bibxxx = db.relationship(Bib87x, backref='bibrecs') + +class Bib88x(db.Model): + """Represents a Bib88x record.""" + def __init__(self): + pass + __tablename__ = 'bib88x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib88x(db.Model): + """Represents a BibrecBib88x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib88x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib88x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib88xs') + bibxxx = db.relationship(Bib88x, backref='bibrecs') + +class Bib89x(db.Model): + """Represents a Bib89x record.""" + def __init__(self): + pass + __tablename__ = 'bib89x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib89x(db.Model): + """Represents a BibrecBib89x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib89x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib89x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib89xs') + bibxxx = db.relationship(Bib89x, backref='bibrecs') + +class Bib90x(db.Model): + """Represents a Bib90x record.""" + def __init__(self): + pass + __tablename__ = 'bib90x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib90x(db.Model): + """Represents a BibrecBib90x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib90x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib90x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib90xs') + bibxxx = db.relationship(Bib90x, backref='bibrecs') + +class Bib91x(db.Model): + """Represents a Bib91x record.""" + def __init__(self): + pass + __tablename__ = 'bib91x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib91x(db.Model): + """Represents a BibrecBib91x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib91x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib91x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib91xs') + bibxxx = db.relationship(Bib91x, backref='bibrecs') + +class Bib92x(db.Model): + """Represents a Bib92x record.""" + def __init__(self): + pass + __tablename__ = 'bib92x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib92x(db.Model): + """Represents a BibrecBib92x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib92x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib92x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib92xs') + bibxxx = db.relationship(Bib92x, backref='bibrecs') + +class Bib93x(db.Model): + """Represents a Bib93x record.""" + def __init__(self): + pass + __tablename__ = 'bib93x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib93x(db.Model): + """Represents a BibrecBib93x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib93x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib93x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib93xs') + bibxxx = db.relationship(Bib93x, backref='bibrecs') + +class Bib94x(db.Model): + """Represents a Bib94x record.""" + def __init__(self): + pass + __tablename__ = 'bib94x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib94x(db.Model): + """Represents a BibrecBib94x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib94x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib94x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib94xs') + bibxxx = db.relationship(Bib94x, backref='bibrecs') + +class Bib95x(db.Model): + """Represents a Bib95x record.""" + def __init__(self): + pass + __tablename__ = 'bib95x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib95x(db.Model): + """Represents a BibrecBib95x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib95x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib95x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib95xs') + bibxxx = db.relationship(Bib95x, backref='bibrecs') + +class Bib96x(db.Model): + """Represents a Bib96x record.""" + def __init__(self): + pass + __tablename__ = 'bib96x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib96x(db.Model): + """Represents a BibrecBib96x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib96x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib96x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib96xs') + bibxxx = db.relationship(Bib96x, backref='bibrecs') + +class Bib97x(db.Model): + """Represents a Bib97x record.""" + def __init__(self): + pass + __tablename__ = 'bib97x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib97x(db.Model): + """Represents a BibrecBib97x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib97x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib97x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib97xs') + bibxxx = db.relationship(Bib97x, backref='bibrecs') + +class Bib98x(db.Model): + """Represents a Bib98x record.""" + def __init__(self): + pass + __tablename__ = 'bib98x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib98x(db.Model): + """Represents a BibrecBib98x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib98x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib98x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib98xs') + bibxxx = db.relationship(Bib98x, backref='bibrecs') + +class Bib99x(db.Model): + """Represents a Bib99x record.""" + def __init__(self): + pass + __tablename__ = 'bib99x' + id = db.Column(db.MediumInteger(8, unsigned=True), + primary_key=True, + autoincrement=True) + tag = db.Column(db.String(6), nullable=False, index=True, + server_default='') + value = db.Column(db.Text(35), nullable=False, + index=True) + +class BibrecBib99x(db.Model): + """Represents a BibrecBib99x record.""" + def __init__(self): + pass + __tablename__ = 'bibrec_bib99x' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=False, primary_key=True, index=True, + server_default='0') + id_bibxxx = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bib99x.id), + nullable=False, primary_key=True, index=True, + server_default='0') + field_number = db.Column(db.SmallInteger(5, unsigned=True), + nullable=True) + bibrec = db.relationship(Bibrec, backref='bib99xs') + bibxxx = db.relationship(Bib99x, backref='bibrecs') + diff --git a/modules/bibexport/lib/Makefile.am b/modules/bibexport/lib/Makefile.am index ceb503021d..45699d34f9 100644 --- a/modules/bibexport/lib/Makefile.am +++ b/modules/bibexport/lib/Makefile.am @@ -18,6 +18,7 @@ pylibdir = $(libdir)/python/invenio pylib_DATA = bibexport.py \ + bibexport_model.py \ bibexport_method_sitemap.py \ bibexport_method_googlescholar.py \ bibexport_method_fieldexporter_webinterface.py \ diff --git a/modules/bibexport/lib/bibexport_model.py b/modules/bibexport/lib/bibexport_model.py new file mode 100644 index 0000000000..84c17abb21 --- /dev/null +++ b/modules/bibexport/lib/bibexport_model.py @@ -0,0 +1,157 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +bibexport database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +from websession_model import User + +class ExpJOB(db.Model): + """Represents a ExpJOB record.""" + def __init__(self): + pass + __tablename__ = 'expJOB' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + jobname = db.Column(db.String(50), nullable=False, + server_default='') + jobfreq = db.Column(db.MediumInteger(12), nullable=False, + server_default='0') + output_format = db.Column(db.MediumInteger(12), + nullable=False, + server_default='0') + deleted = db.Column(db.MediumInteger(12), nullable=False, + server_default='0') + lastrun = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + output_directory = db.Column(db.Text, nullable=True) + #users = db.relationship(User, secondary=UserExpJOB.__table__, + # backref='jobs') + +class UserExpJOB(db.Model): + """Represents a UserExpJOB record.""" + def __init__(self): + pass + __tablename__ = 'user_expJOB' + id_user = db.Column(db.Integer(15), db.ForeignKey(User.id), + nullable=False, + primary_key=True) + id_expJOB = db.Column(db.Integer(15), db.ForeignKey(ExpJOB.id), + nullable=False, + primary_key=True) + +class ExpJOBRESULT(db.Model): + """Represents a ExpJOBRESULT record.""" + def __init__(self): + pass + __tablename__ = 'expJOBRESULT' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + id_expJOB = db.Column(db.Integer(15), db.ForeignKey(ExpJOB.id), + nullable=False) + execution_time = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + status = db.Column(db.MediumInteger(12), nullable=False, + server_default='0') + status_message = db.Column(db.Text, nullable=False) + job = db.relationship(ExpJOB, backref='jobresults') + +#class ExpJOBExpQUERY(db.Model): +# """Represents a ExpJOBExpQUERY record.""" +# def __init__(self): +# pass +# __tablename__ = 'expJOB_expQUERY' +# id_expJOB = db.Column(db.Integer(15), db.ForeignKey('ExpJOB.id'), nullable=False, +# primary_key=True) +# id_expQUERY = db.Column(db.Integer(15), db.ForeignKey('ExpQUERY.id'), +# nullable=False, primary_key=True) + +EXPJOB_EXPQUERY = db.Table('expJOB_expQUERY', db.metadata, + db.Column('id_expJOB', db.Integer(15), db.ForeignKey(ExpJOB.id), + nullable=False, primary_key=True), + db.Column('id_expQUERY', db.Integer(15), db.ForeignKey('expQUERY.id'), + nullable=False, primary_key=True) +) + +class ExpQUERY(db.Model): + """Represents a ExpQUERY record.""" + def __init__(self): + pass + __tablename__ = 'expQUERY' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True, autoincrement=True) + name = db.Column(db.String(255), nullable=False) + search_criteria = db.Column(db.Text, nullable=False) + output_fields = db.Column(db.Text, nullable=False) + notes = db.Column(db.Text, nullable=True) + deleted = db.Column(db.MediumInteger(12), nullable=False, + server_default='0') + jobs = db.relationship(ExpJOB, secondary=EXPJOB_EXPQUERY, + backref='queries') + +class ExpQUERYRESULT(db.Model): + """Represents a ExpQUERYRESULT record.""" + def __init__(self): + pass + __tablename__ = 'expQUERYRESULT' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + id_expQUERY = db.Column(db.Integer(15), db.ForeignKey(ExpQUERY.id), + nullable=False) + result = db.Column(db.Text, nullable=False) + status = db.Column(db.MediumInteger(12), nullable=False, + server_default='0') + status_message = db.Column(db.Text, nullable=False) + query = db.relationship(ExpQUERY, backref='queryresults') +# jobresults = db.relationship(ExpJOBRESULT, +# secondary=expJOBRESULT_expQUERYRESULT, +# backref='queryresults') + +#class ExpJOBRESULTExpQUERYRESULT(db.Model): +# """Represents a ExpJOBRESULTExpQUERYRESULT record.""" +# def __init__(self): +# pass +# __tablename__ = 'expJOBRESULT_expQUERYRESULT' +# id_expJOBRESULT = db.Column(db.Integer(15), db.ForeignKey('ExpJOBRESULT.id'), +# nullable=False, primary_key=True) +# id_expQUERYRESULT = db.Column(db.Integer(15), db.ForeignKey('ExpQUERYRESULT.id'), +# nullable=False, primary_key=True) +# + +EXPJOBRESULT_EXPQUERYRESULT = db.Table('expJOBRESULT_expQUERYRESULT', db.metadata, + db.Column('id_expJOBRESULT', db.Integer(15), + db.ForeignKey(ExpJOBRESULT.id), + nullable=False, primary_key=True), + db.Column('id_expQUERYRESULT', db.Integer(15), + db.ForeignKey(ExpQUERYRESULT.id), + nullable=False, primary_key=True) +) + + diff --git a/modules/bibindex/lib/Makefile.am b/modules/bibindex/lib/Makefile.am index 3258fc2baf..8bed1004c6 100644 --- a/modules/bibindex/lib/Makefile.am +++ b/modules/bibindex/lib/Makefile.am @@ -17,6 +17,7 @@ pylibdir = $(libdir)/python/invenio pylib_DATA = bibindex_engine.py bibindex_engine_config.py bibindex_engine_unit_tests.py \ + bibindex_model.py \ bibindexadminlib.py bibindex_engine_stemmer.py bibindex_engine_stopwords.py \ bibindex_engine_stemmer_unit_tests.py bibindex_engine_stemmer_greek.py \ bibindex_engine_tokenizer.py bibindex_engine_tokenizer_unit_tests.py \ diff --git a/modules/bibindex/lib/bibindex_model.py b/modules/bibindex/lib/bibindex_model.py new file mode 100644 index 0000000000..99ad4d5d7a --- /dev/null +++ b/modules/bibindex/lib/bibindex_model.py @@ -0,0 +1,1489 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +bibindex database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +from bibedit_model import Bibrec + +class IdxINDEX(db.Model): + """Represents a IdxINDEX record.""" + def __init__(self): + pass + __tablename__ = 'idxINDEX' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True) + name = db.Column(db.String(50), unique=True, nullable=False, + server_default='') + description = db.Column(db.String(255), nullable=False, + server_default='') + last_updated = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + stemming_language = db.Column(db.String(10), nullable=False, + server_default='') + +class IdxINDEXNAME(db.Model): + """Represents a IdxINDEXNAME record.""" + def __init__(self): + pass + __tablename__ = 'idxINDEXNAME' + id_idxINDEX = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(IdxINDEX.id), primary_key=True) + ln = db.Column(db.Char(5), primary_key=True, + server_default='') + type = db.Column(db.Char(3), primary_key=True, + server_default='sn') + value = db.Column(db.String(255), nullable=False) + idxINDEX = db.relationship(IdxINDEX, backref='names') + +from websearch_model import Field + +class IdxINDEXField(db.Model): + """Represents a IdxINDEXField record.""" + def __init__(self): + pass + __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') + field = db.relationship(Field, backref='idxINDEXes') + +#GENERATED + +class IdxPAIR01F(db.Model): + """Represents a IdxPAIR01F record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR01F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPAIR01R(db.Model): + """Represents a IdxPAIR01R record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR01R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPAIR02F(db.Model): + """Represents a IdxPAIR02F record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR02F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPAIR02R(db.Model): + """Represents a IdxPAIR02R record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR02R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPAIR03F(db.Model): + """Represents a IdxPAIR03F record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR03F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPAIR03R(db.Model): + """Represents a IdxPAIR03R record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR03R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPAIR04F(db.Model): + """Represents a IdxPAIR04F record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR04F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPAIR04R(db.Model): + """Represents a IdxPAIR04R record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR04R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPAIR05F(db.Model): + """Represents a IdxPAIR05F record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR05F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPAIR05R(db.Model): + """Represents a IdxPAIR05R record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR05R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPAIR06F(db.Model): + """Represents a IdxPAIR06F record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR06F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPAIR06R(db.Model): + """Represents a IdxPAIR06R record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR06R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPAIR07F(db.Model): + """Represents a IdxPAIR07F record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR07F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPAIR07R(db.Model): + """Represents a IdxPAIR07R record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR07R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPAIR08F(db.Model): + """Represents a IdxPAIR08F record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR08F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPAIR08R(db.Model): + """Represents a IdxPAIR08R record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR08R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPAIR09F(db.Model): + """Represents a IdxPAIR09F record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR09F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPAIR09R(db.Model): + """Represents a IdxPAIR09R record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR09R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPAIR10F(db.Model): + """Represents a IdxPAIR10F record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR10F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPAIR10R(db.Model): + """Represents a IdxPAIR10R record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR10R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPAIR11F(db.Model): + """Represents a IdxPAIR11F record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR11F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPAIR11R(db.Model): + """Represents a IdxPAIR11R record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR11R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPAIR12F(db.Model): + """Represents a IdxPAIR12F record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR12F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPAIR12R(db.Model): + """Represents a IdxPAIR12R record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR12R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPAIR13F(db.Model): + """Represents a IdxPAIR13F record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR13F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPAIR13R(db.Model): + """Represents a IdxPAIR13R record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR13R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPAIR14F(db.Model): + """Represents a IdxPAIR14F record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR14F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPAIR14R(db.Model): + """Represents a IdxPAIR14R record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR14R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPAIR15F(db.Model): + """Represents a IdxPAIR15F record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR15F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPAIR15R(db.Model): + """Represents a IdxPAIR15R record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR15R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPAIR16F(db.Model): + """Represents a IdxPAIR16F record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR16F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPAIR16R(db.Model): + """Represents a IdxPAIR16R record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR16R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPAIR17F(db.Model): + """Represents a IdxPAIR17F record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR17F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPAIR17R(db.Model): + """Represents a IdxPAIR17R record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR17R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPAIR18F(db.Model): + """Represents a IdxPAIR18F record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR18F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPAIR18R(db.Model): + """Represents a IdxPAIR18R record.""" + def __init__(self): + pass + __tablename__ = 'idxPAIR18R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + + +class IdxPHRASE01F(db.Model): + """Represents a IdxPHRASE01F record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE01F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPHRASE01R(db.Model): + """Represents a IdxPHRASE01R record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE01R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPHRASE02F(db.Model): + """Represents a IdxPHRASE02F record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE02F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPHRASE02R(db.Model): + """Represents a IdxPHRASE02R record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE02R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPHRASE03F(db.Model): + """Represents a IdxPHRASE03F record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE03F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPHRASE03R(db.Model): + """Represents a IdxPHRASE03R record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE03R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPHRASE04F(db.Model): + """Represents a IdxPHRASE04F record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE04F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPHRASE04R(db.Model): + """Represents a IdxPHRASE04R record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE04R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPHRASE05F(db.Model): + """Represents a IdxPHRASE05F record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE05F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPHRASE05R(db.Model): + """Represents a IdxPHRASE05R record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE05R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPHRASE06F(db.Model): + """Represents a IdxPHRASE06F record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE06F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPHRASE06R(db.Model): + """Represents a IdxPHRASE06R record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE06R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPHRASE07F(db.Model): + """Represents a IdxPHRASE07F record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE07F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPHRASE07R(db.Model): + """Represents a IdxPHRASE07R record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE07R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPHRASE08F(db.Model): + """Represents a IdxPHRASE08F record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE08F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPHRASE08R(db.Model): + """Represents a IdxPHRASE08R record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE08R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPHRASE09F(db.Model): + """Represents a IdxPHRASE09F record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE09F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPHRASE09R(db.Model): + """Represents a IdxPHRASE09R record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE09R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPHRASE10F(db.Model): + """Represents a IdxPHRASE10F record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE10F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPHRASE10R(db.Model): + """Represents a IdxPHRASE10R record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE10R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPHRASE11F(db.Model): + """Represents a IdxPHRASE11F record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE11F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPHRASE11R(db.Model): + """Represents a IdxPHRASE11R record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE11R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPHRASE12F(db.Model): + """Represents a IdxPHRASE12F record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE12F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPHRASE12R(db.Model): + """Represents a IdxPHRASE12R record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE12R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPHRASE13F(db.Model): + """Represents a IdxPHRASE13F record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE13F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPHRASE13R(db.Model): + """Represents a IdxPHRASE13R record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE13R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPHRASE14F(db.Model): + """Represents a IdxPHRASE14F record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE14F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPHRASE14R(db.Model): + """Represents a IdxPHRASE14R record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE14R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPHRASE15F(db.Model): + """Represents a IdxPHRASE15F record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE15F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPHRASE15R(db.Model): + """Represents a IdxPHRASE15R record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE15R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPHRASE16F(db.Model): + """Represents a IdxPHRASE16F record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE16F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPHRASE16R(db.Model): + """Represents a IdxPHRASE16R record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE16R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPHRASE17F(db.Model): + """Represents a IdxPHRASE17F record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE17F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPHRASE17R(db.Model): + """Represents a IdxPHRASE17R record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE17R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxPHRASE18F(db.Model): + """Represents a IdxPHRASE18F record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE18F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(100), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxPHRASE18R(db.Model): + """Represents a IdxPHRASE18R record.""" + def __init__(self): + pass + __tablename__ = 'idxPHRASE18R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxWORD01F(db.Model): + """Represents a IdxWORD01F record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD01F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(50), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxWORD01R(db.Model): + """Represents a IdxWORD01R record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD01R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxWORD02F(db.Model): + """Represents a IdxWORD02F record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD02F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(50), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxWORD02R(db.Model): + """Represents a IdxWORD02R record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD02R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxWORD03F(db.Model): + """Represents a IdxWORD03F record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD03F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(50), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxWORD03R(db.Model): + """Represents a IdxWORD03R record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD03R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxWORD04F(db.Model): + """Represents a IdxWORD04F record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD04F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(50), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxWORD04R(db.Model): + """Represents a IdxWORD04R record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD04R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxWORD05F(db.Model): + """Represents a IdxWORD05F record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD05F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(50), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxWORD05R(db.Model): + """Represents a IdxWORD05R record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD05R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxWORD06F(db.Model): + """Represents a IdxWORD06F record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD06F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(50), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxWORD06R(db.Model): + """Represents a IdxWORD06R record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD06R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxWORD07F(db.Model): + """Represents a IdxWORD07F record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD07F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(50), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxWORD07R(db.Model): + """Represents a IdxWORD07R record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD07R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxWORD08F(db.Model): + """Represents a IdxWORD08F record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD08F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(50), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxWORD08R(db.Model): + """Represents a IdxWORD08R record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD08R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxWORD09F(db.Model): + """Represents a IdxWORD09F record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD09F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(50), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxWORD09R(db.Model): + """Represents a IdxWORD09R record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD09R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxWORD10F(db.Model): + """Represents a IdxWORD10F record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD10F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(50), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxWORD10R(db.Model): + """Represents a IdxWORD10R record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD10R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxWORD11F(db.Model): + """Represents a IdxWORD11F record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD11F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(50), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxWORD11R(db.Model): + """Represents a IdxWORD11R record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD11R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxWORD12F(db.Model): + """Represents a IdxWORD12F record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD12F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(50), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxWORD12R(db.Model): + """Represents a IdxWORD12R record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD12R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxWORD13F(db.Model): + """Represents a IdxWORD13F record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD13F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(50), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxWORD13R(db.Model): + """Represents a IdxWORD13R record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD13R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxWORD14F(db.Model): + """Represents a IdxWORD14F record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD14F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(50), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxWORD14R(db.Model): + """Represents a IdxWORD14R record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD14R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxWORD15F(db.Model): + """Represents a IdxWORD15F record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD15F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(50), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxWORD15R(db.Model): + """Represents a IdxWORD15R record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD15R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxWORD16F(db.Model): + """Represents a IdxWORD16F record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD16F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(50), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxWORD16R(db.Model): + """Represents a IdxWORD16R record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD16R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxWORD17F(db.Model): + """Represents a IdxWORD17F record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD17F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(50), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxWORD17R(db.Model): + """Represents a IdxWORD17R record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD17R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + +class IdxWORD18F(db.Model): + """Represents a IdxWORD18F record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD18F' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + term = db.Column(db.String(50), nullable=True, + index=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class IdxWORD18R(db.Model): + """Represents a IdxWORD18R record.""" + def __init__(self): + pass + __tablename__ = 'idxWORD18R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', + primary_key=True) + diff --git a/modules/bibknowledge/lib/Makefile.am b/modules/bibknowledge/lib/Makefile.am index bb96cd4d54..cace95ed8d 100644 --- a/modules/bibknowledge/lib/Makefile.am +++ b/modules/bibknowledge/lib/Makefile.am @@ -23,6 +23,7 @@ pylib_DATA = bibknowledge_webinterface.py \ bibknowledgeadminlib.py \ bibknowledge_templates.py \ bibknowledge_dblayer.py \ + bibknowledge_model.py \ bibknowledge_unit_tests.py \ bibknowledge_regression_tests.py diff --git a/modules/bibknowledge/lib/bibknowledge_model.py b/modules/bibknowledge/lib/bibknowledge_model.py new file mode 100644 index 0000000000..ca36991867 --- /dev/null +++ b/modules/bibknowledge/lib/bibknowledge_model.py @@ -0,0 +1,75 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +bibknowledge database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +from websearch_model import Collection + +class KnwKB(db.Model): + """Represents a KnwKB record.""" + def __init__(self): + pass + __tablename__ = 'knwKB' + id = db.Column(db.MediumInteger(8, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + name = db.Column(db.String(255), server_default='') + description = db.Column(db.Text, nullable=True) + kbtype = db.Column(db.Char(1), nullable=True) + +class KnwKBDDEF(db.Model): + """Represents a KnwKBDDEF record.""" + def __init__(self): + pass + __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(9), 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='kbdefs') + collection = db.relationship(Collection, backref='kbdefs') + +class KnwKBRVAL(db.Model): + """Represents a KnwKBRVAL record.""" + def __init__(self): + pass + __tablename__ = 'knwKBRVAL' + id = db.Column(db.MediumInteger(8, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + m_key = db.Column(db.String(255), nullable=False, server_default='', + index=True) + m_value = db.Column(db.Text(30), nullable=False, + index=True) + id_knwKB = db.Column(db.MediumInteger(8), db.ForeignKey(KnwKB.id), nullable=False, + server_default='0') + kb = db.relationship(KnwKB, backref='kbrvals') + diff --git a/modules/bibrank/lib/Makefile.am b/modules/bibrank/lib/Makefile.am index 1e99540e42..989674704a 100644 --- a/modules/bibrank/lib/Makefile.am +++ b/modules/bibrank/lib/Makefile.am @@ -26,6 +26,7 @@ pylib_DATA = bibrankadminlib.py \ bibrank_grapher.py bibrank_downloads_grapher.py bibrank_citation_grapher.py \ bibrank_citation_indexer.py bibrank_citation_indexer_unit_tests.py \ bibrank_citation_searcher.py bibrank_citation_searcher_unit_tests.py \ + bibrank_model.py \ bibrank_regression_tests.py bibrank.py \ bibrankadmin_regression_tests.py \ bibrankgkb.py \ diff --git a/modules/bibrank/lib/bibrank_model.py b/modules/bibrank/lib/bibrank_model.py new file mode 100644 index 0000000000..9e24824786 --- /dev/null +++ b/modules/bibrank/lib/bibrank_model.py @@ -0,0 +1,174 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +bibrank database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +from websession_model import User +from bibedit_model import Bibrec, Bibdoc + +class RnkMETHOD(db.Model): + """Represents a RnkMETHOD record.""" + def __init__(self): + pass + __tablename__ = 'rnkMETHOD' + id = db.Column(db.MediumInteger(9, unsigned=True), primary_key=True, + nullable=False) + name = db.Column(db.String(20), unique=True, nullable=False, + server_default='') + last_updated = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + +class RnkMETHODDATA(db.Model): + """Represents a RnkMETHODDATA record.""" + def __init__(self): + pass + __tablename__ = 'rnkMETHODDATA' + id_rnkMETHOD = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(RnkMETHOD.id), nullable=False, primary_key=True) + relevance_data = db.Column(db.iLargeBinary, nullable=True) + +class RnkMETHODNAME(db.Model): + """Represents a RnkMETHODNAME record.""" + def __init__(self): + pass + __tablename__ = 'rnkMETHODNAME' + id_rnkMETHOD = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(RnkMETHOD.id), primary_key=True) + ln = db.Column(db.Char(5), primary_key=True, + server_default='') + type = db.Column(db.Char(3), primary_key=True, + server_default='sn') + value = db.Column(db.String(255), nullable=False) + method = db.relationship(RnkMETHOD, backref='names') + +class RnkCITATIONDATA(db.Model): + """Represents a RnkCITATIONDATA record.""" + def __init__(self): + pass + __tablename__ = 'rnkCITATIONDATA' + id = db.Column(db.MediumInteger(8, unsigned=True), primary_key=True, + nullable=False) + object_name = db.Column(db.String(20), unique=True, + nullable=False) + object_value = db.Column(db.iLargeBinary, nullable=True) + last_updated = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + + +class RnkCITATIONDATAEXT(db.Model): + """Represents a RnkCITATIONDATAEXT record.""" + def __init__(self): + pass + __tablename__ = 'rnkCITATIONDATAEXT' + id_bibrec = db.Column(db.Integer(8, unsigned=True), + db.ForeignKey(Bibrec.id), + primary_key=True, nullable=False, + server_default='0') + extcitepubinfo = db.Column(db.String(255), primary_key=True, + nullable=False, + index=True) + +class RnkAUTHORDATA(db.Model): + """Represents a RnkAUTHORDATA record.""" + def __init__(self): + pass + __tablename__ = 'rnkAUTHORDATA' + aterm = db.Column(db.String(50), primary_key=True, + nullable=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class RnkDOWNLOADS(db.Model): + """Represents a RnkDOWNLOADS record.""" + def __init__(self): + pass + __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='0000-00-00 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(10), nullable=True) + bibrec = db.relationship(Bibrec, backref='downloads') + bibdoc = db.relationship(Bibdoc, backref='downloads') + user = db.relationship(User, backref='downloads') + +class RnkPAGEVIEWS(db.Model): + """Represents a RnkPAGEVIEWS record.""" + def __init__(self): + pass + __tablename__ = 'rnkPAGEVIEWS' + id = db.Column(db.MediumInteger, primary_key=True, + nullable=False, + autoincrement=True) + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), nullable=True, + primary_key=True) + id_user = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(User.id), + server_default='0', primary_key=True) + client_host = db.Column(db.Integer(10, unsigned=True), + nullable=True) + view_time = db.Column(db.DateTime, primary_key=True, + server_default='0000-00-00 00:00:00') + bibrec = db.relationship(Bibrec, backref='pageviews') + user = db.relationship(User, backref='pageviews') + +class RnkWORD01F(db.Model): + """Represents a RnkWORD01F record.""" + def __init__(self): + pass + __tablename__ = 'rnkWORD01F' + id = db.Column(db.MediumInteger(9, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + term = db.Column(db.String(50), nullable=True) + hitlist = db.Column(db.iLargeBinary, nullable=True) + +class RnkWORD01R(db.Model): + """Represents a RnkWORD01R record.""" + def __init__(self): + pass + __tablename__ = 'rnkWORD01R' + id_bibrec = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Bibrec.id), nullable=False, primary_key=True) + termlist = db.Column(db.iLargeBinary, nullable=True) + type = db.Column(db.Enum('CURRENT', 'FUTURE', 'TEMPORARY'), + nullable=False, + server_default='CURRENT', primary_key=True) + bibrec = db.relationship(Bibrec, backref='word01rs') + + diff --git a/modules/bibsched/lib/Makefile.am b/modules/bibsched/lib/Makefile.am index 93c2c6a834..8e6db7db18 100644 --- a/modules/bibsched/lib/Makefile.am +++ b/modules/bibsched/lib/Makefile.am @@ -21,6 +21,7 @@ pylibdir = $(libdir)/python/invenio pylib_DATA = \ bibsched.py \ + bibsched_model.py \ bibtask.py \ bibtaskex.py \ bibtask_config.py \ diff --git a/modules/bibsched/lib/bibsched_model.py b/modules/bibsched/lib/bibsched_model.py new file mode 100644 index 0000000000..569d30a663 --- /dev/null +++ b/modules/bibsched/lib/bibsched_model.py @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +bibsched database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +class HstTASK(db.Model): + """Represents a HstTASK record.""" + def __init__(self): + pass + __tablename__ = 'hstTASK' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True) #, + #autoincrement=True) + proc = db.Column(db.String(20), nullable=False) + host = db.Column(db.String(255), nullable=False, + server_default='') + user = db.Column(db.String(50), nullable=False) + e = db.Column(db.DateTime, nullable=False) + sleeptime = db.Column(db.String(20), nullable=True) + arguments = db.Column(db.iMediumBinary, nullable=True) + status = db.Column(db.String(50), nullable=True) + progress = db.Column(db.String(255), nullable=True) + priority = db.Column(db.TinyInteger(4), nullable=False, + server_default='0') + +class SchTASK(db.Model): + """Represents a SchTASK record.""" + def __init__(self): + pass + __tablename__ = 'schTASK' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + proc = db.Column(db.String(20), nullable=False) + host = db.Column(db.String(255), nullable=False, + server_default='') + user = db.Column(db.String(50), nullable=False) + runtime = db.Column(db.DateTime, nullable=False) + sleeptime = db.Column(db.String(20), nullable=True) + arguments = db.Column(db.iMediumBinary, nullable=True) + status = db.Column(db.String(50), nullable=True) + progress = db.Column(db.String(255), nullable=True) + priority = db.Column(db.TinyInteger(4), nullable=False, + server_default='0') + diff --git a/modules/bibsword/lib/Makefile.am b/modules/bibsword/lib/Makefile.am index b049a528fb..386a702d77 100644 --- a/modules/bibsword/lib/Makefile.am +++ b/modules/bibsword/lib/Makefile.am @@ -23,6 +23,7 @@ pylib_DATA = bibsword_config.py \ bibsword_client_http.py \ bibsword_client.py \ bibsword_client_templates.py \ + bibsword_model.py \ bibsword_webinterface.py \ bibsword_client_tester.py diff --git a/modules/bibsword/lib/bibsword_model.py b/modules/bibsword/lib/bibsword_model.py new file mode 100644 index 0000000000..2cbadc616a --- /dev/null +++ b/modules/bibsword/lib/bibsword_model.py @@ -0,0 +1,93 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +bibsword database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +from websession_model import User +from bibedit_model import Bibrec + +class SwrREMOTESERVER(db.Model): + """Represents a SwrREMOTESERVER record.""" + def __init__(self): + pass + __tablename__ = 'swrREMOTESERVER' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + name = db.Column(db.String(50), nullable=False) + host = db.Column(db.String(50), nullable=False) + username = db.Column(db.String(50), nullable=False) + password = db.Column(db.String(50), nullable=False) + email = db.Column(db.String(50), nullable=False) + realm = db.Column(db.String(50), nullable=False) + url_base_record = db.Column(db.String(50), nullable=False) + url_servicedocument = db.Column(db.String(80), + nullable=False) + xml_servicedocument = db.Column(db.iLargeBinary, + nullable=True) + last_update = db.Column(db.Integer(15, unsigned=True), + nullable=False) + +class SwrCLIENTDATA(db.Model): + """Represents a SwrCLIENTDATA record.""" + def __init__(self): + pass + __tablename__ = 'swrCLIENTDATA' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + id_swrREMOTESERVER = db.Column(db.Integer(15), db.ForeignKey(SwrREMOTESERVER.id), + nullable=False) + id_record = db.Column(db.Integer(15), db.ForeignKey(Bibrec.id), + nullable=False) + report_no = db.Column(db.String(50), nullable=False) + id_remote = db.Column(db.String(50), nullable=False) + id_user = db.Column(db.Integer(15), db.ForeignKey(User.id), + nullable=False) + user_name = db.Column(db.String(100), nullable=False) + user_email = db.Column(db.String(100), nullable=False) + xml_media_deposit = db.Column(db.iLargeBinary, + nullable=False) + xml_metadata_submit = db.Column(db.iLargeBinary, + nullable=False) + submission_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + publication_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + removal_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + link_medias = db.Column(db.String(150), nullable=False) + link_metadata = db.Column(db.String(150), nullable=False) + link_status = db.Column(db.String(150), nullable=False) + status = db.Column(db.String(150), nullable=False, + server_default='submitted') + last_update = db.Column(db.DateTime, nullable=False) + remoteserver = db.relationship(SwrREMOTESERVER, + backref='clientdata') + user = db.relationship(User, backref='clientdata') + bibrec = db.relationship(Bibrec) diff --git a/modules/bibupload/lib/Makefile.am b/modules/bibupload/lib/Makefile.am index d46d299a0c..8afabd3a48 100644 --- a/modules/bibupload/lib/Makefile.am +++ b/modules/bibupload/lib/Makefile.am @@ -19,6 +19,7 @@ pylibdir = $(libdir)/python/invenio pylib_DATA = bibupload_config.py \ bibupload.py \ + bibupload_model.py \ bibupload_regression_tests.py \ batchuploader_webinterface.py \ batchuploader_engine.py \ diff --git a/modules/bibupload/lib/bibupload_model.py b/modules/bibupload/lib/bibupload_model.py new file mode 100644 index 0000000000..de1940f6b5 --- /dev/null +++ b/modules/bibupload/lib/bibupload_model.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +bibupload database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +from bibsched_model import SchTASK + +class HstBATCHUPLOAD(db.Model): + """Represents a HstBATCHUPLOAD record.""" + def __init__(self): + pass + __tablename__ = 'hstBATCHUPLOAD' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + user = db.Column(db.String(50), nullable=False) + submitdate = db.Column(db.DateTime, nullable=False) + filename = db.Column(db.String(255), nullable=False) + execdate = db.Column(db.DateTime, nullable=False) + id_schTASK = db.Column(db.Integer(15, unsigned=True), db.ForeignKey(SchTASK.id), + nullable=False) + batch_mode = db.Column(db.String(15), nullable=False) + task = db.relationship(SchTASK, backref='batchuploads') + diff --git a/modules/miscutil/lib/Makefile.am b/modules/miscutil/lib/Makefile.am index ac73a9acdb..1f07613429 100644 --- a/modules/miscutil/lib/Makefile.am +++ b/modules/miscutil/lib/Makefile.am @@ -22,6 +22,7 @@ pylibdir = $(libdir)/python/invenio pylib_DATA = __init__.py \ errorlib.py \ errorlib_unit_tests.py \ + errorlib_model.py \ errorlib_webinterface.py \ errorlib_regression_tests.py \ data_cacher.py \ @@ -35,6 +36,7 @@ pylib_DATA = __init__.py \ logicutils_unit_tests.py \ mailutils.py \ miscutil_config.py \ + miscutil_model.py \ messages.py \ messages_unit_tests.py \ textutils.py \ @@ -58,6 +60,8 @@ pylib_DATA = __init__.py \ inveniocfg_unit_tests.py \ shellutils.py \ shellutils_unit_tests.py \ + sqlalchemyutils.py \ + sqlalchemyutils_mysql.py \ pluginutils.py \ pluginutils_unit_tests.py \ plotextractor.py \ diff --git a/modules/miscutil/lib/errorlib_model.py b/modules/miscutil/lib/errorlib_model.py new file mode 100644 index 0000000000..92e31f1ab7 --- /dev/null +++ b/modules/miscutil/lib/errorlib_model.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +errorlib database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +class HstEXCEPTION(db.Model): + """Represents a HstEXCEPTION record.""" + def __init__(self): + pass + __tablename__ = 'hstEXCEPTION' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + name = db.Column(db.String(50), nullable=False) + filename = db.Column(db.String(255), nullable=True) + line = db.Column(db.Integer(9), nullable=True) + last_seen = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + last_notified = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + counter = db.Column(db.Integer(15), nullable=False, + server_default='0') + total = db.Column(db.Integer(15), nullable=False, + server_default='0') + + diff --git a/modules/miscutil/lib/miscutil_model.py b/modules/miscutil/lib/miscutil_model.py new file mode 100644 index 0000000000..698deee3ed --- /dev/null +++ b/modules/miscutil/lib/miscutil_model.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +misc database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +class Publreq(db.Model): + """Represents a Publreq record.""" + def __init__(self): + pass + __tablename__ = 'publreq' + id = db.Column(db.Integer(11), nullable=False, + primary_key=True, + autoincrement=True) + host = db.Column(db.String(255), nullable=False, + server_default='') + date = db.Column(db.String(255), nullable=False, + server_default='') + name = db.Column(db.String(255), nullable=False, + server_default='') + email = db.Column(db.String(255), nullable=False, + server_default='') + address = db.Column(db.Text, nullable=False) + publication = db.Column(db.Text, nullable=False) diff --git a/modules/miscutil/lib/sqlalchemyutils.py b/modules/miscutil/lib/sqlalchemyutils.py new file mode 100644 index 0000000000..b8751bf6f9 --- /dev/null +++ b/modules/miscutil/lib/sqlalchemyutils.py @@ -0,0 +1,193 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + +import sqlalchemy +import sqlalchemy.orm +from sqlalchemy import create_engine +from sqlalchemy.orm import scoped_session, sessionmaker, class_mapper, \ + properties +from sqlalchemy.ext.declarative import declarative_base +from sqlalchemy.ext.serializer import loads, dumps +from sqlalchemy.orm.collections import column_mapped_collection, \ + attribute_mapped_collection, mapped_collection + +def getRelationships(self): + retval = list() + mapper = class_mapper(self) + actualNameToSynonym = dict() + relationships = set() + + for prop in mapper.iterate_properties: + if isinstance(prop, properties.SynonymProperty): + actualNameToSynonym[prop.name] = prop.key + # dictionary <_userName, userName, userGroup, _userGroup> + + elif isinstance(prop, properties.RelationshipProperty): + relationships.add(prop.key) + #set with _userGroup, and rest of relationships + + for relationship in relationships: + retval.append(actualNameToSynonym[relationship]) + + return retval + +def todict(self): + #def convert_datetime(value): + # return value.strftime("%Y-%m-%d %H:%M:%S") + + d = {} + for c in self.__table__.columns: + #NOTE This hack is not needed if you redefine types.TypeDecorator for + # desired classes (Binary, LargeBinary, ...) + ##if isinstance(c.type, sqlalchemy.Binary): + ## value = base64.encodestring(getattr(self, c.name)) + ###if isinstance(c.type, sqlalchemy.DateTime): + ### value = convert_datetime(getattr(self, c.name)) + ##else: + value = getattr(self, c.name) + yield(c.name, value) + +def fromdict(self, args): + """ + """ + #NOTE Why not to do things simple ... + self.__dict__.update(args) + + #for c in self.__table__.columns: + # name = str(c).split('.')[1] + # try: + # d = args[name] + # except: + # continue + # + # setattr(self, c.name, d) + +def iterfunc(self): + """Returns an iterable that supports .next() + so we can do dict(sa_instance) + + """ + return self.todict() + +# Global variables +from invenio.config import CFG_DATABASE_HOST, CFG_DATABASE_PORT,\ + CFG_DATABASE_NAME, CFG_DATABASE_USER, CFG_DATABASE_PASS + +# TODO Add to invenio.config +CFG_DATABASE_TYPE = 'mysql' + +from sqlalchemy.ext.compiler import compiles +from sqlalchemy.sql.expression import ColumnClause, FunctionElement + +class AsBINARY(FunctionElement): + name = 'AsBINARY' + +@compiles(AsBINARY) +def compile(element, compiler, **kw): + return "BINARY %s" % compiler.process(element.clauses) + +def _include_sqlalchemy(obj): + for module in sqlalchemy, sqlalchemy.orm: + for key in module.__all__: + if not hasattr(obj, key): + setattr(obj, key, + getattr(module, key)) + + if CFG_DATABASE_TYPE == 'mysql': + import invenio.sqlalchemyutils_mysql + module = invenio.sqlalchemyutils_mysql + for key in module.__dict__: + setattr(obj, key, + getattr(module, key)) + + obj.AsBINARY = AsBINARY + +def _model_plugin_builder(plugin_name, plugin_code): + #print plugin_name + return plugin_code + +def load_all_model_files(db=None): + """Load all SQLAlchemy database models.""" + import os + import invenio + from invenio.config import CFG_PYLIBDIR + from invenio.pluginutils import PluginContainer + models = os.path.join(CFG_PYLIBDIR, 'invenio', '*_model.py') + return PluginContainer(models, + plugin_builder=_model_plugin_builder).values() + +class InvenioDB(object): + """Invenio database object.""" + def __init__(self, use_native_unicode=True, + session_extensions=None, session_options=None): + self.use_native_unicode = use_native_unicode + + self.engine = create_engine('%(t)s://%(u)s:%(p)s@%(h)s/%(n)s' % \ + {'t': CFG_DATABASE_TYPE, + 'u': CFG_DATABASE_USER, + 'p': CFG_DATABASE_PASS, + 'h': CFG_DATABASE_HOST, + 'n': CFG_DATABASE_NAME}, echo=True, encoding='utf-8', + connect_args={'use_unicode':False, 'charset':'utf8'}) + self.session = scoped_session(sessionmaker(autocommit=False, + autoflush=False, + bind=self.engine)) + + self.Model = declarative_base() + self.Model.metadata.bind = self.engine + self.Model.query = self.session.query_property() + self.Model.todict = todict + self.Model.fromdict = fromdict + self.Model.__iter__ = iterfunc + #self.Model.__table_args__ = { + # 'extend_existing':True, + # 'mysql_engine':'MyISAM', + # 'mysql_charset':'utf8' + # } + + _include_sqlalchemy(self) + #self.Query = sqlalchemy.orm.Query + + @property + def metadata(self): + """Returns the metadata""" + return self.Model.metadata + + def __getattr__(self, name): + # This is only called when the normal mechanism fails, so in practice + # should never be called. + # It is only provided to satisfy pylint that it is okay not to + # raise E1101 errors in the client code. + # :see http://stackoverflow.com/a/3515234/780928 + raise AttributeError("%r instance has no attribute %r" % (self, name)) + + def schemadiff(self, excludeTables=None): + from migrate.versioning import schemadiff + for m in load_all_model_files(): + exec("from %s import *"%(m.__name__)) + return schemadiff.getDiffOfModelAgainstDatabase(self.metadata, + self.engine, excludeTables=excludeTables) + + +db = InvenioDB() + + + diff --git a/modules/miscutil/lib/sqlalchemyutils_mysql.py b/modules/miscutil/lib/sqlalchemyutils_mysql.py new file mode 100644 index 0000000000..d3c599a7b6 --- /dev/null +++ b/modules/miscutil/lib/sqlalchemyutils_mysql.py @@ -0,0 +1,171 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + +import base64 + +# SQLAlchemy +import sqlalchemy +from sqlalchemy import Table, Index, Column, MetaData, ForeignKey,\ + Date, DateTime, Enum, DateTime, Float +from sqlalchemy.dialects.mysql import DOUBLE as Double +from sqlalchemy.dialects.mysql import INTEGER as Integer +from sqlalchemy.dialects.mysql import TEXT as Text +from sqlalchemy.dialects.mysql import TINYTEXT as TinyText +from sqlalchemy.dialects.mysql import BIGINT as BigInteger +from sqlalchemy.dialects.mysql import MEDIUMINT as MediumInteger +from sqlalchemy.dialects.mysql import SMALLINT as SmallInteger +from sqlalchemy.dialects.mysql import TINYINT as TinyInteger +from sqlalchemy.dialects.mysql import VARCHAR as String +from sqlalchemy.dialects.mysql import CHAR as Char +from sqlalchemy.dialects.mysql import TIMESTAMP as TIMESTAMP +from sqlalchemy.dialects.mysql import BLOB as Binary +from sqlalchemy.dialects.mysql import BLOB as LargeBinary +from sqlalchemy.orm import relationship, backref, class_mapper + +import sqlalchemy.types as types +from sqlalchemy.ext.compiler import compiles + +#from sqlalchemy import Binary, LargeBinary +from sqlalchemy.schema import CreateIndex, PrimaryKeyConstraint +from sqlalchemy.dialects.mysql.mysqldb import MySQLIdentifierPreparer_mysqldb + +@compiles(CreateIndex, 'mysql') +def visit_create_index(element, compiler, **kw): + """Returns create index statement with defined length for text field. + + example: + CREATE TABLE tableA + ... + description TEXT(40) + ... + INDEX ix_tableA_description ON (description(40)) + """ + index = element.element + #preparer = compiler.dialect.preparer + preparer = MySQLIdentifierPreparer_mysqldb + text = "CREATE " + if index.unique: + text += "UNIQUE " + text += "INDEX `%s` ON `%s` (%s)" \ + % (index.name, #(preparer.quote(compiler._index_identifier(index.name), index.quote), + index.table, #preparer.format_table(index.table), + ', '.join('`' + c.name + '`' + #preparer.quote(c.name, c.quote) + + ((str(c.type).startswith('TEXT') and (c.type.length != None)) + and '(%d)' % c.type.length or '') + for c in index.columns)) + + return text + +@compiles(PrimaryKeyConstraint, 'mysql') +def visit_primary_key_constraint(*element): + """Returns create primary key constrains with defined length for text field. + + """ + constraint, compiler = element + if len(constraint) == 0: + return '' + text = "" + if constraint.name is not None: + text += "CONSTRAINT %s " % \ + compiler.preparer.format_constraint(constraint) + text += "PRIMARY KEY " + text += "(%s)" % ', '.join(compiler.preparer.quote(c.name, c.quote) + + ((str(c.type).startswith('TEXT') and (c.type.length != None)) + and '(%d)' % c.type.length + or '' + ) + for c in constraint) + text += compiler.define_constraint_deferrability(constraint) + return text + +@compiles(types.Text, 'mysql') +@compiles(sqlalchemy.dialects.mysql.TEXT, 'mysql') +def compile_text(element, compiler, **kw): + return 'TEXT' + +@compiles(types.Binary, 'mysql') +def compile_binary(element, compiler, **kw): + return 'BLOB' + +@compiles(types.LargeBinary, 'mysql') +def compile_largebinary(element, compiler, **kw): + return 'LONGBLOB' + +from sqlalchemy.types import TypeDecorator + +class iBinary(TypeDecorator): + """Printable binary type. + """ + impl = types.Binary + def __init__(self, *arg, **kw): + self.__class__.impl = self.impl; + TypeDecorator.__init__(self, *arg, **kw) + + def process_bind_param(self, value, dialect): + """Decodes string before saving to database. + """ + return (value != None) and base64.decodestring(value) or None + + def process_result_value(self, value, dialect): + """Encode binary data to string. + """ + return (value != None) and base64.encodestring(value) or None + + +class iLargeBinary(TypeDecorator): + """Printable large binary type. + """ + impl = types.LargeBinary + def __init__(self, *arg, **kw): + self.__class__.impl = self.impl; + TypeDecorator.__init__(self, *arg, **kw) + + def process_bind_param(self, value, dialect): + """Decodes string before saving to database. + """ + return (value != None) and base64.decodestring(value) or None + + def process_result_value(self, value, dialect): + """Encode binary data to string. + """ + return (value != None) and base64.encodestring(value) or None + + + +class iMediumBinary(TypeDecorator): + """Printable large binary type. + """ + impl = sqlalchemy.dialects.mysql.MEDIUMBLOB + def __init__(self, *arg, **kw): + self.__class__.impl = self.impl; + TypeDecorator.__init__(self, *arg, **kw) + + def process_bind_param(self, value, dialect): + """Decodes string before saving to database. + """ + return (value != None) and base64.decodestring(value) or None + + def process_result_value(self, value, dialect): + """Encode binary data to string. + """ + return (value != None) and base64.encodestring(value) or None + + diff --git a/modules/oaiharvest/lib/Makefile.am b/modules/oaiharvest/lib/Makefile.am index df53f8abf1..caf369bd01 100644 --- a/modules/oaiharvest/lib/Makefile.am +++ b/modules/oaiharvest/lib/Makefile.am @@ -24,6 +24,7 @@ pylib_DATA = oai_harvest_getter.py \ oai_harvest_admin_regression_tests.py \ oai_harvest_daemon.py \ oai_harvest_config.py \ + oai_harvest_model.py \ oai_harvest_web_tests.py EXTRA_DIST = $(pylib_DATA) diff --git a/modules/oaiharvest/lib/oai_harvest_model.py b/modules/oaiharvest/lib/oai_harvest_model.py new file mode 100644 index 0000000000..547a863216 --- /dev/null +++ b/modules/oaiharvest/lib/oai_harvest_model.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +Oai harvest database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +#from websearch_model import Collection +from bibedit_model import Bibrec +from bibsched_model import SchTASK + +class OaiHARVEST(db.Model): + """Represents a OaiHARVEST record.""" + def __init__(self): + pass + __tablename__ = 'oaiHARVEST' + id = db.Column(db.MediumInteger(9, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + baseurl = db.Column(db.String(255), nullable=False, + server_default='') + metadataprefix = db.Column(db.String(255), nullable=False, + server_default='oai_dc') + arguments = db.Column(db.Text, nullable=True) + comment = db.Column(db.Text, nullable=True) + bibconvertcfgfile = db.Column(db.String(255), + nullable=True) + name = db.Column(db.String(255), nullable=False) + lastrun = db.Column(db.DateTime, nullable=True) + frequency = db.Column(db.MediumInteger(12), nullable=False, + server_default='0') + postprocess = db.Column(db.String(20), nullable=False, + server_default='h') + bibfilterprogram = db.Column(db.String(255), nullable=False, + server_default='') + setspecs = db.Column(db.Text, nullable=False) + + +class OaiREPOSITORY(db.Model): + """Represents a OaiREPOSITORY record.""" + def __init__(self): + pass + __tablename__ = 'oaiREPOSITORY' + id = db.Column(db.MediumInteger(9, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + setName = db.Column(db.String(255), nullable=False, + server_default='') + setSpec = db.Column(db.String(255), nullable=False, + server_default='') + setCollection = db.Column(db.String(255), nullable=False, + server_default='') + setDescription = db.Column(db.Text, nullable=False) + setDefinition = db.Column(db.Text, nullable=False) + setRecList = db.Column(db.iLargeBinary, nullable=True) + p1 = db.Column(db.Text, nullable=False) + f1 = db.Column(db.Text, nullable=False) + m1 = db.Column(db.Text, nullable=False) + p2 = db.Column(db.Text, nullable=False) + f2 = db.Column(db.Text, nullable=False) + m2 = db.Column(db.Text, nullable=False) + p3 = db.Column(db.Text, nullable=False) + f3 = db.Column(db.Text, nullable=False) + m3 = db.Column(db.Text, nullable=False) + + +class OaiHARVESTLOG(db.Model): + """Represents a OaiHARVESTLOG record.""" + def __init__(self): + pass + __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='0000-00-00 00:00:00', + primary_key=True) + date_inserted = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 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) + + diff --git a/modules/refextract/lib/Makefile.am b/modules/refextract/lib/Makefile.am index bfbfeeb361..1eef43e274 100644 --- a/modules/refextract/lib/Makefile.am +++ b/modules/refextract/lib/Makefile.am @@ -20,6 +20,7 @@ pylibdir = $(libdir)/python/invenio pylib_DATA = refextract_cli.py \ refextract_daemon.py \ refextract_config.py \ + refextract_model.py \ refextract.py \ refextract_unit_tests.py \ refextract_authextract_unit_tests.py diff --git a/modules/refextract/lib/refextract_model.py b/modules/refextract/lib/refextract_model.py new file mode 100644 index 0000000000..edea3b81eb --- /dev/null +++ b/modules/refextract/lib/refextract_model.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +RefExtract database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +class XtrJOB(db.Model): + """Represents a XtrJOB record.""" + def __init__(self): + pass + + __tablename__ = 'xtrJOB' + + id = db.Column(db.Integer, primary_key=True, nullable=False) + name = db.Column(db.String, nullable=False) + last_updated = db.Column(db.DateTime, nullable=False) + diff --git a/modules/webaccess/lib/Makefile.am b/modules/webaccess/lib/Makefile.am index c9e98a89b2..5afea8552c 100644 --- a/modules/webaccess/lib/Makefile.am +++ b/modules/webaccess/lib/Makefile.am @@ -31,6 +31,7 @@ pylib_DATA = access_control_engine.py \ external_authentication_cern_unit_tests.py \ external_authentication_sso.py \ external_authentication_robot.py \ + webaccess_model.py \ webaccess_regression_tests.py noinst_DATA = collection_restrictions_migration_kit.py diff --git a/modules/webaccess/lib/webaccess_model.py b/modules/webaccess/lib/webaccess_model.py new file mode 100644 index 0000000000..2e0aaabe4d --- /dev/null +++ b/modules/webaccess/lib/webaccess_model.py @@ -0,0 +1,126 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +webaccess database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +from websession_model import User + +class AccACTION(db.Model): + """Represents a AccACTION record.""" + def __init__(self): + pass + __tablename__ = 'accACTION' + id = db.Column(db.Integer(15, unsigned=True), + primary_key=True, + autoincrement=True) + name = db.Column(db.String(32), unique=True, + nullable=True) + description = db.Column(db.String(255), nullable=True) + allowedkeywords = db.Column(db.String(255), nullable=True) + optional = db.Column(db.Enum('yes', 'no'), nullable=False, + server_default='no') + +class AccARGUMENT(db.Model): + """Represents a AccARGUMENT record.""" + def __init__(self): + pass + __tablename__ = 'accARGUMENT' + id = db.Column(db.Integer(15, unsigned=True), + primary_key=True, + autoincrement=True) + keyword = db.Column(db.String(32), nullable=True) + value = db.Column(db.String(255), nullable=True) + #FIX __table_args__ = (db.Index('KEYVAL', keyword, value), {}) + +class AccMAILCOOKIE(db.Model): + """Represents a AccMAILCOOKIE record.""" + def __init__(self): + pass + __tablename__ = 'accMAILCOOKIE' + id = db.Column(db.Integer(15, unsigned=True), + primary_key=True, + autoincrement=True) + data = db.Column(db.iBinary, nullable=False) + expiration = db.Column(db.DateTime, nullable=False, + server_default='9999-12-31 23:59:59', + index=True) + kind = db.Column(db.String(32), nullable=False) + onetime = db.Column(db.TinyInteger(1), nullable=False, + server_default='0') + status = db.Column(db.Char(1), nullable=False, + server_default='W') + +class AccROLE(db.Model): + """Represents a AccROLE record.""" + def __init__(self): + pass + __tablename__ = 'accROLE' + id = db.Column(db.Integer(15, unsigned=True), + primary_key=True, + autoincrement=True) + name = db.Column(db.String(32), unique=True, + nullable=True) + description = db.Column(db.String(255), nullable=True) + firerole_def_ser = db.Column(db.iBinary, nullable=True) + firerole_def_src = db.Column(db.Text, nullable=True) + +class AccAssociation(db.Model): + """Represents a AccAssociation record.""" + def __init__(self): + pass + __tablename__ = 'accROLE_accACTION_accARGUMENT' + id_accROLE = db.Column(db.Integer(15), db.ForeignKey(AccROLE.id), + nullable=True, + primary_key=True, index=True) + id_accACTION = db.Column(db.Integer(15), db.ForeignKey(AccACTION.id), + nullable=True, + primary_key=True, index=True) + id_accARGUMENT = db.Column(db.Integer(15), db.ForeignKey(AccARGUMENT.id), + nullable=True, primary_key=True, + index=True) + argumentlistid = db.Column(db.MediumInteger(8), nullable=True, + primary_key=True) + role = db.relationship(AccROLE, backref='associations') + action = db.relationship(AccACTION, backref='associations') + argument = db.relationship(AccARGUMENT, backref='associations') + +class UserAccROLE(db.Model): + """Represents a UserAccROLE record.""" + def __init__(self): + pass + __tablename__ = 'user_accROLE' + id_user = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(User.id), + nullable=False, primary_key=True) + id_accROLE = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(AccROLE.id), + nullable=False, primary_key=True) + expiration = db.Column(db.DateTime, nullable=False, + server_default='9999-12-31 23:59:59') + user = db.relationship(User, backref='roles') + role = db.relationship(AccROLE, backref='users') diff --git a/modules/webalert/lib/Makefile.am b/modules/webalert/lib/Makefile.am index d3102edb39..daa0ba6df3 100644 --- a/modules/webalert/lib/Makefile.am +++ b/modules/webalert/lib/Makefile.am @@ -18,6 +18,7 @@ pylibdir = $(libdir)/python/invenio pylib_DATA = webalert.py \ + webalert_model.py \ webalert_templates.py \ webalert_webinterface.py \ alert_engine.py \ diff --git a/modules/webalert/lib/webalert_model.py b/modules/webalert/lib/webalert_model.py new file mode 100644 index 0000000000..f3df15e049 --- /dev/null +++ b/modules/webalert/lib/webalert_model.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +webalert database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +from websession_model import User +from webbasket_model import BskBASKET +from websearch_model import WebQuery + +class UserQueryBasket(db.Model): + """Represents a UserQueryBasket record.""" + def __init__(self): + pass + __tablename__ = 'user_query_basket' + id_user = db.Column(db.Integer(15, unsigned=True), db.ForeignKey(User.id), + nullable=False, + server_default='0', primary_key=True) + id_query = db.Column(db.Integer(15, unsigned=True), db.ForeignKey(WebQuery.id), + nullable=False, + server_default='0', primary_key=True, + index=True) + id_basket = db.Column(db.Integer(15, unsigned=True), db.ForeignKey(BskBASKET.id), + nullable=False, + server_default='0', primary_key=True, + index=True) + frequency = db.Column(db.String(5), nullable=False, server_default='', + primary_key=True) + date_creation = db.Column(db.Date, nullable=True) + date_lastrun = db.Column(db.Date, nullable=True, + server_default='0000-00-00') + alert_name = db.Column(db.String(30), nullable=False, + server_default='', + index=True) + notification = db.Column(db.Char(1), nullable=False, + server_default='y') + user = db.relationship(User, backref='query_baskets') + query = db.relationship(WebQuery, backref='user_baskets') + basket = db.relationship(BskBASKET, backref='user_queries') diff --git a/modules/webbasket/lib/Makefile.am b/modules/webbasket/lib/Makefile.am index a279eefd20..08950ceb72 100644 --- a/modules/webbasket/lib/Makefile.am +++ b/modules/webbasket/lib/Makefile.am @@ -20,6 +20,7 @@ pylibdir = $(libdir)/python/invenio pylib_DATA = webbasket.py \ webbasket_config.py \ webbasket_dblayer.py \ + webbasket_model.py \ webbasket_templates.py \ webbasket_webinterface.py \ webbasket_regression_tests.py diff --git a/modules/webbasket/lib/webbasket_model.py b/modules/webbasket/lib/webbasket_model.py new file mode 100644 index 0000000000..0744f2c7a6 --- /dev/null +++ b/modules/webbasket/lib/webbasket_model.py @@ -0,0 +1,173 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +webbasket database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +from websession_model import User, Usergroup +from websearch_model import Collection + +class BskBASKET(db.Model): + """Represents a BskBASKET record.""" + def __init__(self): + pass + __tablename__ = 'bskBASKET' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True) + id_owner = db.Column(db.Integer(15, unsigned=True), db.ForeignKey(User.id), + nullable=False, server_default='0') + name = db.Column(db.String(50), nullable=False, + server_default='') + date_modification = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + nb_views = db.Column(db.Integer(15), nullable=False, + server_default='0') + owner = db.relationship(User, backref='baskets') + +class BskEXTREC(db.Model): + """Represents a BskEXTREC record.""" + def __init__(self): + pass + __tablename__ = 'bskEXTREC' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True) + external_id = db.Column(db.Integer(15), nullable=False, + server_default='0') + collection_id = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(Collection.id), nullable=False, server_default='0') + original_url = db.Column(db.Text, nullable=True) + creation_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + modification_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + collection = db.relationship(Collection, backref='EXTRECs') + +class BskEXTFMT(db.Model): + """Represents a BskEXTFMT record.""" + def __init__(self): + pass + __tablename__ = 'bskEXTFMT' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True) + id_bskEXTREC = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(BskEXTREC.id), nullable=False, server_default='0') + format = db.Column(db.String(10), nullable=False, + server_default='') + last_updated = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + value = db.Column(db.iLargeBinary, nullable=True) + EXTREC = db.relationship(BskEXTREC, backref='EXTFMTs') + +class BskREC(db.Model): + """Represents a BskREC record.""" + def __init__(self): + pass + __tablename__ = 'bskREC' + id_bibrec_or_bskEXTREC = db.Column(db.Integer(16), nullable=False, + server_default='0', + primary_key=True) + id_bskBASKET = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(BskBASKET.id), nullable=False, server_default='0', + primary_key=True) + id_user_who_added_item = db.Column(db.Integer(15), + db.ForeignKey(User.id), + nullable=False, server_default='0') + score = db.Column(db.Integer(15), nullable=False, + server_default='0') + date_added = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + basket = db.relationship(BskBASKET, backref='RECs') + user_who_added_item = db.relationship(User) + +class BskRECORDCOMMENT(db.Model): + """Represents a BskRECORDCOMMENT record.""" + def __init__(self): + pass + __tablename__ = 'bskRECORDCOMMENT' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + id_bibrec_or_bskEXTREC = db.Column(db.Integer(16), nullable=False, + server_default='0') + id_bskBASKET = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(BskBASKET.id), nullable=False, server_default='0') + id_user = db.Column(db.Integer(15, unsigned=True), db.ForeignKey(User.id), + nullable=False, server_default='0') + title = db.Column(db.String(255), nullable=False, + server_default='') + body = db.Column(db.Text, nullable=False) + date_creation = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + priority = db.Column(db.Integer(15), nullable=False, + server_default='0') + in_reply_to_id_bskRECORDCOMMENT = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(id), nullable=False, + server_default='0') + reply_order_cached_data = db.Column(db.iBinary, + nullable=True) + in_reply_to = db.relationship('BskRECORDCOMMENT') + basket = db.relationship(BskBASKET, backref='RECORDCOMMENTs') + user = db.relationship(User) + +class UserBskBASKET(db.Model): + """Represents a UserBskBASKET record.""" + def __init__(self): + pass + __tablename__ = 'user_bskBASKET' + id_user = db.Column(db.Integer(15, unsigned=True), db.ForeignKey(User.id), + nullable=False, + server_default='0', primary_key=True) + id_bskBASKET = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(BskBASKET.id), nullable=False, + server_default='0', primary_key=True) + topic = db.Column(db.String(50), nullable=False, + server_default='') + user = db.relationship(User, backref='user_baskets') + user_basket = db.relationship(BskBASKET, backref='users') + +class UsergroupBskBASKET(db.Model): + """Represents a UsergroupBskBASKET record.""" + def __init__(self): + pass + __tablename__ = 'usergroup_bskBASKET' + id_usergroup = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(Usergroup.id), nullable=False, server_default='0', + primary_key=True) + id_bskBASKET = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(BskBASKET.id), nullable=False, server_default='0', + primary_key=True) + topic = db.Column(db.String(50), nullable=False, + server_default='') + date_shared = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + share_level = db.Column(db.Char(2), nullable=False, + server_default='') + usergroup = db.relationship(Usergroup, backref='usergroup_baskets') + usergroup_basket = db.relationship(BskBASKET, + backref='usergroups') + + diff --git a/modules/webcomment/lib/Makefile.am b/modules/webcomment/lib/Makefile.am index 8d9b8f8acc..29ab831307 100644 --- a/modules/webcomment/lib/Makefile.am +++ b/modules/webcomment/lib/Makefile.am @@ -20,6 +20,7 @@ pylibdir = $(libdir)/python/invenio pylib_DATA = webcomment_config.py \ webcomment.py \ webcomment_unit_tests.py \ + webcomment_model.py \ webcomment_templates.py \ webcomment_webinterface.py \ webcommentadminlib.py \ diff --git a/modules/webcomment/lib/webcomment_model.py b/modules/webcomment/lib/webcomment_model.py new file mode 100644 index 0000000000..4ee7c83009 --- /dev/null +++ b/modules/webcomment/lib/webcomment_model.py @@ -0,0 +1,116 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +webcomment database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +from bibedit_model import Bibrec +from websession_model import User + +class CmtRECORDCOMMENT(db.Model): + """Represents a CmtRECORDCOMMENT record.""" + def __init__(self): + pass + __tablename__ = 'cmtRECORDCOMMENT' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True, autoincrement=True) + id_bibrec = db.Column(db.Integer(15, unsigned=True), db.ForeignKey(Bibrec.id), + nullable=False, server_default='0') # CmtRECORDCINNENT + id_user = db.Column(db.Integer(15, unsigned=True), db.ForeignKey(User.id), + nullable=False, server_default='0') + title = db.Column(db.String(255), nullable=False, + server_default='') + body = db.Column(db.Text, nullable=False) + date_creation = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + star_score = db.Column(db.TinyInteger(5, unsigned=True), nullable=False, + server_default='0') + nb_votes_yes = db.Column(db.Integer(10), nullable=False, + server_default='0') + nb_votes_total = db.Column(db.Integer(10, unsigned=True), nullable=False, + server_default='0') + nb_abuse_reports = db.Column(db.Integer(10), nullable=False, + server_default='0') + status = db.Column(db.Char(2), nullable=False, + server_default='ok') + round_name = db.Column(db.String(255), nullable=False, + server_default='') + restriction = db.Column(db.String(50), nullable=False, + server_default='') + in_reply_to_id_cmtRECORDCOMMENT = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(id), nullable=False, server_default='0') + reply_order_cached_data = db.Column(db.iBinary, + nullable=True) + bibrec = db.relationship(Bibrec, backref='recordcomments') + user = db.relationship(User, backref='recordcomments') + in_reply_to = db.relationship('CmtRECORDCOMMENT')#FIX ME, + #backref='replies') + +class CmtACTIONHISTORY(db.Model): + """Represents a CmtACTIONHISTORY record.""" + def __init__(self): + pass + __tablename__ = 'cmtACTIONHISTORY' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + id_cmtRECORDCOMMENT = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(CmtRECORDCOMMENT.id), + nullable=True) + id_bibrec = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(Bibrec.id), + nullable=True, primary_key=True) + id_user = db.Column(db.Integer(15, unsigned=True), db.ForeignKey(User.id), + nullable=True) + client_host = db.Column(db.Integer(10, unsigned=True), + nullable=True) + action_time = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + action_code = db.Column(db.Char(1), nullable=False) + recordcomment = db.relationship(CmtRECORDCOMMENT, + backref='actionhistory') + bibrec = db.relationship(Bibrec) + user = db.relationship(User) + + +class CmtSUBSCRIPTION(db.Model): + """Represents a CmtSUBSCRIPTION record.""" + def __init__(self): + pass + __tablename__ = 'cmtSUBSCRIPTION' + id_bibrec = db.Column(db.MediumInteger(8, unsigned=True), + db.ForeignKey(Bibrec.id), nullable=False, + primary_key=True) + id_user = db.Column(db.Integer(15, unsigned=True), db.ForeignKey(User.id), + nullable=False, + primary_key=True) + creation_time = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00', + primary_key=True) + bibrec = db.relationship(Bibrec) + user = db.relationship(User) + diff --git a/modules/webjournal/lib/Makefile.am b/modules/webjournal/lib/Makefile.am index f0d2c25d0e..20cf86ecbd 100644 --- a/modules/webjournal/lib/Makefile.am +++ b/modules/webjournal/lib/Makefile.am @@ -19,6 +19,7 @@ SUBDIRS = widgets elements pylibdir = $(libdir)/python/invenio pylib_DATA = webjournal_webinterface.py webjournal_utils.py \ + webjournal_model.py \ webjournal_config.py webjournal.py webjournal_washer.py \ webjournal_templates.py webjournaladminlib.py \ webjournal_unit_tests.py webjournal_regression_tests.py \ diff --git a/modules/webjournal/lib/webjournal_model.py b/modules/webjournal/lib/webjournal_model.py new file mode 100644 index 0000000000..37ae2c268e --- /dev/null +++ b/modules/webjournal/lib/webjournal_model.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +webjournal database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +class JrnJOURNAL(db.Model): + """Represents a JrnJOURNAL record.""" + def __init__(self): + pass + __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, + server_default='') + +class JrnISSUE(db.Model): + """Represents a JrnISSUE record.""" + def __init__(self): + pass + __tablename__ = 'jrnISSUE' + id_jrnJOURNAL = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(JrnJOURNAL.id), nullable=False, + primary_key=True) + issue_number = db.Column(db.String(50), nullable=False, + server_default='', + primary_key=True) + issue_display = db.Column(db.String(50), nullable=False, + server_default='') + date_released = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + date_announced = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + journal = db.relationship(JrnJOURNAL, backref='issues') + + diff --git a/modules/webmessage/etc/templates/Makefile.am b/modules/webmessage/etc/templates/Makefile.am index 2256d4a73c..6188e7990a 100644 --- a/modules/webmessage/etc/templates/Makefile.am +++ b/modules/webmessage/etc/templates/Makefile.am @@ -16,7 +16,10 @@ ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. templatesdir = $(sysconfdir)/templates -templates_DATA = webmessage_display.html webmessage_write.html +templates_DATA = webmessage_display_msg.html \ + webmessage_display.html \ + webmessage_confirm_delete.html \ + webmessage_write.html EXTRA_DIST = $(templates_DATA) diff --git a/modules/webmessage/etc/templates/webmessage_confirm_delete.html b/modules/webmessage/etc/templates/webmessage_confirm_delete.html new file mode 100644 index 0000000000..457c6ac875 --- /dev/null +++ b/modules/webmessage/etc/templates/webmessage_confirm_delete.html @@ -0,0 +1,42 @@ +{# +## This file is part of Invenio. +## Copyright (C) 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. +#} +{% extends "page.html" %} +{% set title = _("Delete all messages") %} +{% block body %} + + + + + + + + +
+ {{ _("Are you sure you want to empty your whole mailbox?") }} +
+
+ + +
+
+
+ +
+
+{% endblock %} diff --git a/modules/webmessage/etc/templates/webmessage_display.html b/modules/webmessage/etc/templates/webmessage_display.html index 6c4245b5bb..cd8992ff20 100644 --- a/modules/webmessage/etc/templates/webmessage_display.html +++ b/modules/webmessage/etc/templates/webmessage_display.html @@ -50,18 +50,21 @@ {% else %} - {% for (msgid, id_user_from, user_from_nick, subject, sent_date, status) in messages %} - {% if not subject %} - {% set subject = _("No subject") %} - {% endif %} - {% if status == config.CFG_WEBMESSAGE_STATUS_CODE['NEW'] %} + {% for m in messages %} + {% if m.status == config.CFG_WEBMESSAGE_STATUS_CODE['NEW'] %} {% set status_style = ' style="font-weight:bold"' %} {% endif %} - {{ subject }} - {{ user_from_nick|default(get_user_info(id_user_from)[2]) }} - {{ sent_date|invenio_format_date }} - {{ _("Delete") }} + + {% if m.subject %} + {{ m.subject }} + {% else %} + {{ _("No subject") }} + {% endif %} + + {{ m.user_from.nickname }} + {{ m.sent_date|invenio_format_date }} + {{ _("Delete") }} {% endfor %} {% endif %} @@ -80,4 +83,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/modules/webmessage/etc/templates/webmessage_display_msg.html b/modules/webmessage/etc/templates/webmessage_display_msg.html new file mode 100644 index 0000000000..5be61286e8 --- /dev/null +++ b/modules/webmessage/etc/templates/webmessage_display_msg.html @@ -0,0 +1,91 @@ +{# +## This file is part of Invenio. +## Copyright (C) 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. +#} +{% extends "page.html" %} +{% set title = _("Read a message") %} +{% block header %} + + +{% endblock header %} +{% block body %} + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
From: + {{ m.message.user_from.nickname }} +
Subject:{{ m.message.subject }}
Sent on:{{ m.message.sent_date }}
Sent to: + {% for nickname in m.message.user_nicks %} + {{ nickname }}{{ ", " if not loop.last }} + {% endfor %} +
Sent to groups: + {% for group in m.message.group_names %} + {{ group }}{{ ", " if not loop.last }} + {% endfor %} +
+
{{ m.message.body }}
+
+ +
+
+
+ +
+
+{% endblock %} diff --git a/modules/webmessage/etc/templates/webmessage_write.html b/modules/webmessage/etc/templates/webmessage_write.html index 9e6d5caeb6..5c1e62ad36 100644 --- a/modules/webmessage/etc/templates/webmessage_write.html +++ b/modules/webmessage/etc/templates/webmessage_write.html @@ -25,33 +25,56 @@ {% block javascript %} @@ -67,14 +90,14 @@ {{ _("To:") }} {{ _("Users") }} - +   {{ _("Groups") }} - + @@ -112,4 +135,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/modules/webmessage/lib/Makefile.am b/modules/webmessage/lib/Makefile.am index 63faee23d1..16c588ef22 100644 --- a/modules/webmessage/lib/Makefile.am +++ b/modules/webmessage/lib/Makefile.am @@ -22,6 +22,8 @@ pylib_DATA = webmessage.py \ webmessage_config.py \ webmessage_dblayer.py \ webmessage_mailutils.py \ + webmessage_model.py \ + webmessage_query.py \ webmessage_webinterface.py \ webmessage_regression_tests.py \ webmessage_unit_tests.py \ diff --git a/modules/webmessage/lib/webmessage_blueprint.py b/modules/webmessage/lib/webmessage_blueprint.py index 52cf9d0b4b..5c56e3e9ee 100644 --- a/modules/webmessage/lib/webmessage_blueprint.py +++ b/modules/webmessage/lib/webmessage_blueprint.py @@ -20,11 +20,19 @@ """WebMessage Flask Blueprint""" import pprint +from string import rfind, strip -from flask import Blueprint, session, make_response, g, render_template, request, flash, jsonify -from invenio import webmessage_dblayer as db +from flask import Blueprint, session, make_response, g, render_template, \ + request, flash, jsonify, redirect, url_for +from invenio import webmessage_dblayer as dbplayer +from invenio.sqlalchemyutils import db from invenio.webmessage import is_no_quota_user -from invenio.webmessage_config import CFG_WEBMESSAGE_ROLES_WITHOUT_QUOTA +from invenio.webmessage_config import CFG_WEBMESSAGE_ROLES_WITHOUT_QUOTA, \ + CFG_WEBMESSAGE_STATUS_CODE, CFG_WEBMESSAGE_SEPARATOR +from invenio.webmessage_mailutils import email_quote_txt +from invenio.websession_model import User, Usergroup +from invenio.webmessage_model import MsgMESSAGE, UserMsgMESSAGE +from invenio import webmessage_query as dbquery from invenio.webinterface_handler_flask_utils import _, InvenioBlueprint from invenio.webinterface_handler import wash_urlargd from invenio.dbquery import run_sql @@ -32,14 +40,14 @@ blueprint = InvenioBlueprint('yourmessages', __name__, url_prefix="/yourmessages", config='invenio.webmessage_config', breadcrumbs=[(_("Your Account"), 'youraccount.display'), ('Your Messages', 'yourmessages.display')]) @blueprint.route('/') -@blueprint.route('/display') +@blueprint.route('/display', methods=['GET', 'POST']) @blueprint.invenio_authenticated def display(): uid = g.user_info['uid'] - messages = db.get_all_messages_for_user(uid) - nb_messages = db.count_nb_messages(uid) - no_quota = is_no_quota_user(uid) - return render_template('webmessage_display.html', messages=messages, nb_messages=nb_messages, no_quota=no_quota) + return render_template('webmessage_display.html', + messages=dbquery.get_all_messages_for_user(uid), + nb_messages=dbquery.count_nb_messages(uid), + no_quota=is_no_quota_user(uid)) @blueprint.route("/test") def test(): @@ -48,14 +56,18 @@ def test(): return resp @blueprint.route("/ajax") -@blueprint.invenio_wash_urlargd({"query": (unicode, ""), "term": (unicode, "")}) -def ajax(query, term): - if query == 'users' and len(term) >= 3: - res = run_sql("SELECT nickname FROM user WHERE nickname LIKE %s ORDER BY nickname LIMIT 10", ("%s%%" % term, )) - return jsonify(nicknames=[elem[0] for elem in res]) - elif query == 'groups' and len(term) >= 3: - res = run_sql("SELECT name FROM usergroup WHERE name LIKE %s ORDER BY name LIMIT 10", ("%s%%" %term, )) - return jsonify(groups=[elem[0] for elem in res]) +def ajax(): + argd = wash_urlargd(request.values, {"q": (str, ""), "p": (str, "")}) + q = argd['q'] + p = argd['p'] + if q == 'users' and len(p) >= 3: + res = db.session.query(User.nickname).filter( + User.nickname.like("%s%%" % p)).limit(10).all() + return jsonify(nicknames=[elem for elem, in res]) + elif q == 'groups' and len(p) >= 3: + res = db.session.query(Usergroup.name).filter( + Usergroup.name.like("%s%%" % p)).limit(10).all() + return jsonify(groups=[elem for elem, in res]) return jsonify() @blueprint.route("/write", methods=['GET', 'POST']) @@ -71,30 +83,89 @@ def write(msg_reply_id, msg_to, msg_to_user, msg_to_group, msg_body, msg_subject uid = g.user_info['uid'] msg_id = 0 if msg_reply_id: - if (db.check_user_owns_message(uid, msg_reply_id) == 0): + if (dbplayer.check_user_owns_message(uid, msg_reply_id) == 0): flash(_('Sorry, this message in not in your mailbox.'), "error") msg_reply_id = 0 else: - # dummy == variable name to make pylint and pychecker happy! - (msg_id, - msg_from_id, msg_from_nickname, - dummy, dummy, - msg_subject, msg_body, - dummy, dummy, dummy) = db.get_message(uid, msg_reply_id) - if not msg_id: + msg_subject = "" + msg_body = "" + try: + m = dbquery.get_message(uid, msg_reply_id) + msg_to = m.message.user_from.nickname or str(m.message.id_user_from) + msg_subject = _("Re:") + " " + m.message.subject + msg_body = email_quote_txt(m.message.body) + except db.sqlalchemy.orm.exc.NoResultFound: # The message exists in table user_msgMESSAGE # but not in table msgMESSAGE => table inconsistency flash(_('This message does not exist.'), "error") msg_reply_id = 0 - msg_subject = "" - msg_body = "" - else: - msg_to = msg_from_nickname or str(msg_from_id) - msg_subject = _("Re:") + " " + msg_subject - msg_body = email_quote_txt(msg_body) + except: + flash(_('This message does not exist.'), "error") + msg_reply_id = 0 return render_template('webmessage_write.html', msg_to=msg_to, msg_to_group=msg_to_group, msg_id=msg_id, msg_subject=msg_subject, msg_body=msg_body) + + +@blueprint.route("/display_msg") +@blueprint.invenio_set_breadcrumb(_("Read a message")) +@blueprint.invenio_authenticated +@blueprint.invenio_wash_urlargd({'msgid': (int, 0)}) +def display_msg(msgid): + data = () + uid = g.user_info['uid'] + if (dbquery.check_user_owns_message(uid, msgid) == 0): + flash(_('Sorry, this message (#%d) is not in your mailbox.') % (msgid, ), "error") + else: + try: + m = dbquery.get_message(uid, msgid) + return render_template('webmessage_display_msg.html', m=m) + except db.sqlalchemy.orm.exc.NoResultFound: + flash(_('This message does not exist.'), "error") + except: + flash(_('Problem with loading message.'), "error") + + return redirect(url_for('.display')) + +@blueprint.route("/delete") +@blueprint.invenio_set_breadcrumb(_("Delete a messages")) +@blueprint.invenio_authenticated +@blueprint.invenio_wash_urlargd({'msgid': (int, 0)}) +def delete(msgid): + """ + Delete every message for a logged user + @param confirmed: 0 will produce a confirmation message. + """ + uid = g.user_info['uid'] + if dbquery.check_user_owns_message(uid, msgid) == 0: + flash(_('Sorry, this message (#%d) is not in your mailbox.') % (msgid, ), "error") + else: + if dbquery.delete_message_from_user_inbox(uid, msgid) == 0: + flash(_("The message could not be deleted."), "error") + else: + flash(_("The message was successfully deleted."), "info") + + return redirect(url_for('.display')) + +@blueprint.route("/delete_all", methods=['GET', 'POST']) +@blueprint.invenio_set_breadcrumb(_("Delete all messages")) +@blueprint.invenio_authenticated +@blueprint.invenio_wash_urlargd({'confirmed': (int, 0)}) +def delete_all(confirmed=0): + """ + Delete every message for a logged user + @param confirmed: 0 will produce a confirmation message. + """ + uid = g.user_info['uid'] + if confirmed != 1: + return render_template('webmessage_confirm_delete.html') + + if dbquery.delete_all_messages(uid): + flash(_("Your mailbox has been emptied."), "info") + else: + flash(_("Could not empty your mailbox."), "warning") + return redirect(url_for('.display')) + diff --git a/modules/webmessage/lib/webmessage_model.py b/modules/webmessage/lib/webmessage_model.py new file mode 100644 index 0000000000..6dc3be6a16 --- /dev/null +++ b/modules/webmessage/lib/webmessage_model.py @@ -0,0 +1,80 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + +""" +WebMessage database models. +""" + +# General imports +from invenio.sqlalchemyutils import db + +# Create your models here. +from invenio.websession_model import User +from invenio.webmessage_config import CFG_WEBMESSAGE_SEPARATOR + +class MsgMESSAGE(db.Model): + """Represents a MsgMESSAGE record.""" + def __init__(self): + pass + def __repr__(self): + return "From: %s<%s>, Subject: <%s> %s" % (self.user_from.nickname, + self.user_from.email, self.subject, self.body) + __tablename__ = 'msgMESSAGE' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + id_user_from = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(User.id), + nullable=False, server_default='0') + sent_to_user_nicks = db.Column(db.Text, nullable=False) + sent_to_group_names = db.Column(db.Text, nullable=False) + subject = db.Column(db.Text, nullable=False) + body = db.Column(db.Text, nullable=True) + sent_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + received_date = db.Column(db.DateTime, + server_default='0000-00-00 00:00:00') + user_from = db.relationship(User, backref='sent_messages') + + @property + def user_nicks(self): + return self.sent_to_user_nicks.split(CFG_WEBMESSAGE_SEPARATOR) + + @property + def group_names(self): + return self.sent_to_group_names.split(CFG_WEBMESSAGE_SEPARATOR) + +class UserMsgMESSAGE(db.Model): + """Represents a UserMsgMESSAGE record.""" + def __init__(self): + pass + __tablename__ = 'user_msgMESSAGE' + id_user_to = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(User.id), nullable=False, + server_default='0', primary_key=True) + id_msgMESSAGE = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(MsgMESSAGE.id), + nullable=False, server_default='0', + primary_key=True) + status = db.Column(db.Char(1), nullable=False, + server_default='N') + user_to = db.relationship(User, backref='received_messages') + message = db.relationship(MsgMESSAGE, backref='sent_to_users') diff --git a/modules/webmessage/lib/webmessage_query.py b/modules/webmessage/lib/webmessage_query.py new file mode 100644 index 0000000000..2a1b13db9f --- /dev/null +++ b/modules/webmessage/lib/webmessage_query.py @@ -0,0 +1,569 @@ +# -*- coding: utf-8 -*- +## +## This file is part of Invenio. +## Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + +"""Query definitions for module webmessage""" + +from time import localtime, mktime + + +from invenio.config import \ + CFG_WEBMESSAGE_MAX_NB_OF_MESSAGES, \ + CFG_WEBMESSAGE_DAYS_BEFORE_DELETE_ORPHANS +from invenio.dbquery import run_sql, OperationalError +from invenio.webmessage_config import CFG_WEBMESSAGE_STATUS_CODE, \ + CFG_WEBMESSAGE_ROLES_WITHOUT_QUOTA +from invenio.dateutils import datetext_default, \ + convert_datestruct_to_datetext +from invenio.websession_config import CFG_WEBSESSION_USERGROUP_STATUS + +from invenio.sqlalchemyutils import db +from invenio.webmessage_model import MsgMESSAGE, UserMsgMESSAGE +from invenio.websession_model import User + +def filter_messages_from_user_with_status(uid, status): + """ + Filter message from user with status code. + @param uid: user id + @return: sqlalchemy.sql.expression.ClauseElement + """ + return (db.AsBINARY(UserMsgMESSAGE.status.__eq__(status))) & \ + (UserMsgMESSAGE.id_user_to == uid) + +def filter_all_messages_from_user(uid): + """ + Filter all message from user with status code not 'reminder'. + @param uid: user id + @return: sqlalchemy.sql.expression.ClauseElement + """ + reminder = CFG_WEBMESSAGE_STATUS_CODE['REMINDER'] + return db.not_(db.AsBINARY(UserMsgMESSAGE.status.__eq__(reminder))) & \ + (UserMsgMESSAGE.id_user_to == uid) + + +def filter_user_message(uid, msgid): + """ + Filter message from user with defined id. + @param uid: user id + @param msgid: message id + @return: sqlalchemy.sql.expression.ClauseElement + """ + return (UserMsgMESSAGE.id_user_to==uid) & \ + (UserMsgMESSAGE.id_msgMESSAGE==msgid) + +def check_user_owns_message(uid, msgid): + """ + Checks whether a user owns a message + @param uid: user id + @param msgid: message id + @return: positive number if the user owns the message, else 0 + """ + return db.session.query(db.func.count('*')).\ + select_from(UserMsgMESSAGE).\ + filter(filter_user_message(uid, msgid)).scalar() + +def get_message(uid, msgid): + """ + Get a message with its status and sender nickname. + @param uid: user id + @param msgid: message id + @return: exactly one message or raise an exception. + """ + return UserMsgMESSAGE.query.options(\ + db.joinedload_all(UserMsgMESSAGE.message, MsgMESSAGE.user_from)).\ + options(db.joinedload(UserMsgMESSAGE.user_to)).\ + filter(filter_user_message(uid, msgid)).one() + +def set_message_status(uid, msgid, new_status): + """ + Change the status of a message (e.g. from "new" to "read"). + the status is a single character string, specified in constant + CFG_WEBMESSAGE_STATUS_CODE in file webmessage_config.py + examples: + N: New message + R: alreay Read message + M: reminder + @param uid: user ID + @param msgid: Message ID + @param new_status: new status. Should be a single character + @return: 1 if succes, 0 if not + """ + return db.session.query(UserMsgMESSAGE).\ + filter(filter_user_message(uid, msgid)).\ + update({UserMsgMESSAGE.status: new_status}) + +def get_nb_new_messages_for_user(uid): + """ Get number of new mails for a given user + @param uid: user id (int) + @return: number of new mails as int. + """ + update_user_inbox_for_reminders(uid) + new_status = CFG_WEBMESSAGE_STATUS_CODE['NEW'] + return db.session.query(db.func.count(UserMsgMESSAGE.id_msgMESSAGE)).\ + select_from(UserMsgMESSSAGE).\ + filter(filter_messages_from_user_with_status(uid, new_status)).\ + scalar() + +def get_nb_readable_messages_for_user(uid): + """ Get number of mails of a fiven user. Reminders are not counted + @param uid: user id (int) + @return: number of messages (int) + """ + return db.session.query(db.func.count(UserMsgMESSAGE.id_msgMESSAGE)).\ + select_from(UserMsgMESSAGE).\ + filter(filter_all_messages_from_user(uid)).\ + scalar() + +def get_all_messages_for_user(uid): + """ + Get all messages for a user's inbox, without the eventual + non-expired reminders. + + @param uid: user id + @return: [(message_id, + id_user_from, + nickname_user_from, + message_subject, + message_sent_date, + message_status)] + """ + update_user_inbox_for_reminders(uid) + return MsgMESSAGE.query.options(db.joinedload(MsgMESSAGE.user_from)).\ + join(UserMsgMESSAGE).\ + filter(filter_all_messages_from_user(uid)).\ + order_by(MsgMESSAGE.sent_date).all() + +def count_nb_messages(uid): + """ + @param uid: user id + @return: integer of number of messages a user has, 0 if none + """ + uid = int(uid) + return db.session.query(db.func.count(UserMsgMESSAGE.id_user_to)).\ + select_from(UserMsgMESSAGE).\ + filter(UserMsgMESSAGE.id_user_to==uid).\ + scalar() + +def delete_message_from_user_inbox(uid, msg_id): + """ + Delete message from users inbox + If this message was does not exist in any other user's inbox, + delete it permanently from the database + @param uid: user id + @param msg_id: message id + @return: integer 1 if delete was successful, integer 0 else + """ + res = UserMsgMESSAGE.query.filter(filter_user_message(uid, msg_id)).\ + delete(synchronize_session=False) + check_if_need_to_delete_message_permanently([msg_id]) + return res + +def check_if_need_to_delete_message_permanently(msg_ids): + """ + Checks if a list of messages exist in anyone's inbox, if not, + delete them permanently + @param msg_id: sequence of message ids + @return: number of deleted messages + """ + if not((type(msg_ids) is list) or (type(msg_ids) is tuple)): + msg_ids = [msg_ids] + + msg_used = db.session.query(UserMsgMESSAGE.id_msgMESSAGE).\ + filter(UserMsgMESSAGE.id_msgMESSAGE.in_(msg_ids)).\ + group_by(UserMsgMESSAGE.id_msgMESSAGE).\ + having(db.func.count(UserMsgMESSAGE.id_user_to)>0).\ + subquery() + + return MsgMESSAGE.query.filter(MsgMESSAGE.id.in_(msg_ids) & \ + db.not_(MsgMESSAGE.id.in_(msg_used))).\ + delete(synchronize_session=False) + +def delete_all_messages(uid): + """ + Delete all messages of a user (except reminders) + @param uid: user id + @return: the number of messages deleted + """ + reminder_status = CFG_WEBMESSAGE_STATUS_CODE['REMINDER'] + msg_ids = map(lambda (x, ): x, + db.session.query(UserMsgMESSAGE.id_msgMESSAGE).\ + filter(UserMsgMESSAGE.id_user_to==uid & \ + UserMsgMESSAGE.status!=reminder_status).all()) + nb_messages = UserMsgMESSAGE.query.\ + filter(UserMsgMESSAGE.id_user_to==uid & \ + UserMsgMESSAGE.status!=reminder_status).\ + delete(synchronize_session=False) + check_if_need_to_delete_message_permanently(msg_ids) + return nb_messages + +def get_uids_from_nicks(nicks): + """ + Get the association uid/nickname of given nicknames + @param nicks: list or sequence of strings, each string being a nickname + @return: a dictionary {nickname: uid} + """ + # FIXME: test case + if not((type(nicks) is list) or (type(nicks) is tuple)): + nicks = [nicks] + users = {} + query = "SELECT nickname, id FROM user WHERE BINARY nickname IN (" + query_params = () + if len(nicks)> 0: + for nick in nicks: + users[nick] = None + users_keys = users.keys() + for nick in users_keys[0:-1]: + query += "%s," + query_params += (nick,) + query += "%s)" + query_params += (users_keys[-1],) + res = run_sql(query, query_params) + def enter_dict(couple): + """ takes a a tuple and enters it into dict users """ + users[couple[0]] = int(couple[1]) + map(enter_dict, res) + return users + +def get_nicks_from_uids(uids): + """ + Get the association uid/nickname of given uids + @param uids: list or sequence of uids + @return: a dictionary {uid: nickname} where empty value is possible + """ + if not((type(uids) is list) or (type(uids) is tuple)): + uids = [uids] + users = {} + query = "SELECT id, nickname FROM user WHERE id in(" + query_params = [] + if len(uids) > 0: + for uid in uids: + users[uid] = None + for uid in users.keys()[0:-1]: + query += "%s," + query_params.append(uid) + query += "%s)" + query_params.append(users.keys()[-1]) + res = run_sql(query, tuple(query_params)) + for (user_id, nickname) in res: + users[int(user_id)] = nickname + return users + +def get_uids_from_emails(emails): + """ + Get the association uid/nickname of given nicknames + @param nicks: list or sequence of strings, each string being a nickname + @return: a dictionary {nickname: uid} + """ + # FIXME: test case + if not((type(emails) is list) or (type(emails) is tuple)): + emails = [emails] + users = {} + query = "SELECT email, id FROM user WHERE BINARY email IN (" + query_params = () + if len(emails)> 0: + for mail in emails: + users[mail] = None + users_keys = users.keys() + for mail in users_keys[0:-1]: + query += "%s," + query_params += (mail,) + query += "%s)" + query_params += (users_keys[-1],) + res = run_sql(query, query_params) + def enter_dict(couple): + """ takes a a tuple and enters it into dict users """ + users[couple[0]] = int(couple[1]) + map(enter_dict, res) + return users + + +def get_gids_from_groupnames(groupnames): + """ + Get the gids of given groupnames + @param groupnames: list or sequence of strings, each string being a groupname + @return: a dictionary {groupname: gid} + """ + # FIXME: test case + if not((type(groupnames) is list) or (type(groupnames) is tuple)): + groupnames = [groupnames] + groups = {} + query = "SELECT name, id FROM usergroup WHERE BINARY name IN (" + query_params = () + if len(groupnames) > 0: + for groupname in groupnames: + groups[groupname] = None + groups_keys = groups.keys() + for groupname in groups_keys[0:-1]: + query += "%s," + query_params += (groupname,) + query += "%s)" + query_params += (groups_keys[-1],) + res = run_sql(query, query_params) + def enter_dict(couple): + """ enter a tuple into dictionary groups """ + groups[couple[0]] = int(couple[1]) + map(enter_dict, res) + return groups + +def get_uids_members_of_groups(gids): + """ + Get the distinct ids of users members of given groups. + @param groupnames: list or sequence of group ids + @return: a list of uids. + """ + if not((type(gids) is list) or (type(gids) is tuple)): + gids = [gids] + query = """SELECT DISTINCT id_user + FROM user_usergroup + WHERE user_status!=%s AND ( + """ + query_params = [CFG_WEBSESSION_USERGROUP_STATUS['PENDING']] + if len(gids) > 0: + for gid in gids[0:-1]: + query += " id_usergroup=%s OR" + query_params.append(gid) + query += " id_usergroup=%s)" + query_params.append(gids[-1]) + return map(get_element, run_sql(query, tuple(query_params))) + return [] + +def user_exists(uid): + """ checks if a user exists in the system, given his uid. return 0 or 1""" + query = "SELECT count(id) FROM user WHERE id=%s GROUP BY id" + res = run_sql(query, (uid, )) + if res: + return int(res[0][0]) + return 0 + +def create_message(uid_from, + users_to_str="", + groups_to_str="", + msg_subject="", + msg_body="", + msg_send_on_date=datetext_default): + """ + Creates a message in the msgMESSAGE table. Does NOT send the message. + This function is like a datagramPacket... + @param uid_from: uid of the sender (int) + @param users_to_str: a string, with nicknames separated by semicolons (';') + @param groups_to_str: a string with groupnames separated by semicolons + @param msg_subject: string containing the subject of the message + @param msg_body: string containing the body of the message + @param msg_send_on_date: date on which message must be sent. Has to be a + datetex format (i.e. YYYY-mm-dd HH:MM:SS) + @return: id of the created message + """ + now = convert_datestruct_to_datetext(localtime()) + msg_id = run_sql("""INSERT INTO msgMESSAGE(id_user_from, + sent_to_user_nicks, + sent_to_group_names, + subject, + body, + sent_date, + received_date) + VALUES (%s,%s,%s,%s,%s,%s,%s)""", + (uid_from, + users_to_str, + groups_to_str, + msg_subject, + msg_body, + now, + msg_send_on_date)) + return int(msg_id) + +def send_message(uids_to, msgid, status=CFG_WEBMESSAGE_STATUS_CODE['NEW']): + """ + Send message to uids + @param uids: sequence of user ids + @param msg_id: id of message + @param status: status of the message. (single char, see webmessage_config.py). + @return: a list of users having their mailbox full + """ + if not((type(uids_to) is list) or (type(uids_to) is tuple)): + uids_to = [uids_to] + user_problem = [] + if len(uids_to) > 0: + users_quotas = check_quota(CFG_WEBMESSAGE_MAX_NB_OF_MESSAGES - 1) + query = """INSERT INTO user_msgMESSAGE (id_user_to, id_msgMESSAGE, + status) VALUES """ + fixed_value = ",%s,%s)" + query_params = [] + def not_users_quotas_has_key(key): + """ not(is key in users over quota?)""" + return not(users_quotas.has_key(key)) + user_ids_to = filter(not_users_quotas_has_key, uids_to) + user_problem = filter(users_quotas.has_key, uids_to) + if len(user_ids_to) > 0: + for uid_to in user_ids_to[0:-1]: + query += "(%%s%s," % fixed_value + query_params += [uid_to, msgid, status] + query += "(%%s%s" % fixed_value + query_params += [user_ids_to[-1], msgid, status] + run_sql(query, tuple(query_params)) + return user_problem + + +def check_quota(nb_messages): + """ + @param nb_messages: max number of messages a user can have + @return: a dictionary of users over-quota + """ + from invenio.webuser import collect_user_info + from invenio.access_control_admin import acc_is_user_in_role, acc_get_role_id + no_quota_role_ids = [acc_get_role_id(role) for role in CFG_WEBMESSAGE_ROLES_WITHOUT_QUOTA] + res = {} + for uid, n in run_sql("SELECT id_user_to, COUNT(id_user_to) FROM user_msgMESSAGE GROUP BY id_user_to HAVING COUNT(id_user_to) > %s", (nb_messages, )): + user_info = collect_user_info(uid) + for role_id in no_quota_role_ids: + if acc_is_user_in_role(user_info, role_id): + break + else: + res[uid] = n + return res + +def update_user_inbox_for_reminders(uid): + """ + Updates user's inbox with any reminders that should have arrived + @param uid: user id + @return: integer number of new expired reminders + """ + now = convert_datestruct_to_datetext(localtime()) + reminder_status = CFG_WEBMESSAGE_STATUS_CODE['REMINDER'] + new_status = CFG_WEBMESSAGE_STATUS_CODE['NEW'] + query1 = """SELECT m.id + FROM msgMESSAGE m, + user_msgMESSAGE um + WHERE um.id_user_to=%s AND + um.id_msgMESSAGE=m.id AND + m.received_date<=%s AND + um.status like binary %s + """ + params1 = (uid, now, reminder_status) + res_ids = run_sql(query1, params1) + out = len(res_ids) + if (out>0): + query2 = """UPDATE user_msgMESSAGE + SET status=%s + WHERE id_user_to=%s AND (""" + query_params = [new_status, uid] + for msg_id in res_ids[0:-1]: + query2 += "id_msgMESSAGE=%s OR " + query_params.append(msg_id[0]) + query2 += "id_msgMESSAGE=%s)" + query_params.append(res_ids[-1][0]) + run_sql(query2, tuple(query_params)) + return out + +def get_nicknames_like(pattern): + """get nicknames like pattern""" + if pattern: + try: + res = run_sql("SELECT nickname FROM user WHERE nickname RLIKE %s", (pattern,)) + except OperationalError: + res = () + return res + return () + +def get_groupnames_like(uid, pattern): + """Get groupnames like pattern. Will return only groups that user is allowed to see + """ + groups = {} + if pattern: + # For this use case external groups are like invisible one + query1 = "SELECT id, name FROM usergroup WHERE name RLIKE %s AND join_policy like 'V%%' AND join_policy<>'VE'" + try: + res = run_sql(query1, (pattern,)) + except OperationalError: + res = () + # The line belows inserts into groups dictionary every tuple the database returned, + # assuming field0=key and field1=value + map(lambda x: groups.setdefault(x[0], x[1]), res) + query2 = """SELECT g.id, g.name + FROM usergroup g, user_usergroup ug + WHERE g.id=ug.id_usergroup AND ug.id_user=%s AND g.name RLIKE %s""" + try: + res = run_sql(query2, (uid, pattern)) + except OperationalError: + res = () + map(lambda x: groups.setdefault(x[0], x[1]), res) + return groups + +def get_element(sql_res): + """convert mySQL output + @param x: a tuple like this: (6789L,) + @return: integer conversion of the number in tuple + """ + return int(sql_res[0]) + +def clean_messages(): + """ Cleans msgMESSAGE table""" + current_time = localtime() + seconds = mktime(current_time) + seconds -= CFG_WEBMESSAGE_DAYS_BEFORE_DELETE_ORPHANS * 86400 + sql_date = convert_datestruct_to_datetext(localtime(seconds)) + deleted_items = 0 + #find id and email from every user who has got an email + query1 = """SELECT distinct(umsg.id_user_to), + user.email + FROM user_msgMESSAGE umsg + LEFT JOIN user ON + umsg.id_user_to=user.id""" + res1 = run_sql(query1) + # if there is no email, user has disappeared + users_deleted = map(lambda u: int(u[0]), filter(lambda x: x[1] is None, res1)) + # find ids from messages in user's inbox + query2 = """SELECT distinct(umsg.id_msgMESSAGE), + msg.id + FROM user_msgMESSAGE umsg + LEFT JOIN msgMESSAGE msg ON + umsg.id_msgMESSAGE=msg.id""" + res2 = run_sql(query2) + # if there is no id, message was deleted from table msgMESSAGE... + messages_deleted = map(lambda u: int(u[0]), filter(lambda x: x[1] is None, res2)) + def tuplize(el1, el2): + return str(el1) + ',' + str(el2) + if len(users_deleted) or len(messages_deleted): + # Suppress every referential error from user_msgMESSAGE + query3 = "DELETE FROM user_msgMESSAGE WHERE " + query_params = [] + if len(users_deleted): + query3 += "id_user_to IN (%s)" + query_params.append(reduce(tuplize, users_deleted)) + if len(messages_deleted): + query3 += ' OR ' + if len(messages_deleted): + query3 += "id_msgMESSAGE IN (%s)" + query_params.append(reduce(tuplize, messages_deleted)) + deleted_items = int(run_sql(query3, tuple(query_params))) + # find every message that is nobody's inbox + query4 = """SELECT msg.id + FROM msgMESSAGE msg + LEFT JOIN user_msgMESSAGE umsg + ON msg.id=umsg.id_msgMESSAGE + WHERE msg.sent_date<%s + GROUP BY umsg.id_msgMESSAGE + HAVING count(umsg.id_msgMESSAGE)=0 + """ + res4 = map(lambda x: x[0], run_sql(query4, (sql_date, ))) + if len(res4): + # delete these messages + query5 = "DELETE FROM msgMESSAGE WHERE " + query5 += "id IN (%s)" + deleted_items += int(run_sql(query5, (reduce(tuplize, res4), ))) + return deleted_items + diff --git a/modules/websearch/lib/Makefile.am b/modules/websearch/lib/Makefile.am index ffa3139922..58d7e9ad9f 100644 --- a/modules/websearch/lib/Makefile.am +++ b/modules/websearch/lib/Makefile.am @@ -19,6 +19,7 @@ pylibdir = $(libdir)/python/invenio pylib_DATA = \ websearchadminlib.py \ + websearch_model.py \ websearch_templates.py \ websearch_webinterface.py \ websearch_regression_tests.py \ diff --git a/modules/websearch/lib/websearch_model.py b/modules/websearch/lib/websearch_model.py new file mode 100644 index 0000000000..81678f92bb --- /dev/null +++ b/modules/websearch/lib/websearch_model.py @@ -0,0 +1,462 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +websearch database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +from invenio.websession_model import User + +#class NodeMap(db.MappedCollection): +# """Holds 'Node' objects, keyed by the 'name' attribute with insert +# order maintained.""" +# def __init__(self, *args, **kw): +# db.MappedCollection.__init__(self, keyfunc=lambda name: name.type_ln) +# +# #@collection.internally_instrumented +# def __setitem__(self, key, value, _sa_initiator=None): +# print "Key Mapped Collection" +# print key +# print value.__dict__ +# new_key = self.keyfunc(value) +# if new_key != key: +# try: +# super(NodeMap, self).__delitem__(self.keyfunc(value)) +# except: +# pass +# value.type_ln = key +# super(NodeMap, self).__setitem__(key, +# value) +# +# #@collection.internally_instrumented +# def __delitem__(self, key, _sa_initiator=None): +# super(NodeMap, self).__delitem__(key) + + +class Collection(db.Model): + """Represents a Collection record.""" + def __init__(self): + pass + __tablename__ = 'collection' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True) + name = db.Column(db.String(255), unique=True, index=True, + nullable=False) + dbquery = db.Column(db.Text(20), nullable=True, + index=True) + nbrecs = db.Column(db.Integer(10, unsigned=True), + server_default='0') + reclist = db.Column(db.iLargeBinary) + names = db.relationship("Collectionname", + backref='collection', + #collection_class=NodeMap + #mapped_collection(keyfunc=lambda name: name.type_ln) + #ln + ":" + name.type) + ) + +class Collectionname(db.Model): + """Represents 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) + #collection = db.relationship(Collection, backref='names') + +# @hybrid_property +# def type_ln(self): +# #return self.type + ":" + self.ln +# return (self.type, self.ln) + +# @type_ln.setter +# def type_ln(self, value): +# #print self.__dict__ +# #assoc_collection = self.collection +# #try: +# # assoc_collection.names.remove(self) +# #except: +# # pass +# #(self.type, self.ln) = value.split(":") +# (self.type, self.ln) = value +# #print self.__dict__ +# #try: +# # assoc_collection.names.set(self) +# #except: +# # pass + +#from sqlalchemy import event + +#def collection_append_listener(target, value, initiator): +# print "received append event for target: %s" % target.__dict__ +# print value.__dict__ +# print initiator.__dict__ + +#event.listen(Collection.names, 'append', collection_append_listener) + +class Collectiondetailedrecordpagetabs(db.Model): + """Represents a Collectiondetailedrecordpagetabs record.""" + def __init__(self): + pass + __tablename__ = 'collectiondetailedrecordpagetabs' + id_collection = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Collection.id), + nullable=False, primary_key=True) + tabs = db.Column(db.String(255), nullable=False, + server_default='') + collection = db.relationship(Collection, + backref='collectiondetailedrecordpagetabs') + +class CollectionCollection(db.Model): + """Represents a CollectionCollection record.""" + def __init__(self): + pass + __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=score) + dad = db.relationship(Collection, primaryjoin=id_dad==Collection.id, + backref='sons', order_by=score) + +class Example(db.Model): + """Represents a Example record.""" + def __init__(self): + pass + __tablename__ = 'example' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + type = db.Column(db.Text, nullable=False) + body = db.Column(db.Text, nullable=False) + +class CollectionExample(db.Model): + """Represents a CollectionExample record.""" + def __init__(self): + pass + __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) + +class Portalbox(db.Model): + """Represents a Portalbox record.""" + def __init__(self): + pass + __tablename__ = 'portalbox' + id = db.Column(db.MediumInteger(9, unsigned=True), autoincrement=True, + primary_key=True) + title = db.Column(db.Text, nullable=False) + body = db.Column(db.Text, nullable=False) + +class CollectionPortalbox(db.Model): + """Represents a CollectionPortalbox record.""" + def __init__(self): + pass + __tablename__ = 'collection_portalbox' + id_collection = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Collection.id), primary_key=True) + id_portalbox = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Portalbox.id), primary_key=True) + ln = db.Column(db.Char(5), primary_key=True, server_default='', + nullable=False) + position = db.Column(db.Char(3), nullable=False, + server_default='top') + score = db.Column(db.TinyInteger(4, unsigned=True), + nullable=False, + server_default='0') + collection = db.relationship(Collection, backref='portalboxes', + order_by=score) + portalbox = db.relationship(Portalbox, backref='collections', + order_by=score) + +class Externalcollection(db.Model): + """Represents a Externalcollection record.""" + def __init__(self): + pass + __tablename__ = 'externalcollection' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True) + name = db.Column(db.String(255), unique=True, nullable=False, + server_default='') + +class CollectionExternalcollection(db.Model): + """Represents a CollectionExternalcollection record.""" + def __init__(self): + pass + __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) + collection = db.relationship(Collection, backref='externalcollections') + externalcollection = db.relationship(Externalcollection) #, + # backref='collections') + +class Format(db.Model): + """Represents a Format record.""" + def __init__(self): + pass + __tablename__ = 'format' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + name = db.Column(db.String(255), nullable=False) + code = db.Column(db.String(6), nullable=False) + description = db.Column(db.String(255), server_default='') + content_type = db.Column(db.String(255), server_default='') + visibility = db.Column(db.TinyInteger(4), nullable=False, + server_default='1') + +class CollectionFormat(db.Model): + """Represents a CollectionFormat record.""" + def __init__(self): + pass + __tablename__ = 'collection_format' + id_collection = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Collection.id), primary_key=True) + id_format = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Externalcollection.id), primary_key=True) + score = db.Column(db.TinyInteger(4, unsigned=True), + nullable=False, + server_default='0') + collection = db.relationship(Collection, backref='formats', + order_by=score) + format = db.relationship(Externalcollection, + backref='collections', + order_by=score) + +class Formatname(db.Model): + """Represents a Formatname record.""" + def __init__(self): + pass + __tablename__ = 'formatname' + id_format = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Format.id), primary_key=True) + ln = db.Column(db.Char(5), primary_key=True, + server_default='') + type = db.Column(db.Char(3), primary_key=True, + server_default='sn') + value = db.Column(db.String(255), nullable=False) + format = db.relationship(Format, backref='names') + +class Field(db.Model): + """Represents a Field record.""" + def __init__(self): + pass + __tablename__ = 'field' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True) + name = db.Column(db.String(255), unique=True, + nullable=False) + code = db.Column(db.String(255), nullable=False) + #tags = db.relationship('FieldTag', + # collection_class=attribute_mapped_collection('score'), + # cascade="all, delete-orphan" + # ) + #tag_names = association_proxy("tags", "as_tag") + +class Fieldvalue(db.Model): + """Represents a Fieldvalue record.""" + def __init__(self): + pass + __tablename__ = 'fieldvalue' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True, + autoincrement=True) + name = db.Column(db.String(255), nullable=False) + value = db.Column(db.Text, nullable=False) + +class Fieldname(db.Model): + """Represents a Fieldname record.""" + def __init__(self): + pass + __tablename__ = 'fieldname' + id_field = db.Column(db.MediumInteger(9, unsigned=True), db.ForeignKey(Field.id), + primary_key=True) + ln = db.Column(db.Char(5), primary_key=True, + server_default='') + type = db.Column(db.Char(3), primary_key=True, + server_default='sn') + value = db.Column(db.String(255), nullable=False) + field = db.relationship(Field, backref='names') + +class Tag(db.Model): + """Represents a Tag record.""" + __tablename__ = 'tag' + id = db.Column(db.MediumInteger(9, unsigned=True), + primary_key=True) + name = db.Column(db.String(255), nullable=False) + value = db.Column(db.Char(6), nullable=False) + + def __init__(self, tup): + self.name, self.value = tup + + @property + def as_tag(self): + """Returns tupple with name and value.""" + return self.name, self.value + +class FieldTag(db.Model): + """Represents 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, tup): + self.score = score + self.tag = Tag(tup) + + @property + def as_tag(self): + """ Returns Tag record directly.""" + return self.tag + +class WebQuery(db.Model): + """Represents a WebQuery record.""" + def __init__(self): + pass + __tablename__ = 'query' + id = db.Column(db.Integer(15, unsigned=True), + primary_key=True, + autoincrement=True) + type = db.Column(db.Char(1), nullable=False, + server_default='r') + urlargs = db.Column(db.Text, nullable=False) + +class UserQuery(db.Model): + """Represents a UserQuery record.""" + def __init__(self): + pass + __tablename__ = 'user_query' + id_user = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(User.id), + primary_key=True, server_default='0') + id_query = db.Column(db.Integer(15, unsigned=True), db.ForeignKey(WebQuery.id), + primary_key=True, + index=True, server_default='0') + hostname = db.Column(db.String(50), nullable=True, + server_default='unknown host') + date = db.Column(db.DateTime, nullable=True) + +class CollectionFieldFieldvalue(db.Model): + """Represents a CollectionFieldFieldvalue record.""" + def __init__(self): + pass + __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') + field = db.relationship(Field, backref='collection_fieldvalues') + fieldvalue = db.relationship(Fieldvalue, backref='collection_fields') + +from bibclassify_model import ClsMETHOD + +class CollectionClsMETHOD(db.Model): + """Represents a Collection_clsMETHOD record.""" + def __init__(self): + pass + __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') + +from bibrank_model import RnkMETHOD + +class CollectionRnkMETHOD(db.Model): + """Represents a CollectionRnkMETHOD record.""" + def __init__(self): + pass + __tablename__ = 'collection_rnkMETHOD' + id_collection = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(Collection.id), primary_key=True, + nullable=False) + id_rnkMETHOD = db.Column(db.MediumInteger(9, unsigned=True), + db.ForeignKey(RnkMETHOD.id), primary_key=True, + nullable=False) + score = db.Column(db.TinyInteger(4, unsigned=True), + nullable=False, + server_default='0') + collection = db.relationship(Collection, backref='rnkMETHODs') + rnkMETHOD = db.relationship(RnkMETHOD, backref='collections') + + diff --git a/modules/websession/lib/Makefile.am b/modules/websession/lib/Makefile.am index 73a8187978..418089d5a1 100644 --- a/modules/websession/lib/Makefile.am +++ b/modules/websession/lib/Makefile.am @@ -19,6 +19,7 @@ pylibdir = $(libdir)/python/invenio pylib_DATA = session.py webuser.py webuser_unit_tests.py \ websession_templates.py websession_webinterface.py \ + websession_model.py \ webgroup.py webgroup_dblayer.py websession_config.py \ webaccount.py websession_regression_tests.py \ webgroup_regression_tests.py webuser_regression_tests.py \ diff --git a/modules/websession/lib/websession_model.py b/modules/websession/lib/websession_model.py new file mode 100644 index 0000000000..9fae6599c3 --- /dev/null +++ b/modules/websession/lib/websession_model.py @@ -0,0 +1,103 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +WebSession database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +class User(db.Model): + """Represents a User record.""" + def __init__(self): + pass + def __repr__(self): + return "%s <%s>" % (self.nickname, self.email) + __tablename__ = 'user' + id = db.Column(db.Integer(15, unsigned=True), + primary_key=True, + autoincrement=True) + email = db.Column(db.String(255), nullable=False, + server_default='') + password = db.Column(db.iBinary, nullable=False) + note = db.Column(db.String(255), nullable=True) + settings = db.Column(db.iBinary, nullable=True) + nickname = db.Column(db.String(255), nullable=False, + server_default='') + last_login = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + +class Usergroup(db.Model): + """Represents a Usergroup record.""" + def __init__(self): + pass + def __repr__(self): + return "%s <%s>" % (self.name, self.description) + __tablename__ = 'usergroup' + id = db.Column(db.Integer(15, unsigned=True), + nullable=False, + primary_key=True, autoincrement=True) + name = db.Column(db.String(255), nullable=False, + server_default='') + description = db.Column(db.Text, nullable=True) + join_policy = db.Column(db.Char(2), nullable=False, + server_default='') + login_method = db.Column(db.String(255), nullable=False, + server_default='INTERNAL') + +class UserUsergroup(db.Model): + """Represents a UserUsergroup record.""" + def __init__(self): + pass + def __repr__(self): + return "%s:%s" % (self.user.nickname, self.usergroup.name) + __tablename__ = 'user_usergroup' + id_user = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(User.id), + nullable=False, server_default='0', + primary_key=True) + id_usergroup = db.Column(db.Integer(15, unsigned=True), + db.ForeignKey(Usergroup.id), + nullable=False, server_default='0', + primary_key=True) + user_status = db.Column(db.Char(1), nullable=False, + server_default='') + user_status_date = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + user = db.relationship(User, backref='usergroups') + usergroup = db.relationship(Usergroup, backref='users') + +class Session(db.Model): + """Represents a Session record.""" + def __init__(self): + pass + __tablename__ = 'session' + session_key = db.Column(db.String(32), nullable=False, + server_default='', primary_key=True) + session_expiry = db.Column(db.Integer(11, unsigned=True), nullable=False, + server_default='0') + session_object = db.Column(db.iBinary, nullable=True) + uid = db.Column(db.Integer(15, unsigned=True), + nullable=False) + diff --git a/modules/webstat/lib/Makefile.am b/modules/webstat/lib/Makefile.am index fc7e0a1cf7..930354fe49 100644 --- a/modules/webstat/lib/Makefile.am +++ b/modules/webstat/lib/Makefile.am @@ -19,6 +19,7 @@ pylibdir = $(libdir)/python/invenio pylib_DATA = webstat.py \ webstat_config.py \ + webstat_model.py \ webstat_webinterface.py \ webstat_templates.py \ webstat_engine.py \ diff --git a/modules/webstat/lib/webstat_model.py b/modules/webstat/lib/webstat_model.py new file mode 100644 index 0000000000..bf39f10881 --- /dev/null +++ b/modules/webstat/lib/webstat_model.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +webstat database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +class StaEVENT(db.Model): + """Represents a StaEVENT record.""" + def __init__(self): + pass + __tablename__ = 'staEVENT' + id = db.Column(db.String(255), nullable=False, + primary_key=True) + number = db.Column(db.SmallInteger(2, unsigned=True, + zerofill=True), + nullable=False, autoincrement=True, index=True, + unique=True) + name = db.Column(db.String(255), nullable=True) + creation_time = db.Column(db.TIMESTAMP, nullable=False, + server_default=db.func.current_timestamp()) + cols = db.Column(db.String(255), nullable=True) diff --git a/modules/websubmit/lib/Makefile.am b/modules/websubmit/lib/Makefile.am index d89b61afce..8a67e7be90 100644 --- a/modules/websubmit/lib/Makefile.am +++ b/modules/websubmit/lib/Makefile.am @@ -21,6 +21,7 @@ pylibdir = $(libdir)/python/invenio pylib_DATA = websubmit_config.py websubmit_engine.py \ websubmit_dblayer.py \ + websubmit_model.py \ websubmit_webinterface.py \ websubmit_templates.py \ websubmit_regression_tests.py \ diff --git a/modules/websubmit/lib/websubmit_model.py b/modules/websubmit/lib/websubmit_model.py new file mode 100644 index 0000000000..b012f366b0 --- /dev/null +++ b/modules/websubmit/lib/websubmit_model.py @@ -0,0 +1,465 @@ +# -*- coding: utf-8 -*- +# +## Author: Jiri Kuncar +## +## This file is part of Invenio. +## Copyright (C) 2011, 2012 CERN. +## +## Invenio is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## Invenio is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Invenio; if not, write to the Free Software Foundation, Inc., +## 59 Temple Place, Suite 330, Boston, MA 02D111-1307, USA. + +""" +websubmit database models. +""" + +# General imports. +from invenio.sqlalchemyutils import db + +# Create your models here. + +class SbmACTION(db.Model): + """Represents a SbmACTION record.""" + def __init__(self): + pass + __tablename__ = 'sbmACTION' + lactname = db.Column(db.Text, nullable=True) + sactname = db.Column(db.Char(3), nullable=False, server_default='', + primary_key=True) + dir = db.Column(db.Text, nullable=True) + cd = db.Column(db.Date, nullable=True) + md = db.Column(db.Date, nullable=True) + actionbutton = db.Column(db.Text, nullable=True) + statustext = db.Column(db.Text, nullable=True) + +class SbmALLFUNCDESCR(db.Model): + """Represents a SbmALLFUNCDESCR record.""" + def __init__(self): + pass + __tablename__ = 'sbmALLFUNCDESCR' + #FIX ME pk + function = db.Column(db.String(40), nullable=False, server_default='', + primary_key=True) + description = db.Column(db.TinyText, nullable=True) + +class SbmAPPROVAL(db.Model): + """Represents a SbmAPPROVAL record.""" + def __init__(self): + pass + __tablename__ = 'sbmAPPROVAL' + doctype = db.Column(db.String(10), nullable=False, + server_default='') + categ = db.Column(db.String(50), nullable=False, + server_default='') + rn = db.Column(db.String(50), nullable=False, server_default='', + primary_key=True) + status = db.Column(db.String(10), nullable=False, + server_default='') + dFirstReq = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + dLastReq = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + dAction = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + access = db.Column(db.String(20), nullable=False, + server_default='0') + note = db.Column(db.Text, nullable=False) + +class SbmCATEGORIES(db.Model): + """Represents a SbmCATEGORIES record.""" + def __init__(self): + pass + __tablename__ = 'sbmCATEGORIES' + doctype = db.Column(db.String(10), nullable=False, server_default='', + primary_key=True) + sname = db.Column(db.String(75), nullable=False, server_default='', + primary_key=True) + lname = db.Column(db.String(75), nullable=False, + server_default='') + score = db.Column(db.TinyInteger(3, unsigned=True), nullable=False, + server_default='0') + +class SbmCHECKS(db.Model): + """Represents a SbmCHECKS record.""" + def __init__(self): + pass + __tablename__ = 'sbmCHECKS' + chname = db.Column(db.String(15), nullable=False, server_default='', + primary_key=True) + chdesc = db.Column(db.Text, nullable=True) + cd = db.Column(db.Date, nullable=True) + md = db.Column(db.Date, nullable=True) + chefi1 = db.Column(db.Text, nullable=True) + chefi2 = db.Column(db.Text, nullable=True) + +class SbmCOLLECTION(db.Model): + """Represents a SbmCOLLECTION record.""" + def __init__(self): + pass + __tablename__ = 'sbmCOLLECTION' + id = db.Column(db.Integer(11), nullable=False, + primary_key=True, + autoincrement=True) + name = db.Column(db.String(100), nullable=False, + server_default='') + +class SbmCOLLECTIONSbmCOLLECTION(db.Model): + """Represents a SbmCOLLECTIONSbmCOLLECTION record.""" + def __init__(self): + pass + __tablename__ = 'sbmCOLLECTION_sbmCOLLECTION' + id_father = db.Column(db.Integer(11), db.ForeignKey(SbmCOLLECTION.id), + nullable=False, server_default='0', primary_key=True) + id_son = db.Column(db.Integer(11), db.ForeignKey(SbmCOLLECTION.id), + nullable=False, server_default='0', primary_key=True) + catalogue_order = db.Column(db.Integer(11), nullable=False, + server_default='0') + +class SbmDOCTYPE(db.Model): + """Represents a SbmDOCTYPE record.""" + def __init__(self): + pass + __tablename__ = 'sbmDOCTYPE' + ldocname = db.Column(db.Text, nullable=True) + sdocname = db.Column(db.String(10), nullable=True, + primary_key=True) + cd = db.Column(db.Date, nullable=True) + md = db.Column(db.Date, nullable=True) + description = db.Column(db.Text, nullable=True) + + +class SbmCOLLECTIONSbmDOCTYPE(db.Model): + """Represents a SbmCOLLECTIONSbmDOCTYPE record.""" + def __init__(self): + pass + __tablename__ = 'sbmCOLLECTION_sbmDOCTYPE' + id_father = db.Column(db.Integer(11), db.ForeignKey(SbmCOLLECTION.id), + nullable=False, server_default='0', primary_key=True) + id_son = db.Column(db.Char(10), db.ForeignKey(SbmDOCTYPE.sdocname), + nullable=False, server_default='0', primary_key=True) + catalogue_order = db.Column(db.Integer(11), nullable=False, + server_default='0') + +class SbmCOOKIES(db.Model): + """Represents a SbmCOOKIES record.""" + def __init__(self): + pass + __tablename__ = 'sbmCOOKIES' + id = db.Column(db.Integer(15, unsigned=True), nullable=False, + primary_key=True, + autoincrement=True) + name = db.Column(db.String(100), nullable=False) + value = db.Column(db.Text, nullable=True) + uid = db.Column(db.Integer(15), nullable=False) + +class SbmCPLXAPPROVAL(db.Model): + """Represents a SbmCPLXAPPROVAL record.""" + def __init__(self): + pass + __tablename__ = 'sbmCPLXAPPROVAL' + doctype = db.Column(db.String(10), nullable=False, + server_default='') + categ = db.Column(db.String(50), nullable=False, + server_default='') + rn = db.Column(db.String(50), nullable=False, server_default='', + primary_key=True) + type = db.Column(db.String(10), nullable=False, + primary_key=True) + status = db.Column(db.String(10), nullable=False) + id_group = db.Column(db.Integer(15, unsigned=True), nullable=False, + server_default='0') + id_bskBASKET = db.Column(db.Integer(15, unsigned=True), nullable=False, + server_default='0') + id_EdBoardGroup = db.Column(db.Integer(15, unsigned=True), nullable=False, + server_default='0') + dFirstReq = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + dLastReq = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + dEdBoardSel = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + dRefereeSel = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + dRefereeRecom = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + dEdBoardRecom = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + dPubComRecom = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + dProjectLeaderAction = db.Column(db.DateTime, + nullable=False, + server_default='0000-00-00 00:00:00') + + +class SbmFIELD(db.Model): + """Represents a SbmFIELD record.""" + def __init__(self): + pass + __tablename__ = 'sbmFIELD' + subname = db.Column(db.String(13), nullable=True, + primary_key=True) + pagenb = db.Column(db.Integer(11), nullable=True, + primary_key=True) + fieldnb = db.Column(db.Integer(11), nullable=True) + fidesc = db.Column(db.String(15), nullable=True, + primary_key=True) + fitext = db.Column(db.Text, nullable=True) + level = db.Column(db.Char(1), nullable=True) + sdesc = db.Column(db.Text, nullable=True) + checkn = db.Column(db.Text, nullable=True) + cd = db.Column(db.Date, nullable=True) + md = db.Column(db.Date, nullable=True) + fiefi1 = db.Column(db.Text, nullable=True) + fiefi2 = db.Column(db.Text, nullable=True) + + +class SbmFIELDDESC(db.Model): + """Represents a SbmFIELDDESC record.""" + def __init__(self): + pass + __tablename__ = 'sbmFIELDDESC' + name = db.Column(db.String(15), db.ForeignKey(SbmFIELD.fidesc), nullable=False, + server_default='', + primary_key=True) + alephcode = db.Column(db.String(50), nullable=True) + marccode = db.Column(db.String(50), nullable=False, + server_default='') + type = db.Column(db.Char(1), nullable=True) + size = db.Column(db.Integer(11), nullable=True) + rows = db.Column(db.Integer(11), nullable=True) + cols = db.Column(db.Integer(11), nullable=True) + maxlength = db.Column(db.Integer(11), nullable=True) + val = db.Column(db.Text, nullable=True) + fidesc = db.Column(db.Text, nullable=True) + cd = db.Column(db.Date, nullable=True) + md = db.Column(db.Date, nullable=True) + modifytext = db.Column(db.Text, nullable=True) + fddfi2 = db.Column(db.Text, nullable=True) + cookie = db.Column(db.Integer(11), nullable=True, + default='0') + field = db.relationship(SbmFIELD, backref='fielddescs') + + +class SbmFORMATEXTENSION(db.Model): + """Represents a SbmFORMATEXTENSION record.""" + def __init__(self): + pass + __tablename__ = 'sbmFORMATEXTENSION' + FILE_FORMAT = db.Column(db.Text(50), nullable=False, + primary_key=True) + FILE_EXTENSION = db.Column(db.Text(10), nullable=False, + primary_key=True) + + +class SbmFUNCTIONS(db.Model): + """Represents a SbmFUNCTIONS record.""" + def __init__(self): + pass + __tablename__ = 'sbmFUNCTIONS' + action = db.Column(db.String(10), nullable=False, + server_default='', + primary_key=True) + doctype = db.Column(db.String(10), nullable=False, + server_default='', + primary_key=True) + function = db.Column(db.String(40), nullable=False, + server_default='', + primary_key=True) + score = db.Column(db.Integer(11), nullable=False, + server_default='0', + primary_key=True) + step = db.Column(db.TinyInteger(4), nullable=False, + server_default='1', + primary_key=True) + +class SbmFUNDESC(db.Model): + """Represents a SbmFUNDESC record.""" + def __init__(self): + pass + __tablename__ = 'sbmFUNDESC' + function = db.Column(db.String(40), nullable=False, + server_default='', + primary_key=True) + param = db.Column(db.String(40), nullable=True, + primary_key=True) + +class SbmGFILERESULT(db.Model): + """Represents a SbmGFILERESULT record.""" + def __init__(self): + pass + __tablename__ = 'sbmGFILERESULT' + FORMAT = db.Column(db.Text(50), nullable=False, + primary_key=True) + RESULT = db.Column(db.Text(50), nullable=False, + primary_key=True) + +class SbmIMPLEMENT(db.Model): + """Represents a SbmIMPLEMENT record.""" + def __init__(self): + pass + __tablename__ = 'sbmIMPLEMENT' + docname = db.Column(db.String(10), nullable=True) + actname = db.Column(db.Char(3), nullable=True) + displayed = db.Column(db.Char(1), nullable=True) + subname = db.Column(db.String(13), nullable=True, + primary_key=True) + nbpg = db.Column(db.Integer(11), nullable=True, + primary_key=True) + cd = db.Column(db.Date, nullable=True) + md = db.Column(db.Date, nullable=True) + buttonorder = db.Column(db.Integer(11), nullable=True) + statustext = db.Column(db.Text, nullable=True) + level = db.Column(db.Char(1), nullable=False, + server_default='') + score = db.Column(db.Integer(11), nullable=False, + server_default='0') + stpage = db.Column(db.Integer(11), nullable=False, + server_default='0') + endtxt = db.Column(db.String(100), nullable=False, + server_default='') + +class SbmPARAMETERS(db.Model): + """Represents a SbmPARAMETERS record.""" + def __init__(self): + pass + __tablename__ = 'sbmPARAMETERS' + doctype = db.Column(db.String(10), nullable=False, + server_default='', + primary_key=True) + name = db.Column(db.String(40), nullable=False, + server_default='', + primary_key=True) + value = db.Column(db.Text, nullable=False) + +class SbmPUBLICATION(db.Model): + """Represents a SbmPUBLICATION record.""" + def __init__(self): + pass + __tablename__ = 'sbmPUBLICATION' + doctype = db.Column(db.String(10), nullable=False, + server_default='', + primary_key=True) + categ = db.Column(db.String(50), nullable=False, + server_default='', + primary_key=True) + rn = db.Column(db.String(50), nullable=False, server_default='', + primary_key=True) + status = db.Column(db.String(10), nullable=False, + server_default='') + dFirstReq = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + dLastReq = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + dAction = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + accessref = db.Column(db.String(20), nullable=False, + server_default='') + accessedi = db.Column(db.String(20), nullable=False, + server_default='') + access = db.Column(db.String(20), nullable=False, + server_default='') + referees = db.Column(db.String(50), nullable=False, + server_default='') + authoremail = db.Column(db.String(50), nullable=False, + server_default='') + dRefSelection = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + dRefRec = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + dEdiRec = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + accessspo = db.Column(db.String(20), nullable=False, + server_default='') + journal = db.Column(db.String(100), nullable=True) + + +class SbmPUBLICATIONCOMM(db.Model): + """Represents a SbmPUBLICATIONCOMM record.""" + def __init__(self): + pass + __tablename__ = 'sbmPUBLICATIONCOMM' + id = db.Column(db.Integer(11), nullable=False, + primary_key=True, + autoincrement=True) + id_parent = db.Column(db.Integer(11), nullable=True) + rn = db.Column(db.String(100), nullable=False, + server_default='') + firstname = db.Column(db.String(100), nullable=True) + secondname = db.Column(db.String(100), nullable=True) + email = db.Column(db.String(100), nullable=True) + date = db.Column(db.String(40), nullable=False, + server_default='') + synopsis = db.Column(db.String(255), nullable=False, + server_default='') + commentfulltext = db.Column(db.Text, nullable=True) + + +class SbmPUBLICATIONDATA(db.Model): + """Represents a SbmPUBLICATIONDATA record.""" + def __init__(self): + pass + __tablename__ = 'sbmPUBLICATIONDATA' + doctype = db.Column(db.String(10), nullable=False, + server_default='', + primary_key=True) + editoboard = db.Column(db.String(250), nullable=False, + server_default='') + base = db.Column(db.String(10), nullable=False, + server_default='') + logicalbase = db.Column(db.String(10), nullable=False, + server_default='') + spokesperson = db.Column(db.String(50), nullable=False, + server_default='') + +class SbmREFEREES(db.Model): + """Represents a SbmREFEREES record.""" + def __init__(self): + pass + __tablename__ = 'sbmREFEREES' + doctype = db.Column(db.String(10), nullable=False, + server_default='') + categ = db.Column(db.String(10), nullable=False, + server_default='') + name = db.Column(db.String(50), nullable=False, + server_default='') + address = db.Column(db.String(50), nullable=False, + server_default='') + rid = db.Column(db.Integer(11), nullable=False, + primary_key=True, + autoincrement=True) + +class SbmSUBMISSIONS(db.Model): + """Represents a SbmSUBMISSIONS record.""" + def __init__(self): + pass + __tablename__ = 'sbmSUBMISSIONS' + email = db.Column(db.String(50), nullable=False, + server_default='') + doctype = db.Column(db.String(10), nullable=False, + server_default='') + action = db.Column(db.String(10), nullable=False, + server_default='') + status = db.Column(db.String(10), nullable=False, + server_default='') + id = db.Column(db.String(30), nullable=False, + server_default='') + reference = db.Column(db.String(40), nullable=False, + server_default='') + cd = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + md = db.Column(db.DateTime, nullable=False, + server_default='0000-00-00 00:00:00') + log_id = db.Column(db.Integer(11), nullable=False, + primary_key=True, + autoincrement=True) +