Projet

Général

Profil

0002-misc-apply-isort-52224.patch

Lauréline Guérin, 19 mars 2021 16:11

Télécharger (245 ko)

Voir les différences:

Subject: [PATCH 2/2] misc: apply isort (#52224)

 setup.py                                      |   9 +-
 tests/admin_pages/test_all.py                 |   8 +-
 tests/admin_pages/test_api_access.py          |   7 +-
 tests/admin_pages/test_block.py               |  14 +-
 tests/admin_pages/test_card.py                |  13 +-
 tests/admin_pages/test_carddefcategory.py     |   7 +-
 tests/admin_pages/test_category.py            |   7 +-
 tests/admin_pages/test_datasource.py          |  21 ++-
 tests/admin_pages/test_form.py                |  23 +--
 tests/admin_pages/test_logged_errors.py       |   5 +-
 tests/admin_pages/test_role.py                |   7 +-
 tests/admin_pages/test_settings.py            |  28 ++--
 tests/admin_pages/test_user.py                |  14 +-
 tests/admin_pages/test_workflow.py            |  42 +++---
 tests/admin_pages/test_wscall.py              |   5 +-
 tests/api/test_access.py                      |  11 +-
 tests/api/test_all.py                         |   4 +-
 tests/api/test_carddef.py                     |  10 +-
 tests/api/test_category.py                    |   4 +-
 tests/api/test_custom_view.py                 |   4 +-
 tests/api/test_formdata.py                    |   9 +-
 tests/api/test_formdef.py                     |  10 +-
 tests/api/test_user.py                        |   7 +-
 tests/api/test_utils.py                       |   6 +-
 tests/api/test_workflow.py                    |   4 +-
 tests/backoffice_pages/test_all.py            |  56 ++++----
 tests/backoffice_pages/test_carddata.py       |   8 +-
 tests/backoffice_pages/test_custom_view.py    |  16 ++-
 tests/backoffice_pages/test_export.py         |  11 +-
 tests/backoffice_pages/test_submission.py     |  11 +-
 tests/conftest.py                             |   5 +-
 tests/form_pages/test_all.py                  |  63 ++++----
 tests/form_pages/test_block.py                |  16 ++-
 tests/form_pages/test_formdata.py             |  27 ++--
 tests/test_auth_pages.py                      |   5 +-
 tests/test_carddef.py                         |  15 +-
 tests/test_categories.py                      |   7 +-
 tests/test_convert_to_sql.py                  |  13 +-
 tests/test_ctl.py                             |  39 ++---
 tests/test_datasource.py                      |  23 +--
 tests/test_datasource_chrono.py               |  14 +-
 tests/test_ezt.py                             |  22 +--
 tests/test_fc_auth.py                         |  10 +-
 tests/test_fields.py                          |  15 +-
 tests/test_formdata.py                        |  35 +++--
 tests/test_formdef.py                         |  32 +++--
 tests/test_formdef_import.py                  |  14 +-
 tests/test_hobo.py                            |  13 +-
 tests/test_hobo_notify.py                     |  11 +-
 tests/test_mail_templates.py                  |  18 ++-
 tests/test_misc.py                            |  60 ++++----
 tests/test_prefill.py                         |   8 +-
 tests/test_publisher.py                       |  15 +-
 tests/test_register.py                        |   8 +-
 tests/test_role.py                            |   6 +-
 tests/test_rootdirectory.py                   |  16 +--
 tests/test_saml2utils.py                      |   3 +-
 tests/test_saml_auth.py                       |  23 +--
 tests/test_sessions.py                        |  14 +-
 tests/test_snapshots.py                       |  15 +-
 tests/test_sql.py                             |  23 +--
 tests/test_storage.py                         |  12 +-
 tests/test_templates.py                       |  14 +-
 tests/test_texts.py                           |   9 +-
 tests/test_tracking_code.py                   |   4 +-
 tests/test_upload_storage.py                  |  16 ++-
 tests/test_users.py                           |   6 +-
 tests/test_variadic_url.py                    |   6 +-
 tests/test_widgets.py                         |  11 +-
 tests/test_workflow_import.py                 |  55 +++----
 tests/test_workflows.py                       | 136 +++++++++---------
 tests/test_wscall.py                          |   6 +-
 tests/utilities.py                            |  30 ++--
 wcs/__init__.py                               |   6 +-
 wcs/admin/api_access.py                       |  17 ++-
 wcs/admin/blocks.py                           |  28 ++--
 wcs/admin/categories.py                       |  14 +-
 wcs/admin/data_sources.py                     |  37 ++---
 wcs/admin/fields.py                           |  18 +--
 wcs/admin/forms.py                            |  53 ++++---
 wcs/admin/logged_errors.py                    |  20 ++-
 wcs/admin/mail_templates.py                   |  33 +++--
 wcs/admin/roles.py                            |  12 +-
 wcs/admin/root.py                             |   3 +-
 wcs/admin/settings.py                         |  56 ++++----
 wcs/admin/users.py                            |  26 ++--
 wcs/admin/utils.py                            |  10 +-
 wcs/admin/workflows.py                        |  36 ++---
 wcs/admin/wscalls.py                          |  18 ++-
 wcs/api.py                                    |  53 ++++---
 wcs/api_utils.py                              |  22 +--
 wcs/backoffice/cards.py                       |  30 ++--
 wcs/backoffice/data_management.py             |  32 +++--
 wcs/backoffice/management.py                  |  89 ++++++------
 wcs/backoffice/root.py                        |  38 ++---
 wcs/backoffice/snapshots.py                   |  22 ++-
 wcs/backoffice/studio.py                      |   3 +-
 wcs/backoffice/submission.py                  |  26 ++--
 wcs/blocks.py                                 |  18 ++-
 wcs/cache.py                                  |   3 +-
 wcs/carddef.py                                |  19 ++-
 wcs/categories.py                             |   2 +-
 wcs/compat.py                                 |  18 +--
 wcs/conditions.py                             |  10 +-
 wcs/context_processors.py                     |   5 +-
 wcs/ctl/backup.py                             |   5 +-
 wcs/ctl/check_hobos.py                        |  18 ++-
 wcs/ctl/delete_tenant.py                      |   8 +-
 wcs/ctl/hobo_notify.py                        |   8 +-
 wcs/ctl/management/commands/__init__.py       |   3 +-
 wcs/ctl/management/commands/convert_to_sql.py |   7 +-
 wcs/ctl/management/commands/import_site.py    |   2 +-
 wcs/ctl/management/commands/runjob.py         |   3 +-
 wcs/ctl/management/commands/shell.py          |   1 +
 wcs/ctl/management/commands/trigger_jumps.py  |   4 +-
 wcs/ctl/rebuild_indexes.py                    |   3 +-
 wcs/ctl/restore.py                            |   5 +-
 wcs/ctl/runscript.py                          |   5 +-
 wcs/ctl/wipe_data.py                          |   3 +-
 wcs/custom_views.py                           |   5 +-
 wcs/data_sources.py                           |  23 +--
 wcs/fields.py                                 |  54 +++----
 wcs/formdata.py                               |  22 ++-
 wcs/formdef.py                                |  42 +++---
 wcs/forms/actions.py                          |   8 +-
 wcs/forms/backoffice.py                       |  15 +-
 wcs/forms/common.py                           |  27 ++--
 wcs/forms/preview.py                          |   9 +-
 wcs/forms/root.py                             |  46 +++---
 wcs/forms/workflows.py                        |  13 +-
 wcs/logged_errors.py                          |   3 +-
 wcs/mail_templates.py                         |   3 +-
 wcs/middleware.py                             |  10 +-
 wcs/monkeypatch.py                            |   1 -
 wcs/myspace.py                                |   4 +-
 wcs/portfolio.py                              |  28 ++--
 wcs/publisher.py                              |  28 ++--
 wcs/qommon/__init__.py                        |   5 +-
 wcs/qommon/admin/emails.py                    |  10 +-
 wcs/qommon/admin/logger.py                    |  12 +-
 wcs/qommon/admin/menu.py                      |  12 +-
 wcs/qommon/admin/settings.py                  |  11 +-
 wcs/qommon/admin/texts.py                     |  12 +-
 wcs/qommon/afterjobs.py                       |   7 +-
 wcs/qommon/backoffice/listing.py              |   7 +-
 wcs/qommon/backoffice/menu.py                 |  10 +-
 wcs/qommon/backoffice/root.py                 |   3 +-
 wcs/qommon/ctl.py                             |   5 +-
 wcs/qommon/emails.py                          |  15 +-
 wcs/qommon/errors.py                          |   8 +-
 wcs/qommon/evalutils.py                       |   1 +
 wcs/qommon/ezt.py                             |   5 +-
 wcs/qommon/form.py                            |  56 +++++---
 wcs/qommon/http_request.py                    |   6 +-
 wcs/qommon/http_response.py                   |   6 +-
 wcs/qommon/humantime.py                       |   4 +-
 wcs/qommon/ident/franceconnect.py             |  41 +++---
 wcs/qommon/ident/idp.py                       |  37 ++---
 wcs/qommon/ident/password.py                  |  45 +++---
 wcs/qommon/ident/password_accounts.py         |   7 +-
 wcs/qommon/logger.py                          |   4 +-
 .../management/commands/collectstatic.py      |   1 +
 wcs/qommon/management/commands/cron.py        |   9 +-
 wcs/qommon/management/commands/migrate.py     |   3 +-
 wcs/qommon/misc.py                            |  33 +++--
 wcs/qommon/myspace.py                         |  20 ++-
 wcs/qommon/ods.py                             |   7 +-
 wcs/qommon/pages.py                           |   3 +-
 wcs/qommon/publisher.py                       |  52 ++++---
 wcs/qommon/saml2.py                           |  23 +--
 wcs/qommon/saml2utils.py                      |   3 +-
 wcs/qommon/sessions.py                        |  18 +--
 wcs/qommon/sms.py                             |  11 +-
 wcs/qommon/storage.py                         |  12 +-
 wcs/qommon/substitution.py                    |   8 +-
 wcs/qommon/template.py                        |  34 +++--
 wcs/qommon/template_utils.py                  |   8 +-
 wcs/qommon/templatetags/qommon.py             |  18 ++-
 wcs/qommon/tokens.py                          |   2 +-
 wcs/qommon/upload_storage.py                  |   9 +-
 wcs/qommon/vendor/locket.py                   |   2 +-
 wcs/qommon/x509utils.py                       |   4 +-
 wcs/qommon/xml_storage.py                     |   3 +-
 wcs/roles.py                                  |   3 +-
 wcs/root.py                                   |  41 +++---
 wcs/snapshots.py                              |   7 +-
 wcs/sql.py                                    |  39 ++---
 wcs/tracking_code.py                          |   3 +-
 wcs/urls.py                                   |   2 +-
 wcs/users.py                                  |  12 +-
 wcs/utils.py                                  |   3 +-
 wcs/variables.py                              |  21 +--
 wcs/views.py                                  |   6 +-
 wcs/wf/aggregation_email.py                   |  14 +-
 wcs/wf/anonymise.py                           |   3 +-
 wcs/wf/attachment.py                          |  14 +-
 wcs/wf/backoffice_fields.py                   |  19 +--
 wcs/wf/create_carddata.py                     |   8 +-
 wcs/wf/create_formdata.py                     |  34 ++---
 wcs/wf/criticality.py                         |   7 +-
 wcs/wf/dispatch.py                            |  11 +-
 wcs/wf/edit_carddata.py                       |   6 +-
 wcs/wf/export_to_model.py                     |  72 +++++-----
 wcs/wf/external_workflow.py                   |  16 ++-
 wcs/wf/form.py                                |  18 +--
 wcs/wf/geolocate.py                           |  18 ++-
 wcs/wf/jump.py                                |  30 ++--
 wcs/wf/notification.py                        |  12 +-
 wcs/wf/profile.py                             |  30 ++--
 wcs/wf/redirect_to_url.py                     |   7 +-
 wcs/wf/register_comment.py                    |  22 +--
 wcs/wf/remove.py                              |  13 +-
 wcs/wf/resubmit.py                            |  16 ++-
 wcs/wf/roles.py                               |  23 ++-
 wcs/wf/timeout_jump.py                        |   4 +-
 wcs/wf/wscall.py                              |  28 ++--
 wcs/workflows.py                              |  54 ++++---
 wcs/wscalls.py                                |  34 +++--
 218 files changed, 2198 insertions(+), 1531 deletions(-)
setup.py
3 3
import os
4 4
import subprocess
5 5
import sys
6

  
7 6
from distutils.cmd import Command
8
from distutils.errors import CompileError
9
from distutils.spawn import find_executable
10 7
from distutils.command.build import build as _build
11 8
from distutils.command.sdist import sdist
9
from distutils.errors import CompileError
10
from distutils.spawn import find_executable
11

  
12
from setuptools import find_packages
13
from setuptools import setup
12 14
from setuptools.command.install_lib import install_lib as _install_lib
13
from setuptools import setup, find_packages
14 15

  
15 16
local_cfg = None
16 17
if os.path.exists('wcs/wcs_cfg.py'):
tests/admin_pages/test_all.py
3 3
import os
4 4

  
5 5
import pytest
6
from utilities import clean_temporary_pub
7
from utilities import create_temporary_pub
8
from utilities import get_app
9
from utilities import login
6 10

  
7
from wcs.qommon.ident.password_accounts import PasswordAccount
8 11
from wcs.qommon.http_request import HTTPRequest
9

  
10
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
12
from wcs.qommon.ident.password_accounts import PasswordAccount
11 13

  
12 14

  
13 15
def pytest_generate_tests(metafunc):
tests/admin_pages/test_api_access.py
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17 17
import pytest
18
from utilities import clean_temporary_pub
19
from utilities import create_temporary_pub
20
from utilities import get_app
21
from utilities import login
18 22

  
19
from wcs.qommon.http_request import HTTPRequest
20 23
from wcs.api_access import ApiAccess
24
from wcs.qommon.http_request import HTTPRequest
21 25

  
22
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
23 26
from .test_all import create_superuser
24 27

  
25 28

  
tests/admin_pages/test_block.py
8 8
    lasso = None
9 9

  
10 10
import pytest
11
from utilities import clean_temporary_pub
12
from utilities import create_temporary_pub
13
from utilities import get_app
14
from utilities import login
11 15
from webtest import Upload
12 16

  
13
from wcs.qommon.http_request import HTTPRequest
14
from wcs.formdef import FormDef
15
from wcs.blocks import BlockDef
16 17
from wcs import fields
18
from wcs.blocks import BlockDef
19
from wcs.formdef import FormDef
20
from wcs.qommon.http_request import HTTPRequest
17 21

  
18
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
19
from .test_all import create_superuser, create_role
22
from .test_all import create_role
23
from .test_all import create_superuser
20 24

  
21 25

  
22 26
def pytest_generate_tests(metafunc):
tests/admin_pages/test_card.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3
import pytest
4 3
import re
5 4

  
5
import pytest
6
from utilities import clean_temporary_pub
7
from utilities import create_temporary_pub
8
from utilities import get_app
9
from utilities import login
10

  
6 11
from wcs import fields
7 12
from wcs.admin.settings import UserFieldsFormDef
8
from wcs.categories import CardDefCategory
9 13
from wcs.carddef import CardDef
14
from wcs.categories import CardDefCategory
10 15
from wcs.formdef import FormDef
11 16
from wcs.qommon.http_request import HTTPRequest
12
from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef
17
from wcs.wf.form import FormWorkflowStatusItem
18
from wcs.wf.form import WorkflowFormFieldsFormDef
13 19
from wcs.workflows import Workflow
14 20
from wcs.workflows import WorkflowBackofficeFieldsFormDef
15 21
from wcs.workflows import WorkflowVariablesFieldsFormDef
16 22

  
17
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
18 23
from .test_all import create_superuser
19 24

  
20 25

  
tests/admin_pages/test_carddefcategory.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3 3
import pytest
4
from utilities import clean_temporary_pub
5
from utilities import create_temporary_pub
6
from utilities import get_app
7
from utilities import login
4 8

  
5
from wcs.qommon.http_request import HTTPRequest
6 9
from wcs.carddef import CardDef
7 10
from wcs.categories import CardDefCategory
11
from wcs.qommon.http_request import HTTPRequest
8 12

  
9
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
10 13
from .test_all import create_superuser
11 14

  
12 15

  
tests/admin_pages/test_category.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3 3
import pytest
4
from utilities import clean_temporary_pub
5
from utilities import create_temporary_pub
6
from utilities import get_app
7
from utilities import login
4 8

  
5
from wcs.qommon.http_request import HTTPRequest
6 9
from wcs.categories import Category
7 10
from wcs.formdef import FormDef
11
from wcs.qommon.http_request import HTTPRequest
8 12

  
9
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
10 13
from .test_all import create_superuser
11 14

  
12 15

  
tests/admin_pages/test_datasource.py
2 2

  
3 3
import io
4 4
import json
5
import mock
6 5
import os
7 6
import xml.etree.ElementTree as ET
8 7

  
8
import mock
9

  
9 10
try:
10 11
    import lasso
11 12
except ImportError:
12 13
    lasso = None
13 14

  
14 15
import pytest
16
from utilities import HttpRequestsMocking
17
from utilities import clean_temporary_pub
18
from utilities import create_temporary_pub
19
from utilities import get_app
20
from utilities import login
15 21
from webtest import Upload
16 22

  
17
from wcs.qommon.http_request import HTTPRequest
23
from wcs import fields
18 24
from wcs.admin.settings import UserFieldsFormDef
25
from wcs.carddef import CardDef
19 26
from wcs.data_sources import NamedDataSource
20
from wcs.workflows import Workflow, WorkflowBackofficeFieldsFormDef
21 27
from wcs.formdef import FormDef
22
from wcs.carddef import CardDef
23
from wcs import fields
28
from wcs.qommon.http_request import HTTPRequest
29
from wcs.workflows import Workflow
30
from wcs.workflows import WorkflowBackofficeFieldsFormDef
24 31

  
25
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub, HttpRequestsMocking
26 32
from .test_all import create_superuser
27 33

  
28 34

  
......
341 347
        fields.ItemField(id='1', type='item', label='item', data_source={'type': data_source.slug})
342 348
    )
343 349

  
344
    from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef
350
    from wcs.wf.form import FormWorkflowStatusItem
351
    from wcs.wf.form import WorkflowFormFieldsFormDef
345 352

  
346 353
    baz_status = workflow.add_status(name='baz')
347 354
    display_form = FormWorkflowStatusItem()
tests/admin_pages/test_form.py
2 2

  
3 3
import datetime
4 4
import io
5
import mock
6 5
import os
7 6
import re
8 7
import tarfile
9 8
import time
10 9
import xml.etree.ElementTree as ET
11 10

  
11
import mock
12 12
import pytest
13
from utilities import clean_temporary_pub
14
from utilities import create_temporary_pub
15
from utilities import get_app
16
from utilities import login
13 17
from webtest import Upload
14 18

  
15
from wcs.qommon.http_request import HTTPRequest
16
from wcs.qommon.errors import ConnectionError
19
from wcs import fields
20
from wcs.carddef import CardDef
17 21
from wcs.categories import Category
18 22
from wcs.data_sources import NamedDataSource
19
from wcs.wscalls import NamedWsCall
20
from wcs.workflows import Workflow
21 23
from wcs.formdef import FormDef
22
from wcs.carddef import CardDef
23
from wcs import fields
24

  
25
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
24
from wcs.qommon.errors import ConnectionError
25
from wcs.qommon.http_request import HTTPRequest
26
from wcs.workflows import Workflow
27
from wcs.wscalls import NamedWsCall
26 28

  
27
from .test_all import create_superuser, create_role
29
from .test_all import create_role
30
from .test_all import create_superuser
28 31

  
29 32

  
30 33
def pytest_generate_tests(metafunc):
tests/admin_pages/test_logged_errors.py
3 3
import datetime
4 4

  
5 5
import pytest
6
from utilities import clean_temporary_pub
7
from utilities import create_temporary_pub
8
from utilities import get_app
9
from utilities import login
6 10

  
7 11
from wcs.carddef import CardDef
8 12
from wcs.formdef import FormDef
9 13
from wcs.qommon.http_request import HTTPRequest
10 14
from wcs.workflows import Workflow
11 15

  
12
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
13 16
from .test_all import create_superuser
14 17

  
15 18

  
tests/admin_pages/test_role.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3 3
import pytest
4
from utilities import clean_temporary_pub
5
from utilities import create_temporary_pub
6
from utilities import get_app
7
from utilities import login
4 8

  
5
from wcs.qommon.http_request import HTTPRequest
6 9
from wcs.formdef import FormDef
10
from wcs.qommon.http_request import HTTPRequest
7 11

  
8
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
9 12
from .test_all import create_superuser
10 13

  
11 14

  
tests/admin_pages/test_settings.py
11 11
except ImportError:
12 12
    lasso = None
13 13

  
14
import pytest
15
from webtest import Upload
16 14
import mock
17

  
15
import pytest
18 16
from quixote.http_request import Upload as QuixoteUpload
17
from utilities import clean_temporary_pub
18
from utilities import create_temporary_pub
19
from utilities import get_app
20
from utilities import login
21
from webtest import Upload
19 22

  
23
from wcs import fields
24
from wcs.api_access import ApiAccess
25
from wcs.carddef import CardDef
26
from wcs.categories import CardDefCategory
27
from wcs.categories import Category
28
from wcs.data_sources import NamedDataSource
29
from wcs.formdef import FormDef
20 30
from wcs.qommon.form import UploadedFile
21 31
from wcs.qommon.http_request import HTTPRequest
22 32
from wcs.qommon.template import get_current_theme
23
from wcs.api_access import ApiAccess
24
from wcs.categories import Category, CardDefCategory
25
from wcs.data_sources import NamedDataSource
26
from wcs.wscalls import NamedWsCall
27
from wcs.workflows import Workflow, CommentableWorkflowStatusItem
28 33
from wcs.wf.export_to_model import ExportToModel
29
from wcs.formdef import FormDef
30
from wcs.carddef import CardDef
31
from wcs import fields
34
from wcs.workflows import CommentableWorkflowStatusItem
35
from wcs.workflows import Workflow
36
from wcs.wscalls import NamedWsCall
32 37

  
33
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
34 38
from .test_all import create_superuser
35 39

  
36 40

  
tests/admin_pages/test_user.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3 3
import pytest
4
from utilities import clean_temporary_pub
5
from utilities import create_temporary_pub
6
from utilities import get_app
7
from utilities import login
4 8

  
5
from wcs.qommon.ident.password_accounts import PasswordAccount
6
from wcs.qommon.http_request import HTTPRequest
7
from wcs.admin.settings import UserFieldsFormDef
8 9
from wcs import fields
10
from wcs.admin.settings import UserFieldsFormDef
11
from wcs.qommon.http_request import HTTPRequest
12
from wcs.qommon.ident.password_accounts import PasswordAccount
9 13

  
10
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
11
from .test_all import create_superuser, create_role
14
from .test_all import create_role
15
from .test_all import create_superuser
12 16

  
13 17

  
14 18
def pytest_generate_tests(metafunc):
tests/admin_pages/test_workflow.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3 3
import io
4
import mock
5 4
import os
6 5
import re
7 6

  
7
import mock
8

  
8 9
try:
9 10
    import lasso
10 11
except ImportError:
11 12
    lasso = None
