diff --git a/cps/templates/config_edit.html b/cps/templates/config_edit.html index 7824ddd0..0f6a88ee 100644 --- a/cps/templates/config_edit.html +++ b/cps/templates/config_edit.html @@ -23,7 +23,10 @@ - +
+ + +
diff --git a/cps/ub.py b/cps/ub.py index ad638337..6c941aa3 100644 --- a/cps/ub.py +++ b/cps/ub.py @@ -254,6 +254,7 @@ class Settings(Base): config_anonbrowse = Column(SmallInteger, default=0) config_public_reg = Column(SmallInteger, default=0) config_default_role = Column(SmallInteger, default=0) + config_columns_to_ignore = Column(String) def __repr__(self): pass @@ -280,6 +281,7 @@ class Config: self.config_anonbrowse = data.config_anonbrowse self.config_public_reg = data.config_public_reg self.config_default_role = data.config_default_role + self.config_columns_to_ignore = data.config_columns_to_ignore if self.config_calibre_dir is not None: self.db_configured = True else: @@ -361,6 +363,12 @@ def migrate_Database(): conn.execute("ALTER TABLE Settings ADD column `config_anonbrowse` SmallInteger DEFAULT 0") conn.execute("ALTER TABLE Settings ADD column `config_public_reg` SmallInteger DEFAULT 0") session.commit() + try: + session.query(exists().where(Settings.config_columns_to_ignore)).scalar() + except exc.OperationalError: + conn = engine.connect() + conn.execute("ALTER TABLE Settings ADD column `config_columns_to_ignore` String DEFAULT ''") + session.commit() try: session.query(exists().where(Settings.config_default_role)).scalar() session.commit() diff --git a/cps/web.py b/cps/web.py index 24d4f36b..07d7fb63 100755 --- a/cps/web.py +++ b/cps/web.py @@ -1038,7 +1038,16 @@ def show_book(id): except Exception as e: entries.languages[index].language_name = _( isoLanguages.get(part3=entries.languages[index].lang_code).name) - cc = db.session.query(db.Custom_Columns).filter(db.Custom_Columns.datatype.notin_(db.cc_exceptions)).all() + tmpcc = db.session.query(db.Custom_Columns).filter(db.Custom_Columns.datatype.notin_(db.cc_exceptions)).all() + + if config.config_columns_to_ignore: + cc=[] + for col in tmpcc: + r= re.compile(config.config_columns_to_ignore) + if r.match(col.label): + cc.append(col) + else: + cc=tmpcc book_in_shelfs = [] shelfs = ub.session.query(ub.BookShelf).filter(ub.BookShelf.book_id == id).all() for entry in shelfs: @@ -1693,6 +1702,8 @@ def configuration_helper(origin): reboot_required = True if "config_calibre_web_title" in to_save: content.config_calibre_web_title = to_save["config_calibre_web_title"] + if "config_columns_to_ignore" in to_save: + content.config_columns_to_ignore = to_save["config_columns_to_ignore"] if "config_title_regex" in to_save: if content.config_title_regex != to_save["config_title_regex"]: content.config_title_regex = to_save["config_title_regex"]