sql: import CardDef/FormDef in global namespace (#73674)

This commit is contained in:
Frédéric Péters 2022-09-06 16:12:28 +02:00 committed by Gitea
parent 24296d1e9e
commit bd497d9e57
1 changed files with 2 additions and 31 deletions

View File

@ -59,6 +59,8 @@ import wcs.users
from wcs.qommon import force_str
from . import qommon
from .carddef import CardDef
from .formdef import FormDef
from .publisher import UnpicklerClass
from .qommon import _, get_cfg
from .qommon.misc import JSONEncoder, strftime
@ -1882,8 +1884,6 @@ def do_global_views(conn, cur):
def clean_global_views(conn, cur):
from .formdef import FormDef
# Purge of any dead data
valid_ids = [int(i) for i in FormDef.keys()]
if valid_ids:
@ -1893,8 +1893,6 @@ def clean_global_views(conn, cur):
def init_global_table(conn=None, cur=None):
from .formdef import FormDef
own_conn = False
if not conn:
own_conn = True
@ -4639,8 +4637,6 @@ class AnyFormData(SqlMixin):
@classproperty
def _table_static_fields(self):
if not hasattr(self, '__table_static_fields'):
from wcs.formdef import FormDef
fake_formdef = FormDef()
common_fields = get_view_fields(fake_formdef)
self.__table_static_fields = [(x[1], x[0]) for x in common_fields]
@ -4663,8 +4659,6 @@ class AnyFormData(SqlMixin):
@classmethod
def _row2ob(cls, row, **kwargs):
formdef_id = row[1]
from wcs.formdef import FormDef
formdef = cls._formdef_cache.setdefault(formdef_id, FormDef.get(formdef_id))
o = formdef.data_class()()
for static_field, value in zip(cls._table_static_fields, tuple(row[: len(cls._table_static_fields)])):
@ -4696,8 +4690,6 @@ def get_period_query(
clause = [NotNull('receipt_time')]
table_name = 'wcs_all_forms'
if criterias:
from wcs.formdef import FormDef
formdef_class = FormDef
for criteria in criterias:
if criteria.__class__.__name__ == 'Equal' and criteria.attribute == 'formdef_klass':
@ -5120,9 +5112,6 @@ def set_reindex(index, value, conn=None, cur=None):
def migrate_views(conn, cur):
drop_views(None, conn, cur)
from wcs.carddef import CardDef
from wcs.formdef import FormDef
for formdef in FormDef.select() + CardDef.select():
# make sure all formdefs have up-to-date views
do_formdef_tables(formdef, conn=conn, cur=cur, rebuild_views=True, rebuild_global_views=False)
@ -5218,8 +5207,6 @@ def migrate():
migrate_views(conn, cur)
if sql_level < 6:
# 6: add actions_roles_array to tables and views
from wcs.formdef import FormDef
migrate_views(conn, cur)
for formdef in FormDef.select():
formdef.data_class().rebuild_security()
@ -5246,9 +5233,6 @@ def migrate():
# 62: use setweight on formdata & user indexation (reapply)
set_reindex('formdata', 'needed', conn=conn, cur=cur)
if sql_level < 74:
from wcs.carddef import CardDef
from wcs.formdef import FormDef
# 24: add index on evolution(formdata_id)
# 35: add indexes on formdata(receipt_time) and formdata(anonymised)
# 36: add index on formdata(user_id)
@ -5259,8 +5243,6 @@ def migrate():
do_formdef_indexes(formdef, created=False, conn=conn, cur=cur)
if sql_level < 30:
# 30: actually remove evo.who on anonymised formdatas
from wcs.formdef import FormDef
for formdef in FormDef.select():
for formdata in formdef.data_class().select_iterator(clause=[NotNull('anonymised')]):
if formdata.evolution:
@ -5269,9 +5251,6 @@ def migrate():
formdata.store()
if sql_level < 52:
# 52: store digests on formdata and carddata
from wcs.carddef import CardDef
from wcs.formdef import FormDef
for formdef in FormDef.select() + CardDef.select():
if not formdef.digest_templates:
continue
@ -5281,9 +5260,6 @@ def migrate():
# 58: add workflow_merged_roles_dict as a jsonb column with
# combined formdef and formdata value.
# 69: add auto_geoloc field to form/card tables
from wcs.carddef import CardDef
from wcs.formdef import FormDef
for formdef in FormDef.select() + CardDef.select():
do_formdef_tables(formdef, rebuild_views=False, rebuild_global_views=False)
migrate_views(conn, cur)
@ -5291,8 +5267,6 @@ def migrate():
if sql_level < 60:
# 59: switch wcs_all_forms to a trigger-maintained table
# 60: rebuild triggers
from wcs.formdef import FormDef
init_global_table(conn, cur)
for formdef in FormDef.select():
do_formdef_tables(formdef, rebuild_views=False, rebuild_global_views=False)
@ -5338,9 +5312,6 @@ def reindex():
user.store()
set_reindex('user', 'done', conn=conn, cur=cur)
from wcs.carddef import CardDef
from wcs.formdef import FormDef
if is_reindex_needed('formdata', conn=conn, cur=cur):
# load and store all formdatas
for formdef in FormDef.select() + CardDef.select():