12 13

  
13 14
import pytest
15
from utilities import clean_temporary_pub
16
from utilities import create_temporary_pub
17
from utilities import get_app
18
from utilities import login
14 19
from webtest import Upload
15 20

  
16
from wcs.qommon.http_request import HTTPRequest
21
from wcs import fields
22
from wcs.carddef import CardDef
23
from wcs.formdef import FormDef
17 24
from wcs.qommon.errors import ConnectionError
18
from wcs.workflows import (
19
    Workflow,
20
    WorkflowCriticalityLevel,
21
    DisplayMessageWorkflowStatusItem,
22
    WorkflowBackofficeFieldsFormDef,
23
    CommentableWorkflowStatusItem,
24
    ChoiceWorkflowStatusItem,
25
    JumpOnSubmitWorkflowStatusItem,
26
    WorkflowVariablesFieldsFormDef,
27
    item_classes,
28
)
25
from wcs.qommon.http_request import HTTPRequest
29 26
from wcs.wf.create_carddata import CreateCarddataWorkflowStatusItem
30
from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem, Mapping
27
from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem
28
from wcs.wf.create_formdata import Mapping
31 29
from wcs.wf.dispatch import DispatchWorkflowStatusItem
32 30
from wcs.wf.edit_carddata import EditCarddataWorkflowStatusItem
33 31
from wcs.wf.export_to_model import ExportToModel
34 32
from wcs.wf.external_workflow import ExternalWorkflowGlobalAction
35
from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef
33
from wcs.wf.form import FormWorkflowStatusItem
34
from wcs.wf.form import WorkflowFormFieldsFormDef
36 35
from wcs.wf.jump import JumpWorkflowStatusItem
37 36
from wcs.wf.redirect_to_url import RedirectToUrlWorkflowStatusItem
38 37
from wcs.wf.register_comment import RegisterCommenterWorkflowStatusItem
39 38
from wcs.wf.wscall import WebserviceCallStatusItem
40
from wcs.carddef import CardDef
41
from wcs.formdef import FormDef
42
from wcs import fields
39
from wcs.workflows import ChoiceWorkflowStatusItem
40
from wcs.workflows import CommentableWorkflowStatusItem
41
from wcs.workflows import DisplayMessageWorkflowStatusItem
42
from wcs.workflows import JumpOnSubmitWorkflowStatusItem
43
from wcs.workflows import Workflow
44
from wcs.workflows import WorkflowBackofficeFieldsFormDef
45
from wcs.workflows import WorkflowCriticalityLevel
46
from wcs.workflows import WorkflowVariablesFieldsFormDef
47
from wcs.workflows import item_classes
43 48

  
44
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
45 49
from .test_all import create_superuser
46 50

  
47 51

  
tests/admin_pages/test_wscall.py
4 4
import xml.etree.ElementTree as ET
5 5

  
6 6
import pytest
7
from utilities import clean_temporary_pub
8
from utilities import create_temporary_pub
9
from utilities import get_app
10
from utilities import login
7 11
from webtest import Upload
8 12

  
9 13
from wcs.qommon.http_request import HTTPRequest
10 14
from wcs.wscalls import NamedWsCall
11 15

  
12
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
13 16
from .test_all import create_superuser
14 17

  
15 18

  
tests/api/test_access.py
11 11
import pytest
12 12
from django.utils.encoding import force_bytes
13 13
from quixote import get_publisher
14
from utilities import clean_temporary_pub, create_temporary_pub, get_app, login
15

  
16
from wcs.api_utils import get_secret_and_orig, is_url_signed, sign_url
14
from utilities import clean_temporary_pub
15
from utilities import create_temporary_pub
16
from utilities import get_app
17
from utilities import login
18

  
19
from wcs.api_utils import get_secret_and_orig
20
from wcs.api_utils import is_url_signed
21
from wcs.api_utils import sign_url
17 22
from wcs.qommon.errors import AccessForbiddenError
18 23
from wcs.qommon.http_request import HTTPRequest
19 24
from wcs.qommon.ident.password_accounts import PasswordAccount
tests/api/test_all.py
7 7
import mock
8 8
import pytest
9 9
from quixote import get_publisher
10
from utilities import clean_temporary_pub, create_temporary_pub, get_app
10
from utilities import clean_temporary_pub
11
from utilities import create_temporary_pub
12
from utilities import get_app
11 13

  
12 14
from wcs.api_utils import sign_url
13 15
from wcs.formdef import FormDef
tests/api/test_carddef.py
11 11
import pytest
12 12
from django.utils.encoding import force_text
13 13
from quixote import get_publisher
14
from utilities import clean_temporary_pub, create_temporary_pub, get_app
14
from utilities import clean_temporary_pub
15
from utilities import create_temporary_pub
16
from utilities import get_app
15 17

  
16
from wcs import fields, qommon
18
from wcs import fields
19
from wcs import qommon
17 20
from wcs.api_utils import sign_url
18 21
from wcs.carddef import CardDef
19 22
from wcs.categories import CardDefCategory
......
21 24
from wcs.qommon.afterjobs import AfterJob
22 25
from wcs.qommon.form import PicklableUpload
23 26
from wcs.qommon.http_request import HTTPRequest
24
from wcs.workflows import Workflow, WorkflowBackofficeFieldsFormDef
27
from wcs.workflows import Workflow
28
from wcs.workflows import WorkflowBackofficeFieldsFormDef
25 29

  
26 30
from .utils import sign_uri
27 31

  
tests/api/test_category.py
4 4

  
5 5
import pytest
6 6
from quixote import get_publisher
7
from utilities import clean_temporary_pub, create_temporary_pub, get_app
7
from utilities import clean_temporary_pub
8
from utilities import create_temporary_pub
9
from utilities import get_app
8 10

  
9 11
from wcs.categories import Category
10 12
from wcs.formdef import FormDef
tests/api/test_custom_view.py
7 7

  
8 8
import pytest
9 9
from quixote import get_publisher
10
from utilities import clean_temporary_pub, create_temporary_pub, get_app
10
from utilities import clean_temporary_pub
11
from utilities import create_temporary_pub
12
from utilities import get_app
11 13

  
12 14
from wcs import fields
13 15
from wcs.carddef import CardDef
tests/api/test_formdata.py
12 12
import pytest
13 13
from django.utils.encoding import force_bytes
14 14
from quixote import get_publisher
15
from utilities import clean_temporary_pub, create_temporary_pub, get_app, login
15
from utilities import clean_temporary_pub
16
from utilities import create_temporary_pub
17
from utilities import get_app
18
from utilities import login
16 19

  
17 20
from wcs import fields
18 21
from wcs.blocks import BlockDef
......
23 26
from wcs.qommon.form import PicklableUpload
24 27
from wcs.qommon.http_request import HTTPRequest
25 28
from wcs.qommon.ident.password_accounts import PasswordAccount
26
from wcs.workflows import EditableWorkflowStatusItem, Workflow, WorkflowBackofficeFieldsFormDef
29
from wcs.workflows import EditableWorkflowStatusItem
30
from wcs.workflows import Workflow
31
from wcs.workflows import WorkflowBackofficeFieldsFormDef
27 32

  
28 33
from .utils import sign_uri
29 34

  
tests/api/test_formdef.py
12 12
import pytest
13 13
from django.utils.encoding import force_text
14 14
from quixote import get_publisher
15
from utilities import clean_temporary_pub, create_temporary_pub, get_app
15
from utilities import clean_temporary_pub
16
from utilities import create_temporary_pub
17
from utilities import get_app
16 18

  
17
from wcs import fields, qommon
19
from wcs import fields
20
from wcs import qommon
18 21
from wcs.api_utils import sign_url
19 22
from wcs.data_sources import NamedDataSource
20 23
from wcs.formdef import FormDef
21 24
from wcs.qommon.form import PicklableUpload
22 25
from wcs.qommon.http_request import HTTPRequest
23 26
from wcs.wf.jump import JumpWorkflowStatusItem
24
from wcs.workflows import Workflow, WorkflowBackofficeFieldsFormDef
27
from wcs.workflows import Workflow
28
from wcs.workflows import WorkflowBackofficeFieldsFormDef
25 29

  
26 30
from .utils import sign_uri
27 31

  
tests/api/test_user.py
5 5

  
6 6
import pytest
7 7
from quixote import get_publisher
8
from utilities import clean_temporary_pub, create_temporary_pub, get_app
8
from utilities import clean_temporary_pub
9
from utilities import create_temporary_pub
10
from utilities import get_app
9 11

  
10 12
from wcs import fields
11 13
from wcs.formdef import FormDef
12 14
from wcs.qommon.form import PicklableUpload
13 15
from wcs.qommon.http_request import HTTPRequest
14 16
from wcs.qommon.ident.password_accounts import PasswordAccount
15
from wcs.workflows import Workflow, WorkflowVariablesFieldsFormDef
17
from wcs.workflows import Workflow
18
from wcs.workflows import WorkflowVariablesFieldsFormDef
16 19

  
17 20
from .utils import sign_uri
18 21

  
tests/api/test_utils.py
1 1
import pytest
2
from quixote import cleanup, get_response
3
from utilities import clean_temporary_pub, create_temporary_pub
2
from quixote import cleanup
3
from quixote import get_response
4
from utilities import clean_temporary_pub
5
from utilities import create_temporary_pub
4 6

  
5 7
from wcs import sessions
6 8
from wcs.api_utils import get_query_flag
tests/api/test_workflow.py
4 4

  
5 5
import pytest
6 6
from quixote import get_publisher
7
from utilities import clean_temporary_pub, create_temporary_pub, get_app
7
from utilities import clean_temporary_pub
8
from utilities import create_temporary_pub
9
from utilities import get_app
8 10

  
9 11
from wcs import fields
10 12
from wcs.formdef import FormDef
tests/backoffice_pages/test_all.py
4 4
import io
5 5
import json
6 6
import os
7
import random
7 8
import re
8 9
import time
9
import random
10 10
import zipfile
11 11

  
12 12
import mock
13 13
import pytest
14

  
15 14
from quixote import get_publisher
16 15
from quixote.http_request import Upload as QuixoteUpload
16
from utilities import clean_temporary_pub
17
from utilities import create_temporary_pub
18
from utilities import get_app
19
from utilities import login
20

  
21
import wcs.qommon.storage as st
22
from wcs import fields
17 23
from wcs.blocks import BlockDef
24
from wcs.carddef import CardDef
25
from wcs.categories import Category
26
from wcs.formdef import FormDef
18 27
from wcs.qommon.form import PicklableUpload
19 28
from wcs.qommon.form import UploadedFile
20
from wcs.qommon.ident.password_accounts import PasswordAccount
21 29
from wcs.qommon.http_request import HTTPRequest
22
import wcs.qommon.storage as st
30
from wcs.qommon.ident.password_accounts import PasswordAccount
23 31
from wcs.roles import logged_users_role
24
from wcs.workflows import (
25
    Workflow,
26
    CommentableWorkflowStatusItem,
27
    ChoiceWorkflowStatusItem,
28
    EditableWorkflowStatusItem,
29
    DisplayMessageWorkflowStatusItem,
30
    JumpOnSubmitWorkflowStatusItem,
31
    WorkflowCriticalityLevel,
32
    WorkflowBackofficeFieldsFormDef,
33
)
34 32
from wcs.wf.backoffice_fields import SetBackofficeFieldsWorkflowStatusItem
33
from wcs.wf.create_carddata import CreateCarddataWorkflowStatusItem
34
from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem
35
from wcs.wf.create_formdata import Mapping
35 36
from wcs.wf.export_to_model import ExportToModel
36
from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef
37
from wcs.wf.form import FormWorkflowStatusItem
38
from wcs.wf.form import WorkflowFormFieldsFormDef
37 39
from wcs.wf.jump import JumpWorkflowStatusItem
38
from wcs.wf.wscall import WebserviceCallStatusItem
39 40
from wcs.wf.redirect_to_url import RedirectToUrlWorkflowStatusItem
40 41
from wcs.wf.register_comment import RegisterCommenterWorkflowStatusItem
41 42
from wcs.wf.resubmit import ResubmitWorkflowStatusItem
42
from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem, Mapping
43
from wcs.wf.create_carddata import CreateCarddataWorkflowStatusItem
44
from wcs.carddef import CardDef
45
from wcs.categories import Category
46
from wcs.formdef import FormDef
47
from wcs import fields
43
from wcs.wf.wscall import WebserviceCallStatusItem
44
from wcs.workflows import ChoiceWorkflowStatusItem
45
from wcs.workflows import CommentableWorkflowStatusItem
46
from wcs.workflows import DisplayMessageWorkflowStatusItem
47
from wcs.workflows import EditableWorkflowStatusItem
48
from wcs.workflows import JumpOnSubmitWorkflowStatusItem
49
from wcs.workflows import Workflow
50
from wcs.workflows import WorkflowBackofficeFieldsFormDef
51
from wcs.workflows import WorkflowCriticalityLevel
48 52
from wcs.wscalls import NamedWsCall
49 53

  
50
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
51

  
52 54

  
53 55
def pytest_generate_tests(metafunc):
54 56
    if 'pub' in metafunc.fixturenames:
......
1755 1757
    create_environment(pub)
1756 1758
    FormDef.wipe()
1757 1759
    if pub.is_using_postgresql():
1758
        from wcs.sql import get_connection_and_cursor, drop_global_views
1760
        from wcs.sql import drop_global_views
1761
        from wcs.sql import get_connection_and_cursor
1759 1762

  
1760 1763
        conn, cur = get_connection_and_cursor()
1761 1764
        drop_global_views(conn, cur)
......
3144 3147
    create_environment(pub)
3145 3148
    FormDef.wipe()
3146 3149

  
3147
    from wcs.sql import get_connection_and_cursor, drop_global_views
3150
    from wcs.sql import drop_global_views
3151
    from wcs.sql import get_connection_and_cursor
3148 3152

  
3149 3153
    conn, cur = get_connection_and_cursor()
3150 3154
    drop_global_views(conn, cur)
tests/backoffice_pages/test_carddata.py
4 4
import uuid
5 5

  
6 6
import pytest
7
from utilities import clean_temporary_pub
8
from utilities import create_temporary_pub
9
from utilities import get_app
10
from utilities import login
7 11
from webtest import Upload
8 12

  
9 13
from wcs import fields
......
13 17
from wcs.formdef import FormDef
14 18
from wcs.qommon.http_request import HTTPRequest
15 19
from wcs.wf.wscall import WebserviceCallStatusItem
16
from wcs.workflows import ChoiceWorkflowStatusItem, Workflow
20
from wcs.workflows import ChoiceWorkflowStatusItem
21
from wcs.workflows import Workflow
17 22

  
18
from utilities import clean_temporary_pub, create_temporary_pub, get_app, login
19 23
from .test_all import create_user
20 24

  
21 25

  
tests/backoffice_pages/test_custom_view.py
3 3
import re
4 4

  
5 5
import pytest
6

  
7 6
from quixote import get_publisher
8
from wcs.qommon.ident.password_accounts import PasswordAccount
9
from wcs.qommon.http_request import HTTPRequest
7
from utilities import clean_temporary_pub
8
from utilities import create_temporary_pub
9
from utilities import get_app
10
from utilities import login
11

  
12
from wcs import fields
10 13
from wcs.carddef import CardDef
11 14
from wcs.formdef import FormDef
12
from wcs import fields
15
from wcs.qommon.http_request import HTTPRequest
16
from wcs.qommon.ident.password_accounts import PasswordAccount
13 17

  
14
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
15
from .test_all import create_user, create_superuser
18
from .test_all import create_superuser
19
from .test_all import create_user
16 20

  
17 21

  
18 22
def pytest_generate_tests(metafunc):
tests/backoffice_pages/test_export.py
9 9
import zipfile
10 10

  
11 11
import pytest
12
from utilities import clean_temporary_pub
13
from utilities import create_temporary_pub
14
from utilities import get_app
15
from utilities import login
12 16

  
13
from wcs.qommon import ods
17
from wcs import fields
14 18
from wcs.blocks import BlockDef
19
from wcs.formdef import FormDef
20
from wcs.qommon import ods
15 21
from wcs.qommon.form import PicklableUpload
16 22
from wcs.qommon.http_request import HTTPRequest
17
from wcs.formdef import FormDef
18
from wcs import fields
19 23

  
20
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
21 24
from .test_all import create_superuser
22 25

  
23 26

  
tests/backoffice_pages/test_submission.py
6 6
import urllib.parse
7 7

  
8 8
import pytest
9
from utilities import clean_temporary_pub, create_temporary_pub, get_app, login
9
from utilities import clean_temporary_pub
10
from utilities import create_temporary_pub
11
from utilities import get_app
12
from utilities import login
10 13

  
11 14
from wcs import fields
12 15
from wcs.api_utils import sign_url
......
16 19
from wcs.wf.dispatch import DispatchWorkflowStatusItem
17 20
from wcs.wf.jump import JumpWorkflowStatusItem
18 21
from wcs.wf.redirect_to_url import RedirectToUrlWorkflowStatusItem
19
from wcs.workflows import Workflow, WorkflowBackofficeFieldsFormDef
22
from wcs.workflows import Workflow
23
from wcs.workflows import WorkflowBackofficeFieldsFormDef
20 24

  
21
from .test_all import create_superuser, create_user
25
from .test_all import create_superuser
26
from .test_all import create_user
22 27

  
23 28

  
24 29
def pytest_generate_tests(metafunc):
tests/conftest.py
2 2
import os
3 3

  
4 4
import pytest
5

  
6
from utilities import EmailsMocking, SMSMocking, HttpRequestsMocking
5
from utilities import EmailsMocking
6
from utilities import HttpRequestsMocking
7
from utilities import SMSMocking
7 8

  
8 9

  
9 10
def site_options(request, pub, section, variable, value):
tests/form_pages/test_all.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3
import hashlib
3 4
import io
4 5
import json
5
import pytest
6
import hashlib
7 6
import os
8 7
import re
9 8
import time
10 9
import urllib.parse
10
import xml.etree.ElementTree as ET
11 11
import zipfile
12 12

  
13
from webtest import Upload, Hidden, Radio
14 13
import mock
15
import xml.etree.ElementTree as ET
14
import pytest
15
from webtest import Hidden
16
from webtest import Radio
17
from webtest import Upload
16 18

  
17 19
try:
18 20
    from PIL import Image
19 21
except ImportError:
20 22
    Image = None
21 23

  
22
from django.utils.encoding import force_bytes, force_text
24
from django.utils.encoding import force_bytes
25
from django.utils.encoding import force_text
26
from utilities import clean_temporary_pub
27
from utilities import create_temporary_pub
28
from utilities import get_app
29
from utilities import login
23 30

  
31
from wcs import fields
32
from wcs.blocks import BlockDef
33
from wcs.carddef import CardDef
34
from wcs.categories import Category
35
from wcs.data_sources import NamedDataSource
36
from wcs.formdef import FormDef
37
from wcs.forms.root import PublicFormStatusPage
24 38
from wcs.qommon import force_str
25 39
from wcs.qommon.emails import docutils
26 40
from wcs.qommon.ident.password_accounts import PasswordAccount
27 41
from wcs.qommon.misc import ConnectionError
28
from wcs.carddef import CardDef
29
from wcs.formdef import FormDef
30
from wcs.workflows import (
31
    Workflow,
32
    EditableWorkflowStatusItem,
33
    DisplayMessageWorkflowStatusItem,
34
    WorkflowBackofficeFieldsFormDef,
35
    ChoiceWorkflowStatusItem,
36
    JumpOnSubmitWorkflowStatusItem,
37
    CommentableWorkflowStatusItem,
38
    WorkflowVariablesFieldsFormDef,
39
)
42
from wcs.roles import logged_users_role
43
from wcs.tracking_code import TrackingCode
40 44
from wcs.wf.backoffice_fields import SetBackofficeFieldsWorkflowStatusItem
45
from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem
46
from wcs.wf.create_formdata import Mapping
47
from wcs.wf.form import FormWorkflowStatusItem
48
from wcs.wf.form import WorkflowFormFieldsFormDef
41 49
from wcs.wf.jump import JumpWorkflowStatusItem
42
from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef
50
from wcs.wf.redirect_to_url import RedirectToUrlWorkflowStatusItem
43 51
from wcs.wf.register_comment import RegisterCommenterWorkflowStatusItem
44 52
from wcs.wf.resubmit import ResubmitWorkflowStatusItem
45
from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem, Mapping
46
from wcs.wf.redirect_to_url import RedirectToUrlWorkflowStatusItem
47
from wcs.blocks import BlockDef
48
from wcs.categories import Category
49
from wcs.roles import logged_users_role
50
from wcs.tracking_code import TrackingCode
51
from wcs.data_sources import NamedDataSource
52
from wcs import fields
53
from wcs.forms.root import PublicFormStatusPage
54

  
55
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
53
from wcs.workflows import ChoiceWorkflowStatusItem
54
from wcs.workflows import CommentableWorkflowStatusItem
55
from wcs.workflows import DisplayMessageWorkflowStatusItem
56
from wcs.workflows import EditableWorkflowStatusItem
57
from wcs.workflows import JumpOnSubmitWorkflowStatusItem
58
from wcs.workflows import Workflow
59
from wcs.workflows import WorkflowBackofficeFieldsFormDef
60
from wcs.workflows import WorkflowVariablesFieldsFormDef
56 61

  
57 62

  
58 63
def assert_equal_zip(stream1, stream2):
tests/form_pages/test_block.py
2 2

  
3 3
import io
4 4
import json
5
import mock
6 5

  
6
import mock
7 7
import pytest
8
from utilities import clean_temporary_pub
9
from utilities import create_temporary_pub
10
from utilities import get_app
11
from utilities import login
8 12
from webtest import Upload
9 13

  
14
from wcs import fields
10 15
from wcs.blocks import BlockDef
11
from wcs.formdef import FormDef
12
from wcs.workflows import Workflow
13
from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef
14 16
from wcs.categories import Category
15 17
from wcs.data_sources import NamedDataSource
16
from wcs import fields
18
from wcs.formdef import FormDef
19
from wcs.wf.form import FormWorkflowStatusItem
20
from wcs.wf.form import WorkflowFormFieldsFormDef
21
from wcs.workflows import Workflow
17 22

  
18
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
19 23
from .test_all import create_user
20 24

  
21 25

  
tests/form_pages/test_formdata.py
13 13
import pytest
14 14
from django.utils.encoding import force_bytes
15 15
from quixote.http_request import Upload as QuixoteUpload
16
from webtest import Upload, Hidden
16
from utilities import clean_temporary_pub
17
from utilities import create_temporary_pub
18
from utilities import get_app
19
from utilities import login
20
from webtest import Hidden
21
from webtest import Upload
17 22

  
18 23
from wcs import fields
19 24
from wcs.data_sources import NamedDataSource
20 25
from wcs.formdef import FormDef
21 26
from wcs.qommon.form import UploadedFile
22 27
from wcs.wf.attachment import AddAttachmentWorkflowStatusItem
23
from wcs.wf.export_to_model import ExportToModel, transform_to_pdf
24
from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef
28
from wcs.wf.export_to_model import ExportToModel
29
from wcs.wf.export_to_model import transform_to_pdf
30
from wcs.wf.form import FormWorkflowStatusItem
31
from wcs.wf.form import WorkflowFormFieldsFormDef
25 32
from wcs.wf.jump import JumpWorkflowStatusItem
26 33
from wcs.wf.register_comment import RegisterCommenterWorkflowStatusItem
27
from wcs.workflows import (
28
    ChoiceWorkflowStatusItem,
29
    DisplayMessageWorkflowStatusItem,
30
    Workflow,
31
    WorkflowBackofficeFieldsFormDef,
32
)
34
from wcs.workflows import ChoiceWorkflowStatusItem
35
from wcs.workflows import DisplayMessageWorkflowStatusItem
36
from wcs.workflows import Workflow
37
from wcs.workflows import WorkflowBackofficeFieldsFormDef
33 38
from wcs.wscalls import NamedWsCall
34 39

  
35
from .test_all import create_user, create_user_and_admin
36
from utilities import clean_temporary_pub, create_temporary_pub, get_app, login
40
from .test_all import create_user
41
from .test_all import create_user_and_admin
37 42

  
38 43

  
39 44
def pytest_generate_tests(metafunc):
tests/test_auth_pages.py
1 1
import pytest
2
from utilities import clean_temporary_pub
3
from utilities import create_temporary_pub
4
from utilities import get_app
5
from utilities import login
2 6

  
3 7
from wcs.qommon.ident.password_accounts import PasswordAccount
4
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
5 8

  
6 9

  
7 10
@pytest.fixture
tests/test_carddef.py
1 1
import io
2
import pytest
3 2
import xml.etree.ElementTree as ET
4 3

  
5
from wcs.qommon.http_request import HTTPRequest
6
from wcs.qommon.misc import indent_xml as indent
7
from wcs.qommon.template import Template
8
from wcs.categories import CardDefCategory
4
import pytest
5
from utilities import clean_temporary_pub
6
from utilities import create_temporary_pub
7

  
9 8
from wcs.carddef import CardDef
9
from wcs.categories import CardDefCategory
10 10
from wcs.fields import ItemField
11 11
from wcs.fields import StringField
12

  
13
from utilities import create_temporary_pub, clean_temporary_pub
12
from wcs.qommon.http_request import HTTPRequest
13
from wcs.qommon.misc import indent_xml as indent
14
from wcs.qommon.template import Template
14 15

  
15 16

  
16 17
def pytest_generate_tests(metafunc):
tests/test_categories.py
4 4
import shutil
5 5

  
6 6
import pytest
7

  
8 7
from quixote import cleanup
9

  
10
from wcs.categories import Category, CardDefCategory
11

  
12 8
from utilities import create_temporary_pub
13 9

  
10
from wcs.categories import CardDefCategory
11
from wcs.categories import Category
12

  
14 13

  
15 14
def setup_module(module):
16 15
    cleanup()
tests/test_convert_to_sql.py
1 1
import collections
2 2
import os
3 3
import random
4

  
4 5
import psycopg2
5 6
import pytest
6

  
7
from django.core.management import get_commands
8 7
from django.core.management import call_command
8
from django.core.management import get_commands
9 9
from django.core.management.base import CommandError
10 10
from quixote import get_publisher
11

  
12
from wcs.sql import cleanup_connection
13
from wcs.formdef import FormDef
14
from wcs.fields import BoolField
15

  
16 11
from utilities import clean_temporary_pub
17 12
from utilities import create_temporary_pub
18 13
from utilities import force_connections_close
19 14

  
15
from wcs.fields import BoolField
16
from wcs.formdef import FormDef
17
from wcs.sql import cleanup_connection
18

  
20 19

  
21 20
@pytest.fixture
22 21
def formdeffix():
tests/test_ctl.py
1
import collections
1 2
import os
2
import pytest
3 3
import sys
4
import collections
5
from email.mime.text import MIMEText
6 4
from email.mime.multipart import MIMEMultipart
7
import psycopg2
5
from email.mime.text import MIMEText
8 6

  
9
from django.core.management import call_command, CommandError
7
import psycopg2
8
import pytest
9
from django.core.management import CommandError
10
from django.core.management import call_command
11
from utilities import clean_temporary_pub
12
from utilities import create_temporary_pub
10 13

  
11
from wcs.formdef import FormDef
12
from wcs.workflows import Workflow
13
from wcs.wf.jump import JumpWorkflowStatusItem
14
from wcs.fields import StringField, EmailField
15 14
import wcs.qommon.ctl
15
from wcs.ctl.delete_tenant import CmdDeleteTenant
16
from wcs.ctl.management.commands.runscript import Command as CmdRunScript
17
from wcs.ctl.management.commands.trigger_jumps import select_and_jump_formdata
18
from wcs.ctl.rebuild_indexes import rebuild_vhost_indexes
19
from wcs.ctl.wipe_data import CmdWipeData
20
from wcs.fields import EmailField
21
from wcs.fields import StringField
22
from wcs.formdef import FormDef
16 23
from wcs.qommon.afterjobs import AfterJob
17 24
from wcs.qommon.management.commands.collectstatic import Command as CmdCollectStatic
25
from wcs.qommon.management.commands.makemessages import Command as CmdMakeMessages
18 26
from wcs.qommon.management.commands.migrate import Command as CmdMigrate
19 27
from wcs.qommon.management.commands.migrate_schemas import Command as CmdMigrateSchemas
20
from wcs.qommon.management.commands.makemessages import Command as CmdMakeMessages
21
from wcs.ctl.rebuild_indexes import rebuild_vhost_indexes
22
from wcs.ctl.wipe_data import CmdWipeData
23
from wcs.ctl.management.commands.runscript import Command as CmdRunScript
24
from wcs.ctl.management.commands.trigger_jumps import select_and_jump_formdata
25
from wcs.ctl.delete_tenant import CmdDeleteTenant
28
from wcs.sql import cleanup_connection
29
from wcs.sql import get_connection_and_cursor
30
from wcs.wf.jump import JumpWorkflowStatusItem
31
from wcs.workflows import Workflow
26 32
from wcs.workflows import WorkflowStatusItem
27
from wcs.sql import get_connection_and_cursor, cleanup_connection
28

  
29
from utilities import create_temporary_pub, clean_temporary_pub
30 33

  
31 34

  
32 35
@pytest.fixture
tests/test_datasource.py
2 2

  
3 3
import codecs
4 4
import io
5
import pytest
6
import os
7 5
import json
6
import os
8 7
import shutil
9 8
import urllib.parse
10 9

  
10
import mock
11
import pytest
11 12
from quixote import cleanup
13
from test_widgets import MockHtmlForm
14
from test_widgets import mock_form_submission
15
from utilities import clean_temporary_pub
16
from utilities import create_temporary_pub
17

  
18
from wcs import data_sources
19
from wcs import fields
20
from wcs.data_sources import NamedDataSource
21
from wcs.data_sources import register_data_source_function
22
from wcs.qommon.form import Form
23
from wcs.qommon.form import get_request
12 24
from wcs.qommon.http_request import HTTPRequest
13
from wcs.qommon.form import get_request, Form
14
from wcs import fields, data_sources
15
from wcs.data_sources import NamedDataSource, register_data_source_function
16

  
17
import mock
18
from test_widgets import MockHtmlForm, mock_form_submission
19
from utilities import create_temporary_pub, clean_temporary_pub
20 25

  
21 26

  
22 27
@pytest.fixture
tests/test_datasource_chrono.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3 3
import io
4
import pytest
5 4
import json
6 5
import shutil
7 6

  
7
import mock
8
import pytest
8 9
from quixote import cleanup
10
from utilities import create_temporary_pub
11

  
9 12
from wcs import fields
10
from wcs.data_sources import NamedDataSource, build_agenda_datasources, collect_agenda_data
13
from wcs.data_sources import NamedDataSource
14
from wcs.data_sources import build_agenda_datasources
15
from wcs.data_sources import collect_agenda_data
11 16
from wcs.formdef import FormDef
12
from wcs.qommon.misc import ConnectionError
13 17
from wcs.qommon.http_request import HTTPRequest
14

  
15
import mock
16
from utilities import create_temporary_pub
18
from wcs.qommon.misc import ConnectionError
17 19

  
18 20

  
19 21
def setup_module(module):
tests/test_ezt.py
1 1
import datetime
2 2
import io
3
import pytest
4 3
import os
5 4

  
5
import pytest
6 6
from quixote import cleanup
7
from wcs.qommon.ezt import (
8
    Template,
9
    UnclosedBlocksError,
10
    UnmatchedEndError,
11
    UnmatchedElseError,
12
    ArgCountSyntaxError,
13
    _re_parse,
14
)
7
from utilities import clean_temporary_pub
8
from utilities import create_temporary_pub
9
from utilities import get_app
10

  
11
from wcs.qommon.ezt import ArgCountSyntaxError
12
from wcs.qommon.ezt import Template
13
from wcs.qommon.ezt import UnclosedBlocksError
14
from wcs.qommon.ezt import UnmatchedElseError
15
from wcs.qommon.ezt import UnmatchedEndError
16
from wcs.qommon.ezt import _re_parse
15 17
from wcs.scripts import ScriptsSubstitutionProxy
16 18

  
17
from utilities import get_app, create_temporary_pub, clean_temporary_pub
18

  
19 19

  
20 20
def setup_module(module):
21 21
    cleanup()
tests/test_fc_auth.py
2 2
import json
3 3
import urllib.parse
4 4

  
5
from django.utils.encoding import force_bytes, force_text
6
from quixote import cleanup, get_session_manager
7

  
8
from utilities import get_app, create_temporary_pub
9 5
import mock
6
from django.utils.encoding import force_bytes
7
from django.utils.encoding import force_text
8
from quixote import cleanup
9
from quixote import get_session_manager
10
from utilities import create_temporary_pub
11
from utilities import get_app
10 12

  
11 13
PROFILE = {
12 14
    'fields': [
tests/test_fields.py
3 3
import re
4 4
import shutil
5 5

  
6
from bs4 import BeautifulSoup
7 6
import pytest
8

  
7
from bs4 import BeautifulSoup
9 8
from quixote import cleanup
10 9
from quixote.http_request import Upload
11
from wcs.qommon.http_request import HTTPRequest
12
from wcs.qommon import sessions
10
from utilities import MockSubstitutionVariables
11
from utilities import create_temporary_pub
12

  
13 13
from wcs import fields
14
from wcs.qommon.form import Form, PicklableUpload
15 14
from wcs.formdef import FormDef
15
from wcs.qommon import sessions
16
from wcs.qommon.form import Form
17
from wcs.qommon.form import PicklableUpload
18
from wcs.qommon.http_request import HTTPRequest
16 19
from wcs.variables import LazyFormData
17 20

  
18
from utilities import create_temporary_pub, MockSubstitutionVariables
19

  
20 21

  
21 22
def setup_module(module):
22 23
    cleanup()
tests/test_formdata.py
2 2

  
3 3
import collections
4 4
import datetime
5
import pytest
6 5
import time
7 6

  
8 7
import mock
8
import pytest
9 9
from quixote import get_publisher
10 10
from quixote.http_request import Upload
11
from wcs.qommon import force_str
12
from wcs.qommon.template import Template
13
from wcs.qommon.form import PicklableUpload
14
from wcs.qommon.http_request import HTTPRequest
15
from wcs import fields, formdef
11
from utilities import clean_temporary_pub
12
from utilities import create_temporary_pub
13

  
14
from wcs import fields
15
from wcs import formdef
16
from wcs import sessions
16 17
from wcs.blocks import BlockDef
17 18
from wcs.carddef import CardDef
18 19
from wcs.categories import Category
19 20
from wcs.conditions import Condition
20
from wcs.formdef import FormDef
21 21
from wcs.formdata import Evolution
22
from wcs import sessions
22
from wcs.formdef import FormDef
23
from wcs.qommon import force_str
24
from wcs.qommon.form import PicklableUpload
25
from wcs.qommon.http_request import HTTPRequest
26
from wcs.qommon.template import Template
23 27
from wcs.variables import LazyFormData
24
from wcs.workflows import (
25
    Workflow,
26
    WorkflowStatusItem,
27
    WorkflowCriticalityLevel,
28
    WorkflowBackofficeFieldsFormDef,
29
)
30
from wcs.wf.wscall import JournalWsCallErrorPart
31

  
32 28
from wcs.wf.register_comment import JournalEvolutionPart
33

  
34
from utilities import create_temporary_pub, clean_temporary_pub
29
from wcs.wf.wscall import JournalWsCallErrorPart
30
from wcs.workflows import Workflow
31
from wcs.workflows import WorkflowBackofficeFieldsFormDef
32
from wcs.workflows import WorkflowCriticalityLevel
33
from wcs.workflows import WorkflowStatusItem
35 34

  
36 35

  
37 36
def pytest_generate_tests(metafunc):
tests/test_formdef.py
4 4
import json
5 5
import os
6 6
import pickle
7
import sys
8 7
import shutil
8
import sys
9 9
import time
10 10

  
11 11
import pytest
12

  
13 12
from django.utils.encoding import force_bytes
14 13
from quixote import cleanup
14
from utilities import clean_temporary_pub
15
from utilities import create_temporary_pub
16

  
15 17
from wcs import fields
16 18
from wcs.blocks import BlockDef
17
from wcs.formdef import FormDef, get_formdefs_of_all_kinds
18
from wcs.qommon.http_request import HTTPRequest
19
from wcs.fields import DateField
20
from wcs.fields import FileField
21
from wcs.fields import ItemField
22
from wcs.fields import PageField
23
from wcs.fields import StringField
24
from wcs.formdef import FormDef
25
from wcs.formdef import get_formdefs_of_all_kinds
19 26
from wcs.qommon.form import PicklableUpload
20
from wcs.workflows import Workflow, AttachmentEvolutionPart, WorkflowBackofficeFieldsFormDef
21
from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef
22
from wcs.fields import StringField, FileField, DateField, ItemField, PageField
23

  
24
from utilities import create_temporary_pub, clean_temporary_pub
27
from wcs.qommon.http_request import HTTPRequest
28
from wcs.wf.form import FormWorkflowStatusItem
29
from wcs.wf.form import WorkflowFormFieldsFormDef
30
from wcs.workflows import AttachmentEvolutionPart
31
from wcs.workflows import Workflow
32
from wcs.workflows import WorkflowBackofficeFieldsFormDef
25 33

  
26 34

  
27 35
def pytest_generate_tests(metafunc):
......
496 504
def test_get_formdefs_of_all_kinds(pub):
497 505
    from wcs.admin.settings import UserFieldsFormDef
498 506
    from wcs.carddef import CardDef
499
    from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef
500
    from wcs.workflows import WorkflowBackofficeFieldsFormDef, WorkflowVariablesFieldsFormDef
507
    from wcs.wf.form import FormWorkflowStatusItem
508
    from wcs.wf.form import WorkflowFormFieldsFormDef
509
    from wcs.workflows import WorkflowBackofficeFieldsFormDef
510
    from wcs.workflows import WorkflowVariablesFieldsFormDef
501 511

  
502 512
    BlockDef.wipe()
503 513
    FormDef.wipe()
tests/test_formdef_import.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3 3
import io
4
import pytest
5 4
import shutil
6 5
import time
7 6
import xml.etree.ElementTree as ET
8 7

  
8
import pytest
9 9
from quixote import cleanup
10
from utilities import create_temporary_pub
10 11

  
11
from wcs.categories import Category
12 12
from wcs.carddef import CardDef
13
from wcs.formdef import FormDef, fields, FormdefImportError
14
from wcs.workflows import Workflow
13
from wcs.categories import Category
14
from wcs.formdef import FormDef
15
from wcs.formdef import FormdefImportError
16
from wcs.formdef import fields
15 17
from wcs.qommon.misc import indent_xml as indent
16

  
17
from utilities import create_temporary_pub
18
from wcs.workflows import Workflow
18 19

  
19 20

  
20 21
def setup_module(module):
......
211 212

  
212 213
def test_workflow_options_with_file():
213 214
    from quixote.http_request import Upload
215

  
214 216
    from wcs.qommon.form import UploadedFile
215 217

  
216 218
    upload = Upload('/foo/bar', content_type='application/vnd.oasis.opendocument.text')
tests/test_hobo.py
4 4
import json
5 5
import os
6 6
import pickle
7
import pytest
8 7
import shutil
9 8
import sys
10 9
import tempfile
11 10
import urllib.parse
12 11

  
13 12
import mock
14

  
15
from utilities import create_temporary_pub, clean_temporary_pub
16

  
13
import pytest
17 14
from quixote import cleanup
15
from utilities import clean_temporary_pub
16
from utilities import create_temporary_pub
18 17

  
19
from wcs.qommon import force_str
20
from wcs.ctl.check_hobos import CmdCheckHobos
21
from wcs.publisher import WcsPublisher
22 18
from wcs import fields
23 19
from wcs import sql
20
from wcs.ctl.check_hobos import CmdCheckHobos
21
from wcs.publisher import WcsPublisher
22
from wcs.qommon import force_str
24 23

  
25 24
HOBO_JSON = {
26 25
    'services': [
tests/test_hobo_notify.py
1 1
# -*- coding: utf-8 -*-
2 2
import uuid
3 3

  
4
from wcs.qommon import force_str
5
from wcs.qommon.http_request import HTTPRequest
6
from wcs.ctl.hobo_notify import CmdHoboNotify
7
from wcs.qommon import storage as st
8

  
4
import pytest
9 5
from utilities import create_temporary_pub
10 6

  
11
import pytest
7
from wcs.ctl.hobo_notify import CmdHoboNotify
8
from wcs.qommon import force_str
9
from wcs.qommon import storage as st
10
from wcs.qommon.http_request import HTTPRequest
12 11

  
13 12

  
14 13
def pytest_generate_tests(metafunc):
tests/test_mail_templates.py
3 3
import base64
4 4
import io
5 5
import os
6
import pytest
7
from webtest import Upload
8 6
import xml.etree.ElementTree as ET
9 7

  
8
import pytest
10 9
from django.utils.encoding import force_bytes
11 10
from quixote import cleanup
12
from wcs.formdef import FormDef
11
from utilities import clean_temporary_pub
12
from utilities import create_temporary_pub
13
from utilities import get_app
14
from utilities import login
15
from webtest import Upload
16

  
13 17
from wcs.fields import FileField
18
from wcs.formdef import FormDef
14 19
from wcs.mail_templates import MailTemplate
15
from wcs.workflows import Workflow, SendmailWorkflowStatusItem
16
from wcs.qommon.http_request import HTTPRequest
17 20
from wcs.qommon.form import PicklableUpload
21
from wcs.qommon.http_request import HTTPRequest
18 22
from wcs.qommon.ident.password_accounts import PasswordAccount
19

  
20
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
23
from wcs.workflows import SendmailWorkflowStatusItem
24
from wcs.workflows import Workflow
21 25

  
22 26

  
23 27
def setup_module(module):
tests/test_misc.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3
import base64
4
import datetime
3 5
import json
4
import mock
5
import pytest
6 6
import os
7 7
import pickle
8 8
import pwd
9
import socket
10 9
import re
10
import socket
11 11
import time
12
import datetime
13
import base64
14 12

  
13
import mock
14
import pytest
15
from django.core.cache import cache
15 16
from django.utils import translation
16

  
17 17
from quixote import cleanup
18
from utilities import clean_temporary_pub
19
from utilities import create_temporary_pub
20
from utilities import get_app
18 21

  
19 22
import wcs.api  # workaround against circular dependencies :/
20
from wcs.qommon.form import FileSizeWidget, PicklableUpload
21
from wcs.qommon.humantime import humanduration2seconds, seconds2humanduration
22
from wcs.qommon.misc import (
23
    simplify,
24
    json_loads,
25
    parse_isotime,
26
    format_time,
27
    date_format,
28
    get_as_datetime,
29
    normalize_geolocation,
30
    ellipsize,
31
)
23
import wcs.qommon.storage
32 24
from wcs.admin.settings import FileTypesDirectory
33
from wcs.scripts import Script
34
from wcs.qommon import force_str, evalutils
35
from wcs.qommon.http_request import HTTPRequest
36
from wcs.qommon.backoffice.listing import pagination_links
37
from wcs.qommon.emails import email as send_email, docutils
38 25
from wcs.fields import StringField
39
from wcs.workflows import Workflow
26
from wcs.qommon import evalutils
27
from wcs.qommon import force_str
28
from wcs.qommon.backoffice.listing import pagination_links
29
from wcs.qommon.emails import docutils
30
from wcs.qommon.emails import email as send_email
31
from wcs.qommon.form import FileSizeWidget
32
from wcs.qommon.form import PicklableUpload
33
from wcs.qommon.http_request import HTTPRequest
34
from wcs.qommon.humantime import humanduration2seconds
35
from wcs.qommon.humantime import seconds2humanduration
36
from wcs.qommon.misc import date_format
37
from wcs.qommon.misc import ellipsize
38
from wcs.qommon.misc import format_time
39
from wcs.qommon.misc import get_as_datetime
40
from wcs.qommon.misc import json_loads
41
from wcs.qommon.misc import normalize_geolocation
42
from wcs.qommon.misc import parse_isotime
43
from wcs.qommon.misc import simplify
44
from wcs.scripts import Script
40 45
from wcs.wf.jump import JumpWorkflowStatusItem
41
import wcs.qommon.storage
42

  
43
from django.core.cache import cache
44

  
45

  
46
from utilities import get_app, create_temporary_pub, clean_temporary_pub
46
from wcs.workflows import Workflow
47 47

  
48 48

  
49 49
def setup_module(module):
tests/test_prefill.py
2 2
import shutil
3 3

  
4 4
import pytest
5
from quixote import cleanup
6
from quixote import get_request
7
from utilities import create_temporary_pub
5 8

  
6
from quixote import cleanup, get_request
7
from wcs.qommon.http_request import HTTPRequest
8 9
from wcs import fields
9 10
from wcs.carddef import CardDef
10

  
11
from utilities import create_temporary_pub
11
from wcs.qommon.http_request import HTTPRequest
12 12

  
13 13

  
14 14
def setup_module(module):
tests/test_publisher.py
1 1
import io
2 2
import json
3
import os
4
import pickle
3 5
import re
6
import shutil
4 7
import stat
5 8
import sys
6
import time
7
import pickle
8
import shutil
9 9
import tempfile
10
import os
10
import time
11 11
import zipfile
12 12

  
13 13
import mock
14 14
import pytest
15

  
16 15
from django.conf import settings
17 16
from django.core.management import call_command
18 17
from django.core.management.base import CommandError
......
20 19
from django.test import override_settings
21 20
from django.utils.encoding import force_text
22 21
from quixote import cleanup
22
from utilities import create_temporary_pub
23

  
23 24
from wcs.qommon import get_publisher_class
24 25
from wcs.qommon.afterjobs import AfterJob
25
from wcs.qommon.http_request import HTTPRequest
26 26
from wcs.qommon.cron import CronJob
27

  
28
from utilities import create_temporary_pub
27
from wcs.qommon.http_request import HTTPRequest
29 28

  
30 29

  
31 30
def setup_module(module):
tests/test_register.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3
import pytest
4 3
import hashlib
5 4
import re
6 5
import shutil
6

  
7
import pytest
7 8
from quixote import cleanup
9
from utilities import clean_temporary_pub
10
from utilities import create_temporary_pub
11
from utilities import get_app
8 12

  
9 13
from wcs.qommon import force_str
10 14
from wcs.qommon.http_request import HTTPRequest
11 15
from wcs.qommon.ident.password_accounts import PasswordAccount
12 16

  
13
from utilities import get_app, create_temporary_pub, clean_temporary_pub
14

  
15 17

  
16 18
def pytest_generate_tests(metafunc):
17 19
    if 'pub' in metafunc.fixturenames:
tests/test_role.py
2 2

  
3 3
import pickle
4 4

  
5
from utilities import create_temporary_pub, clean_temporary_pub
5
from quixote import get_publisher
6
from utilities import clean_temporary_pub
7
from utilities import create_temporary_pub
6 8

  
7 9
from wcs.roles import get_user_roles
8 10

  
9
from quixote import get_publisher
10

  
11 11

  
12 12
def setup_module(module):
13 13
    pub = create_temporary_pub()
tests/test_rootdirectory.py
1 1
import os
2
import sys
3 2
import shutil
3
import sys
4 4

  
5 5
import pytest
6

  
7 6
from quixote import cleanup
8
from wcs.qommon import sessions
7
from utilities import create_temporary_pub
8
from utilities import get_app
9

  
10
import wcs.forms.root
9 11
from wcs import formdef
10
from wcs.qommon.http_request import HTTPRequest
11
from wcs.formdef import FormDef
12 12
from wcs.categories import Category
13
import wcs.forms.root
14

  
15
from utilities import get_app, create_temporary_pub
13
from wcs.formdef import FormDef
14
from wcs.qommon import sessions
15
from wcs.qommon.http_request import HTTPRequest
16 16

  
17 17

  
18 18
def setup_module(module):
tests/test_saml2utils.py
1 1
import shutil
2 2

  
3 3
from quixote import cleanup
4
from utilities import create_temporary_pub
4 5

  
5 6
from wcs.qommon import x509utils
6 7
from wcs.qommon.saml2utils import Metadata
7 8

  
8
from utilities import create_temporary_pub
9

  
10 9

  
11 10
def setup_module(module):
12 11
    cleanup()
tests/test_saml_auth.py
1 1
import datetime
2 2
import os
3 3
import shutil
4
import uuid
5 4
import urllib.parse
5
import uuid
6 6

  
7 7
try:
8 8
    import lasso
......
10 10
    lasso = None
11 11

  
12 12
import pytest
13

  
14 13
from quixote import cleanup
15
from quixote import get_session, get_session_manager
14
from quixote import get_session
15
from quixote import get_session_manager
16
from test_hobo_notify import PROFILE
17
from utilities import clean_temporary_pub
18
from utilities import create_temporary_pub
19
from utilities import get_app
20

  
21
from wcs.qommon import sessions
22
from wcs.qommon import x509utils
23
from wcs.qommon.errors import RequestError
16 24
from wcs.qommon.http_request import HTTPRequest
25
from wcs.qommon.ident.idp import AdminIDPDir
26
from wcs.qommon.ident.idp import MethodAdminDirectory
17 27
from wcs.qommon.misc import get_lasso_server
18 28
from wcs.qommon.saml2 import Saml2Directory
19
from wcs.qommon.ident.idp import MethodAdminDirectory, AdminIDPDir
20
from wcs.qommon import sessions, x509utils
21
from wcs.qommon.errors import RequestError
22

  
23
from utilities import get_app, create_temporary_pub, clean_temporary_pub
24

  
25
from test_hobo_notify import PROFILE
26 29

  
27 30
pytestmark = pytest.mark.skipif('lasso is None')
28 31

  
tests/test_sessions.py
2 2
import os
3 3
import shutil
4 4
import time
5
import pytest
6 5

  
6
import pytest
7 7
from quixote import cleanup
8
from utilities import clean_temporary_pub
9
from utilities import create_temporary_pub
10
from utilities import get_app
11
from utilities import login
8 12

  
9
from wcs.qommon.ident.password_accounts import PasswordAccount
10
from wcs.qommon.http_request import HTTPRequest
11
from wcs.formdef import FormDef
12 13
from wcs import fields
13

  
14
from utilities import create_temporary_pub, clean_temporary_pub, get_app, login
14
from wcs.formdef import FormDef
15
from wcs.qommon.http_request import HTTPRequest
16
from wcs.qommon.ident.password_accounts import PasswordAccount
15 17

  
16 18

  
17 19
def setup_module():
tests/test_snapshots.py
4 4
import xml.etree.ElementTree as ET
5 5

  
6 6
import pytest
7

  
7
from admin_pages.test_all import create_role
8
from admin_pages.test_all import create_superuser
8 9
from quixote.http_request import Upload
10
from utilities import clean_temporary_pub
11
from utilities import create_temporary_pub
12
from utilities import get_app
13
from utilities import login
9 14

  
10 15
from wcs.blocks import BlockDef
11 16
from wcs.carddef import CardDef
......
14 19
from wcs.formdef import FormDef
15 20
from wcs.qommon.form import UploadedFile
16 21
from wcs.qommon.misc import localstrftime
17
from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef
18
from wcs.workflows import Workflow
22
from wcs.wf.form import FormWorkflowStatusItem
23
from wcs.wf.form import WorkflowFormFieldsFormDef
19 24
from wcs.workflows import ExportToModel
25
from wcs.workflows import Workflow
20 26
from wcs.wscalls import NamedWsCall
21 27

  
22
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
23
from admin_pages.test_all import create_superuser, create_role
24

  
25 28

  
26 29
@pytest.fixture
27 30
def pub(request, emails):
tests/test_sql.py
10 10
import sys
11 11
import time
12 12

  
13
import pytest
13 14
from django.core.management import call_command
14

  
15 15
from quixote import cleanup
16
from utilities import clean_temporary_pub
17
from utilities import create_temporary_pub
16 18

  
17
from wcs.qommon import force_str
18
from wcs import publisher, fields
19
from wcs.formdef import FormDef
19
import wcs.qommon.storage as st
20
from wcs import fields
21
from wcs import publisher
22
from wcs import sql
20 23
from wcs.formdata import Evolution
21
from wcs.workflows import Workflow, CommentableWorkflowStatusItem, WorkflowCriticalityLevel
24
from wcs.formdef import FormDef
25
from wcs.qommon import force_str
22 26
from wcs.wf.jump import JumpWorkflowStatusItem
23 27
from wcs.wf.register_comment import RegisterCommenterWorkflowStatusItem
24
from wcs import sql
25
import wcs.qommon.storage as st
26

  
27
from utilities import create_temporary_pub, clean_temporary_pub
28

  
29
import pytest
28
from wcs.workflows import CommentableWorkflowStatusItem
29
from wcs.workflows import Workflow
30
from wcs.workflows import WorkflowCriticalityLevel
30 31

  
31 32
postgresql = pytest.mark.postgresql
32 33

  
tests/test_storage.py
1 1
import datetime
2 2
import os
3
import random
3 4
import shutil
4 5
import time
5
import random
6 6

  
7 7
import pytest
8

  
9 8
from quixote import cleanup
9
from utilities import create_temporary_pub
10

  
11
import wcs.qommon.storage as st
10 12
from wcs.carddef import CardDef
11 13
from wcs.formdef import FormDef
12
from wcs.qommon.storage import StorableObject, cache_umask
13
import wcs.qommon.storage as st
14

  
15
from utilities import create_temporary_pub
14
from wcs.qommon.storage import StorableObject
15
from wcs.qommon.storage import cache_umask
16 16

  
17 17

  
18 18
def setup_module(module):
tests/test_templates.py
2 2

  
3 3
import datetime
4 4
import os
5
import pytest
6 5
import string
7 6

  
7
import pytest
8

  
8 9
try:
9 10
    import langdetect
10 11
except ImportError:
......
12 13

  
13 14
from django.test import override_settings
14 15
from django.utils.timezone import now
16
from utilities import clean_temporary_pub
17
from utilities import create_temporary_pub
15 18

  
19
from wcs import fields
20
from wcs.formdef import FormDef
16 21
from wcs.qommon.http_request import HTTPRequest
17 22
from wcs.qommon.substitution import CompatibilityNamesDict
18
from wcs.qommon.template import Template, TemplateError
23
from wcs.qommon.template import Template
24
from wcs.qommon.template import TemplateError
19 25
from wcs.variables import LazyFormData
20
from wcs.formdef import FormDef
21
from wcs import fields
22

  
23
from utilities import create_temporary_pub, clean_temporary_pub
24 26

  
25 27

  
26 28
@pytest.fixture
tests/test_texts.py
1
import sys
2 1
import shutil
2
import sys
3 3

  
4 4
from quixote import cleanup
5
from wcs.qommon.http_request import HTTPRequest
6
from wcs.qommon.admin.texts import TextsDirectory
5
from utilities import MockSubstitutionVariables
6
from utilities import create_temporary_pub
7 7

  
8
from utilities import create_temporary_pub, MockSubstitutionVariables
8
from wcs.qommon.admin.texts import TextsDirectory
9
from wcs.qommon.http_request import HTTPRequest
9 10

  
10 11

  
11 12
def setup_module(module):
tests/test_tracking_code.py
1 1
import pytest
2
from utilities import clean_temporary_pub
3
from utilities import create_temporary_pub
2 4

  
3 5
from wcs.formdef import FormDef
4 6

  
5
from utilities import create_temporary_pub, clean_temporary_pub
6

  
7 7

  
8 8
def pytest_generate_tests(metafunc):
9 9
    if 'pub' in metafunc.fixturenames:
tests/test_upload_storage.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3
import os
4 3
import json
4
import os
5

  
5 6
import mock
6 7
import pytest
7

  
8
from utilities import clean_temporary_pub
9
from utilities import create_temporary_pub
10
from utilities import get_app
11
from utilities import login
8 12
from webtest import Upload
9 13

  
10
from wcs.qommon.ident.password_accounts import PasswordAccount
11
from wcs.formdef import FormDef
12
from wcs.categories import Category
13 14
from wcs import fields
15
from wcs.categories import Category
16
from wcs.formdef import FormDef
17
from wcs.qommon.ident.password_accounts import PasswordAccount
14 18
from wcs.wf.register_comment import RegisterCommenterWorkflowStatusItem
15 19

  
16
from utilities import get_app, login, create_temporary_pub, clean_temporary_pub
17

  
18 20

  
19 21
def pytest_generate_tests(metafunc):
20 22
    if 'pub' in metafunc.fixturenames:
tests/test_users.py
6 6
import time
7 7

  
8 8
import pytest
9

  
10 9
from quixote import cleanup
10
from utilities import create_temporary_pub
11 11

  
12
from wcs import publisher
13 12
from wcs import fields
13
from wcs import publisher
14 14
from wcs.variables import LazyUser
15 15

  
16
from utilities import create_temporary_pub
17

  
18 16

  
19 17
def setup_module(module):
20 18
    cleanup()
tests/test_variadic_url.py
1 1
import pytest
2
from utilities import clean_temporary_pub
3
from utilities import create_temporary_pub
2 4

  
3
from wcs.qommon.misc import get_variadic_url
4 5
from wcs.qommon.ezt import EZTException
5

  
6
from utilities import create_temporary_pub, clean_temporary_pub
6
from wcs.qommon.misc import get_variadic_url
7 7

  
8 8

  
9 9
@pytest.fixture
tests/test_widgets.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3
import copy
3 4
import datetime
4 5
import shutil
5
import copy
6 6

  
7
from quixote import cleanup, get_response
8
from quixote.http_request import parse_query
9 7
import mechanize
10

  
11 8
import pytest
9
from quixote import cleanup
10
from quixote import get_response
11
from quixote.http_request import parse_query
12
from utilities import create_temporary_pub
12 13

  
13 14
from wcs.qommon import sessions
14 15
from wcs.qommon.form import *
15 16
from wcs.qommon.http_request import HTTPRequest
16 17
from wcs.wf.profile import ProfileUpdateRowWidget
17 18

  
18
from utilities import create_temporary_pub
19

  
20 19

  
21 20
def setup_module(module):
22 21
    cleanup()
tests/test_workflow_import.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3 3
import io
4
import pytest
5 4
import xml.etree.ElementTree as ET
6 5

  
6
import pytest
7 7
from quixote.http_request import Upload
8
from utilities import clean_temporary_pub
9
from utilities import create_temporary_pub
8 10

  
9 11
from wcs.carddef import CardDef
12
from wcs.fields import FileField
13
from wcs.fields import StringField
10 14
from wcs.formdef import FormDef
11 15
from wcs.mail_templates import MailTemplate
12
from wcs.workflows import (
13
    Workflow,
14
    CommentableWorkflowStatusItem,
15
    WorkflowCriticalityLevel,
16
    WorkflowBackofficeFieldsFormDef,
17
    SendmailWorkflowStatusItem,
18
    SendSMSWorkflowStatusItem,
19
    WorkflowImportError,
20
    ChoiceWorkflowStatusItem,
21
    JumpOnSubmitWorkflowStatusItem,
22
)
16
from wcs.qommon.form import UploadedFile
17
from wcs.qommon.misc import indent_xml as indent
23 18
from wcs.wf.attachment import AddAttachmentWorkflowStatusItem
24
from wcs.wf.wscall import WebserviceCallStatusItem
25
from wcs.wf.dispatch import DispatchWorkflowStatusItem
26
from wcs.wf.register_comment import RegisterCommenterWorkflowStatusItem
27
from wcs.wf.profile import UpdateUserProfileStatusItem
28 19
from wcs.wf.backoffice_fields import SetBackofficeFieldsWorkflowStatusItem
29
from wcs.wf.redirect_to_url import RedirectToUrlWorkflowStatusItem
30
from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem, Mapping
20
from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem
21
from wcs.wf.create_formdata import Mapping
22
from wcs.wf.dispatch import DispatchWorkflowStatusItem
31 23
from wcs.wf.external_workflow import ExternalWorkflowGlobalAction
32
from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef
24
from wcs.wf.form import FormWorkflowStatusItem
25
from wcs.wf.form import WorkflowFormFieldsFormDef
33 26
from wcs.wf.jump import JumpWorkflowStatusItem
34
from wcs.fields import StringField, FileField
35
from wcs.qommon.form import UploadedFile
36
from wcs.workflows import ExportToModel, WorkflowVariablesFieldsFormDef, DisplayMessageWorkflowStatusItem
37

  
38

  
39
from wcs.qommon.misc import indent_xml as indent
40

  
41
from utilities import create_temporary_pub, clean_temporary_pub
27
from wcs.wf.profile import UpdateUserProfileStatusItem
28
from wcs.wf.redirect_to_url import RedirectToUrlWorkflowStatusItem
29
from wcs.wf.register_comment import RegisterCommenterWorkflowStatusItem
30
from wcs.wf.wscall import WebserviceCallStatusItem
31
from wcs.workflows import ChoiceWorkflowStatusItem
32
from wcs.workflows import CommentableWorkflowStatusItem
33
from wcs.workflows import DisplayMessageWorkflowStatusItem
34
from wcs.workflows import ExportToModel
35
from wcs.workflows import JumpOnSubmitWorkflowStatusItem
36
from wcs.workflows import SendmailWorkflowStatusItem
37
from wcs.workflows import SendSMSWorkflowStatusItem
38
from wcs.workflows import Workflow
39
from wcs.workflows import WorkflowBackofficeFieldsFormDef
40
from wcs.workflows import WorkflowCriticalityLevel
41
from wcs.workflows import WorkflowImportError
42
from wcs.workflows import WorkflowVariablesFieldsFormDef
42 43

  
43 44

  
44 45
@pytest.fixture
tests/test_workflows.py
1 1
import base64
2
import datetime
2 3
import io
3 4
import json
4
import datetime
5 5
import os
6
import pytest
7 6
import shutil
8 7
import time
9 8
import urllib.parse
10 9
import zipfile
11 10

  
12 11
import mock
12
import pytest
13 13

  
14 14
try:
15 15
    from PIL import Image
16 16
except ImportError:
17 17
    Image = None
18 18

  
19
from django.utils.encoding import force_bytes, force_text
20

  
21
from quixote import cleanup, get_response
22
from wcs.qommon.errors import ConnectionError
19
from django.utils.encoding import force_bytes
20
from django.utils.encoding import force_text
21
from quixote import cleanup
22
from quixote import get_response
23 23
from quixote.http_request import Upload as QuixoteUpload
24
from wcs.qommon.http_request import HTTPRequest
25
from wcs.qommon.form import PicklableUpload
26
from wcs.qommon.form import *
24
from utilities import MockSubstitutionVariables
25
from utilities import clean_temporary_pub
26
from utilities import create_temporary_pub
27 27

  
28
from wcs import sessions
28 29
from wcs.blocks import BlockDef
29
from wcs.formdef import FormDef
30 30
from wcs.carddef import CardDef
31
from wcs import sessions
32
from wcs.fields import (
33
    StringField,
34
    DateField,
35
    MapField,
36
    FileField,
37
    ItemField,
38
    ItemsField,
39
    CommentField,
40
    EmailField,
41
    PageField,
42
    TitleField,
43
    SubtitleField,
44
    TextField,
45
    BoolField,
46
    TableField,
47
    BlockField,
48
)
31
from wcs.fields import BlockField
32
from wcs.fields import BoolField
33
from wcs.fields import CommentField
34
from wcs.fields import DateField
35
from wcs.fields import EmailField
36
from wcs.fields import FileField
37
from wcs.fields import ItemField
38
from wcs.fields import ItemsField
39
from wcs.fields import MapField
40
from wcs.fields import PageField
41
from wcs.fields import StringField
42
from wcs.fields import SubtitleField
43
from wcs.fields import TableField
44
from wcs.fields import TextField
45
from wcs.fields import TitleField
49 46
from wcs.formdata import Evolution
50
from wcs.workflows import (
51
    Workflow,
52
    WorkflowStatusItem,
53
    SendmailWorkflowStatusItem,
54
    SendSMSWorkflowStatusItem,
55
    CommentableWorkflowStatusItem,
56
    ChoiceWorkflowStatusItem,
57
    DisplayMessageWorkflowStatusItem,
58
    AbortActionException,
59
    WorkflowCriticalityLevel,
60
    AttachmentEvolutionPart,
61
    WorkflowBackofficeFieldsFormDef,
62
    WorkflowVariablesFieldsFormDef,
63
    perform_items,
64
)
65
from wcs.wf.aggregation_email import (
66
    AggregationEmailWorkflowStatusItem,
67
    AggregationEmail,
68
    send_aggregation_emails,
69
)
47
from wcs.formdef import FormDef
48
from wcs.qommon.errors import ConnectionError
49
from wcs.qommon.form import PicklableUpload
50
from wcs.qommon.form import *
51
from wcs.qommon.http_request import HTTPRequest
52
from wcs.wf.aggregation_email import AggregationEmail
53
from wcs.wf.aggregation_email import AggregationEmailWorkflowStatusItem
54
from wcs.wf.aggregation_email import send_aggregation_emails
70 55
from wcs.wf.anonymise import AnonymiseWorkflowStatusItem
71
from wcs.wf.criticality import ModifyCriticalityWorkflowStatusItem, MODE_INC, MODE_DEC, MODE_SET
72
from wcs.wf.dispatch import DispatchWorkflowStatusItem
73
from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef
74
from wcs.wf.jump import JumpWorkflowStatusItem, _apply_timeouts
75
from wcs.wf.timeout_jump import TimeoutWorkflowStatusItem
76
from wcs.wf.profile import UpdateUserProfileStatusItem
77
from wcs.wf.register_comment import RegisterCommenterWorkflowStatusItem, JournalEvolutionPart
78
from wcs.wf.remove import RemoveWorkflowStatusItem
79
from wcs.wf.roles import AddRoleWorkflowStatusItem, RemoveRoleWorkflowStatusItem
80
from wcs.wf.wscall import WebserviceCallStatusItem
81
from wcs.wf.export_to_model import ExportToModel, transform_to_pdf
82
from wcs.wf.geolocate import GeolocateWorkflowStatusItem
83 56
from wcs.wf.backoffice_fields import SetBackofficeFieldsWorkflowStatusItem
84
from wcs.wf.redirect_to_url import RedirectToUrlWorkflowStatusItem
85
from wcs.wf.notification import SendNotificationWorkflowStatusItem
86
from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem, Mapping
87 57
from wcs.wf.create_carddata import CreateCarddataWorkflowStatusItem
58
from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem
59
from wcs.wf.create_formdata import Mapping
60
from wcs.wf.criticality import MODE_DEC
61
from wcs.wf.criticality import MODE_INC
62
from wcs.wf.criticality import MODE_SET
63
from wcs.wf.criticality import ModifyCriticalityWorkflowStatusItem
64
from wcs.wf.dispatch import DispatchWorkflowStatusItem
88 65
from wcs.wf.edit_carddata import EditCarddataWorkflowStatusItem
66
from wcs.wf.export_to_model import ExportToModel
67
from wcs.wf.export_to_model import transform_to_pdf
89 68
from wcs.wf.external_workflow import ExternalWorkflowGlobalAction
90

  
91

  
92
from utilities import create_temporary_pub, MockSubstitutionVariables, clean_temporary_pub
69
from wcs.wf.form import FormWorkflowStatusItem
70
from wcs.wf.form import WorkflowFormFieldsFormDef
71
from wcs.wf.geolocate import GeolocateWorkflowStatusItem
72
from wcs.wf.jump import JumpWorkflowStatusItem
73
from wcs.wf.jump import _apply_timeouts
74
from wcs.wf.notification import SendNotificationWorkflowStatusItem
75
from wcs.wf.profile import UpdateUserProfileStatusItem
76
from wcs.wf.redirect_to_url import RedirectToUrlWorkflowStatusItem
77
from wcs.wf.register_comment import JournalEvolutionPart
78
from wcs.wf.register_comment import RegisterCommenterWorkflowStatusItem
79
from wcs.wf.remove import RemoveWorkflowStatusItem
80
from wcs.wf.roles import AddRoleWorkflowStatusItem
81
from wcs.wf.roles import RemoveRoleWorkflowStatusItem
82
from wcs.wf.timeout_jump import TimeoutWorkflowStatusItem
83
from wcs.wf.wscall import WebserviceCallStatusItem
84
from wcs.workflows import AbortActionException
85
from wcs.workflows import AttachmentEvolutionPart
86
from wcs.workflows import ChoiceWorkflowStatusItem
87
from wcs.workflows import CommentableWorkflowStatusItem
88
from wcs.workflows import DisplayMessageWorkflowStatusItem
89
from wcs.workflows import SendmailWorkflowStatusItem
90
from wcs.workflows import SendSMSWorkflowStatusItem
91
from wcs.workflows import Workflow
92
from wcs.workflows import WorkflowBackofficeFieldsFormDef
93
from wcs.workflows import WorkflowCriticalityLevel
94
from wcs.workflows import WorkflowStatusItem
95
from wcs.workflows import WorkflowVariablesFieldsFormDef
96
from wcs.workflows import perform_items
93 97

  
94 98

  
95 99
def setup_module(module):
tests/test_wscall.py
1 1
import json
2

  
2 3
import pytest
4
from utilities import clean_temporary_pub
5
from utilities import create_temporary_pub
6
from utilities import get_app
3 7

  
4 8
from wcs import fields
5 9
from wcs.formdef import FormDef
......
7 11
from wcs.qommon.template import Template
8 12
from wcs.wscalls import NamedWsCall
9 13

  
10
from utilities import get_app, create_temporary_pub, clean_temporary_pub
11

  
12 14

  
13 15
@pytest.fixture
14 16
def pub():
tests/utilities.py
2 2
import email.parser
3 3
import json
4 4
import os
5
import tempfile
6 5
import random
7
import psycopg2
8 6
import shutil
9 7
import sys
8
import tempfile
10 9
import urllib.parse
11 10

  
12
from wcs import sql, sessions, custom_views
13

  
14
from webtest import TestApp
15
from quixote import cleanup, get_publisher
11
import psycopg2
16 12
from django.conf import settings
17
from django.utils.encoding import force_bytes, force_text
13
from django.utils.encoding import force_bytes
14
from django.utils.encoding import force_text
15
from quixote import cleanup
16
from quixote import get_publisher
17
from webtest import TestApp
18 18

  
19
from wcs.qommon import force_str
20 19
import wcs
20
import wcs.middleware
21
import wcs.qommon.emails
22
import wcs.qommon.sms
21 23
import wcs.wsgi
22 24
from wcs import compat
25
from wcs import custom_views
26
from wcs import sessions
27
from wcs import sql
28
from wcs.qommon import force_str
29
from wcs.qommon.errors import ConnectionError
23 30
from wcs.roles import Role
24
from wcs.users import User
25 31
from wcs.tracking_code import TrackingCode
26
import wcs.qommon.emails
27
import wcs.qommon.sms
28
from wcs.qommon.errors import ConnectionError
29

  
30
import wcs.middleware
32
from wcs.users import User
31 33

  
32 34
wcs.middleware.AfterJobsMiddleware.ASYNC = False
33 35

  
wcs/__init__.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
import sys
18 17
import os
18
import sys
19 19

  
20 20
sys.path.insert(0, os.path.dirname(__file__))
21 21

  
22
from . import monkeypatch
23
from . import compat
22
from . import monkeypatch  # isort: skip
23
from . import compat  # isort: skip
wcs/admin/api_access.py
16 16

  
17 17
import uuid
18 18

  
19
from quixote import get_response, redirect
19
from quixote import get_response
20
from quixote import redirect
20 21
from quixote.directory import Directory
21
from quixote.html import TemplateIO, htmltext
22
from quixote.html import TemplateIO
23
from quixote.html import htmltext
22 24

  
23
from wcs.qommon import _, errors, template
24
from wcs.qommon.form import Form, StringWidget, TextWidget, HtmlWidget
25
from wcs.qommon.backoffice.menu import html_top
26 25
from wcs.api_access import ApiAccess
26
from wcs.qommon import _
27
from wcs.qommon import errors
28
from wcs.qommon import template
29
from wcs.qommon.backoffice.menu import html_top
30
from wcs.qommon.form import Form
31
from wcs.qommon.form import HtmlWidget
32
from wcs.qommon.form import StringWidget
33
from wcs.qommon.form import TextWidget
27 34

  
28 35

  
29 36
class ApiAccessUI(object):
wcs/admin/blocks.py
16 16

  
17 17
import xml.etree.ElementTree as ET
18 18

  
19
from quixote import get_publisher, get_response, get_session, redirect
19
from quixote import get_publisher
20
from quixote import get_response
21
from quixote import get_session
22
from quixote import redirect
20 23
from quixote.directory import Directory
21
from quixote.html import TemplateIO, htmltext
24
from quixote.html import TemplateIO
25
from quixote.html import htmltext
22 26

  
23
from wcs.blocks import BlockDef, BlockdefImportError
24

  
25
from wcs.qommon.form import Form, StringWidget, HtmlWidget, FileWidget
26
from wcs.qommon import _, N_, misc, template
27
from wcs.qommon.backoffice.menu import html_top
28

  
29
from wcs.admin.fields import FieldDefPage, FieldsDirectory
30 27
from wcs.admin import utils
28
from wcs.admin.fields import FieldDefPage
29
from wcs.admin.fields import FieldsDirectory
31 30
from wcs.backoffice.snapshots import SnapshotsDirectory
31
from wcs.blocks import BlockDef
32
from wcs.blocks import BlockdefImportError
33
from wcs.qommon import N_
34
from wcs.qommon import _
35
from wcs.qommon import misc
36
from wcs.qommon import template
37
from wcs.qommon.backoffice.menu import html_top
38
from wcs.qommon.form import FileWidget
39
from wcs.qommon.form import Form
40
from wcs.qommon.form import HtmlWidget
41
from wcs.qommon.form import StringWidget
32 42

  
33 43

  
34 44
class BlockFieldDefPage(FieldDefPage):
wcs/admin/categories.py
16 16

  
17 17
from quixote import redirect
18 18
from quixote.directory import Directory
19
from quixote.html import TemplateIO, htmltext
20

  
21
from wcs.qommon import _, N_
22
from wcs.categories import Category, CardDefCategory
23
from wcs.qommon.form import *
24
from wcs.qommon.backoffice.menu import html_top
19
from quixote.html import TemplateIO
20
from quixote.html import htmltext
25 21

  
26 22
from wcs.carddef import CardDef
23
from wcs.categories import CardDefCategory
24
from wcs.categories import Category
27 25
from wcs.formdef import FormDef
26
from wcs.qommon import N_
27
from wcs.qommon import _
28
from wcs.qommon.backoffice.menu import html_top
29
from wcs.qommon.form import *
28 30

  
29 31

  
30 32
class CategoryUI(object):
wcs/admin/data_sources.py
16 16

  
17 17
import xml.etree.ElementTree as ET
18 18

  
19
from quixote import get_publisher, redirect
19
from quixote import get_publisher
20
from quixote import redirect
20 21
from quixote.directory import Directory
21
from quixote.html import TemplateIO, htmltext
22
from quixote.html import TemplateIO
23
from quixote.html import htmltext
22 24

  
23 25
from wcs.admin import utils
24
from wcs.qommon import _, force_str
25
from wcs.qommon import errors, template
26
from wcs.qommon.form import *
26
from wcs.backoffice.snapshots import SnapshotsDirectory
27
from wcs.carddef import CardDef
28
from wcs.data_sources import DataSourceSelectionWidget
29
from wcs.data_sources import NamedDataSource
30
from wcs.data_sources import RefreshAgendas
31
from wcs.data_sources import get_structured_items
32
from wcs.data_sources import has_chrono
33
from wcs.formdef import FormDef
34
from wcs.formdef import get_formdefs_of_all_kinds
35
from wcs.qommon import _
36
from wcs.qommon import errors
37
from wcs.qommon import force_str
38
from wcs.qommon import misc
39
from wcs.qommon import template
40
from wcs.qommon.backoffice.menu import html_top
27 41
from wcs.qommon.form import FileWidget
28 42
from wcs.qommon.form import Form
29 43
from wcs.qommon.form import UrlWidget
44
from wcs.qommon.form import *
30 45
from wcs.qommon.form import get_response
31 46
from wcs.qommon.form import get_session
32
from wcs.qommon import misc
33
from wcs.qommon.backoffice.menu import html_top
34
from wcs.carddef import CardDef
35
from wcs.data_sources import (
36
    NamedDataSource,
37
    DataSourceSelectionWidget,
38
    get_structured_items,
39
    has_chrono,
40
    RefreshAgendas,
41
)
42
from wcs.formdef import FormDef, get_formdefs_of_all_kinds
43
from wcs.backoffice.snapshots import SnapshotsDirectory
44 47

  
45 48

  
46 49
class NamedDataSourceUI(object):
wcs/admin/fields.py
21 21

  
22 22
from quixote import redirect
23 23
from quixote.directory import Directory
24
from quixote.html import TemplateIO, htmltext, htmlescape
24
from quixote.html import TemplateIO
25
from quixote.html import htmlescape
26
from quixote.html import htmltext
25 27

  
28
from wcs import fields
26 29
from wcs.admin import utils
30
from wcs.fields import get_field_options
31
from wcs.formdef import FormDef
27 32
from wcs.qommon import _
28
from wcs.qommon.form import *
29
from wcs.qommon import errors, misc
33
from wcs.qommon import errors
30 34
from wcs.qommon import get_cfg
31
from wcs.qommon.backoffice.menu import html_top
35
from wcs.qommon import misc
32 36
from wcs.qommon.admin.menu import command_icon
33

  
34
from wcs import fields
35
from wcs.formdef import FormDef
36
from wcs.fields import get_field_options
37
from wcs.qommon.backoffice.menu import html_top
38
from wcs.qommon.form import *
37 39

  
38 40

  
39 41
class FieldDefPage(Directory):
wcs/admin/forms.py
16 16
# You should have received a copy of the GNU General Public License
17 17
# along with this program; if not, see <http://www.gnu.org/licenses/>.
18 18

  
19
import io
20
import xml.etree.ElementTree as ET
21 19
import datetime
22 20
import difflib
21
import io
23 22
import tarfile
24 23
import time
24
import xml.etree.ElementTree as ET
25 25

  
26
from quixote import get_publisher, get_response, redirect
27
from quixote.directory import Directory, AccessControlled
28
from quixote.html import TemplateIO, htmltext
26
from quixote import get_publisher
27
from quixote import get_response
28
from quixote import redirect
29
from quixote.directory import AccessControlled
30
from quixote.directory import Directory
31
from quixote.html import TemplateIO
32
from quixote.html import htmltext
29 33

  
30
from wcs.qommon import _, N_, force_str
31
from wcs.qommon import misc, template
34
from wcs.backoffice.snapshots import SnapshotsDirectory
35
from wcs.carddef import CardDef
36
from wcs.categories import Category
37
from wcs.formdef import DRAFTS_DEFAULT_LIFESPAN
38
from wcs.formdef import FormDef
39
from wcs.formdef import FormdefImportError
40
from wcs.formdef import FormdefImportRecoverableError
41
from wcs.forms.root import qrcode
42
from wcs.qommon import N_
43
from wcs.qommon import _
44
from wcs.qommon import force_str
45
from wcs.qommon import get_logger
46
from wcs.qommon import misc
47
from wcs.qommon import template
48
from wcs.qommon.afterjobs import AfterJob
49
from wcs.qommon.backoffice.menu import html_top
32 50
from wcs.qommon.errors import TraversalError
33 51
from wcs.qommon.form import *
34
from wcs.qommon.storage import Equal, NotEqual, Null
35
from wcs.qommon.backoffice.menu import html_top
36
from wcs.qommon import get_logger
37 52
from wcs.qommon.misc import C_
38

  
39
from wcs.qommon.afterjobs import AfterJob
40

  
41
from wcs.formdef import FormDef, FormdefImportError, FormdefImportRecoverableError, DRAFTS_DEFAULT_LIFESPAN
42
from wcs.carddef import CardDef
43
from wcs.categories import Category
44
from wcs.roles import logged_users_role, get_user_roles
53
from wcs.qommon.storage import Equal
54
from wcs.qommon.storage import NotEqual
55
from wcs.qommon.storage import Null
56
from wcs.roles import get_user_roles
57
from wcs.roles import logged_users_role
45 58
from wcs.workflows import Workflow
46
from wcs.forms.root import qrcode
47 59

  
48 60
from . import utils
49 61
from .blocks import BlocksDirectory
50
from .fields import FieldDefPage, FieldsDirectory
51 62
from .categories import CategoriesDirectory
52 63
from .data_sources import NamedDataSourcesDirectory
64
from .fields import FieldDefPage
65
from .fields import FieldsDirectory
53 66
from .logged_errors import LoggedErrorsDirectory
54 67

  
55
from wcs.backoffice.snapshots import SnapshotsDirectory
56

  
57 68

  
58 69
def get_categories(category_class):
59 70
    t = sorted([(misc.simplify(x.name), x.id, x.name, x.id) for x in category_class.select()])
wcs/admin/logged_errors.py
17 17
import re
18 18

  
19 19
from django.utils.text import Truncator
20
from quixote import get_response, get_publisher, redirect, get_request
20
from quixote import get_publisher
21
from quixote import get_request
22
from quixote import get_response
23
from quixote import redirect
21 24
from quixote.directory import Directory
22
from quixote.html import TemplateIO, htmltext
23
from wcs.qommon import _, ngettext, N_, template
25
from quixote.html import TemplateIO
26
from quixote.html import htmltext
27

  
28
from wcs.qommon import N_
29
from wcs.qommon import _
24 30
from wcs.qommon import errors
25 31
from wcs.qommon import misc
32
from wcs.qommon import ngettext
33
from wcs.qommon import template
26 34
from wcs.qommon.backoffice.listing import pagination_links
27
from wcs.qommon.storage import Or, Equal, NotEqual, Null, NotNull
35
from wcs.qommon.storage import Equal
36
from wcs.qommon.storage import NotEqual
37
from wcs.qommon.storage import NotNull
38
from wcs.qommon.storage import Null
39
from wcs.qommon.storage import Or
28 40

  
29 41

  
30 42
class LoggedErrorDirectory(Directory):
wcs/admin/mail_templates.py
16 16

  
17 17
import xml.etree.ElementTree as ET
18 18

  
19
from quixote import get_publisher, get_response, redirect
19
from quixote import get_publisher
20
from quixote import get_response
21
from quixote import redirect
20 22
from quixote.directory import Directory
21
from quixote.html import TemplateIO, htmltext
23
from quixote.html import TemplateIO
24
from quixote.html import htmltext
22 25

  
23
from wcs.qommon import _, errors, force_str, misc, template
24
from wcs.qommon.backoffice.menu import html_top
25
from wcs.qommon.form import (
26
    Form,
27
    HtmlWidget,
28
    StringWidget,
29
    TextWidget,
30
    ComputedExpressionWidget,
31
    WidgetList,
32
    FileWidget,
33
    get_session,
34
)
35 26
from wcs.mail_templates import MailTemplate
27
from wcs.qommon import _
28
from wcs.qommon import errors
29
from wcs.qommon import force_str
30
from wcs.qommon import misc
31
from wcs.qommon import template
32
from wcs.qommon.backoffice.menu import html_top
33
from wcs.qommon.form import ComputedExpressionWidget
34
from wcs.qommon.form import FileWidget
35
from wcs.qommon.form import Form
36
from wcs.qommon.form import HtmlWidget
37
from wcs.qommon.form import StringWidget
38
from wcs.qommon.form import TextWidget
39
from wcs.qommon.form import WidgetList
40
from wcs.qommon.form import get_session
36 41

  
37 42

  
38 43
class MailTemplatesDirectory(Directory):
wcs/admin/roles.py
16 16

  
17 17
from quixote import redirect
18 18
from quixote.directory import Directory
19
from quixote.html import TemplateIO, htmltext
19
from quixote.html import TemplateIO
20
from quixote.html import htmltext
20 21

  
21
from wcs.qommon import _, get_cfg
22
from wcs.formdef import FormDef
23
from wcs.qommon import _
22 24
from wcs.qommon import errors
23
from wcs.qommon.form import *
24

  
25
from wcs.qommon import get_cfg
25 26
from wcs.qommon.backoffice.menu import html_top
26

  
27
from wcs.qommon.form import *
27 28
from wcs.roles import get_user_roles
28
from wcs.formdef import FormDef
29 29

  
30 30

  
31 31
class RoleUI(object):
wcs/admin/root.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from quixote import get_request, redirect
17
from quixote import get_request
18
from quixote import redirect
18 19
from quixote.directory import Directory
19 20

  
20 21

  
wcs/admin/settings.py
24 24
    import lasso
25 25
except ImportError:
26 26
    lasso = None
27
import zipfile
28 27
import shutil
29

  
30 28
import xml.etree.ElementTree as ET
29
import zipfile
31 30

  
32 31
from django.utils.encoding import force_bytes
33

  
34
from quixote import get_publisher, get_request, get_response, redirect
32
from quixote import get_publisher
33
from quixote import get_request
34
from quixote import get_response
35
from quixote import redirect
35 36
from quixote.directory import Directory
36
from quixote.html import TemplateIO, htmltext
37
from quixote.html import TemplateIO
38
from quixote.html import htmltext
37 39

  
38
from wcs.qommon import _, N_
39
from wcs.qommon import get_cfg
40
from wcs.backoffice.studio import StudioDirectory
41
from wcs.blocks import BlockDef
42
from wcs.carddef import CardDef
43
from wcs.data_sources import NamedDataSource
44
from wcs.formdef import FormDef
45
from wcs.qommon import N_
46
from wcs.qommon import _
40 47
from wcs.qommon import errors
48
from wcs.qommon import get_cfg
49
from wcs.qommon import ident
41 50
from wcs.qommon import misc
42 51
from wcs.qommon import template
43
from wcs.qommon.form import *
44
from wcs.qommon.sms import SMS
45

  
46
from wcs.qommon.afterjobs import AfterJob
47
from wcs.qommon.backoffice.menu import html_top
48
from wcs.qommon.admin.menu import error_page
49 52
from wcs.qommon.admin.cfg import cfg_submit
50 53
from wcs.qommon.admin.emails import EmailsDirectory
51
from wcs.qommon.admin.texts import TextsDirectory
52
from wcs.qommon.admin.settings import SettingsDirectory as QommonSettingsDirectory
53 54
from wcs.qommon.admin.logger import LoggerDirectory
54
from wcs.qommon import ident
55

  
56
from wcs.blocks import BlockDef
57
from wcs.carddef import CardDef
58
from wcs.data_sources import NamedDataSource
59
from wcs.formdef import FormDef
60
from wcs.workflows import Workflow, WorkflowImportError
55
from wcs.qommon.admin.menu import error_page
56
from wcs.qommon.admin.settings import SettingsDirectory as QommonSettingsDirectory
57
from wcs.qommon.admin.texts import TextsDirectory
58
from wcs.qommon.afterjobs import AfterJob
59
from wcs.qommon.backoffice.menu import html_top
60
from wcs.qommon.form import *
61
from wcs.qommon.sms import SMS
62
from wcs.workflows import Workflow
63
from wcs.workflows import WorkflowImportError
61 64

  
62
from wcs.backoffice.studio import StudioDirectory
63
from .fields import FieldDefPage, FieldsDirectory
65
from .api_access import ApiAccessDirectory
64 66
from .data_sources import NamedDataSourcesDirectory
67
from .fields import FieldDefPage
68
from .fields import FieldsDirectory
65 69
from .wscalls import NamedWsCallsDirectory
66
from .api_access import ApiAccessDirectory
67 70

  
68 71

  
69 72
class UserFormDirectory(Directory):
......
935 938
        return r.getvalue()
936 939

  
937 940
    def template_submit(self, form=None):
938
        from wcs.qommon.template import DEFAULT_TEMPLATE_EZT, get_default_ezt_template
941
        from wcs.qommon.template import DEFAULT_TEMPLATE_EZT
942
        from wcs.qommon.template import get_default_ezt_template
939 943

  
940 944
        theme_default_template_ezt = get_default_ezt_template()
941 945

  
wcs/admin/users.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from quixote import get_publisher, get_response, get_request, get_session, redirect
17
from quixote import get_publisher
18
from quixote import get_request
19
from quixote import get_response
20
from quixote import get_session
21
from quixote import redirect
18 22
from quixote.directory import Directory
19
from quixote.html import TemplateIO, htmltext
23
from quixote.html import TemplateIO
24
from quixote.html import htmltext
20 25

  
21
from wcs.qommon import _, N_, force_str
22 26
import wcs.qommon.storage as st
27
from wcs.qommon import N_
28
from wcs.qommon import _
23 29
from wcs.qommon import errors
24
from wcs.qommon import misc, get_cfg
25
from wcs.qommon.backoffice.listing import pagination_links
26

  
30
from wcs.qommon import force_str
31
from wcs.qommon import get_cfg
27 32
from wcs.qommon import ident
28
from wcs.qommon.ident.idp import is_idp_managing_user_attributes, is_idp_managing_user_roles
29
from wcs.qommon.form import *
33
from wcs.qommon import misc
30 34
from wcs.qommon.admin.emails import EmailsDirectory
31
from wcs.qommon.backoffice.menu import html_top
32 35
from wcs.qommon.admin.menu import error_page
36
from wcs.qommon.backoffice.listing import pagination_links
37
from wcs.qommon.backoffice.menu import html_top
38
from wcs.qommon.form import *
39
from wcs.qommon.ident.idp import is_idp_managing_user_attributes
40
from wcs.qommon.ident.idp import is_idp_managing_user_roles
33 41

  
34 42

  
35 43
class UserUI(object):
wcs/admin/utils.py
18 18

  
19 19
import time
20 20

  
21
from quixote import get_publisher, get_request
22
from quixote.html import TemplateIO, htmltext
23

  
24
from qommon import _, misc
21
from qommon import _
22
from qommon import misc
23
from quixote import get_publisher
24
from quixote import get_request
25
from quixote.html import TemplateIO
26
from quixote.html import htmltext
25 27

  
26 28

  
27 29
def last_modification_block(obj):
wcs/admin/workflows.py
19 19
from __future__ import print_function
20 20

  
21 21
import io
22
import time
23
from subprocess import Popen, PIPE
24 22
import textwrap
23
import time
25 24
import xml.etree.ElementTree as ET
25
from subprocess import PIPE
26
from subprocess import Popen
26 27

  
27 28
from django.utils.encoding import force_bytes
28

  
29
from quixote import redirect, get_publisher, get_response
29
from quixote import get_publisher
30
from quixote import get_response
31
from quixote import redirect
30 32
from quixote.directory import Directory
31
from quixote.html import TemplateIO, htmltext
33
from quixote.html import TemplateIO
34
from quixote.html import htmltext
32 35

  
33
from wcs.qommon import _, force_str
36
from wcs.backoffice.snapshots import SnapshotsDirectory
37
from wcs.backoffice.studio import StudioDirectory
38
from wcs.carddef import CardDef
39
from wcs.formdata import Evolution
40
from wcs.formdef import FormDef
41
from wcs.qommon import _
34 42
from wcs.qommon import errors
43
from wcs.qommon import force_str
44
from wcs.qommon import get_logger
35 45
from wcs.qommon import misc
36
from wcs.qommon.form import *
37
from wcs.qommon.backoffice.menu import html_top
38 46
from wcs.qommon.admin.menu import command_icon
39
from wcs.qommon import get_logger
40

  
47
from wcs.qommon.backoffice.menu import html_top
48
from wcs.qommon.form import *
41 49
from wcs.workflows import *
42
from wcs.carddef import CardDef
43
from wcs.formdef import FormDef
44
from wcs.formdata import Evolution
45 50

  
46 51
from . import utils
47
from .fields import FieldDefPage, FieldsDirectory
48 52
from .data_sources import NamedDataSourcesDirectory
53
from .fields import FieldDefPage
54
from .fields import FieldsDirectory
49 55
from .logged_errors import LoggedErrorsDirectory
50 56
from .mail_templates import MailTemplatesDirectory
51
from wcs.backoffice.snapshots import SnapshotsDirectory
52
from wcs.backoffice.studio import StudioDirectory
53 57

  
54 58

  
55 59
def svg(tag):
wcs/admin/wscalls.py
16 16

  
17 17
import xml.etree.ElementTree as ET
18 18

  
19
from quixote import get_publisher, get_response, redirect
19
from quixote import get_publisher
20
from quixote import get_response
21
from quixote import redirect
20 22
from quixote.directory import Directory
21
from quixote.html import TemplateIO, htmltext
23
from quixote.html import TemplateIO
24
from quixote.html import htmltext
22 25

  
23 26
from wcs.admin import utils
24
from wcs.qommon import _, errors, template
27
from wcs.backoffice.snapshots import SnapshotsDirectory
28
from wcs.qommon import _
29
from wcs.qommon import errors
25 30
from wcs.qommon import misc
26
from wcs.qommon.form import *
31
from wcs.qommon import template
27 32
from wcs.qommon.backoffice.menu import html_top
28
from wcs.wscalls import NamedWsCall, WsCallRequestWidget
29
from wcs.backoffice.snapshots import SnapshotsDirectory
33
from wcs.qommon.form import *
34
from wcs.wscalls import NamedWsCall
35
from wcs.wscalls import WsCallRequestWidget
30 36

  
31 37

  
32 38
class NamedWsCallUI(object):
wcs/api.py
21 21
import time
22 22
import urllib.parse
23 23

  
24
from quixote import get_request, get_publisher, get_response, get_session
25
from quixote.errors import MethodNotAllowedError
26
from quixote.directory import Directory
27

  
24
from django.http import HttpResponse
25
from django.http import HttpResponseBadRequest
26
from django.http import JsonResponse
28 27
from django.utils.encoding import force_text
29
from django.http import HttpResponse, HttpResponseBadRequest, JsonResponse
30

  
31
from .qommon import _
32
from .qommon import misc
33
from .qommon.errors import (
34
    AccessForbiddenError,
35
    TraversalError,
36
    UnknownNameIdAccessForbiddenError,
37
    ConnectionError,
38
)
39
from .qommon.form import ComputedExpressionWidget
40
from .qommon.storage import Equal, NotEqual
28
from quixote import get_publisher
29
from quixote import get_request
30
from quixote import get_response
31
from quixote import get_session
32
from quixote.directory import Directory
33
from quixote.errors import MethodNotAllowedError
41 34

  
42
from wcs.categories import Category
43
from wcs.conditions import Condition, ValidationError
35
import wcs.qommon.storage as st
36
from wcs.api_utils import get_query_flag
37
from wcs.api_utils import get_user_from_api_query_string
38
from wcs.api_utils import is_url_signed
39
from wcs.api_utils import sign_url_auto_orig
44 40
from wcs.carddef import CardDef
45
from wcs.formdef import FormDef
41
from wcs.categories import Category
42
from wcs.conditions import Condition
43
from wcs.conditions import ValidationError
46 44
from wcs.data_sources import NamedDataSource
47 45
from wcs.data_sources import get_object as get_data_source_object
48
from wcs.roles import logged_users_role
46
from wcs.formdef import FormDef
49 47
from wcs.forms.common import FormStatusPage
50 48
from wcs.qommon.afterjobs import AfterJob
51
import wcs.qommon.storage as st
52
from wcs.api_utils import sign_url_auto_orig, is_url_signed, get_user_from_api_query_string, get_query_flag
49
from wcs.roles import logged_users_role
53 50

  
51
from .backoffice.data_management import CardPage as BackofficeCardPage
54 52
from .backoffice.management import FormPage as BackofficeFormPage
55 53
from .backoffice.management import ManagementDirectory
56
from .backoffice.data_management import CardPage as BackofficeCardPage
57 54
from .backoffice.submission import SubmissionDirectory
55
from .qommon import _
56
from .qommon import misc
57
from .qommon.errors import AccessForbiddenError
58
from .qommon.errors import ConnectionError
59
from .qommon.errors import TraversalError
60
from .qommon.errors import UnknownNameIdAccessForbiddenError
61
from .qommon.form import ComputedExpressionWidget
62
from .qommon.storage import Equal
63
from .qommon.storage import NotEqual
58 64

  
59 65

  
60 66
def posted_json_data_to_formdata_data(formdef, data):
......
848 854

  
849 855
        if get_publisher().is_using_postgresql() and not get_request().form.get('full') == 'on':
850 856
            from wcs import sql
857

  
851 858
            from .qommon.storage import Equal
852 859

  
853 860
            order_by = 'receipt_time'
wcs/api_utils.py
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17 17
import base64
18
import hmac
19
import hashlib
18
import calendar
20 19
import datetime
21
import random
20
import errno
21
import hashlib
22
import hmac
22 23
import os
24
import random
23 25
import urllib.parse
24
import errno
25
import calendar
26 26

  
27
from django.utils.encoding import force_bytes, force_text
27
import qommon.misc
28
from django.utils.encoding import force_bytes
29
from django.utils.encoding import force_text
30
from quixote import get_publisher
31
from quixote import get_request
28 32

  
29
from quixote import get_request, get_publisher
30 33
from .api_access import ApiAccess
31
from .qommon.errors import AccessForbiddenError, HttpResponse401Error, UnknownNameIdAccessForbiddenError
32
import qommon.misc
34
from .qommon.errors import AccessForbiddenError
35
from .qommon.errors import HttpResponse401Error
36
from .qommon.errors import UnknownNameIdAccessForbiddenError
33 37

  
34 38
DEFAULT_DURATION = 30
35 39

  
wcs/backoffice/cards.py
16 16
# You should have received a copy of the GNU General Public License
17 17
# along with this program; if not, see <http://www.gnu.org/licenses/>.
18 18

  
19
from quixote import get_publisher, get_response, get_session, redirect
19
from quixote import get_publisher
20
from quixote import get_response
21
from quixote import get_session
22
from quixote import redirect
20 23
from quixote.directory import Directory
21
from quixote.html import TemplateIO, htmltext
22

  
23
from ..qommon import _, N_
24
from ..qommon.misc import C_
25
from ..qommon.storage import NotEqual, Null
24
from quixote.html import TemplateIO
25
from quixote.html import htmltext
26 26

  
27
from wcs.admin import utils
28
from wcs.admin.categories import CardDefCategoriesDirectory
29
from wcs.admin.forms import FormDefPage
30
from wcs.admin.forms import FormDefUI
31
from wcs.admin.forms import FormsDirectory
32
from wcs.admin.forms import OptionsDirectory
33
from wcs.admin.forms import html_top
34
from wcs.admin.logged_errors import LoggedErrorsDirectory
27 35
from wcs.carddef import CardDef
28 36
from wcs.categories import CardDefCategory
29 37
from wcs.workflows import Workflow
30
from wcs.admin.categories import CardDefCategoriesDirectory
31
from wcs.admin.forms import FormsDirectory, FormDefPage, FormDefUI, html_top, OptionsDirectory
32
from wcs.admin.logged_errors import LoggedErrorsDirectory
33
from wcs.admin import utils
38

  
39
from ..qommon import N_
40
from ..qommon import _
41
from ..qommon.misc import C_
42
from ..qommon.storage import NotEqual
43
from ..qommon.storage import Null
34 44

  
35 45

  
36 46
class CardDefUI(FormDefUI):
wcs/backoffice/data_management.py
18 18
import datetime
19 19
import io
20 20

  
21
from quixote import get_publisher, get_request, get_response, redirect
22
from quixote.html import TemplateIO, htmltext, htmlescape
23

  
24 21
from django.utils.encoding import force_text
22
from quixote import get_publisher
23
from quixote import get_request
24
from quixote import get_response
25
from quixote import redirect
26
from quixote.html import TemplateIO
27
from quixote.html import htmlescape
28
from quixote.html import htmltext
25 29

  
30
from wcs import fields
31
from wcs.carddef import CardDef
32
from wcs.categories import CardDefCategory
26 33

  
27
from ..qommon import _, N_
34
from ..qommon import N_
35
from ..qommon import _
28 36
from ..qommon import errors
29 37
from ..qommon import template
30
from ..qommon.form import Form, FileWidget
31
from ..qommon.backoffice.menu import html_top
32
from ..qommon import template
33 38
from ..qommon.afterjobs import AfterJob
34

  
35
from wcs.carddef import CardDef
36
from wcs.categories import CardDefCategory
37
from wcs import fields
38

  
39
from .management import ManagementDirectory, FormPage, FormFillPage, FormBackOfficeStatusPage
39
from ..qommon.backoffice.menu import html_top
40
from ..qommon.form import FileWidget
41
from ..qommon.form import Form
42
from .management import FormBackOfficeStatusPage
43
from .management import FormFillPage
44
from .management import FormPage
45
from .management import ManagementDirectory
40 46

  
41 47

  
42 48
class DataManagementDirectory(ManagementDirectory):
wcs/backoffice/management.py
22 22
import time
23 23
import types
24 24
import urllib.parse
25
import vobject
26 25
import zipfile
27 26

  
27
import vobject
28 28
from django.conf import settings
29 29
from django.utils.encoding import force_text
30

  
31
from quixote import get_session, get_publisher, get_request, get_response, redirect
30
from quixote import get_publisher
31
from quixote import get_request
32
from quixote import get_response
33
from quixote import get_session
34
from quixote import redirect
32 35
from quixote.directory import Directory
33
from quixote.html import TemplateIO, htmltext, htmlescape
34

  
35
from ..qommon import _, ngettext, N_, ezt, force_str
36
from ..qommon.admin.emails import EmailsDirectory
37
from ..qommon.admin.menu import command_icon
38
from ..qommon.backoffice.menu import html_top
39
from ..qommon.backoffice.listing import pagination_links
40
from ..qommon import misc, get_logger
41
from ..qommon.evalutils import make_datetime
42
from ..qommon.misc import C_, ellipsize
43
from ..qommon.afterjobs import AfterJob
44
from ..qommon.substitution import CompatibilityNamesDict
45
from ..qommon import emails
46
from ..qommon import sms
47
from ..qommon import errors
48
from ..qommon import ods
49
from ..qommon.form import *
50
from ..qommon.form import PicklableUpload
51
from ..qommon.storage import (
52
    Equal,
53
    NotEqual,
54
    LessOrEqual,
55
    GreaterOrEqual,
56
    Or,
57
    Intersects,
58
    ILike,
59
    FtsMatch,
60
    Contains,
61
    Null,
62
    NotNull,
63
)
64
from ..qommon.template import Template
36
from quixote.html import TemplateIO
37
from quixote.html import htmlescape
38
from quixote.html import htmltext
65 39

  
40
from wcs.admin.settings import UserFieldsFormDef
66 41
from wcs.api_utils import get_user_from_api_query_string
67 42
from wcs.carddef import CardDef
68
from wcs.conditions import Condition
69
from wcs.forms.backoffice import FormDefUI
70
from wcs.forms.common import FormStatusPage
71
from wcs.admin.settings import UserFieldsFormDef
72 43
from wcs.categories import Category
44
from wcs.conditions import Condition
73 45
from wcs.formdata import FormData
74 46
from wcs.formdef import FormDef
47
from wcs.forms.backoffice import FormDefUI
48
from wcs.forms.common import FormStatusPage
75 49
from wcs.roles import logged_users_role
76 50
from wcs.variables import LazyFieldVar
77
from wcs.workflows import template_on_formdata, WorkflowStatusItem
51
from wcs.workflows import WorkflowStatusItem
52
from wcs.workflows import template_on_formdata
78 53

  
54
from ..qommon import N_
55
from ..qommon import _
56
from ..qommon import emails
57
from ..qommon import errors
58
from ..qommon import ezt
59
from ..qommon import force_str
60
from ..qommon import get_logger
61
from ..qommon import misc
62
from ..qommon import ngettext
63
from ..qommon import ods
64
from ..qommon import sms
65
from ..qommon.admin.emails import EmailsDirectory
66
from ..qommon.admin.menu import command_icon
67
from ..qommon.afterjobs import AfterJob
68
from ..qommon.backoffice.listing import pagination_links
69
from ..qommon.backoffice.menu import html_top
70
from ..qommon.evalutils import make_datetime
71
from ..qommon.form import PicklableUpload
72
from ..qommon.form import *
73
from ..qommon.misc import C_
74
from ..qommon.misc import ellipsize
75
from ..qommon.storage import Contains
76
from ..qommon.storage import Equal
77
from ..qommon.storage import FtsMatch
78
from ..qommon.storage import GreaterOrEqual
79
from ..qommon.storage import ILike
80
from ..qommon.storage import Intersects
81
from ..qommon.storage import LessOrEqual
82
from ..qommon.storage import NotEqual
83
from ..qommon.storage import NotNull
84
from ..qommon.storage import Null
85
from ..qommon.storage import Or
86
from ..qommon.substitution import CompatibilityNamesDict
87
from ..qommon.template import Template
79 88
from .submission import FormFillPage
80 89

  
81 90

  
wcs/backoffice/root.py
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17 17
from django.utils.translation import pgettext
18

  
19
from quixote import get_publisher, get_request, get_response, redirect
20
from quixote.html import TemplateIO, htmltext
21

  
22
from ..qommon import _, N_
23
from ..qommon.backoffice import BackofficeRootDirectory
24
from ..qommon.backoffice.menu import html_top
25

  
26
from ..qommon import misc, get_cfg
27
from ..qommon import errors
28
from ..qommon import template
29
from ..qommon.afterjobs import AfterJob
30
from ..qommon.form import *
31

  
32
from wcs.formdef import FormDef
18
from quixote import get_publisher
19
from quixote import get_request
20
from quixote import get_response
21
from quixote import redirect
22
from quixote.html import TemplateIO
23
from quixote.html import htmltext
33 24

  
34 25
import wcs.admin.categories
35 26
import wcs.admin.forms
......
37 28
import wcs.admin.settings
38 29
import wcs.admin.users
39 30
import wcs.admin.workflows
31
from wcs.formdef import FormDef
40 32

  
41
from . import studio
33
from ..qommon import N_
34
from ..qommon import _
35
from ..qommon import errors
36
from ..qommon import get_cfg
37
from ..qommon import misc
38
from ..qommon import template
39
from ..qommon.afterjobs import AfterJob
40
from ..qommon.backoffice import BackofficeRootDirectory
41
from ..qommon.backoffice.menu import html_top
42
from ..qommon.form import *
42 43
from . import cards
43
from . import submission
44
from . import management
45 44
from . import data_management
45
from . import management
46
from . import studio
47
from . import submission
46 48

  
47 49

  
48 50
class RootDirectory(BackofficeRootDirectory):
wcs/backoffice/snapshots.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from quixote import get_publisher, get_response, redirect, get_session
17
from quixote import get_publisher
18
from quixote import get_response
19
from quixote import get_session
20
from quixote import redirect
18 21
from quixote.directory import Directory
19
from quixote.html import TemplateIO, htmltext
22
from quixote.html import TemplateIO
23
from quixote.html import htmltext
20 24

  
21 25
from wcs.blocks import BlockDef
22 26
from wcs.carddef import CardDef
23 27
from wcs.data_sources import NamedDataSource
24
from wcs.formdef import FormDef, FormdefImportError
28
from wcs.formdef import FormDef
29
from wcs.formdef import FormdefImportError
30
from wcs.qommon import _
31
from wcs.qommon import errors
32
from wcs.qommon import misc
33
from wcs.qommon import template
34
from wcs.qommon.backoffice.menu import html_top
35
from wcs.qommon.form import Form
36
from wcs.qommon.form import RadiobuttonsWidget
37
from wcs.qommon.form import StringWidget
25 38
from wcs.workflows import Workflow
26 39
from wcs.wscalls import NamedWsCall
27
from wcs.qommon import _, errors, misc, template
28
from wcs.qommon.backoffice.menu import html_top
29
from wcs.qommon.form import Form, RadiobuttonsWidget, StringWidget
30 40

  
31 41

  
32 42
class SnapshotsDirectory(Directory):
wcs/backoffice/studio.py
16 16

  
17 17
from quixote import get_publisher
18 18
from quixote.directory import Directory
19
from quixote.html import TemplateIO, htmltext
19
from quixote.html import TemplateIO
20
from quixote.html import htmltext
20 21

  
21 22
from wcs.admin.logged_errors import LoggedErrorsDirectory
22 23
from wcs.qommon import _
wcs/backoffice/submission.py
17 17
import time
18 18

  
19 19
from django.utils.safestring import mark_safe
20

  
21
from quixote import get_publisher, get_request, get_response, get_session, redirect
20
from quixote import get_publisher
21
from quixote import get_request
22
from quixote import get_response
23
from quixote import get_session
24
from quixote import redirect
22 25
from quixote.directory import Directory
23
from quixote.html import TemplateIO, htmltext
24

  
25
from ..qommon import _
26
from ..qommon.backoffice.menu import html_top
27
from ..qommon.form import *
28
from ..qommon.storage import Equal, NotEqual
29
from ..qommon import errors, misc
26
from quixote.html import TemplateIO
27
from quixote.html import htmltext
30 28

  
29
from wcs.categories import Category
31 30
from wcs.formdata import FormData
32 31
from wcs.formdef import FormDef
33
from wcs.categories import Category
34 32
from wcs.forms.common import FormStatusPage
35 33
from wcs.forms.root import FormPage as PublicFormFillPage
36 34

  
35
from ..qommon import _
36
from ..qommon import errors
37
from ..qommon import misc
38
from ..qommon.backoffice.menu import html_top
39
from ..qommon.form import *
40
from ..qommon.storage import Equal
41
from ..qommon.storage import NotEqual
42

  
37 43

  
38 44
class RemoveDraftDirectory(Directory):
39 45
    def __init__(self, parent_directory):
wcs/blocks.py
17 17
import uuid
18 18
import xml.etree.ElementTree as ET
19 19

  
20
from quixote import get_request, get_publisher
21
from quixote.html import htmltag, htmltext
22

  
23
from .qommon import _, N_, misc
24
from .qommon.form import CompositeWidget, WidgetList
25
from .qommon.storage import StorableObject
26
from .qommon.template import Template
20
from quixote import get_publisher
21
from quixote import get_request
22
from quixote.html import htmltag
23
from quixote.html import htmltext
27 24

  
28 25
from . import data_sources
29 26
from . import fields
27
from .qommon import N_
28
from .qommon import _
29
from .qommon import misc
30
from .qommon.form import CompositeWidget
31
from .qommon.form import WidgetList
32
from .qommon.storage import StorableObject
33
from .qommon.template import Template
30 34

  
31 35

  
32 36
class BlockdefImportError(Exception):
wcs/cache.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from django.core.cache.backends.base import InvalidCacheBackendError
17 18
from django.core.exceptions import ImproperlyConfigured
18 19
from django.utils.module_loading import import_string
19
from django.core.cache.backends.base import InvalidCacheBackendError
20

  
21 20
from quixote import get_publisher
22 21

  
23 22

  
wcs/carddef.py
18 18
import types
19 19

  
20 20
from quixote import get_publisher
21
from .qommon import _, N_, misc
22
from .qommon.storage import Contains, Equal, NotEqual, ILike
23
from .qommon.template import Template
24 21

  
25 22
from wcs.carddata import CardData
26 23
from wcs.categories import CardDefCategory
27
from wcs.formdef import FormDef, get_formdefs_of_all_kinds
24
from wcs.formdef import FormDef
25
from wcs.formdef import get_formdefs_of_all_kinds
26

  
27
from .qommon import N_
28
from .qommon import _
29
from .qommon import misc
30
from .qommon.storage import Contains
31
from .qommon.storage import Equal
32
from .qommon.storage import ILike
33
from .qommon.storage import NotEqual
34
from .qommon.template import Template
28 35

  
29 36
if not hasattr(types, 'ClassType'):
30 37
    types.ClassType = type
......
89 96

  
90 97
    @classmethod
91 98
    def get_default_workflow(cls):
92
        from wcs.workflows import EditableWorkflowStatusItem, ChoiceWorkflowStatusItem, Workflow
93 99
        from wcs.wf.remove import RemoveWorkflowStatusItem
100
        from wcs.workflows import ChoiceWorkflowStatusItem
101
        from wcs.workflows import EditableWorkflowStatusItem
102
        from wcs.workflows import Workflow
94 103

  
95 104
        workflow = Workflow(name=_('Default (cards)'))
96 105
        workflow.id = '_carddef_default'
wcs/categories.py
18 18
from quixote.html import htmltext
19 19

  
20 20
from .qommon import N_
21
from .qommon.storage import StorableObject
22 21
from .qommon.misc import simplify
22
from .qommon.storage import StorableObject
23 23
from .qommon.substitution import Substitutions
24 24
from .qommon.xml_storage import XmlStorableObject
25 25

  
wcs/compat.py
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17 17
import os
18

  
19
from threading import Lock
20 18
from contextlib import contextmanager
19
from threading import Lock
21 20

  
22 21
from django.utils.deprecation import MiddlewareMixin
23

  
24
from quixote import get_publisher, get_request
22
from quixote import get_publisher
23
from quixote import get_request
25 24
from quixote.errors import PublishError
26 25
from quixote.http_request import Upload
27 26

  
......
30 29
except ImportError:
31 30
    sentry_sdk = None
32 31

  
33
from django.http import HttpResponse
34 32
from django.conf import settings
35
from django.template import loader, TemplateDoesNotExist
33
from django.http import HttpResponse
34
from django.template import TemplateDoesNotExist
35
from django.template import loader
36 36
from django.template.response import TemplateResponse
37 37
from django.views.generic.base import TemplateView
38 38

  
39
from .qommon import force_str, template
40
from .qommon.publisher import get_cfg, set_publisher_class
41 39
from .publisher import WcsPublisher
40
from .qommon import force_str
41
from .qommon import template
42 42
from .qommon.http_request import HTTPRequest
43
from .qommon.publisher import get_cfg
44
from .qommon.publisher import set_publisher_class
43 45

  
44 46

  
45 47
def can_sentry():
wcs/conditions.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from quixote import get_publisher
18
from django.template import Context, Template, TemplateSyntaxError
19 17
import django.template.smartif
18
from django.template import Context
19
from django.template import Template
20
from django.template import TemplateSyntaxError
20 21
from django.utils.encoding import force_text
22
from quixote import get_publisher
21 23

  
22
from .qommon import _, get_logger, force_str
24
from .qommon import _
25
from .qommon import force_str
26
from .qommon import get_logger
23 27

  
24 28

  
25 29
class ValidationError(ValueError):
wcs/context_processors.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from quixote import get_publisher, get_response, get_request, get_session
17
from quixote import get_publisher
18
from quixote import get_request
19
from quixote import get_response
20
from quixote import get_session
18 21

  
19 22

  
20 23
def get_global_context():
wcs/ctl/backup.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
import os
17 18
import tarfile
18 19
import time
19
import os
20 20

  
21
from ..qommon.ctl import Command, make_option
21
from ..qommon.ctl import Command
22
from ..qommon.ctl import make_option
22 23

  
23 24

  
24 25
class CmdBackup(Command):
wcs/ctl/check_hobos.py
17 17
from __future__ import print_function
18 18

  
19 19
import configparser
20
import hashlib
20 21
import json
21 22
import os
22 23
import random
23 24
import sys
24 25
import tempfile
25
import hashlib
26 26
import urllib.parse
27 27

  
28
from django.utils.encoding import force_bytes, force_text
29

  
28
from django.utils.encoding import force_bytes
29
from django.utils.encoding import force_text
30 30
from quixote import cleanup
31

  
32
from wcs.admin.settings import UserFieldsFormDef
33
from wcs.fields import DateField
34
from wcs.fields import EmailField
35
from wcs.fields import StringField
31 36
from wcs.qommon import force_str
37

  
32 38
from ..qommon import misc
33
from ..qommon.ctl import Command, make_option
39
from ..qommon.ctl import Command
40
from ..qommon.ctl import make_option
34 41
from ..qommon.storage import atomic_write
35 42

  
36
from wcs.admin.settings import UserFieldsFormDef
37
from wcs.fields import StringField, EmailField, DateField
38

  
39 43

  
40 44
class NoChange(Exception):
41 45
    pass
wcs/ctl/delete_tenant.py
18 18

  
19 19
import os
20 20
import sys
21
import psycopg2
22
import psycopg2.errorcodes
23 21
from datetime import datetime
24 22
from shutil import rmtree
25 23

  
26
from ..qommon.ctl import Command, make_option
24
import psycopg2
25
import psycopg2.errorcodes
26

  
27
from ..qommon.ctl import Command
28
from ..qommon.ctl import make_option
27 29

  
28 30

  
29 31
class CmdDeleteTenant(Command):
wcs/ctl/hobo_notify.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
import json
17 18
import os
18 19
import sys
19
import json
20 20

  
21 21
from quixote import get_publisher
22
from ..qommon.ctl import Command
23
from ..qommon.publisher import get_cfg
22

  
24 23
from wcs.admin.settings import UserFieldsFormDef
25 24
from wcs.qommon import force_str
26 25
from wcs.qommon.misc import json_encode_helper
27 26

  
27
from ..qommon.ctl import Command
28
from ..qommon.publisher import get_cfg
29

  
28 30

  
29 31
class CmdHoboNotify(Command):
30 32
    name = 'hobo_notify'
wcs/ctl/management/commands/__init__.py
16 16

  
17 17
import os
18 18

  
19
from django.core.management.base import BaseCommand, CommandError
19
from django.core.management.base import BaseCommand
20
from django.core.management.base import CommandError
20 21

  
21 22
from wcs.qommon.publisher import get_publisher_class
22 23

  
wcs/ctl/management/commands/convert_to_sql.py
17 17
import io
18 18
import os
19 19
import sys
20
import psycopg2
21 20
import traceback
22 21

  
23
from django.utils.encoding import force_bytes
22
import psycopg2
24 23
from django.core.management.base import BaseCommand
25 24
from django.core.management.base import CommandError
26

  
27
from wcs.qommon.publisher import get_publisher_class
25
from django.utils.encoding import force_bytes
28 26

  
29 27
from wcs import sql
30 28
from wcs.formdef import FormDef
31 29
from wcs.qommon.misc import localstrftime
30
from wcs.qommon.publisher import get_publisher_class
32 31
from wcs.qommon.storage import atomic_write
33 32
from wcs.users import User
34 33

  
wcs/ctl/management/commands/import_site.py
18 18

  
19 19
from django.core.management.base import CommandError
20 20

  
21
from wcs.formdef import FormDef
22 21
from wcs.categories import Category
22
from wcs.formdef import FormDef
23 23
from wcs.workflows import Workflow
24 24

  
25 25
from . import TenantCommand
wcs/ctl/management/commands/runjob.py
16 16

  
17 17
import sys
18 18

  
19
from quixote import get_publisher
20 19
from django.core.management import CommandError
20
from quixote import get_publisher
21 21

  
22 22
from wcs.qommon.http_response import AfterJob
23

  
23 24
from . import TenantCommand
24 25

  
25 26

  
wcs/ctl/management/commands/shell.py
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17 17
from django.core.management.commands import shell
18

  
18 19
from . import TenantCommand
19 20

  
20 21

  
wcs/ctl/management/commands/trigger_jumps.py
17 17
import json
18 18

  
19 19
from django.core.management.base import CommandError
20

  
21 20
from quixote import get_publisher
22 21

  
23 22
from wcs.formdef import FormDef
23
from wcs.wf.jump import JumpWorkflowStatusItem
24
from wcs.wf.jump import jump_and_perform as wcs_jump_and_perform
24 25
from wcs.workflows import Workflow
25
from wcs.wf.jump import JumpWorkflowStatusItem, jump_and_perform as wcs_jump_and_perform
26 26

  
27 27
from . import TenantCommand
28 28

  
wcs/ctl/rebuild_indexes.py
16 16

  
17 17
import os
18 18

  
19
from ..qommon.ctl import Command, make_option
19
from ..qommon.ctl import Command
20
from ..qommon.ctl import make_option
20 21

  
21 22

  
22 23
def rebuild_vhost_indexes(pub, destroy=False):
wcs/ctl/restore.py
16 16

  
17 17
from __future__ import print_function
18 18

  
19
import os
19 20
import sys
20 21
import tarfile
21
import os
22 22

  
23
from ..qommon.ctl import Command, make_option
23
from ..qommon.ctl import Command
24
from ..qommon.ctl import make_option
24 25

  
25 26

  
26 27
class CmdRestore(Command):
wcs/ctl/runscript.py
16 16

  
17 17
import os.path
18 18
import runpy
19
import warnings
20 19
import sys
20
import warnings
21 21

  
22
from ..qommon.ctl import Command, make_option
22
from ..qommon.ctl import Command
23
from ..qommon.ctl import make_option
23 24

  
24 25

  
25 26
class CmdRunScript(Command):
wcs/ctl/wipe_data.py
19 19
import os
20 20
import sys
21 21

  
22
from ..qommon.ctl import Command, make_option
22
from ..qommon.ctl import Command
23
from ..qommon.ctl import make_option
23 24

  
24 25

  
25 26
class CmdWipeData(Command):
wcs/custom_views.py
22 22

  
23 23
from wcs.carddef import CardDef
24 24
from wcs.formdef import FormDef
25
from wcs.qommon.storage import StorableObject, Equal, Contains
26 25
from wcs.qommon.misc import simplify
26
from wcs.qommon.storage import Contains
27
from wcs.qommon.storage import Equal
28
from wcs.qommon.storage import StorableObject
29

  
27 30
from .qommon.misc import xml_node_text
28 31

  
29 32

  
wcs/data_sources.py
20 20
import urllib.parse
21 21
import xml.etree.ElementTree as ET
22 22

  
23
from django.template import TemplateSyntaxError, VariableDoesNotExist
24
from django.utils.encoding import force_text, force_bytes
25

  
26
from quixote import get_publisher, get_request, get_session
23
from django.template import TemplateSyntaxError
24
from django.template import VariableDoesNotExist
25
from django.utils.encoding import force_bytes
26
from django.utils.encoding import force_text
27
from quixote import get_publisher
28
from quixote import get_request
29
from quixote import get_session
27 30
from quixote.html import TemplateIO
28 31

  
29
from .qommon import _, N_, force_str
30
from .qommon import misc
32
from .api_utils import sign_url_auto_orig
33
from .qommon import N_
34
from .qommon import _
35
from .qommon import force_str
31 36
from .qommon import get_logger
37
from .qommon import misc
38
from .qommon.afterjobs import AfterJob
32 39
from .qommon.cron import CronJob
33 40
from .qommon.form import *
34 41
from .qommon.humantime import seconds2humanduration
35 42
from .qommon.misc import get_variadic_url
36 43
from .qommon.publisher import get_publisher_class
37
from .qommon.afterjobs import AfterJob
38 44
from .qommon.storage import StorableObject
39 45
from .qommon.template import Template
40 46
from .qommon.xml_storage import XmlStorableObject
41 47

  
42
from .api_utils import sign_url_auto_orig
43

  
44

  
45 48
data_source_functions = {}
46 49

  
47 50

  
wcs/fields.py
16 16
# You should have received a copy of the GNU General Public License
17 17
# along with this program; if not, see <http://www.gnu.org/licenses/>.
18 18

  
19
import base64
20
import collections
19 21
import copy
20 22
import datetime
21 23
import html
22 24
import os
23
import time
24 25
import random
25 26
import re
26 27
import sys
27
import base64
28
import time
28 29
import xml.etree.ElementTree as ET
29
import collections
30

  
31
from quixote import get_request, get_publisher
32
from quixote.html import htmltag, htmltext, TemplateIO
33 30

  
34
from django.utils.encoding import force_bytes, force_text, smart_text
31
from django.utils.encoding import force_bytes
32
from django.utils.encoding import force_text
33
from django.utils.encoding import smart_text
35 34
from django.utils.formats import date_format as django_date_format
36 35
from django.utils.html import urlize
37

  
38
from .qommon import _, N_, force_str
39
from .qommon import evalutils
40
from .qommon.form import *
41
from .qommon.misc import (
42
    strftime,
43
    date_format,
44
    ellipsize,
45
    xml_node_text,
46
    get_as_datetime,
47
    get_document_types,
48
    get_document_type_value_options,
49
)
50
from .qommon.ods import NS as OD_NS, clean_text as od_clean_text
51
from .qommon.template import Template, TemplateError
52
from .qommon import get_cfg
36
from quixote import get_publisher
37
from quixote import get_request
38
from quixote.html import TemplateIO
39
from quixote.html import htmltag
40
from quixote.html import htmltext
53 41

  
54 42
from . import data_sources
55 43
from . import portfolio
44
from .blocks import BlockDef
45
from .blocks import BlockWidget
56 46
from .conditions import Condition
57
from .blocks import BlockDef, BlockWidget
47
from .qommon import N_
48
from .qommon import _
49
from .qommon import evalutils
50
from .qommon import force_str
51
from .qommon import get_cfg
52
from .qommon.form import *
53
from .qommon.misc import date_format
54
from .qommon.misc import ellipsize
55
from .qommon.misc import get_as_datetime
56
from .qommon.misc import get_document_type_value_options
57
from .qommon.misc import get_document_types
58
from .qommon.misc import strftime
59
from .qommon.misc import xml_node_text
60
from .qommon.ods import NS as OD_NS
61
from .qommon.ods import clean_text as od_clean_text
62
from .qommon.template import Template
63
from .qommon.template import TemplateError
58 64

  
59 65

  
60 66
class PrefillSelectionWidget(CompositeWidget):
wcs/formdata.py
22 22
import sys
23 23
import time
24 24

  
25
from quixote import get_request, get_publisher, get_session
25
from quixote import get_publisher
26
from quixote import get_request
27
from quixote import get_session
26 28
from quixote.http_request import Upload
27 29

  
28
from .qommon import _, N_
29
from .qommon.storage import StorableObject, Intersects, Contains, Null
30
from .fields import FileField
31
from .qommon import N_
32
from .qommon import _
30 33
from .qommon import misc
31 34
from .qommon.evalutils import make_datetime
32 35
from .qommon.publisher import get_cfg
33
from .qommon.substitution import Substitutions, invalidate_substitution_cache
36
from .qommon.storage import Contains
37
from .qommon.storage import Intersects
38
from .qommon.storage import Null
39
from .qommon.storage import StorableObject
40
from .qommon.substitution import Substitutions
41
from .qommon.substitution import invalidate_substitution_cache
34 42
from .qommon.template import Template
35 43

  
36
from .fields import FileField
37

  
38 44

  
39 45
def get_dict_with_varnames(fields, data, formdata=None, varnames_only=False):
40 46
    new_data = {}
......
910 916
        return LazyFormData(self)
911 917

  
912 918
    def get_substitution_variables(self, minimal=False):
913
        from .qommon.substitution import CompatibilityNamesDict
914 919
        from wcs.workflows import AttachmentsSubstitutionProxy
915 920

  
921
        from .qommon.substitution import CompatibilityNamesDict
922

  
916 923
        variables = CompatibilityNamesDict(
917 924
            {
918 925
                'form': self.get_as_lazy(),
......
1296 1303
    def iter_target_datas(self, objectdef=None, object_type=None, status_item=None):
1297 1304
        # objectdef, object_type and status_item are provided when called from a workflow action
1298 1305
        from wcs.wf.create_formdata import LinkedFormdataEvolutionPart
1306

  
1299 1307
        from .carddef import CardDef
1300 1308
        from .formdef import FormDef
1301 1309

  
wcs/formdef.py
16 16

  
17 17
import base64
18 18
import copy
19
import datetime
19 20
import glob
20 21
import itertools
22
import json
21 23
import pickle
22 24
import sys
23 25
import time
24 26
import types
25
import json
26 27
import xml.etree.ElementTree as ET
27
import datetime
28

  
29
from django.utils.encoding import force_bytes, force_text
30 28

  
31
from quixote import get_request, get_publisher
29
from django.utils.encoding import force_bytes
30
from django.utils.encoding import force_text
31
from quixote import get_publisher
32
from quixote import get_request
32 33
from quixote.http_request import Upload
33 34

  
34
from .qommon import _, N_, force_str, PICKLE_KWARGS
35
from .qommon.storage import StorableObject, fix_key, Equal
35
from . import data_sources
36
from . import fields
37
from .categories import Category
38
from .formdata import FormData
39
from .qommon import N_
40
from .qommon import PICKLE_KWARGS
41
from .qommon import _
42
from .qommon import force_str
43
from .qommon import get_cfg
36 44
from .qommon.cron import CronJob
37 45
from .qommon.form import *
38
from .qommon.misc import simplify, get_as_datetime, xml_node_text
39
from .qommon import get_cfg
40
from .qommon.substitution import Substitutions
46
from .qommon.misc import get_as_datetime
47
from .qommon.misc import simplify
48
from .qommon.misc import xml_node_text
41 49
from .qommon.publisher import get_publisher_class
42

  
43
from .formdata import FormData
50
from .qommon.storage import Equal
51
from .qommon.storage import StorableObject
52
from .qommon.storage import fix_key
53
from .qommon.substitution import Substitutions
44 54
from .roles import logged_users_role
45
from .categories import Category
46
from . import fields
47
from . import data_sources
48 55

  
49 56
DRAFTS_DEFAULT_LIFESPAN = 100  # days
50 57

  
......
1358 1365
        return d
1359 1366

  
1360 1367
    def get_substitution_variables(self, minimal=False):
1361
        from .qommon.substitution import CompatibilityNamesDict
1362 1368
        from wcs.variables import LazyFormDef
1363 1369

  
1370
        from .qommon.substitution import CompatibilityNamesDict
1371

  
1364 1372
        return CompatibilityNamesDict({'form': LazyFormDef(self)})
1365 1373

  
1366 1374
    def get_detailed_evolution(self, formdata):
......
1764 1772

  
1765 1773

  
1766 1774
def get_formdefs_of_all_kinds():
1775
    from wcs.admin.settings import UserFieldsFormDef
1767 1776
    from wcs.blocks import BlockDef
1768 1777
    from wcs.carddef import CardDef
1769 1778
    from wcs.wf.form import FormWorkflowStatusItem
1770
    from wcs.admin.settings import UserFieldsFormDef
1771 1779
    from wcs.workflows import Workflow
1772 1780

  
1773 1781
    kwargs = {
wcs/forms/actions.py
17 17
from quixote import redirect
18 18
from quixote.directory import Directory
19 19

  
20
from wcs.formdef import FormDef
21
from wcs.forms.common import FormTemplateMixin
22
from wcs.wf.jump import jump_and_perform
23

  
20 24
from ..qommon import N_
21 25
from ..qommon import errors
22 26
from ..qommon import misc
......
24 28
from ..qommon import tokens
25 29
from ..qommon.form import Form
26 30

  
27
from wcs.formdef import FormDef
28
from wcs.forms.common import FormTemplateMixin
29
from wcs.wf.jump import jump_and_perform
30

  
31 31

  
32 32
class MissingOrExpiredToken(errors.PublishError):
33 33
    status_code = 404
wcs/forms/backoffice.py
16 16

  
17 17
import urllib.parse
18 18

  
19
from quixote import get_request, get_publisher, get_session, redirect
20
from quixote.html import htmltext, TemplateIO
19
from quixote import get_publisher
20
from quixote import get_request
21
from quixote import get_session
22
from quixote import redirect
23
from quixote.html import TemplateIO
24
from quixote.html import htmltext
25

  
26
from wcs.qommon.storage import Null
27
from wcs.roles import logged_users_role
21 28

  
22 29
from ..qommon import _
23 30
from ..qommon import misc
24
from ..qommon.form import *
25 31
from ..qommon.backoffice.listing import pagination_links
26
from wcs.qommon.storage import Null
27
from wcs.roles import logged_users_role
32
from ..qommon.form import *
28 33

  
29 34

  
30 35
class FormDefUI(object):
wcs/forms/common.py
17 17
import time
18 18
import urllib.parse
19 19

  
20
from quixote import get_publisher, get_request, get_response, get_session, redirect
20
from quixote import get_publisher
21
from quixote import get_request
22
from quixote import get_response
23
from quixote import get_session
24
from quixote import redirect
21 25
from quixote.directory import Directory
22
from quixote.html import TemplateIO, htmltext
26
from quixote.html import TemplateIO
27
from quixote.html import htmltext
23 28
from quixote.util import randbytes
24 29

  
25 30
from wcs import data_sources
26
from wcs.blocks import BlockWidget, BlockSubWidget
27
from wcs.api_utils import get_user_from_api_query_string, is_url_signed, sign_url_auto_orig
28
from wcs.fields import WidgetField, FileField
31
from wcs.api_utils import get_user_from_api_query_string
32
from wcs.api_utils import is_url_signed
33
from wcs.api_utils import sign_url_auto_orig
34
from wcs.blocks import BlockSubWidget
35
from wcs.blocks import BlockWidget
36
from wcs.fields import FileField
37
from wcs.fields import WidgetField
38
from wcs.qommon.admin.texts import TextsDirectory
29 39
from wcs.workflows import EditableWorkflowStatusItem
30 40

  
31 41
from ..qommon import _
42
from ..qommon import errors
43
from ..qommon import get_logger
32 44
from ..qommon import misc
33 45
from ..qommon import template
34
from ..qommon import get_logger
35 46
from ..qommon.form import *
36 47

  
37
from wcs.qommon.admin.texts import TextsDirectory
38

  
39
from ..qommon import errors
40

  
41 48

  
42 49
class FileDirectory(Directory):
43 50
    _q_exports = []
wcs/forms/preview.py
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17 17
from quixote import get_publisher
18
from quixote.directory import Directory, AccessControlled
19
from quixote.html import htmltext, TemplateIO
20
from ..qommon import errors, _
18
from quixote.directory import AccessControlled
19
from quixote.directory import Directory
20
from quixote.html import TemplateIO
21
from quixote.html import htmltext
21 22

  
23
from ..qommon import _
24
from ..qommon import errors
22 25
from .root import FormPage
23 26

  
24 27

  
wcs/forms/root.py
24 24
except ImportError:
25 25
    qrcode = None
26 26

  
27
import ratelimit.utils
27 28
from django.utils.http import quote
28 29
from django.utils.safestring import mark_safe
29

  
30
import ratelimit.utils
31

  
32
from quixote import get_publisher, get_request, get_response, get_session, get_session_manager, redirect
33
from quixote.directory import Directory, AccessControlled
34
from quixote.util import randbytes
30
from quixote import get_publisher
31
from quixote import get_request
32
from quixote import get_response
33
from quixote import get_session
34
from quixote import get_session_manager
35
from quixote import redirect
36
from quixote.directory import AccessControlled
37
from quixote.directory import Directory
35 38
from quixote.form.widget import *
36
from quixote.html import TemplateIO, htmltext
37

  
38
from ..qommon import _, N_
39
from ..qommon.admin.emails import EmailsDirectory
40
from ..qommon import errors, get_cfg
41
from ..qommon import misc, get_logger
42
from ..qommon import template
43
from ..qommon.form import *
44
from ..qommon import emails
39
from quixote.html import TemplateIO
40
from quixote.html import htmltext
41
from quixote.util import randbytes
45 42

  
46 43
from wcs.categories import Category
47
from wcs.formdef import FormDef
48 44
from wcs.formdata import FormData
45
from wcs.formdef import FormDef
49 46
from wcs.forms.common import FormTemplateMixin
50
from wcs.variables import LazyFormDef
47
from wcs.qommon.admin.texts import TextsDirectory
51 48
from wcs.roles import logged_users_role
52
from wcs.workflows import Workflow, WorkflowBackofficeFieldsFormDef
49
from wcs.variables import LazyFormDef
50
from wcs.workflows import Workflow
51
from wcs.workflows import WorkflowBackofficeFieldsFormDef
53 52

  
54
from wcs.qommon.admin.texts import TextsDirectory
53
from ..qommon import N_
54
from ..qommon import _
55
from ..qommon import emails
56
from ..qommon import errors
57
from ..qommon import get_cfg
58
from ..qommon import get_logger
59
from ..qommon import misc
60
from ..qommon import template
61
from ..qommon.admin.emails import EmailsDirectory
62
from ..qommon.form import *
55 63

  
56 64

  
57 65
class SubmittedDraftException(Exception):
wcs/forms/workflows.py
16 16

  
17 17
import json
18 18

  
19
from quixote import get_request, get_response
19
from quixote import get_request
20
from quixote import get_response
20 21
from quixote.directory import Directory
21 22

  
22
from ..qommon import errors
23

  
24
from wcs.api import get_user_from_api_query_string, is_url_signed
23
from wcs.api import get_user_from_api_query_string
24
from wcs.api import is_url_signed
25 25
from wcs.roles import logged_users_role
26
from wcs.workflows import WorkflowGlobalActionWebserviceTrigger, perform_items
26
from wcs.workflows import WorkflowGlobalActionWebserviceTrigger
27
from wcs.workflows import perform_items
28

  
29
from ..qommon import errors
27 30

  
28 31

  
29 32
class HookDirectory(Directory):
wcs/logged_errors.py
16 16

  
17 17
import datetime
18 18

  
19
from .qommon.misc import simplify
20 19
from wcs.carddef import CardDef
21 20
from wcs.formdef import FormDef
22 21
from wcs.workflows import Workflow
23 22

  
23
from .qommon.misc import simplify
24

  
24 25

  
25 26
class LoggedError(object):
26 27
    _names = 'logged-errors'
wcs/mail_templates.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from wcs.qommon import misc, get_logger
17
from wcs.qommon import get_logger
18
from wcs.qommon import misc
18 19
from wcs.qommon.xml_storage import XmlStorableObject
19 20

  
20 21

  
wcs/middleware.py
19 19
import time
20 20
import urllib.parse
21 21

  
22
from django.http import HttpResponseBadRequest, HttpResponseRedirect
22
from django.http import HttpResponseBadRequest
23
from django.http import HttpResponseRedirect
23 24
from django.utils.deprecation import MiddlewareMixin
24

  
25 25
from quixote import get_publisher
26 26
from quixote.errors import RequestError
27
from .qommon.publisher import ImmediateRedirectException
27

  
28
from .compat import CompatHTTPRequest
29
from .compat import CompatWcsPublisher
28 30
from .qommon.http_response import HTTPResponse
29
from .compat import CompatHTTPRequest, CompatWcsPublisher
31
from .qommon.publisher import ImmediateRedirectException
30 32

  
31 33

  
32 34
class PublisherInitialisationMiddleware(MiddlewareMixin):
wcs/monkeypatch.py
20 20

  
21 21
import django.template.base
22 22
import django.template.defaulttags
23

  
24 23
import quixote
25 24
import quixote.publish
26 25

  
wcs/myspace.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from quixote import get_request, redirect
17
from quixote import get_request
18
from quixote import redirect
19

  
18 20
from .qommon import myspace
19 21

  
20 22

  
wcs/portfolio.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
import json
18
import hashlib
19 17
import base64
18
import hashlib
19
import json
20 20
import urllib.parse
21 21

  
22 22
from django.utils.encoding import force_text
23

  
24
from .qommon import N_, get_logger
25
from .qommon.misc import http_get_page, json_loads, http_post_request, urlopen
26
from quixote import get_publisher, get_request, get_response, redirect, get_session
23
from quixote import get_publisher
24
from quixote import get_request
25
from quixote import get_response
26
from quixote import get_session
27
from quixote import redirect
27 28
from quixote.directory import Directory
28
from quixote.html import TemplateIO, htmltext
29

  
30
from wcs.api_utils import get_secret_and_orig, sign_url
29
from quixote.html import TemplateIO
30
from quixote.html import htmltext
31

  
32
from wcs.api_utils import get_secret_and_orig
33
from wcs.api_utils import sign_url
34

  
35
from .qommon import N_
36
from .qommon import get_logger
37
from .qommon.misc import http_get_page
38
from .qommon.misc import http_post_request
39
from .qommon.misc import json_loads
40
from .qommon.misc import urlopen
31 41

  
32 42

  
33 43
def has_portfolio():
wcs/publisher.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from contextlib import contextmanager
18 17
import decimal
19 18
import json
20 19
import os
......
25 24
import sys
26 25
import traceback
27 26
import zipfile
27
from contextlib import contextmanager
28 28

  
29 29
from django.utils.encoding import force_text
30 30
from django.utils.formats import localize
......
37 37
    pass
38 38

  
39 39
from wcs.qommon import force_str
40
from .qommon.publisher import set_publisher_class, QommonPublisher, get_request
40

  
41
from .qommon.publisher import QommonPublisher
42
from .qommon.publisher import get_request
43
from .qommon.publisher import set_publisher_class
44

  
41 45

  
42 46
# this is terribly ugly but import RootDirectory will import a bunch of things,
43 47
# and some of them need a publisher to be set
......
48 52
set_publisher_class(StubWcsPublisher)
49 53

  
50 54

  
51
from .root import RootDirectory
52
from .backoffice import RootDirectory as BackofficeRootDirectory
53
from .admin import RootDirectory as AdminRootDirectory
55
import pickle
56

  
54 57
from . import custom_views
55 58
from . import sessions
59
from .admin import RootDirectory as AdminRootDirectory
60
from .backoffice import RootDirectory as BackofficeRootDirectory
56 61
from .qommon.cron import CronJob
57

  
58 62
from .roles import Role
59
from .users import User
63
from .root import RootDirectory
60 64
from .tracking_code import TrackingCode
61

  
62
import pickle
65
from .users import User
63 66

  
64 67

  
65 68
class UnpicklerClass(pickle.Unpickler):
......
276 279
                results['workflows'] += 1
277 280

  
278 281
        # fourth pass, forms and cards
279
        from wcs.formdef import FormDef
280 282
        from wcs.carddef import CardDef
283
        from wcs.formdef import FormDef
281 284

  
282 285
        formdefs = []
283 286
        carddefs = []
......
357 360
        sql.do_snapshots_table()
358 361
        sql.do_loggederrors_table()
359 362
        sql.do_meta_table()
360
        from .formdef import FormDef
361 363
        from .carddef import CardDef
364
        from .formdef import FormDef
362 365

  
363 366
        conn, cur = sql.get_connection_and_cursor()
364 367
        sql.drop_views(None, conn, cur)
......
404 407
            self.loggederror_class.record(*args, **kwargs)
405 408

  
406 409
    def apply_global_action_timeouts(self):
407
        from wcs.workflows import Workflow, WorkflowGlobalActionTimeoutTrigger
410
        from wcs.workflows import Workflow
411
        from wcs.workflows import WorkflowGlobalActionTimeoutTrigger
408 412

  
409 413
        for workflow in Workflow.select():
410 414
            WorkflowGlobalActionTimeoutTrigger.apply(workflow)
wcs/qommon/__init__.py
21 21
import django.apps
22 22
from django.conf import settings
23 23
from django.utils.encoding import force_text
24

  
25 24
from quixote import get_publisher
26 25

  
27 26
try:
......
56 55
    return x
57 56

  
58 57

  
59
from .publisher import get_cfg, get_logger, get_publisher_class
60 58
from . import publisher
59
from .publisher import get_cfg
60
from .publisher import get_logger
61
from .publisher import get_publisher_class
61 62

  
62 63
publisher._ = _
63 64

  
wcs/qommon/admin/emails.py
16 16

  
17 17
from quixote import redirect
18 18
from quixote.directory import Directory
19
from quixote.html import htmltext, TemplateIO
19
from quixote.html import TemplateIO
20
from quixote.html import htmltext
20 21

  
21 22
from .. import _
22
from ..form import *
23
from .. import misc, get_cfg
24
from ..backoffice.menu import html_top
23
from .. import get_cfg
24
from .. import misc
25 25
from ..admin.cfg import cfg_submit
26
from ..backoffice.menu import html_top
27
from ..form import *
26 28

  
27 29

  
28 30
class EmailsDirectory(Directory):
wcs/qommon/admin/logger.py
17 17
import os
18 18
import random
19 19

  
20
from quixote import get_publisher, get_request, get_response
21
from quixote.html import htmltext, TemplateIO
20
from quixote import get_publisher
21
from quixote import get_request
22
from quixote import get_response
22 23
from quixote.directory import Directory
24
from quixote.html import TemplateIO
25
from quixote.html import htmltext
23 26

  
24 27
from .. import _
25
from .. import logger, errors
26
from ..backoffice.menu import html_top
28
from .. import errors
29
from .. import logger
27 30
from ..admin.menu import error_page
31
from ..backoffice.menu import html_top
28 32

  
29 33

  
30 34
class ByUserDirectory(Directory):
wcs/qommon/admin/menu.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from quixote import get_publisher, get_request
18
from quixote.html import TemplateIO, htmltext
17
import re
18

  
19
from quixote import get_publisher
20
from quixote import get_request
21
from quixote.html import TemplateIO
22
from quixote.html import htmltext
19 23

  
20
from .. import _, N_
24
from .. import N_
25
from .. import _
21 26
from ..backoffice.menu import html_top
22
import re
23 27

  
24 28

  
25 29
def _find_vc_version():
wcs/qommon/admin/settings.py
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17 17
from quixote import redirect
18
from quixote.directory import Directory, AccessControlled
19
from quixote.html import TemplateIO, htmltext
18
from quixote.directory import AccessControlled
19
from quixote.directory import Directory
20
from quixote.html import TemplateIO
21
from quixote.html import htmltext
20 22

  
21
from .. import _, N_
22
from ..form import *
23
from .. import N_
24
from .. import _
23 25
from ..admin.cfg import cfg_submit
24 26
from ..backoffice.menu import html_top
27
from ..form import *
25 28

  
26 29

  
27 30
class SettingsDirectory(AccessControlled, Directory):
wcs/qommon/admin/texts.py
16 16

  
17 17
import os
18 18

  
19
from quixote import redirect, get_publisher
20
from quixote.html import TemplateIO, htmltext
19
from quixote import get_publisher
20
from quixote import redirect
21 21
from quixote.directory import Directory
22
from quixote.html import TemplateIO
23
from quixote.html import htmltext
22 24

  
23 25
from wcs.qommon import _
24
from wcs.qommon.form import *
25
from wcs.qommon import misc, get_cfg, ezt
26
from wcs.qommon import ezt
27
from wcs.qommon import get_cfg
28
from wcs.qommon import misc
26 29
from wcs.qommon.backoffice.menu import html_top
30
from wcs.qommon.form import *
27 31
from wcs.qommon.template import Template
28 32

  
29 33

  
wcs/qommon/afterjobs.py
19 19
import traceback
20 20
import uuid
21 21

  
22
from quixote import get_publisher, get_response
22
from quixote import get_publisher
23
from quixote import get_response
23 24
from quixote.directory import Directory
24 25

  
25
from . import _, N_, errors
26
from . import N_
27
from . import _
28
from . import errors
26 29
from .storage import StorableObject
27 30

  
28 31

  
wcs/qommon/backoffice/listing.py
16 16

  
17 17
import urllib.parse
18 18

  
19
from quixote.html import htmltext, TemplateIO
20
from quixote import get_request, get_response, get_publisher
19
from quixote import get_publisher
20
from quixote import get_request
21
from quixote import get_response
22
from quixote.html import TemplateIO
23
from quixote.html import htmltext
21 24

  
22 25
from .. import _
23 26

  
wcs/qommon/backoffice/menu.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from quixote import get_response, get_request, get_publisher, get_session
18
from quixote.html import htmltext, TemplateIO
17
from quixote import get_publisher
18
from quixote import get_request
19
from quixote import get_response
20
from quixote import get_session
21
from quixote.html import TemplateIO
22
from quixote.html import htmltext
19 23

  
20
from .. import get_cfg
21 24
from .. import _
25
from .. import get_cfg
22 26

  
23 27

  
24 28
def generate_header_menu(selected=None):
wcs/qommon/backoffice/root.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from quixote.directory import Directory, AccessControlled
17
from quixote.directory import AccessControlled
18
from quixote.directory import Directory
18 19

  
19 20

  
20 21
class BackofficeRootDirectory(AccessControlled, Directory):
wcs/qommon/ctl.py
18 18

  
19 19
import configparser
20 20
import optparse
21
from optparse import make_option
22
import sys
23 21
import os
22
import sys
23
from optparse import make_option
24 24

  
25 25
__all__ = [
26 26
    'Command',
27 27
]
28 28

  
29 29
from wcs import qommon
30

  
30 31
from . import _
31 32

  
32 33
qommon._commands = {}
wcs/qommon/emails.py
17 17
import os
18 18
import pwd
19 19
import re
20

  
20
import smtplib
21
import socket
21 22
from email import encoders
22 23
from email.header import Header
23 24
from email.mime.application import MIMEApplication
......
28 29
from email.mime.nonmultipart import MIMENonMultipart
29 30
from email.mime.text import MIMEText
30 31
from email.utils import formataddr
31
import smtplib
32
import socket
33 32

  
34 33
try:
35 34
    import docutils
......
42 41

  
43 42
from django.template.loader import render_to_string
44 43
from django.utils.safestring import mark_safe
44
from quixote import get_publisher
45
from quixote import get_request
46
from quixote import get_response
45 47

  
46
from quixote import get_request, get_response, get_publisher
47

  
48
from .publisher import get_cfg, get_logger
49
from . import force_str
50 48
from . import errors
49
from . import force_str
51 50
from .admin.emails import EmailsDirectory
51
from .publisher import get_cfg
52
from .publisher import get_logger
52 53
from .template import Template
53 54

  
54 55
try:
wcs/qommon/errors.py
16 16

  
17 17
import urllib.parse
18 18

  
19
from quixote import get_publisher
20 19
import quixote
20
from quixote import get_publisher
21 21
from quixote.errors import *
22
from quixote.html import TemplateIO, htmltext
22
from quixote.html import TemplateIO
23
from quixote.html import htmltext
23 24

  
24
from . import N_, template
25
from . import N_
26
from . import template
25 27

  
26 28

  
27 29
class AccessForbiddenError(AccessError):
wcs/qommon/evalutils.py
28 28

  
29 29
from wcs.qommon import force_str
30 30
from wcs.qommon.upload_storage import UploadStorage
31

  
31 32
from .misc import get_as_datetime
32 33

  
33 34
try:
wcs/qommon/ezt.py
226 226
import datetime
227 227
import html
228 228
import io
229
import re
230 229
import os
230
import re
231 231

  
232 232
#
233 233
# Formatting types
......
734 734

  
735 735
        fp.write(localstrftime(value))
736 736
    elif isinstance(value, datetime.date):
737
        from .misc import strftime, date_format
737
        from .misc import date_format
738
        from .misc import strftime
738 739

  
739 740
        fp.write(strftime(date_format(), value))
740 741
    # plain old value, write to output
wcs/qommon/form.py
17 17
import base64
18 18
import collections
19 19
import copy
20
import datetime
20 21
import fnmatch
22
import hashlib
21 23
import html
24
import itertools
25
import json
22 26
import mimetypes
23 27
import os
28
import random
24 29
import re
25 30
import socket
26 31
import sys
27 32
import tempfile
28 33
import time
29
import random
30
import datetime
31
import itertools
32
import hashlib
33
import json
34 34

  
35 35
try:
36 36
    from PIL import Image
......
56 56

  
57 57
import quixote
58 58
import quixote.form.widget
59

  
60
from quixote import get_publisher, get_request, get_response, get_session
59
from django.conf import settings
60
from django.utils.encoding import force_bytes
61
from django.utils.encoding import force_text
62
from django.utils.safestring import mark_safe
63
from quixote import get_publisher
64
from quixote import get_request
65
from quixote import get_response
66
from quixote import get_session
61 67
from quixote.form import *
62
from quixote.html import htmltext, htmltag, htmlescape, TemplateIO, stringify
68
from quixote.html import TemplateIO
69
from quixote.html import htmlescape
70
from quixote.html import htmltag
71
from quixote.html import htmltext
72
from quixote.html import stringify
63 73
from quixote.http_request import Upload
64 74
from quixote.util import randbytes
65 75

  
66
from django.utils.encoding import force_bytes, force_text
76
from wcs.conditions import Condition
77
from wcs.conditions import ValidationError
67 78

  
68
from django.conf import settings
69
from django.utils.safestring import mark_safe
70

  
71
from .template import render as render_template, Template, TemplateError
72 79
from ..portfolio import has_portfolio
73
from wcs.conditions import Condition, ValidationError
74

  
75
from . import _, ngettext, N_, force_str
80
from . import N_
81
from . import _
82
from . import force_str
76 83
from . import misc
77
from .humantime import humanduration2seconds, seconds2humanduration, timewords
78
from .misc import strftime, C_, HAS_PDFTOPPM, json_loads
84
from . import ngettext
85
from .humantime import humanduration2seconds
86
from .humantime import seconds2humanduration
87
from .humantime import timewords
88
from .misc import C_
89
from .misc import HAS_PDFTOPPM
90
from .misc import json_loads
91
from .misc import strftime
79 92
from .publisher import get_cfg
93
from .template import Template
94
from .template import TemplateError
95
from .template import render as render_template
80 96
from .template_utils import render_block_to_string
81
from .upload_storage import PicklableUpload, UploadStorageError
82

  
97
from .upload_storage import PicklableUpload
98
from .upload_storage import UploadStorageError
83 99

  
84 100
QuixoteForm = Form
85 101

  
wcs/qommon/http_request.py
19 19
import re
20 20
import time
21 21

  
22
from django.utils.encoding import force_bytes, force_text
23
from quixote import get_session, get_publisher
24 22
import quixote.http_request
23
from django.utils.encoding import force_bytes
24
from django.utils.encoding import force_text
25
from quixote import get_publisher
26
from quixote import get_session
25 27
from quixote.errors import RequestError
26 28

  
27 29
from .http_response import HTTPResponse
wcs/qommon/http_response.py
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17 17
import hashlib
18
import sys
18 19
import time
19 20
import traceback
20
import sys
21 21

  
22
import quixote.http_response
22 23
from django.utils.encoding import force_bytes
23 24
from quixote import get_publisher
24
import quixote.http_response
25
from quixote import get_publisher, get_request
25
from quixote import get_request
26 26

  
27 27
from . import N_
28 28
from .afterjobs import AfterJob
wcs/qommon/humantime.py
16 16

  
17 17
import re
18 18

  
19
from . import _, ngettext, N_
19
from . import N_
20
from . import _
21
from . import ngettext
20 22

  
21 23
_minute = 60
22 24
_hour = 60 * 60
wcs/qommon/ident/franceconnect.py
21 21
import uuid
22 22

  
23 23
from django.utils.encoding import force_bytes
24

  
25
from quixote import redirect, get_session, get_publisher, get_request, get_session_manager
24
from quixote import get_publisher
25
from quixote import get_request
26
from quixote import get_session
27
from quixote import get_session_manager
28
from quixote import redirect
26 29
from quixote.directory import Directory
27
from quixote.html import htmltext, TemplateIO
28 30
from quixote.errors import QueryError
31
from quixote.html import TemplateIO
32
from quixote.html import htmltext
29 33

  
30
from .. import _, N_
31
from ..backoffice.menu import html_top
32
from .. import template, get_cfg, get_logger
33
from ..form import (
34
    Form,
35
    StringWidget,
36
    CompositeWidget,
37
    ComputedExpressionWidget,
38
    SingleSelectWidget,
39
    WidgetListAsTable,
40
)
41
from ..misc import http_post_request, http_get_page, json_loads
42

  
43
from wcs.workflows import WorkflowStatusItem
44 34
from wcs.formdata import flatten_dict
35
from wcs.workflows import WorkflowStatusItem
45 36

  
37
from .. import N_
38
from .. import _
39
from .. import get_cfg
40
from .. import get_logger
41
from .. import template
42
from ..backoffice.menu import html_top
43
from ..form import CompositeWidget
44
from ..form import ComputedExpressionWidget
45
from ..form import Form
46
from ..form import SingleSelectWidget
47
from ..form import StringWidget
48
from ..form import WidgetListAsTable
49
from ..misc import http_get_page
50
from ..misc import http_post_request
51
from ..misc import json_loads
46 52
from .base import AuthMethod
47 53

  
48

  
49 54
ADMIN_TITLE = N_('FranceConnect')
50 55

  
51 56
# XXX: make an OIDC auth method that FranceConnect would inherit from
wcs/qommon/ident/idp.py
22 22
except ImportError:
23 23
    lasso = None
24 24

  
25
from django.utils.encoding import force_bytes, force_text
26

  
25
from django.utils.encoding import force_bytes
26
from django.utils.encoding import force_text
27
from quixote import get_publisher
28
from quixote import get_response
29
from quixote import get_session
30
from quixote import redirect
27 31
from quixote.directory import Directory
28
from quixote import redirect, get_session, get_response, get_publisher
29
from quixote.html import htmltext, TemplateIO
32
from quixote.html import TemplateIO
33
from quixote.html import htmltext
30 34

  
31
from .. import _, N_
32
from .. import misc, get_cfg, get_logger
33
from ..form import *
34
from ..tokens import Token
35

  
36
from .. import template
35
from .. import N_
36
from .. import _
37 37
from .. import errors
38

  
39
from ..backoffice.menu import html_top
38
from .. import get_cfg
39
from .. import get_logger
40
from .. import misc
41
from .. import saml2utils
42
from .. import template
43
from .. import x509utils
40 44
from ..admin.menu import command_icon
41

  
42
from .base import AuthMethod
45
from ..backoffice.menu import html_top
46
from ..form import *
43 47
from ..storage import atomic_write
44

  
45
from .. import x509utils
46
from .. import saml2utils
48
from ..tokens import Token
49
from .base import AuthMethod
47 50

  
48 51
ADMIN_TITLE = N_('SAML2')
49 52

  
wcs/qommon/ident/password.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
import csv
17 18
import random
18 19
import time
19
import csv
20

  
21
from .base import AuthMethod, NoSuchMethodForUserError
22 20

  
23
from quixote import redirect, get_publisher
24
from quixote.directory import AccessControlled, Directory
25
from quixote.html import TemplateIO, htmltext
21
from quixote import get_publisher
22
from quixote import redirect
23
from quixote.directory import AccessControlled
24
from quixote.directory import Directory
25
from quixote.html import TemplateIO
26
from quixote.html import htmltext
26 27

  
27
from .. import _, ngettext, N_
28
from ..form import *
28
from wcs.qommon.admin.texts import TextsDirectory
29 29

  
30
from ..publisher import get_publisher_class
31
from .. import misc, get_cfg, get_logger
30
from .. import N_
31
from .. import _
32 32
from .. import emails
33
from .. import errors
34
from .. import get_cfg
35
from .. import get_logger
36
from .. import misc
37
from .. import ngettext
38
from .. import storage as st
33 39
from .. import template
34 40
from .. import tokens
35
from .. import errors
36

  
41
from ..admin.emails import EmailsDirectory
37 42
from ..admin.menu import command_icon
38

  
43
from ..afterjobs import AfterJob
39 44
from ..backoffice.menu import html_top
40

  
41
from ..admin.emails import EmailsDirectory
42
from wcs.qommon.admin.texts import TextsDirectory
43

  
44 45
from ..cron import CronJob
45
from ..afterjobs import AfterJob
46
from .. import storage as st
47

  
48
from .password_accounts import PasswordAccount, HASHING_ALGOS
46
from ..form import *
47
from ..publisher import get_publisher_class
48
from .base import AuthMethod
49
from .base import NoSuchMethodForUserError
50
from .password_accounts import HASHING_ALGOS
51
from .password_accounts import PasswordAccount
49 52

  
50 53

  
51 54
def notify_admins_user_registered(account):
wcs/qommon/ident/password_accounts.py
16 16

  
17 17
import hashlib
18 18

  
19
from django.contrib.auth.hashers import check_password, make_password
20
from django.utils.encoding import force_bytes, force_text
19
from django.contrib.auth.hashers import check_password
20
from django.contrib.auth.hashers import make_password
21
from django.utils.encoding import force_bytes
22
from django.utils.encoding import force_text
21 23
from quixote import get_publisher
22 24

  
23 25
from wcs.qommon import force_str
26

  
24 27
from ..storage import StorableObject
25 28

  
26 29
HASHING_ALGOS = {
wcs/qommon/logger.py
17 17
import logging
18 18
import os
19 19

  
20
from quixote import get_publisher, get_session, get_request
20
from quixote import get_publisher
21
from quixote import get_request
22
from quixote import get_session
21 23
from quixote.logger import DefaultLogger
22 24

  
23 25

  
wcs/qommon/management/commands/collectstatic.py
18 18
import shutil
19 19

  
20 20
from django.core.management.base import BaseCommand
21

  
21 22
from wcs.qommon.publisher import get_publisher_class
22 23

  
23 24

  
wcs/qommon/management/commands/cron.py
16 16

  
17 17
from __future__ import print_function
18 18

  
19
import os
19 20
import tempfile
20 21
import time
21
import os
22 22

  
23 23
from django.conf import settings
24
from django.core.management.base import BaseCommand, CommandError
25
from wcs.qommon.publisher import get_publisher_class
24
from django.core.management.base import BaseCommand
25
from django.core.management.base import CommandError
26 26

  
27
from wcs.qommon.vendor import locket
28 27
from wcs.qommon.cron import cron_worker
28
from wcs.qommon.publisher import get_publisher_class
29
from wcs.qommon.vendor import locket
29 30
from wcs.wf.jump import JUMP_TIMEOUT_INTERVAL
30 31

  
31 32

  
wcs/qommon/management/commands/migrate.py
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17 17
import os
18
import quixote
19 18

  
19
import quixote
20 20
from django.core.management.base import BaseCommand
21

  
21 22
from wcs.qommon.publisher import get_publisher_class
22 23

  
23 24

  
wcs/qommon/misc.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
import base64
18
import calendar
17 19
import datetime
18 20
import decimal
19
import calendar
21
import hashlib
20 22
import html
21 23
import io
22
import re
23
import os
24
import time
25
import urllib.parse
26
import base64
27 24
import json
25
import os
26
import re
28 27
import subprocess
28
import time
29 29
import unicodedata
30
import hashlib
30
import urllib.parse
31 31

  
32 32
import requests
33 33
from requests.adapters import HTTPAdapter
......
38 38
    Image = None
39 39

  
40 40
from django.conf import settings
41
from django.template import TemplateSyntaxError
42
from django.template import VariableDoesNotExist
41 43
from django.utils import datetime_safe
42 44
from django.utils.encoding import force_text
43 45
from django.utils.formats import localize
44 46
from django.utils.html import strip_tags
45
from django.template import TemplateSyntaxError, VariableDoesNotExist
46 47
from django.utils.text import Truncator
47

  
48
from quixote import get_publisher, get_response, get_request, redirect
48
from quixote import get_publisher
49
from quixote import get_request
50
from quixote import get_response
51
from quixote import redirect
49 52
from quixote.html import htmltext
50 53

  
51
from . import _, force_str
52
from . import get_cfg, get_logger, ezt
53
from .errors import ConnectionError, RequestError
54
from . import _
55
from . import ezt
56
from . import force_str
57
from . import get_cfg
58
from . import get_logger
59
from .errors import ConnectionError
60
from .errors import RequestError
54 61
from .template import Template
55 62

  
56 63
try:
wcs/qommon/myspace.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from quixote import get_publisher, get_request, redirect, get_response, get_session_manager
17
from quixote import get_publisher
18
from quixote import get_request
19
from quixote import get_response
20
from quixote import get_session_manager
21
from quixote import redirect
18 22
from quixote.directory import Directory
19
from quixote.html import htmltext, TemplateIO
23
from quixote.html import TemplateIO
24
from quixote.html import htmltext
20 25

  
21
from . import _, N_
26
from wcs.qommon.admin.texts import TextsDirectory
27

  
28
from . import N_
29
from . import _
30
from . import errors
31
from . import get_cfg
22 32
from . import template
23 33
from .form import *
24
from . import get_cfg
25
from . import errors
26

  
27 34
from .ident.password_accounts import PasswordAccount
28 35

  
29
from wcs.qommon.admin.texts import TextsDirectory
30 36

  
31 37
# This module depends upon the following protocol from the user class:
32 38
#
wcs/qommon/ods.py
22 22

  
23 23
from django.utils.encoding import force_text
24 24

  
25
from .misc import date_format, datetime_format, strftime
26
from .evalutils import make_date, make_datetime
25
from .evalutils import make_date
26
from .evalutils import make_datetime
27
from .misc import date_format
28
from .misc import datetime_format
29
from .misc import strftime
27 30

  
28 31
NS = {
29 32
    'fo': 'urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0',
wcs/qommon/pages.py
16 16

  
17 17
import os
18 18

  
19
from quixote import get_publisher, redirect
19
from quixote import get_publisher
20
from quixote import redirect
20 21
from quixote.directory import Directory
21 22
from quixote.util import StaticDirectory
22 23

  
wcs/qommon/publisher.py
16 16

  
17 17
from __future__ import print_function
18 18

  
19
import builtins
19 20
import codecs
20 21
import collections
21
import builtins
22 22
import configparser
23
import pickle
24
import urllib.parse
25 23
import datetime
26
from decimal import Decimal
24
import fcntl
25
import hashlib
27 26
import importlib
28 27
import inspect
29 28
import io
30
import os
31
import fcntl
32
import hashlib
33 29
import json
30
import linecache
34 31
import locale
32
import logging
33
import logging.handlers
34
import os
35
import pickle
35 36
import random
36 37
import re
37 38
import socket
38 39
import sys
39 40
import time
40 41
import traceback
41

  
42
import linecache
42
import urllib.parse
43 43
import xml.etree.ElementTree as ET
44
from decimal import Decimal
44 45

  
45 46
from django.conf import settings
46 47
from django.http import Http404
47 48
from django.utils import translation
48
from django.utils.encoding import force_text, force_bytes
49

  
50
from quixote.publish import Publisher, get_request, get_response, get_publisher, redirect
51
from .http_request import HTTPRequest
52
from .http_response import HTTPResponse, AfterJob
53

  
54
from .cron import CronJob
55
from .substitution import Substitutions, CompatibilityNamesDict
56

  
57
from . import N_, force_str
49
from django.utils.encoding import force_bytes
50
from django.utils.encoding import force_text
51
from quixote.publish import Publisher
52
from quixote.publish import get_publisher
53
from quixote.publish import get_request
54
from quixote.publish import get_response
55
from quixote.publish import redirect
56

  
57
from . import N_
58 58
from . import errors
59
from . import template
60
import logging
61
import logging.handlers
59
from . import force_str
62 60
from . import logger
63 61
from . import storage
62
from . import template
63
from .cron import CronJob
64
from .http_request import HTTPRequest
65
from .http_response import AfterJob
66
from .http_response import HTTPResponse
67
from .substitution import CompatibilityNamesDict
68
from .substitution import Substitutions
64 69
from .vendor import locket
65 70

  
66 71

  
......
892 897
        return valid_known_domains
893 898

  
894 899
    def get_substitution_variables(self):
895
        from . import misc
896 900
        from wcs.variables import LazyDateObject
897 901

  
902
        from . import misc
903

  
898 904
        d = {
899 905
            'site_name': get_cfg('misc', {}).get('sitename', None),
900 906
            'site_theme': get_cfg('branding', {}).get('theme', self.default_theme),
wcs/qommon/saml2.py
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17 17
import os
18
import sys
18 19
import time
19 20
import urllib.parse
20
import sys
21 21
from xml.sax.saxutils import escape
22 22

  
23 23
try:
......
26 26
    lasso = None
27 27

  
28 28
from django.utils.encoding import force_text
29

  
30
from quixote import get_request, get_response, redirect, get_field, get_publisher
31
from quixote.http_request import parse_header
29
from quixote import get_field
30
from quixote import get_publisher
31
from quixote import get_request
32
from quixote import get_response
33
from quixote import get_session
34
from quixote import get_session_manager
35
from quixote import redirect
32 36
from quixote.directory import Directory
33
from quixote import get_session, get_session_manager
37
from quixote.http_request import parse_header
34 38

  
39
from . import _
40
from . import errors
41
from . import force_str
35 42
from . import misc
36
from .publisher import get_cfg, get_logger
37
from . import _, force_str
43
from .publisher import get_cfg
44
from .publisher import get_logger
38 45
from .template import error_page
39 46

  
40
from . import errors
41

  
42 47

  
43 48
class SOAPException(Exception):
44 49
    url = None
wcs/qommon/saml2utils.py
16 16

  
17 17
import os
18 18

  
19
from . import force_str, x509utils
19
from . import force_str
20
from . import x509utils
20 21

  
21 22

  
22 23
def bool2xs(boolean):
wcs/qommon/sessions.py
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17 17
import copy
18
import json
19 18
import hashlib
19
import json
20 20
import os
21 21
import time
22 22

  
23
from django.conf import settings
24
from django.core.signing import BadSignature
25
from django.core.signing import Signer
26
from django.utils.encoding import force_bytes
27
from django.utils.encoding import force_text
23 28
from quixote import get_publisher
24

  
29
from quixote.publish import get_request
30
from quixote.publish import get_session
31
from quixote.publish import get_session_manager
25 32
from quixote.session import Session as QuixoteSession
26 33
from quixote.session import SessionManager as QuixoteSessionManager
27 34
from quixote.util import randbytes
28 35

  
29
from django.conf import settings
30
from django.utils.encoding import force_bytes, force_text
31
from django.core.signing import Signer, BadSignature
32

  
33 36
from . import misc
34
from .storage import StorableObject
35 37
from .publisher import get_cfg
38
from .storage import StorableObject
36 39
from .upload_storage import get_storage_object
37
from quixote.publish import get_session, get_session_manager, get_request
38 40

  
39 41

  
40 42
class QommonSession(QuixoteSession):
wcs/qommon/sms.py
17 17
import re
18 18
import urllib.parse
19 19

  
20
from . import N_, errors, misc
21
from . import get_cfg, get_logger
22
from .form import StringWidget, PasswordWidget
23 20
from wcs.wscalls import call_webservice
24 21

  
22
from . import N_
23
from . import errors
24
from . import get_cfg
25
from . import get_logger
26
from . import misc
27
from .form import PasswordWidget
28
from .form import StringWidget
29

  
25 30

  
26 31
class PasserelleSMS(object):
27 32
    TIMEOUT = 10
wcs/qommon/storage.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
import _thread
17 18
import builtins
18 19
import copyreg
19 20
import errno
20 21
import operator
21 22
import os
22
import time
23
import pickle
24 23
import os.path
24
import pickle
25 25
import shutil
26 26
import sys
27 27
import tempfile
28
import _thread
28
import time
29 29

  
30 30
from django.utils.encoding import force_bytes
31
from quixote import get_publisher
31 32

  
33
from . import PICKLE_KWARGS
34
from . import force_str
32 35
from .vendor import locket
33 36

  
34
from quixote import get_publisher
35
from . import PICKLE_KWARGS, force_str
36

  
37 37
# add compatibility names in case those were stored in pickles
38 38
sys.modules['copy_reg'] = copyreg
39 39
sys.modules['__builtin__'] = builtins
wcs/qommon/substitution.py
17 17
from contextlib import contextmanager
18 18

  
19 19
from quixote import get_publisher
20
from quixote.html import htmltext, TemplateIO
20
from quixote.html import TemplateIO
21
from quixote.html import htmltext
21 22

  
22 23

  
23 24
def invalidate_substitution_cache(func):
......
42 43

  
43 44
    def set_empty(self):
44 45
        from wcs.data_sources import NamedDataSource
45
        from wcs.variables import CardsSource, FormsSource
46
        from wcs.wscalls import NamedWsCall
47 46
        from wcs.scripts import Script
47
        from wcs.variables import CardsSource
48
        from wcs.variables import FormsSource
49
        from wcs.wscalls import NamedWsCall
48 50

  
49 51
        self.sources = [NamedDataSource, NamedWsCall, CardsSource, FormsSource, Script]
50 52

  
wcs/qommon/template.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
import glob
17 18
import io
18 19
import os
19
import glob
20 20
import re
21 21
import xml.etree.ElementTree as ET
22 22

  
23 23
import django.template
24
from django.template import (
25
    engines,
26
    TemplateSyntaxError as DjangoTemplateSyntaxError,
27
    VariableDoesNotExist as DjangoVariableDoesNotExist,
28
)
24
from django.template import TemplateSyntaxError as DjangoTemplateSyntaxError
25
from django.template import VariableDoesNotExist as DjangoVariableDoesNotExist
26
from django.template import engines
29 27
from django.template.loader import render_to_string
30
from django.utils.encoding import force_text, smart_text
31
from django.utils.safestring import SafeString, SafeText
32

  
33
from quixote import get_session, get_request, get_response, get_publisher
28
from django.utils.encoding import force_text
29
from django.utils.encoding import smart_text
30
from django.utils.safestring import SafeString
31
from django.utils.safestring import SafeText
32
from quixote import get_publisher
33
from quixote import get_request
34
from quixote import get_response
35
from quixote import get_session
34 36
from quixote.directory import Directory
35
from quixote.util import StaticDirectory, StaticFile
36
from quixote.html import htmltext, htmlescape, TemplateIO
37

  
38
from . import ezt, force_str
37
from quixote.html import TemplateIO
38
from quixote.html import htmlescape
39
from quixote.html import htmltext
40
from quixote.util import StaticDirectory
41
from quixote.util import StaticFile
42

  
43
from . import ezt
44
from . import force_str
39 45

  
40 46

  
41 47
def get_template_from_script(filename):
wcs/qommon/template_utils.py
21 21

  
22 22
from __future__ import absolute_import
23 23

  
24
from django.template import loader, Context
24
from django.template import Context
25
from django.template import loader
25 26
from django.template.base import TextNode
26
from django.template.loader_tags import BLOCK_CONTEXT_KEY, BlockContext, BlockNode, ExtendsNode
27
from django.template.loader_tags import BLOCK_CONTEXT_KEY
28
from django.template.loader_tags import BlockContext
29
from django.template.loader_tags import BlockNode
30
from django.template.loader_tags import ExtendsNode
27 31

  
28 32

  
29 33
class BlockNotFound(Exception):
wcs/qommon/templatetags/qommon.py
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17 17
import datetime
18
from decimal import Decimal
19
from decimal import InvalidOperation as DecimalInvalidOperation
20
from decimal import DivisionByZero as DecimalDivisionByZero
21 18
import hashlib
22 19
import math
23
import string
24 20
import random
21
import string
25 22
import unicodedata
26 23
import urllib.parse
24
from decimal import Decimal
25
from decimal import DivisionByZero as DecimalDivisionByZero
26
from decimal import InvalidOperation as DecimalInvalidOperation
27 27

  
28 28
import pyproj
29 29
from pyproj import Geod
......
38 38
from django import template
39 39
from django.template import defaultfilters
40 40
from django.utils import dateparse
41
from django.utils.encoding import force_bytes, force_text
41
from django.utils.encoding import force_bytes
42
from django.utils.encoding import force_text
42 43
from django.utils.safestring import mark_safe
43
from django.utils.timezone import is_naive, make_aware
44
from django.utils.timezone import is_naive
45
from django.utils.timezone import make_aware
46

  
44 47
from wcs.qommon import calendar
45 48
from wcs.qommon import evalutils
46 49
from wcs.qommon import tokens
......
770 773

  
771 774
@register.filter
772 775
def is_empty(value):
773
    from wcs.variables import LazyFormDefObjectsManager, LazyList
776
    from wcs.variables import LazyFormDefObjectsManager
777
    from wcs.variables import LazyList
774 778

  
775 779
    if isinstance(value, (str, list, dict)):
776 780
        return not value
wcs/qommon/tokens.py
16 16

  
17 17
import random
18 18
import string
19
import time
19 20

  
20 21
from .storage import StorableObject
21
import time
22 22

  
23 23

  
24 24
class Token(StorableObject):
wcs/qommon/upload_storage.py
18 18
import io
19 19
import os
20 20

  
21
from quixote import get_publisher
22
from quixote.http_request import Upload
23

  
24 21
from django.utils.encoding import force_text
25 22
from django.utils.module_loading import import_string
23
from quixote import get_publisher
24
from quixote.http_request import Upload
26 25

  
27 26
from .errors import ConnectionError
28
from .misc import json_loads, file_digest, can_thumbnail
27
from .misc import can_thumbnail
28
from .misc import file_digest
29
from .misc import json_loads
29 30
from .storage import atomic_write
30 31

  
31 32

  
wcs/qommon/vendor/locket.py
30 30
# policies, either expressed or implied, of the FreeBSD Project.
31 31

  
32 32

  
33
import time
34 33
import errno
35 34
import threading
35
import time
36 36
import weakref
37 37

  
38 38
__all__ = ["lock_file"]
wcs/qommon/x509utils.py
16 16

  
17 17
import base64
18 18
import binascii
19
import tempfile
20 19
import os
21
import subprocess
22 20
import stat
21
import subprocess
22
import tempfile
23 23

  
24 24
from django.utils.encoding import force_text
25 25

  
wcs/qommon/xml_storage.py
21 21
from quixote import get_publisher
22 22

  
23 23
from . import force_str
24
from .misc import indent_xml, xml_node_text
24
from .misc import indent_xml
25
from .misc import xml_node_text
25 26
from .storage import StorableObject
26 27

  
27 28

  
wcs/roles.py
19 19
from django.utils.encoding import force_text
20 20
from quixote import get_publisher
21 21

  
22
from .qommon import _, misc
22
from .qommon import _
23
from .qommon import misc
23 24
from .qommon.storage import StorableObject
24 25

  
25 26

  
wcs/root.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from importlib import import_module
18 17
import json
19 18
import os
20 19
import re
21 20
import urllib.parse
21
from importlib import import_module
22 22

  
23
from quixote import get_publisher, get_response, get_session, redirect, get_session_manager, get_request
23
from quixote import get_publisher
24
from quixote import get_request
25
from quixote import get_response
26
from quixote import get_session
27
from quixote import get_session_manager
28
from quixote import redirect
24 29
from quixote.directory import Directory
25
from quixote.html import htmltext, TemplateIO
30
from quixote.html import TemplateIO
31
from quixote.html import htmltext
26 32
from quixote.util import StaticDirectory
27 33

  
34
from . import portfolio
35
from .api import ApiDirectory
36
from .categories import Category
37
from .formdef import FormDef
28 38
from .forms import root
29
from .qommon import saml2
30

  
39
from .forms.actions import ActionsDirectory
40
from .forms.preview import PreviewDirectory
41
from .myspace import MyspaceDirectory
31 42
from .qommon import _
32 43
from .qommon import errors
33
from .qommon import get_cfg, get_logger
34
from .qommon import template
35
from .qommon.form import *
44
from .qommon import get_cfg
45
from .qommon import get_logger
36 46
from .qommon import ident
37 47
from .qommon import pages
38
from .qommon.upload_storage import UploadStorageError
39

  
48
from .qommon import saml2
49
from .qommon import template
40 50
from .qommon.afterjobs import AfterJobStatusDirectory
41

  
42
from .categories import Category
43
from .formdef import FormDef
44
from .api import ApiDirectory
45
from .myspace import MyspaceDirectory
46
from .forms.preview import PreviewDirectory
47
from .forms.actions import ActionsDirectory
48

  
49
from . import portfolio
51
from .qommon.form import *
52
from .qommon.upload_storage import UploadStorageError
50 53

  
51 54

  
52 55
class CompatibilityDirectory(Directory):
wcs/snapshots.py
17 17
import xml.etree.ElementTree as ET
18 18

  
19 19
from django.utils.timezone import now
20
from quixote import get_publisher
21
from quixote import get_session
20 22

  
21
from quixote import get_publisher, get_session
22

  
23
from wcs.qommon import _, misc
23
from wcs.qommon import _
24
from wcs.qommon import misc
24 25
from wcs.qommon.storage import Null
25 26

  
26 27

  
wcs/sql.py
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17 17
import copy
18
import datetime
18 19
import io
20
import re
21
import time
22
import unicodedata
23

  
19 24
import psycopg2
20 25
import psycopg2.extensions
21 26
import psycopg2.extras
22
import datetime
23
import time
24
import re
25
import unicodedata
26 27

  
27 28
try:
28 29
    import cPickle as pickle
29 30
except ImportError:
30 31
    import pickle
31 32

  
32
from django.utils.encoding import force_bytes, force_text
33

  
33
from django.utils.encoding import force_bytes
34
from django.utils.encoding import force_text
34 35
from quixote import get_publisher
35
from . import qommon
36
from wcs.qommon import force_str, PICKLE_KWARGS
37
from .qommon.storage import _take, deep_bytes2str, parse_clause as parse_storage_clause
38
from .qommon.substitution import invalidate_substitution_cache
39
from .qommon import get_cfg
40
from .qommon.upload_storage import PicklableUpload
41
from .qommon.misc import strftime
42
from .publisher import UnpicklerClass
43 36

  
44
import wcs.categories
45 37
import wcs.carddata
38
import wcs.categories
46 39
import wcs.custom_views
47 40
import wcs.formdata
48 41
import wcs.logged_errors
......
50 43
import wcs.snapshots
51 44
import wcs.tracking_code
52 45
import wcs.users
46
from wcs.qommon import PICKLE_KWARGS
47
from wcs.qommon import force_str
48

  
49
from . import qommon
50
from .publisher import UnpicklerClass
51
from .qommon import get_cfg
52
from .qommon.misc import strftime
53
from .qommon.storage import _take
54
from .qommon.storage import deep_bytes2str
55
from .qommon.storage import parse_clause as parse_storage_clause
56
from .qommon.substitution import invalidate_substitution_cache
57
from .qommon.upload_storage import PicklableUpload
53 58

  
54 59
# enable psycogp2 unicode mode, this will fetch postgresql varchar/text columns
55 60
# as unicode objects
......
3367 3372

  
3368 3373
def migrate_views(conn, cur):
3369 3374
    drop_views(None, conn, cur)
3370
    from wcs.formdef import FormDef
3371 3375
    from wcs.carddef import CardDef
3376
    from wcs.formdef import FormDef
3372 3377

  
3373 3378
    for formdef in FormDef.select() + CardDef.select():
3374 3379
        # make sure all formdefs have up-to-date views
......
3439 3444
        # 41: update full text normalization
3440 3445
        set_reindex('formdata', 'needed', conn=conn, cur=cur)
3441 3446
    if sql_level < 46:
3442
        from wcs.formdef import FormDef
3443 3447
        from wcs.carddef import CardDef
3448
        from wcs.formdef import FormDef
3444 3449

  
3445 3450
        # 24: add index on evolution(formdata_id)
3446 3451
        # 35: add indexes on formdata(receipt_time) and formdata(anonymised)
wcs/tracking_code.py
16 16

  
17 17
import random
18 18

  
19
from .qommon.storage import StorableObject
20

  
21 19
from .formdef import FormDef
20
from .qommon.storage import StorableObject
22 21

  
23 22

  
24 23
class TrackingCode(StorableObject):
wcs/urls.py
16 16

  
17 17
from django.conf.urls import url
18 18

  
19
from . import api
19 20
from . import compat
20 21
from . import views
21
from . import api
22 22

  
23 23
urlpatterns = [
24 24
    url(r'^robots.txt$', views.robots_txt),
wcs/users.py
18 18

  
19 19
from quixote import get_publisher
20 20

  
21
from .qommon import _, N_
22
from .qommon.misc import simplify
23
from .qommon.storage import StorableObject
24
from .qommon import get_cfg
25 21
import wcs.qommon.storage as st
26 22

  
27
from .qommon.substitution import Substitutions, invalidate_substitution_cache
23
from .qommon import N_
24
from .qommon import _
25
from .qommon import get_cfg
26
from .qommon.misc import simplify
27
from .qommon.storage import StorableObject
28
from .qommon.substitution import Substitutions
29
from .qommon.substitution import invalidate_substitution_cache
28 30

  
29 31

  
30 32
class User(StorableObject):
wcs/utils.py
18 18

  
19 19
import django.template.loaders.filesystem
20 20

  
21
from .qommon.publisher import get_cfg
22
from .qommon.publisher import get_publisher
21 23
from .qommon.template import get_theme_directory
22
from .qommon.publisher import get_cfg, get_publisher
23 24

  
24 25

  
25 26
class TemplateLoader(django.template.loaders.filesystem.Loader):
wcs/variables.py
18 18

  
19 19
from django.utils.encoding import force_text
20 20
from django.utils.functional import SimpleLazyObject
21

  
22
from quixote import get_publisher, get_request
23

  
24 21
from pyproj import Geod
25

  
26
from .qommon import misc, force_str, _
27
from .qommon.evalutils import make_datetime
28
from .qommon.templatetags.qommon import parse_datetime
29
from .qommon.storage import Or, Equal, NotEqual, Null
30
from .qommon.substitution import CompatibilityNamesDict
22
from quixote import get_publisher
23
from quixote import get_request
31 24

  
32 25
from .carddef import CardDef
33 26
from .formdef import FormDef
27
from .qommon import _
28
from .qommon import force_str
29
from .qommon import misc
30
from .qommon.evalutils import make_datetime
31
from .qommon.storage import Equal
32
from .qommon.storage import NotEqual
33
from .qommon.storage import Null
34
from .qommon.storage import Or
35
from .qommon.substitution import CompatibilityNamesDict
36
from .qommon.templatetags.qommon import parse_datetime
34 37

  
35 38

  
36 39
class LazyFormDefObjectsManager(object):
wcs/views.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from quixote import get_publisher, get_request, get_response
18 17
from django.http import HttpResponse
18
from quixote import get_publisher
19
from quixote import get_request
20
from quixote import get_response
19 21

  
20
from .qommon import template
21 22
from . import compat
23
from .qommon import template
22 24

  
23 25

  
24 26
class Backoffice(compat.TemplateWithFallbackView):
wcs/wf/aggregation_email.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from ..qommon import _, N_
17
from wcs.workflows import WorkflowStatusItem
18
from wcs.workflows import register_item_class
19

  
20
from ..qommon import N_
21
from ..qommon import _
22
from ..qommon import emails
23
from ..qommon.cron import CronJob
24
from ..qommon.form import *
18 25
from ..qommon.publisher import get_publisher_class
19 26
from ..qommon.storage import StorableObject
20
from ..qommon.form import *
21
from ..qommon.cron import CronJob
22
from ..qommon import emails
23

  
24
from wcs.workflows import WorkflowStatusItem, register_item_class
25 27

  
26 28

  
27 29
class AggregationEmailWorkflowStatusItem(WorkflowStatusItem):
wcs/wf/anonymise.py
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17 17
from wcs.qommon import N_
18
from wcs.workflows import WorkflowStatusItem, register_item_class
18
from wcs.workflows import WorkflowStatusItem
19
from wcs.workflows import register_item_class
19 20

  
20 21

  
21 22
class AnonymiseWorkflowStatusItem(WorkflowStatusItem):
wcs/wf/attachment.py
19 19

  
20 20
from quixote import redirect
21 21

  
22
from ..qommon import _, N_
22
from wcs.forms.common import FileDirectory
23
from wcs.forms.common import FormStatusPage
24
from wcs.portfolio import has_portfolio
25
from wcs.portfolio import push_document
23 26
from wcs.workflows import *
27

  
28
from ..qommon import N_
29
from ..qommon import _
24 30
from ..qommon import get_cfg
25 31
from ..qommon.errors import *
26
from ..qommon.misc import get_document_type_value_options, xml_node_text
27

  
28
from wcs.forms.common import FormStatusPage, FileDirectory
29
from wcs.portfolio import has_portfolio, push_document
32
from ..qommon.misc import get_document_type_value_options
33
from ..qommon.misc import xml_node_text
30 34

  
31 35

  
32 36
def lookup_wf_attachment(self, filename):
wcs/wf/backoffice_fields.py
19 19
from quixote import get_publisher
20 20
from quixote.html import htmltext
21 21

  
22
from ..qommon import _, N_
23
from ..qommon.form import (
24
    WidgetListAsTable,
25
    CompositeWidget,
26
    SingleSelectWidget,
27
    ComputedExpressionWidget,
28
    StringWidget,
29
)
30 22
from wcs.fields import WidgetField
31
from wcs.workflows import WorkflowStatusItem, register_item_class
32 23
from wcs.wf.profile import FieldNode
24
from wcs.workflows import WorkflowStatusItem
25
from wcs.workflows import register_item_class
26

  
27
from ..qommon import N_
28
from ..qommon import _
29
from ..qommon.form import CompositeWidget
30
from ..qommon.form import ComputedExpressionWidget
31
from ..qommon.form import SingleSelectWidget
32
from ..qommon.form import StringWidget
33
from ..qommon.form import WidgetListAsTable
33 34

  
34 35

  
35 36
class SetBackofficeFieldRowWidget(CompositeWidget):
wcs/wf/create_carddata.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from wcs.qommon import N_
18 17
from quixote import get_publisher
19 18

  
20
from wcs.workflows import register_item_class
21 19
from wcs.carddef import CardDef
22

  
23
from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem, LinkedFormdataEvolutionPart
20
from wcs.qommon import N_
21
from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem
22
from wcs.wf.create_formdata import LinkedFormdataEvolutionPart
23
from wcs.workflows import register_item_class
24 24

  
25 25

  
26 26
class LinkedCardDataEvolutionPart(LinkedFormdataEvolutionPart):
wcs/wf/create_formdata.py
17 17
import time
18 18
import xml.etree.ElementTree as ET
19 19

  
20
from quixote import get_request, get_session, get_publisher
21
from quixote.html import htmltext
22

  
23 20
from django.utils.functional import cached_property
21
from quixote import get_publisher
22
from quixote import get_request
23
from quixote import get_session
24
from quixote.html import htmltext
24 25

  
25
from wcs.qommon import _, N_
26
from wcs.qommon.form import (
27
    Form,
28
    WidgetListAsTable,
29
    CompositeWidget,
30
    SingleSelectWidget,
31
    ComputedExpressionWidget,
32
    RadiobuttonsWidget,
33
    CheckboxWidget,
34
    VarnameWidget,
35
    HtmlWidget,
36
)
37

  
38
from wcs.workflows import WorkflowStatusItem, register_item_class
39 26
from wcs.formdef import FormDef
27
from wcs.qommon import N_
28
from wcs.qommon import _
29
from wcs.qommon.form import CheckboxWidget
30
from wcs.qommon.form import CompositeWidget
31
from wcs.qommon.form import ComputedExpressionWidget
32
from wcs.qommon.form import Form
33
from wcs.qommon.form import HtmlWidget
34
from wcs.qommon.form import RadiobuttonsWidget
35
from wcs.qommon.form import SingleSelectWidget
36
from wcs.qommon.form import VarnameWidget
37
from wcs.qommon.form import WidgetListAsTable
38
from wcs.workflows import WorkflowStatusItem
39
from wcs.workflows import register_item_class
40 40

  
41 41

  
42 42
class Mapping(object):
wcs/wf/criticality.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from ..qommon import _, N_
18 17
from wcs.qommon.form import SingleSelectWidget
19
from wcs.workflows import WorkflowStatusItem, register_item_class
18
from wcs.workflows import WorkflowStatusItem
19
from wcs.workflows import register_item_class
20

  
21
from ..qommon import N_
22
from ..qommon import _
20 23

  
21 24
MODE_INC = '1'
22 25
MODE_DEC = '2'
wcs/wf/dispatch.py
19 19

  
20 20
from quixote.html import htmltext
21 21

  
22
from ..qommon import _, N_
22
from wcs.roles import get_user_roles
23
from wcs.workflows import WorkflowStatusItem
24
from wcs.workflows import XmlSerialisable
25
from wcs.workflows import get_role_name
26
from wcs.workflows import register_item_class
27

  
28
from ..qommon import N_
29
from ..qommon import _
23 30
from ..qommon.form import *
24 31
from ..qommon.template import Template
25
from wcs.roles import get_user_roles
26
from wcs.workflows import XmlSerialisable, WorkflowStatusItem, register_item_class, get_role_name
27 32

  
28 33

  
29 34
class AutomaticDispatchRowWidget(CompositeWidget):
wcs/wf/edit_carddata.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from wcs.qommon import _, N_
18 17
from quixote import get_publisher
19 18

  
20
from wcs.workflows import register_item_class
21

  
19
from wcs.qommon import N_
20
from wcs.qommon import _
22 21
from wcs.wf.create_carddata import CreateCarddataWorkflowStatusItem
23 22
from wcs.wf.external_workflow import ExternalWorkflowGlobalAction
23
from wcs.workflows import register_item_class
24 24

  
25 25

  
26 26
class EditCarddataWorkflowStatusItem(CreateCarddataWorkflowStatusItem, ExternalWorkflowGlobalAction):
wcs/wf/export_to_model.py
17 17
import base64
18 18
import collections
19 19
import io
20
from xml.etree import ElementTree as ET
21
import zipfile
22 20
import os
23 21
import random
22
import shutil
24 23
import subprocess
25 24
import tempfile
26 25
import time
27
import shutil
28

  
29
from django.utils.encoding import force_bytes, force_text
26
import zipfile
27
from xml.etree import ElementTree as ET
30 28

  
31
from quixote import get_response, get_request, get_publisher
29
from django.utils.encoding import force_bytes
30
from django.utils.encoding import force_text
31
from quixote import get_publisher
32
from quixote import get_request
33
from quixote import get_response
32 34
from quixote.directory import Directory
33 35
from quixote.html import htmltext
34 36

  
35
from ..qommon import _, N_, ezt, misc, force_str
37
from wcs.fields import CommentField
38
from wcs.fields import PageField
39
from wcs.fields import SubtitleField
40
from wcs.fields import TitleField
41
from wcs.portfolio import has_portfolio
42
from wcs.portfolio import push_document
43
from wcs.workflows import AttachmentEvolutionPart
44
from wcs.workflows import WorkflowStatusItem
45
from wcs.workflows import get_formdata_template_context
46
from wcs.workflows import register_item_class
47
from wcs.workflows import template_on_context
48
from wcs.workflows import template_on_formdata
49

  
50
from ..qommon import N_
51
from ..qommon import _
52
from ..qommon import ezt
53
from ..qommon import force_str
36 54
from ..qommon import get_logger
37
from ..qommon.form import (
38
    SingleSelectWidget,
39
    WidgetList,
40
    CheckboxWidget,
41
    StringWidget,
42
    UploadWidget,
43
    WysiwygTextWidget,
44
    Upload,
45
    UploadedFile,
46
    UploadValidationError,
47
    VarnameWidget,
48
    RadiobuttonsWidget,
49
    PicklableUpload,
50
    ComputedExpressionWidget,
51
)
55
from ..qommon import misc
52 56
from ..qommon.errors import PublishError
57
from ..qommon.form import CheckboxWidget
58
from ..qommon.form import ComputedExpressionWidget
59
from ..qommon.form import PicklableUpload
60
from ..qommon.form import RadiobuttonsWidget
61
from ..qommon.form import SingleSelectWidget
62
from ..qommon.form import StringWidget
63
from ..qommon.form import Upload
64
from ..qommon.form import UploadedFile
65
from ..qommon.form import UploadValidationError
66
from ..qommon.form import UploadWidget
67
from ..qommon.form import VarnameWidget
68
from ..qommon.form import WidgetList
69
from ..qommon.form import WysiwygTextWidget
53 70
from ..qommon.template import TemplateError
54 71

  
55
from wcs.fields import SubtitleField, TitleField, CommentField, PageField
56
from wcs.workflows import (
57
    WorkflowStatusItem,
58
    AttachmentEvolutionPart,
59
    template_on_formdata,
60
    register_item_class,
61
    get_formdata_template_context,
62
    template_on_context,
63
)
64
from wcs.portfolio import has_portfolio, push_document
65

  
66 72
OO_TEXT_NS = 'urn:oasis:names:tc:opendocument:xmlns:text:1.0'
67 73
OO_OFFICE_NS = 'urn:oasis:names:tc:opendocument:xmlns:office:1.0'
68 74
OO_STYLE_NS = 'urn:oasis:names:tc:opendocument:xmlns:style:1.0'
wcs/wf/external_workflow.py
16 16

  
17 17
from quixote import get_publisher
18 18

  
19
from wcs.qommon import _, N_
20
from wcs.qommon.form import Form, SingleSelectWidget, ComputedExpressionWidget, RadiobuttonsWidget
21

  
22
from wcs.workflows import WorkflowStatusItem, perform_items, register_item_class
23
from wcs.workflows import WorkflowGlobalActionWebserviceTrigger, Workflow
24 19
from wcs.carddef import CardDef
25 20
from wcs.formdef import FormDef
21
from wcs.qommon import N_
22
from wcs.qommon import _
23
from wcs.qommon.form import ComputedExpressionWidget
24
from wcs.qommon.form import Form
25
from wcs.qommon.form import RadiobuttonsWidget
26
from wcs.qommon.form import SingleSelectWidget
27
from wcs.workflows import Workflow
28
from wcs.workflows import WorkflowGlobalActionWebserviceTrigger
29
from wcs.workflows import WorkflowStatusItem
30
from wcs.workflows import perform_items
31
from wcs.workflows import register_item_class
26 32

  
27 33

  
28 34
class ExternalWorkflowGlobalAction(WorkflowStatusItem):
wcs/wf/form.py
16 16

  
17 17
import xml.etree.ElementTree as ET
18 18

  
19
from ..qommon import _, N_
20
from ..qommon.form import *
21

  
22
from wcs.workflows import WorkflowStatusItem, register_item_class
23
from wcs.formdef import FormDef, lax_int
24

  
25
from wcs.admin.fields import FieldDefPage, FieldsDirectory
19
from wcs.admin.fields import FieldDefPage
20
from wcs.admin.fields import FieldsDirectory
26 21
from wcs.formdata import get_dict_with_varnames
27

  
22
from wcs.formdef import FormDef
23
from wcs.formdef import lax_int
28 24
from wcs.forms.common import FileDirectory
29 25
from wcs.forms.root import FormPage
26
from wcs.workflows import WorkflowStatusItem
27
from wcs.workflows import register_item_class
28

  
29
from ..qommon import N_
30
from ..qommon import _
31
from ..qommon.form import *
30 32

  
31 33

  
32 34
def lookup_wf_form_file(self, filename):
wcs/wf/geolocate.py
20 20

  
21 21
try:
22 22
    from PIL import Image
23
    from PIL.ExifTags import TAGS, GPSTAGS
23
    from PIL.ExifTags import GPSTAGS
24
    from PIL.ExifTags import TAGS
24 25
    from PIL.TiffImagePlugin import IFDRational
25 26
except ImportError:
26 27
    Image = None
27 28

  
28 29
from quixote import get_publisher
29 30

  
30
from ..qommon import _, N_, force_str
31
from wcs.workflows import WorkflowStatusItem
32
from wcs.workflows import register_item_class
33

  
34
from ..qommon import N_
35
from ..qommon import _
36
from ..qommon import force_str
31 37
from ..qommon import get_logger
32 38
from ..qommon.errors import ConnectionError
33
from ..qommon.form import RadiobuttonsWidget, ComputedExpressionWidget, CheckboxWidget
34
from ..qommon.misc import http_get_page, normalize_geolocation
35
from wcs.workflows import WorkflowStatusItem, register_item_class
39
from ..qommon.form import CheckboxWidget
40
from ..qommon.form import ComputedExpressionWidget
41
from ..qommon.form import RadiobuttonsWidget
42
from ..qommon.misc import http_get_page
43
from ..qommon.misc import normalize_geolocation
36 44

  
37 45

  
38 46
class GeolocateWorkflowStatusItem(WorkflowStatusItem):
wcs/wf/jump.py
19 19
import os
20 20
import time
21 21

  
22
from quixote import get_publisher, get_request, redirect
23

  
22
from quixote import get_publisher
23
from quixote import get_request
24
from quixote import redirect
24 25
from quixote.directory import Directory
25
from ..qommon import _, N_, force_str
26
from ..qommon.humantime import *
27
from ..qommon.form import *
28
from ..qommon import errors
29
from ..qommon.publisher import get_publisher_class
30
from ..qommon.cron import CronJob
31 26

  
32
from wcs.workflows import Workflow, WorkflowStatusJumpItem, WorkflowGlobalAction, register_item_class
33
from wcs.api import get_user_from_api_query_string, is_url_signed
27
from wcs.api import get_user_from_api_query_string
28
from wcs.api import is_url_signed
34 29
from wcs.conditions import Condition
30
from wcs.workflows import Workflow
31
from wcs.workflows import WorkflowGlobalAction
32
from wcs.workflows import WorkflowStatusJumpItem
33
from wcs.workflows import register_item_class
34

  
35
from ..qommon import N_
36
from ..qommon import _
37
from ..qommon import errors
38
from ..qommon import force_str
39
from ..qommon.cron import CronJob
40
from ..qommon.form import *
41
from ..qommon.humantime import *
42
from ..qommon.publisher import get_publisher_class
35 43

  
36 44
JUMP_TIMEOUT_INTERVAL = max((60 // int(os.environ.get('WCS_JUMP_TIMEOUT_CHECKS', '3')), 1))
37 45

  
......
306 314

  
307 315
def _apply_timeouts(publisher):
308 316
    '''Traverse all filled form and apply expired timeout jumps if needed'''
309
    from ..formdef import FormDef
310 317
    from ..carddef import CardDef
318
    from ..formdef import FormDef
311 319

  
312 320
    wfs_status = workflows_with_timeout()
313 321

  
wcs/wf/notification.py
18 18

  
19 19
from quixote import get_publisher
20 20

  
21
from ..qommon import _, N_, ezt
21
from wcs.workflows import WorkflowStatusItem
22
from wcs.workflows import register_item_class
23
from wcs.workflows import template_on_formdata
24

  
25
from ..qommon import N_
26
from ..qommon import _
27
from ..qommon import ezt
28
from ..qommon import get_logger
22 29
from ..qommon.form import *
23 30
from ..qommon.template import TemplateError
24
from ..qommon import get_logger
25

  
26
from wcs.workflows import WorkflowStatusItem, register_item_class, template_on_formdata
27 31
from .wscall import WebserviceCallStatusItem
28 32

  
29 33

  
wcs/wf/profile.py
21 21
import urllib.parse
22 22
import xml.etree.ElementTree as ET
23 23

  
24
from quixote import get_publisher, get_response, get_request
25

  
26
from ..qommon import _, N_
27
from ..qommon.form import CompositeWidget, SingleSelectWidget, WidgetListAsTable, ComputedExpressionWidget
24
from quixote import get_publisher
25
from quixote import get_request
26
from quixote import get_response
27

  
28
from wcs.api_utils import MissingSecret
29
from wcs.api_utils import get_secret_and_orig
30
from wcs.api_utils import sign_url
31
from wcs.workflows import WorkflowStatusItem
32
from wcs.workflows import XmlSerialisable
33
from wcs.workflows import register_item_class
34

  
35
from ..qommon import N_
36
from ..qommon import _
37
from ..qommon.form import CompositeWidget
38
from ..qommon.form import ComputedExpressionWidget
39
from ..qommon.form import SingleSelectWidget
40
from ..qommon.form import WidgetListAsTable
28 41
from ..qommon.ident.idp import is_idp_managing_user_attributes
29
from ..qommon.misc import http_patch_request, JSONEncoder
30
from ..qommon.publisher import get_cfg, get_logger
31

  
32
from wcs.api_utils import sign_url, get_secret_and_orig, MissingSecret
33
from wcs.workflows import XmlSerialisable, WorkflowStatusItem, register_item_class
42
from ..qommon.misc import JSONEncoder
43
from ..qommon.misc import http_patch_request
44
from ..qommon.publisher import get_cfg
45
from ..qommon.publisher import get_logger
34 46

  
35 47

  
36 48
def user_ws_url(user_uuid):
wcs/wf/redirect_to_url.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from ..qommon import _, N_
17
from wcs.workflows import WorkflowStatusItem
18
from wcs.workflows import register_item_class
19

  
20
from ..qommon import N_
21
from ..qommon import _
18 22
from ..qommon.form import ComputedExpressionWidget
19
from wcs.workflows import WorkflowStatusItem, register_item_class
20 23

  
21 24

  
22 25
class RedirectToUrlWorkflowStatusItem(WorkflowStatusItem):
wcs/wf/register_comment.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from ..qommon import _, N_, ezt
18
from ..qommon.form import *
19
from ..qommon.template import TemplateError
20
from ..qommon import get_logger
17
import sys
21 18

  
22
from wcs.workflows import (
23
    WorkflowStatusItem,
24
    register_item_class,
25
    template_on_formdata,
26
    AttachmentEvolutionPart,
27
)
19
from wcs.workflows import AttachmentEvolutionPart
20
from wcs.workflows import WorkflowStatusItem
21
from wcs.workflows import register_item_class
22
from wcs.workflows import template_on_formdata
28 23

  
29
import sys
24
from ..qommon import N_
25
from ..qommon import _
26
from ..qommon import ezt
27
from ..qommon import get_logger
28
from ..qommon.form import *
29
from ..qommon.template import TemplateError
30 30

  
31 31

  
32 32
class JournalEvolutionPart:
wcs/wf/remove.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from quixote import get_publisher, get_request, get_response, get_session
18
from ..qommon import _, N_
19
from wcs.workflows import WorkflowStatusItem, register_item_class
17
from quixote import get_publisher
18
from quixote import get_request
19
from quixote import get_response
20
from quixote import get_session
21

  
22
from wcs.workflows import WorkflowStatusItem
23
from wcs.workflows import register_item_class
24

  
25
from ..qommon import N_
26
from ..qommon import _
20 27

  
21 28

  
22 29
class RemoveWorkflowStatusItem(WorkflowStatusItem):
wcs/wf/resubmit.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from quixote import get_publisher, get_request, get_session
17
from quixote import get_publisher
18
from quixote import get_request
19
from quixote import get_session
18 20

  
19
from ..qommon import _, N_
20
from wcs.workflows import WorkflowStatusItem, register_item_class
21 21
from wcs.formdef import FormDef
22
from wcs.qommon.form import WidgetList, SingleSelectWidget, StringWidget, WysiwygTextWidget
22
from wcs.qommon.form import SingleSelectWidget
23
from wcs.qommon.form import StringWidget
24
from wcs.qommon.form import WidgetList
25
from wcs.qommon.form import WysiwygTextWidget
26
from wcs.workflows import WorkflowStatusItem
27
from wcs.workflows import register_item_class
28

  
29
from ..qommon import N_
30
from ..qommon import _
23 31

  
24 32

  
25 33
class ResubmitWorkflowStatusItem(WorkflowStatusItem):
wcs/wf/roles.py
17 17
import sys
18 18
import urllib.parse
19 19

  
20
from quixote import get_request, get_publisher, get_response
20
from quixote import get_publisher
21
from quixote import get_request
22
from quixote import get_response
21 23

  
22
from ..qommon import _, N_
23
from ..qommon.form import *
24
from wcs.workflows import WorkflowStatusItem, register_item_class
24
from wcs.api_utils import MissingSecret
25
from wcs.api_utils import get_secret_and_orig
26
from wcs.api_utils import sign_url
25 27
from wcs.roles import get_user_roles
28
from wcs.workflows import WorkflowStatusItem
29
from wcs.workflows import register_item_class
30

  
31
from ..qommon import N_
32
from ..qommon import _
33
from ..qommon.form import *
26 34
from ..qommon.ident.idp import is_idp_managing_user_attributes
27
from ..qommon.misc import http_post_request, http_delete_request
28
from ..qommon.publisher import get_cfg, get_logger
29
from wcs.api_utils import sign_url, get_secret_and_orig, MissingSecret
35
from ..qommon.misc import http_delete_request
36
from ..qommon.misc import http_post_request
37
from ..qommon.publisher import get_cfg
38
from ..qommon.publisher import get_logger
30 39

  
31 40

  
32 41
def roles_ws_url(role_uuid, user_uuid):
wcs/wf/timeout_jump.py
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17 17
from wcs.qommon import N_
18
from .jump import JumpWorkflowStatusItem, register_item_class
18

  
19
from .jump import JumpWorkflowStatusItem
20
from .jump import register_item_class
19 21

  
20 22

  
21 23
class TimeoutWorkflowStatusItem(JumpWorkflowStatusItem):
wcs/wf/wscall.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
import collections
17 18
import datetime
18 19
import io
20
import mimetypes
19 21
import sys
20 22
import traceback
21 23
import xml.etree.ElementTree as ET
22
import collections
23
import mimetypes
24 24

  
25 25
from django.utils.encoding import force_text
26

  
27
from quixote.html import TemplateIO, htmltext
28

  
29
from ..qommon import _, N_, force_str
26
from quixote.html import TemplateIO
27
from quixote.html import htmltext
28

  
29
from wcs.workflows import AbortActionException
30
from wcs.workflows import AttachmentEvolutionPart
31
from wcs.workflows import WorkflowStatusItem
32
from wcs.workflows import register_item_class
33
from wcs.wscalls import call_webservice
34
from wcs.wscalls import get_app_error_code
35

  
36
from ..qommon import N_
37
from ..qommon import _
38
from ..qommon import force_str
30 39
from ..qommon.errors import ConnectionError
31 40
from ..qommon.form import *
32 41
from ..qommon.misc import json_loads
33
from wcs.workflows import (
34
    WorkflowStatusItem,
35
    register_item_class,
36
    AbortActionException,
37
    AttachmentEvolutionPart,
38
)
39
from wcs.wscalls import call_webservice, get_app_error_code
40 42

  
41 43

  
42 44
class JournalWsCallErrorPart:
wcs/workflows.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from .qommon import ezt
18 17
import collections
19 18
import copy
20 19
import datetime
21
import xml.etree.ElementTree as ET
22
import random
23 20
import os
21
import random
24 22
import sys
25 23
import time
26 24
import uuid
25
import xml.etree.ElementTree as ET
27 26

  
28 27
from django.utils.encoding import force_text
29

  
30
from quixote import get_request, get_response, redirect, get_publisher
31

  
32
from .qommon import _, N_, force_str
33
from .qommon.misc import C_, get_as_datetime, file_digest, get_foreground_colour, xml_node_text
34
from .qommon.storage import StorableObject, atomic_write, NotEqual, Contains, Null, pickle_2to3_conversion
35
from .qommon.form import *
36
from .qommon.humantime import seconds2humanduration
37
from .qommon import emails, get_cfg, get_logger
28
from quixote import get_publisher
29
from quixote import get_request
30
from quixote import get_response
31
from quixote import redirect
38 32
from quixote.html import htmltext
39
from .qommon import errors
40
from .qommon.template import Template, TemplateError
41
from .qommon.upload_storage import PicklableUpload, get_storage_object
42 33

  
34
from .carddef import CardDef
43 35
from .conditions import Condition
44
from .roles import logged_users_role, get_user_roles
45 36
from .fields import FileField
46
from .formdef import FormDef, FormdefImportError
47
from .carddef import CardDef
48 37
from .formdata import Evolution
38
from .formdef import FormDef
39
from .formdef import FormdefImportError
49 40
from .mail_templates import MailTemplate
41
from .qommon import N_
42
from .qommon import _
43
from .qommon import emails
44
from .qommon import errors
45
from .qommon import ezt
46
from .qommon import force_str
47
from .qommon import get_cfg
48
from .qommon import get_logger
49
from .qommon.form import *
50
from .qommon.humantime import seconds2humanduration
51
from .qommon.misc import C_
52
from .qommon.misc import file_digest
53
from .qommon.misc import get_as_datetime
54
from .qommon.misc import get_foreground_colour
55
from .qommon.misc import xml_node_text
56
from .qommon.storage import Contains
57
from .qommon.storage import NotEqual
58
from .qommon.storage import Null
59
from .qommon.storage import StorableObject
60
from .qommon.storage import atomic_write
61
from .qommon.storage import pickle_2to3_conversion
62
from .qommon.template import Template
63
from .qommon.template import TemplateError
64
from .qommon.upload_storage import PicklableUpload
65
from .qommon.upload_storage import get_storage_object
66
from .roles import get_user_roles
67
from .roles import logged_users_role
50 68

  
51 69
if not __name__.startswith('wcs.') and not __name__ == "__main__":
52 70
    raise ImportError('Import of workflows module must be absolute (import wcs.workflows)')
wcs/wscalls.py
21 21
import xml.etree.ElementTree as ET
22 22

  
23 23
from django.utils.encoding import force_text
24
from quixote import get_publisher
25
from quixote import get_request
24 26

  
25
from quixote import get_publisher, get_request
27
from wcs.api_utils import MissingSecret
28
from wcs.api_utils import get_secret_and_orig
29
from wcs.api_utils import sign_url
30
from wcs.workflows import WorkflowStatusItem
26 31

  
27
from .qommon import _, force_str
28
from .qommon.misc import simplify, get_variadic_url, JSONEncoder, json_loads
29
from .qommon.xml_storage import XmlStorableObject
30
from .qommon.form import (
31
    CompositeWidget,
32
    StringWidget,
33
    WidgetDict,
34
    ComputedExpressionWidget,
35
    RadiobuttonsWidget,
36
    CheckboxWidget,
37
)
32
from .qommon import _
33
from .qommon import force_str
38 34
from .qommon import misc
35
from .qommon.form import CheckboxWidget
36
from .qommon.form import CompositeWidget
37
from .qommon.form import ComputedExpressionWidget
38
from .qommon.form import RadiobuttonsWidget
39
from .qommon.form import StringWidget
40
from .qommon.form import WidgetDict
41
from .qommon.misc import JSONEncoder
42
from .qommon.misc import get_variadic_url
43
from .qommon.misc import json_loads
44
from .qommon.misc import simplify
39 45
from .qommon.template import Template
40

  
41
from wcs.api_utils import sign_url, get_secret_and_orig, MissingSecret
42
from wcs.workflows import WorkflowStatusItem
46
from .qommon.xml_storage import XmlStorableObject
43 47

  
44 48

  
45 49
def get_app_error_code(response, data, response_type):
46
-