wbcore 2.2.1__tar.gz → 2.2.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- wbcore-2.2.4/.coveragerc +25 -0
- wbcore-2.2.4/.gitlab-ci.yml +29 -0
- wbcore-2.2.4/.python-version +1 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/PKG-INFO +1 -1
- wbcore-2.2.4/Procfile +2 -0
- wbcore-2.2.4/check_release_notes.py +26 -0
- wbcore-2.2.4/docs/buttons.md +49 -0
- wbcore-2.2.4/docs/concept.md +12 -0
- wbcore-2.2.4/docs/display.md +68 -0
- wbcore-2.2.4/docs/filters.md +127 -0
- wbcore-2.2.4/docs/getting_started.md +122 -0
- wbcore-2.2.4/docs/index.md +4 -0
- wbcore-2.2.4/docs/menu.md +105 -0
- wbcore-2.2.4/docs/metadata/concept.md +32 -0
- wbcore-2.2.4/docs/metadata/configs/endpoints.md +56 -0
- wbcore-2.2.4/docs/metadata/configs/fields.md +18 -0
- wbcore-2.2.4/docs/metadata/configs/filter_fields.md +8 -0
- wbcore-2.2.4/docs/metadata/configs/identifiers.md +33 -0
- wbcore-2.2.4/docs/metadata/configs/ordering_fields.md +30 -0
- wbcore-2.2.4/docs/metadata/configs/pagination.md +10 -0
- wbcore-2.2.4/docs/metadata/configs/primary_key.md +8 -0
- wbcore-2.2.4/docs/metadata/configs/search_fields.md +22 -0
- wbcore-2.2.4/docs/metadata/configs/titles.md +55 -0
- wbcore-2.2.4/docs/metadata/configs/type.md +7 -0
- wbcore-2.2.4/docs/metadata/getting_started.md +17 -0
- wbcore-2.2.4/docs/serializers.md +81 -0
- wbcore-2.2.4/docs/share.md +46 -0
- wbcore-2.2.4/docs/signals.md +54 -0
- wbcore-2.2.4/docs/tests.md +209 -0
- wbcore-2.2.4/docs/viewsets.md +25 -0
- wbcore-2.2.4/gunicorn_conf.py +65 -0
- wbcore-2.2.4/manage.py +11 -0
- wbcore-2.2.4/mkdocs.yml +19 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/pyproject.toml +6 -6
- wbcore-2.2.4/pytest.ini +5 -0
- {wbcore-2.2.1/wbcore/contrib/authentication/tests → wbcore-2.2.4/wbcore/contrib/ai/llm}/__init__.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/currency/import_export/parsers → wbcore-2.2.4/wbcore/contrib/color/migrations}/__init__.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/currency/migrations → wbcore-2.2.4/wbcore/contrib/currency/import_export}/__init__.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/currency/release_notes → wbcore-2.2.4/wbcore/contrib/currency/import_export/parsers}/__init__.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/directory/tests → wbcore-2.2.4/wbcore/contrib/directory}/__init__.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/documents/release_notes → wbcore-2.2.4/wbcore/contrib/directory/tests}/__init__.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/io → wbcore-2.2.4/wbcore/contrib/gleap/tests}/__init__.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/io/migrations → wbcore-2.2.4/wbcore/contrib/guardian/tests}/__init__.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/io/release_notes → wbcore-2.2.4/wbcore/contrib/io}/__init__.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/notifications → wbcore-2.2.4/wbcore/contrib/io/migrations}/__init__.py +0 -0
- wbcore-2.2.4/wbcore/tests/test_new_display/test_sections.py +0 -0
- wbcore-2.2.4/wbcore/tests/test_serializers/__init__.py +0 -0
- wbcore-2.2.4/wbcore/tests/test_utils/__init__.py +0 -0
- wbcore-2.2.4/wbcore_config/__init__.py +3 -0
- wbcore-2.2.4/wbcore_config/celery.py +15 -0
- wbcore-2.2.4/wbcore_config/menu.py +6 -0
- wbcore-2.2.4/wbcore_config/settings.py +40 -0
- wbcore-2.2.4/wbcore_config/urls.py +26 -0
- wbcore-2.2.4/wbcore_config/wsgi.py +9 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/.gitignore +0 -0
- /wbcore-2.2.1/wbcore/cache/__init__.py → /wbcore-2.2.4/docs/metadata/configs/buttons.md +0 -0
- /wbcore-2.2.1/wbcore/content_type/__init__.py → /wbcore-2.2.4/docs/metadata/configs/display.md +0 -0
- /wbcore-2.2.1/wbcore/contrib/__init__.py → /wbcore-2.2.4/docs/workflow.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/admin.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/apps.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/agenda → wbcore-2.2.4/wbcore/cache}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/cache/buttons.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/cache/decorators.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/cache/mixins.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/cache/registry.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/cache/views.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configs/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configs/configs.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configs/decorators.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configs/registry.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configs/views.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configurations/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configurations/base.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configurations/configurations/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configurations/configurations/apps.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configurations/configurations/authentication.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configurations/configurations/base.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configurations/configurations/cache.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configurations/configurations/celery.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configurations/configurations/i18nl10n.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configurations/configurations/mail.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configurations/configurations/maintenance.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configurations/configurations/media.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configurations/configurations/middleware.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configurations/configurations/network.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configurations/configurations/rest_framework.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configurations/configurations/static.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configurations/configurations/templates.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configurations/configurations/uvicorn.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/configurations/configurations/wbcore.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/agenda/migrations → wbcore-2.2.4/wbcore/content_type}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/content_type/admin.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/content_type/filters.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/content_type/serializers.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/content_type/utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/content_type/viewsets.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/agenda/release_notes → wbcore-2.2.4/wbcore/contrib}/__init__.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/agenda/tests → wbcore-2.2.4/wbcore/contrib/agenda}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/admin/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/admin/calendar_item.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/admin/conference_room.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/apps.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/configurations.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/factories/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/factories/calendar_item.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/factories/conference_room.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/filters/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/filters/calendar_item.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/filters/conference_room.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/locale/de/LC_MESSAGES/django.po +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/migrations/0001_initial.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/migrations/0002_initial.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/migrations/0003_calendaritem_endpoint_basename.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/migrations/0004_alter_calendaritem_item_type.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/migrations/0005_building_and_more.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/migrations/0006_calendaritem_is_deletable.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/migrations/0007_alter_calendaritem_options.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/migrations/0008_alter_calendaritem_item_type.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/migrations/0009_alter_calendaritem_icon.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/ai → wbcore-2.2.4/wbcore/contrib/agenda/migrations}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/models/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/models/calendar_item.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/models/conference_room.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/release_notes/1_0_0.md +0 -0
- {wbcore-2.2.1/wbcore/contrib/ai/llm → wbcore-2.2.4/wbcore/contrib/agenda/release_notes}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/serializers/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/serializers/calendar_item.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/serializers/conference_room.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/signals.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/static/agenda/markdown/documentation/building.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/static/agenda/markdown/documentation/conferenceroom.md +0 -0
- {wbcore-2.2.1/wbcore/contrib/authentication/migrations → wbcore-2.2.4/wbcore/contrib/agenda/tests}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/tests/conftest.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/tests/signals.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/tests/test_models.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/tests/test_viewsets.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/tests/tests.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/typings.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/urls.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/viewsets/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/viewsets/buttons/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/viewsets/buttons/conference_room.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/viewsets/calendar_items.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/viewsets/conference_room.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/viewsets/display/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/viewsets/display/calendar_items.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/viewsets/display/conference_room.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/viewsets/endpoints/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/viewsets/endpoints/calendar_items.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/viewsets/menu/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/viewsets/menu/calendar_items.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/viewsets/menu/conference_room.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/viewsets/titles/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/viewsets/titles/calendar_items.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/agenda/viewsets/titles/conference_room.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/authentication/release_notes → wbcore-2.2.4/wbcore/contrib/ai}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/ai/apps.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/ai/exceptions.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/ai/llm/config.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/ai/llm/decorators.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/ai/llm/mixins.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/ai/llm/utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/admin.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/apps.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/authentication.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/configs.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/configurations.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/dynamic_preferences_registry.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/factories/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/factories/tokens.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/factories/users.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/factories/users_activities.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/filters.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/fixtures/authentication.json +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/locale/de/LC_MESSAGES/django.po +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/management/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/migrations/0001_initial_squashed.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/migrations/0002_profile.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/migrations/0003_alter_user_profile.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/migrations/0004_token.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/migrations/0005_user_external_calendar_settings.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/migrations/0006_auto_20231206_1422.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/color → wbcore-2.2.4/wbcore/contrib/authentication}/migrations/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/models/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/models/tokens.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/models/users.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/models/users_activities.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/release_notes/1_0_0.md +0 -0
- {wbcore-2.2.1/wbcore/contrib/currency → wbcore-2.2.4/wbcore/contrib/authentication/release_notes}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/serializers/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/serializers/users.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/serializers/users_activites.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/tasks.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/templates/activate_confirm.html +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/templates/base.html +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/templates/email_base_template.html +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/templates/password_reset_done.html +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/templates/password_reset_email.html +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/templates/password_reset_email_html.html +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/templates/password_reset_form.html +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/templates/password_reset_sent.html +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/templates/reset_password.html +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/templates/user_registration_email.html +0 -0
- {wbcore-2.2.1/wbcore/contrib/currency/import_export → wbcore-2.2.4/wbcore/contrib/authentication/tests}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/tests/conftest.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/tests/e2e/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/tests/e2e/e2e_auth_utility.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/tests/signals.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/tests/test_configs.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/tests/test_serializers.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/tests/test_tasks.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/tests/test_tokens.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/tests/test_users.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/tests/test_viewsets.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/tests/tests.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/urls.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/viewsets/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/viewsets/buttons/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/viewsets/buttons/users.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/viewsets/display/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/viewsets/display/user_activities.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/viewsets/display/users.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/viewsets/endpoints/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/viewsets/endpoints/user_activities.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/viewsets/endpoints/users.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/viewsets/menu/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/viewsets/menu/user_activities.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/viewsets/menu/users.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/viewsets/titles/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/viewsets/titles/user_activities.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/viewsets/titles/users.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/viewsets/user_activities.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/authentication/viewsets/users.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/color/admin.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/color/apps.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/color/enums.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/color/factories.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/color/fields.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/color/forms.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/color/migrations/0001_initial.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/color/migrations/0002_alter_colorgradient_colors.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/color/models.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/color/tests/conftest.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/color/tests/test_color_models.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/color/tests/test_fields.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/currency/import_export/parsers/fixerio → wbcore-2.2.4/wbcore/contrib/currency}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/admin.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/apps.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/dynamic_preferences_registry.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/factories.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/fixtures/currency.yaml +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/fixtures/currency_fx_rate.yaml +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/import_export/backends/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/import_export/backends/fixerio/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/import_export/backends/fixerio/currency_fx_rates.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/import_export/backends/utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/import_export/handlers/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/import_export/handlers/currency.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/import_export/handlers/currency_fx_rates.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/currency/tests → wbcore-2.2.4/wbcore/contrib/currency/import_export/parsers/fixerio}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/import_export/parsers/fixerio/currency_fx_rates.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/migrations/0001_initial.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/currency/viewsets/buttons → wbcore-2.2.4/wbcore/contrib/currency/migrations}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/models.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/release_notes/1_0_0.md +0 -0
- {wbcore-2.2.1/wbcore/contrib/dataloader/tests → wbcore-2.2.4/wbcore/contrib/currency/release_notes}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/serializers.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/dataloader/tests/test → wbcore-2.2.4/wbcore/contrib/currency/tests}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/tests/conftest.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/tests/test_models.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/tests/test_serializers.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/tests/test_viewsets.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/urls.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/viewsets/__init__.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/dataloader/tests/test/dataloaders → wbcore-2.2.4/wbcore/contrib/currency/viewsets/buttons}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/viewsets/currency.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/viewsets/currency_fx_rates.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/viewsets/display/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/viewsets/display/currency.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/viewsets/display/currency_fx_rates.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/viewsets/endpoints/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/viewsets/endpoints/currency_fx_rates.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/viewsets/menu/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/viewsets/menu/currency.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/viewsets/preview/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/viewsets/preview/currency.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/viewsets/titles/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/viewsets/titles/currency.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/currency/viewsets/titles/currency_fx_rates.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/dataloader/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/dataloader/apps.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/dataloader/dataloaders/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/dataloader/dataloaders/dataloaders.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/dataloader/dataloaders/proxies.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/dataloader/models/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/dataloader/models/entities.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/dataloader/models/querysets/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/dataloader/models/querysets/entities.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/directory → wbcore-2.2.4/wbcore/contrib/dataloader/tests}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/dataloader/tests/conftest.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/directory/migrations → wbcore-2.2.4/wbcore/contrib/dataloader/tests/test}/__init__.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/directory/release_notes → wbcore-2.2.4/wbcore/contrib/dataloader/tests/test/dataloaders}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/dataloader/tests/test/dataloaders/dataloaders.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/dataloader/tests/test/dataloaders/protocols.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/dataloader/tests/test/dataloaders/proxies.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/dataloader/tests/test/factories.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/dataloader/tests/test/models.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/dataloader/tests/test_dataloaders.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/dataloader/tests/test_entities.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/dataloader/utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/admin/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/admin/contacts.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/admin/entries.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/admin/relationships.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/apps.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/configs.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/configurations.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/dynamic_preferences_registry.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/factories/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/factories/contacts.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/factories/entries.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/factories/relationships.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/filters/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/filters/contacts.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/filters/entries.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/filters/relationships.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/fixtures/directory.json +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/locale/de/LC_MESSAGES/django.po +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/migrations/0001_initial.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/migrations/0002_auto_20230414_1553.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/migrations/0003_remove_entry_last_event.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/migrations/0004_entry_is_draft_entry.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/migrations/0005_entry_salutation.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/migrations/0006_employeremployeerelationship_position_name.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/migrations/0007_alter_bankingcontact_options.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/migrations/0008_bankingcontact_access.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/migrations/0009_remove_entry_external_identfier_and_more.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/documents → wbcore-2.2.4/wbcore/contrib/directory/migrations}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/models/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/models/contacts.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/models/entries.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/models/relationships.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/preferences.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/release_notes/1_0_0.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/release_notes/1_0_1.md +0 -0
- {wbcore-2.2.1/wbcore/contrib/documents/migrations → wbcore-2.2.4/wbcore/contrib/directory/release_notes}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/serializers/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/serializers/companies.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/serializers/contacts.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/serializers/entries.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/serializers/entry_representations.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/serializers/persons.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/serializers/relationships.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/signals.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/static/directory/markdown/documentation/address.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/static/directory/markdown/documentation/banking.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/static/directory/markdown/documentation/bankingentry.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/static/directory/markdown/documentation/clientmanagerrelationship.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/static/directory/markdown/documentation/company.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/static/directory/markdown/documentation/companytype.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/static/directory/markdown/documentation/customerstatus.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/static/directory/markdown/documentation/email.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/static/directory/markdown/documentation/employeecompany.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/static/directory/markdown/documentation/employerperson.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/static/directory/markdown/documentation/person.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/static/directory/markdown/documentation/position.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/static/directory/markdown/documentation/relationshiptype.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/static/directory/markdown/documentation/socialmedia.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/static/directory/markdown/documentation/specialization.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/static/directory/markdown/documentation/systememployee.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/static/directory/markdown/documentation/telephone.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/static/directory/markdown/documentation/telephonesearch.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/static/directory/markdown/documentation/userisclient.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/static/directory/markdown/documentation/userismanager.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/static/directory/markdown/documentation/website.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/tests/conftest.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/tests/disable_signals.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/tests/e2e/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/tests/e2e/e2e_directory_utility.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/tests/signals.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/tests/test_configs.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/tests/test_filters.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/tests/test_models.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/tests/test_permissions.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/tests/test_serializers.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/tests/test_viewsets.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/tests/tests.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/typings.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/urls.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/buttons/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/buttons/contacts.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/buttons/entries.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/buttons/relationships.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/contacts.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/display/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/display/contacts.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/display/entries.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/display/relationships.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/display/utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/endpoints/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/endpoints/contacts.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/endpoints/entries.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/endpoints/relationships.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/entries.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/menu/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/menu/contacts.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/menu/entries.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/menu/relationships.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/menu/utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/mixins.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/previews/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/previews/contacts.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/previews/entries.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/relationships.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/titles/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/titles/contacts.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/titles/entries.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/titles/relationships.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/titles/utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/directory/viewsets/utils.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/dynamic_preferences → wbcore-2.2.4/wbcore/contrib/documents}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/admin.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/apps.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/factories.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/filters.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/fixtures/docments.json +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/locale/de/LC_MESSAGES/django.po +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/migrations/0001_initial.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/migrations/0002_documentmodelrelationship_primary_and_more.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/migrations/0003_alter_documentmodelrelationship_unique_together_and_more.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/migrations/0004_auto_20240103_0958.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/migrations/0005_document_valid_from_document_valid_until_and_more.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/example_app → wbcore-2.2.4/wbcore/contrib/documents/migrations}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/models/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/models/document_model_relationships.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/models/document_types.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/models/documents.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/models/mixins.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/models/shareable_links.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/release_notes/1_0_0.md +0 -0
- {wbcore-2.2.1/wbcore/contrib/example_app/migrations → wbcore-2.2.4/wbcore/contrib/documents/release_notes}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/serializers/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/serializers/document_model_relationships.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/serializers/document_types.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/serializers/documents.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/serializers/shareable_links.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/static/documents/markdown/documentation/document_types.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/static/documents/markdown/documentation/documents.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/static/documents/markdown/documentation/shareablelink.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/static/documents/markdown/documentation/shareablelinkaccess.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/tests/conftest.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/tests/test_models.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/urls.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/buttons/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/buttons/documents.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/buttons/shareable_links.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/buttons/signals.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/display/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/display/document_model_relationships.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/display/document_types.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/display/documents.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/display/shareable_links.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/document_model_relationships.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/document_types.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/documents.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/endpoints/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/endpoints/documents.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/endpoints/documents_model_relationships.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/endpoints/shareable_links.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/menu/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/menu/documents.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/previews/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/previews/documents.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/shareable_links.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/titles/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/titles/document_types.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/titles/documents.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/documents/viewsets/titles/shareable_links.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/example_app/tests → wbcore-2.2.4/wbcore/contrib/dynamic_preferences}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/dynamic_preferences/types.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/geography → wbcore-2.2.4/wbcore/contrib/example_app}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/admin.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/apps.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/factories/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/factories/event.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/factories/league.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/factories/match.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/factories/person.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/factories/role.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/factories/sport.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/factories/stadium.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/factories/team.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/filters/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/filters/event.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/filters/league.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/filters/match.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/filters/person.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/filters/role.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/filters/sport.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/filters/stadium.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/filters/team.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/filters/teamresult.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/fixtures/example_app.json +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/migrations/0001_initial.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/migrations/0002_sportperson_profile.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/migrations/0003_change_stadium_capacity.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/migrations/0004_alter_player_transfer_value.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/migrations/0005_sportperson_profile_image.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/migrations/0006_league_season_period_player_is_active_and_more.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/migrations/0007_alter_player_options_alter_team_options_and_more.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/geography/import_export → wbcore-2.2.4/wbcore/contrib/example_app/migrations}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/models.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/serializers/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/serializers/league.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/serializers/match_event.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/serializers/person_team.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/serializers/role.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/serializers/season.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/serializers/sport.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/serializers/stadium.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/serializers/teamresult.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/geography/import_export/resources → wbcore-2.2.4/wbcore/contrib/example_app/tests}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/conftest.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/e2e/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/e2e/e2e_example_app_utility.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/e2e/test_league.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/e2e/test_person.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/e2e/test_teams.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/signals.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_displays.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_filters.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_models/test_event.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_models/test_match.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_models/test_others.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_serializers/test_league_serializer.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_serializers/test_match_serializer.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_serializers/test_role_serializer.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_serializers/test_sport_serializer.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_serializers/test_stadium_serializer.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_serializers/test_team_result_serializer.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_serializers/test_team_serializer.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_viewsets/test_event_viewset.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_viewsets/test_league_viewset.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_viewsets/test_match_viewset.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_viewsets/test_person_viewset.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_viewsets/test_role_viewset.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_viewsets/test_sport_viewset.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_viewsets/test_stadium_viewset.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_viewsets/test_team_viewset.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_viewsets/test_teamresult_viewset.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/tests/test_viewsets/test_utils_viewsets.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/urls.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/buttons/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/buttons/person.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/buttons/team.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/displays/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/displays/event.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/displays/league.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/displays/match.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/displays/person.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/displays/role.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/displays/season.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/displays/sport.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/displays/stadium.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/displays/team.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/displays/teamresult.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/endpoints/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/endpoints/endpoints.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/event.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/league.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/match.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/menu/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/menu/menus.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/menus.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/person.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/role.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/season.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/sport.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/stadium.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/team.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/teamresult.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/titles/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/titles/event.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/titles/league.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/titles/match.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/titles/person.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/titles/role.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/titles/sport.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/titles/stadium.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/titles/team.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/example_app/viewsets/titles/teamresult.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/geography/migrations → wbcore-2.2.4/wbcore/contrib/geography}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/admin.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/apps.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/factories.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/fixtures/geography.json +0 -0
- {wbcore-2.2.1/wbcore/contrib/geography/release_notes → wbcore-2.2.4/wbcore/contrib/geography/import_export}/__init__.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/geography/tests → wbcore-2.2.4/wbcore/contrib/geography/import_export/resources}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/import_export/resources/geography.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/migrations/0001_initial.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/geography/viewsets/buttons → wbcore-2.2.4/wbcore/contrib/geography/migrations}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/models.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/release_notes/1_0_0.md +0 -0
- {wbcore-2.2.1/wbcore/contrib/geography/viewsets/endpoints → wbcore-2.2.4/wbcore/contrib/geography/release_notes}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/serializers.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/static/geography/markdown/documentation/geography.md +0 -0
- {wbcore-2.2.1/wbcore/contrib/geography/viewsets/titles → wbcore-2.2.4/wbcore/contrib/geography/tests}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/tests/conftest.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/tests/signals.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/tests/test_models.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/tests/test_serializers.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/tests/test_viewsets.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/tests/tests.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/urls.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/viewsets/__init__.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/gleap → wbcore-2.2.4/wbcore/contrib/geography/viewsets/buttons}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/viewsets/display/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/viewsets/display/geography.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/gleap/tests → wbcore-2.2.4/wbcore/contrib/geography/viewsets/endpoints}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/viewsets/geography.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/viewsets/menu/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/viewsets/menu/geography.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/viewsets/preview/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/viewsets/preview/geography.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/guardian/migrations → wbcore-2.2.4/wbcore/contrib/geography/viewsets/titles}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/geography/viewsets/titles/geography.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/guardian/tests → wbcore-2.2.4/wbcore/contrib/gleap}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/gleap/apps.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/gleap/configs.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/gleap/configurations.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/gleap/hashes.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/gleap/tests/conftest.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/gleap/tests/tests.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/gleap/urls.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/gleap/views.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/apps.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/configurations.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/filters.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/migrations/0001_initial.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/io/configs → wbcore-2.2.4/wbcore/contrib/guardian/migrations}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/models/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/models/mixins.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/models/models.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/tasks.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/tests/conftest.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/tests/test_model_mixins.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/tests/test_tasks.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/tests/test_utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/tests/test_viewsets.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/urls.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/viewsets/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/viewsets/configs/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/viewsets/configs/buttons.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/viewsets/configs/displays.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/viewsets/configs/endpoints.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/viewsets/configs/titles.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/viewsets/mixins.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/guardian/viewsets/viewsets.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/icons/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/icons/apps.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/icons/backends/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/icons/backends/default.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/icons/backends/material.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/icons/icons.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/icons/models.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/icons/serializers.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/admin.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/apps.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/backends/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/backends/abstract.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/backends/mail.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/backends/sftp.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/backends/stream.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/backends/utils.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/io/tests → wbcore-2.2.4/wbcore/contrib/io/configs}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/configs/endpoints.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/configurations/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/configurations/base.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/dynamic_preferences_registry.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/enums.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/exceptions.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/factories.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/fixtures/io.json +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/imports.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/locale/de/LC_MESSAGES/django.po +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/management/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/migrations/0001_initial_squashed.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/migrations/0002_importsource_creator.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/migrations/0003_auto_20240103_1000.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/migrations/0004_alter_importsource_status_exportsource.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/migrations/0005_exportsource_data_alter_exportsource_query_str_and_more.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/migrations/0006_alter_exportsource_query_params.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/migrations/0007_alter_exportsource_query_params.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/mixins.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/models.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/release_notes/1_0_0.md +0 -0
- {wbcore-2.2.1/wbcore/contrib/notifications/backends → wbcore-2.2.4/wbcore/contrib/io/release_notes}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/resources.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/serializers.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/notifications/factories → wbcore-2.2.4/wbcore/contrib/io/tests}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/tests/conftest.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/tests/test_backends.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/tests/test_exports.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/tests/test_imports.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/tests/test_models.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/tests/tests.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/urls.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/viewset_mixins.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/io/viewsets.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/notifications/migrations → wbcore-2.2.4/wbcore/contrib/notifications}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/admin.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/apps.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/notifications/release_notes → wbcore-2.2.4/wbcore/contrib/notifications/backends}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/backends/abstract_backend.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/backends/console/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/backends/console/backends.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/backends/firebase/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/backends/firebase/backends.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/configs.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/configurations.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/dispatch.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/notifications/tests → wbcore-2.2.4/wbcore/contrib/notifications/factories}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/factories/notification_types.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/factories/notifications.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/factories/tokens.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/locale/de/LC_MESSAGES/django.po +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/migrations/0001_initial.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/migrations/0002_notificationusertoken_unique_user_token_device.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/migrations/0003_notificationusertoken_updated.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/migrations/0004_alter_notification_body.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/migrations/0005_alter_notification_endpoint.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/migrations/0006_notification_created.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/notifications/tests/test_backends → wbcore-2.2.4/wbcore/contrib/notifications/migrations}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/models/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/models/notification_types.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/models/notifications.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/models/tokens.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/release_notes/1_0_0.md +0 -0
- {wbcore-2.2.1/wbcore/contrib/notifications/tests/test_models → wbcore-2.2.4/wbcore/contrib/notifications/release_notes}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/serializers/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/serializers/notification_types.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/serializers/notifications.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/static/notifications/service-worker.js +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/tasks.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/templates/notifications/notification_template.html +0 -0
- {wbcore-2.2.1/wbcore/contrib/notifications/tests/test_serializers → wbcore-2.2.4/wbcore/contrib/notifications/tests}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/tests/conftest.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/notifications/tests/test_viewsets → wbcore-2.2.4/wbcore/contrib/notifications/tests/test_backends}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/tests/test_backends/test_firebase.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/tests/test_configs.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/tags → wbcore-2.2.4/wbcore/contrib/notifications/tests/test_models}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/tests/test_models/test_notification_types.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/tests/test_models/test_notifications.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/tests/test_models/test_tokens.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/tags/migrations → wbcore-2.2.4/wbcore/contrib/notifications/tests/test_serializers}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/tests/test_serializers/test_notification_types.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/tests/test_serializers/test_notifications.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/tests/test_tasks.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/tests/test_utils.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/tags/release_notes → wbcore-2.2.4/wbcore/contrib/notifications/tests/test_viewsets}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/tests/test_viewsets/test_notification_types.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/tests/test_viewsets/test_notifications.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/urls.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/views.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/viewsets/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/viewsets/configs/notification_types.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/viewsets/configs/notifications.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/viewsets/menus.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/viewsets/notification_types.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/notifications/viewsets/notifications.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/tags/tests → wbcore-2.2.4/wbcore/contrib/tags}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/tags/admin.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/tags/apps.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/tags/factories.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/tags/filters.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/tags/migrations/0001_initial.py +0 -0
- {wbcore-2.2.1/wbcore/contrib/workflow → wbcore-2.2.4/wbcore/contrib/tags}/migrations/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/tags/models/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/tags/models/mixins.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/tags/models/tags.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/tags/release_notes/1_0_0.md +0 -0
- {wbcore-2.2.1/wbcore/contrib/workflow/tests → wbcore-2.2.4/wbcore/contrib/tags/release_notes}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/tags/serializers.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/tags/signals.py +0 -0
- {wbcore-2.2.1/wbcore/crontab → wbcore-2.2.4/wbcore/contrib/tags/tests}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/tags/tests/conftest.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/tags/tests/tests.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/tags/urls.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/tags/viewsets/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/tags/viewsets/display.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/tags/viewsets/menu.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/tags/viewsets/viewsets.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/admin/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/admin/condition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/admin/data.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/admin/display.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/admin/process.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/admin/step.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/admin/transition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/admin/workflow.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/apps.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/configs.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/decorators.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/dispatch.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/factories/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/factories/condition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/factories/data.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/factories/display.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/factories/process.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/factories/step.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/factories/transition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/factories/workflow.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/filters/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/filters/condition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/filters/data.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/filters/process.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/filters/step.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/filters/transition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/filters/workflow.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/fixtures/workflow.json +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/locale/de/LC_MESSAGES/django.po +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/migrations/0001_initial.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/migrations/0002_alter_step_step_type.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/migrations/0003_alter_condition_attribute_name_and_more.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/migrations/0004_alter_userstep_assignee_method.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/migrations/0005_alter_userstep_assignee_method.py +0 -0
- {wbcore-2.2.1/wbcore/fsm → wbcore-2.2.4/wbcore/contrib/workflow/migrations}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/models/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/models/condition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/models/data.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/models/display.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/models/process.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/models/step.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/models/transition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/models/workflow.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/serializers/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/serializers/condition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/serializers/data.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/serializers/display.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/serializers/process.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/serializers/signals.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/serializers/step.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/serializers/transition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/serializers/workflow.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/sites.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/static/workflow/markdown/documentation/assignedprocessstep.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/static/workflow/markdown/documentation/condition.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/static/workflow/markdown/documentation/decisionstep.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/static/workflow/markdown/documentation/emailstep.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/static/workflow/markdown/documentation/finishstep.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/static/workflow/markdown/documentation/joinstep.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/static/workflow/markdown/documentation/process.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/static/workflow/markdown/documentation/processstep.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/static/workflow/markdown/documentation/scriptstep.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/static/workflow/markdown/documentation/splitstep.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/static/workflow/markdown/documentation/startstep.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/static/workflow/markdown/documentation/transition.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/static/workflow/markdown/documentation/userstep.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/static/workflow/markdown/documentation/workflow.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/templates/Test_Templates.txt +0 -0
- {wbcore-2.2.1/wbcore/management/commands → wbcore-2.2.4/wbcore/contrib/workflow/tests}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/conftest.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/test_configs.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/test_dispatch.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/test_displays.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/test_filters.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/test_models/step/test_decision_step.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/test_models/step/test_email_step.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/test_models/step/test_finish_step.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/test_models/step/test_join_step.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/test_models/step/test_script_step.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/test_models/step/test_split_step.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/test_models/step/test_step.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/test_models/step/test_user_step.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/test_models/test_condition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/test_models/test_data.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/test_models/test_process.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/test_models/test_transition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/test_models/test_workflow.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/test_serializers.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/test_viewsets.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/test_workflow_assignees.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/tests/tests.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/urls.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/buttons/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/buttons/step.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/condition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/data.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/display/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/display/condition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/display/data.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/display/process.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/display/step.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/display/transition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/display/workflow.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/endpoints/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/endpoints/condition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/endpoints/data.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/endpoints/process.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/endpoints/step.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/endpoints/transition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/menu/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/menu/condition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/menu/data.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/menu/process.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/menu/step.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/menu/transition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/menu/workflow.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/process.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/step.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/titles/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/titles/condition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/titles/data.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/titles/process.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/titles/step.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/titles/transition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/titles/workflow.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/transition.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/viewsets/workflow.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/workflows/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/contrib/workflow/workflows/assignees.py +0 -0
- {wbcore-2.2.1/wbcore/metadata → wbcore-2.2.4/wbcore/crontab}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/crontab/serializers.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/crontab/viewsets.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/dispatch.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/docs/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/docs/orderable.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/docs/reparent.md +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/dynamic_preferences_registry.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/enums.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/filters/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/filters/backends.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/filters/defaults.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/filters/fields/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/filters/fields/booleans.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/filters/fields/choices.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/filters/fields/content_type.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/filters/fields/datetime.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/filters/fields/models.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/filters/fields/multiple_lookups.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/filters/fields/numbers.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/filters/fields/text.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/filters/filterset.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/filters/lookups.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/filters/mixins.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/filters/utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/forms.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/frontend.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/frontend_user_configuration.py +0 -0
- {wbcore-2.2.1/wbcore/metadata/configs → wbcore-2.2.4/wbcore/fsm}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/fsm/markdown_extensions.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/fsm/mixins.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/locale/de/LC_MESSAGES/django.po +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/management/__init__.py +0 -0
- {wbcore-2.2.1/wbcore/metadata/tests → wbcore-2.2.4/wbcore/management/commands}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/management/commands/bootstrap.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/management/commands/clean_obsolete_object.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/management/commands/handle_release_notes.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/markdown/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/markdown/admin.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/markdown/dynamic_preferences_registry.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/markdown/models.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/markdown/template.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/markdown/utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/markdown/views.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/menus/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/menus/menus.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/menus/registry.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/menus/views.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/messages.py +0 -0
- {wbcore-2.2.1/wbcore/migrations → wbcore-2.2.4/wbcore/metadata}/__init__.py +0 -0
- {wbcore-2.2.1/wbcore/pandas → wbcore-2.2.4/wbcore/metadata/configs}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/base.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/buttons/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/buttons/bases.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/buttons/buttons.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/buttons/enums.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/buttons/metadata.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/buttons/view_config.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/configs.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/display.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/formatting.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/instance_display/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/instance_display/display.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/instance_display/enums.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/instance_display/layouts/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/instance_display/layouts/inlines.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/instance_display/layouts/layouts.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/instance_display/layouts/sections.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/instance_display/operators.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/instance_display/pages.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/instance_display/shortcuts.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/instance_display/signals.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/instance_display/styles.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/instance_display/utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/list_display.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/models.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/view_config.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/views.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/display/windows.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/documentations.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/endpoints.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/fields.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/filter_fields.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/identifiers.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/ordering_fields.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/paginations.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/preview.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/primary_keys.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/search_fields.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/titles.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/configs/window_types.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/exceptions.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/metadata.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/mixins.py +0 -0
- {wbcore-2.2.1/wbcore/permissions → wbcore-2.2.4/wbcore/metadata/tests}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/tests/test_buttons.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/metadata/utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/migrations/0001_initial_squashed_squashed_0010_preset_appliedpreset.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/migrations/0011_genericmodel.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/migrations/0012_delete_notification.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/migrations/0013_delete_colorgradient.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/migrations/0014_biguserobjectpermission_system.py +0 -0
- {wbcore-2.2.1/wbcore/release_notes → wbcore-2.2.4/wbcore/migrations}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/models/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/models/base.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/models/fields.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/models/orderable.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/pagination.py +0 -0
- {wbcore-2.2.1/wbcore/reversion → wbcore-2.2.4/wbcore/pandas}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/pandas/fields.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/pandas/filters.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/pandas/filterset.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/pandas/metadata.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/pandas/utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/pandas/views.py +0 -0
- {wbcore-2.2.1/wbcore/templates/reversion → wbcore-2.2.4/wbcore/permissions}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/permissions/backend.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/permissions/mixins.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/permissions/permissions.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/permissions/registry.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/permissions/shortcuts.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/permissions/utils.py +0 -0
- {wbcore-2.2.1/wbcore/tests → wbcore-2.2.4/wbcore/release_notes}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/release_notes/admin.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/release_notes/buttons.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/release_notes/display.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/release_notes/filters.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/release_notes/models.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/release_notes/serializers.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/release_notes/utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/release_notes/viewsets.py +0 -0
- {wbcore-2.2.1/wbcore/tests/e2e → wbcore-2.2.4/wbcore/reversion}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/reversion/filters.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/reversion/serializers.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/reversion/viewsets/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/reversion/viewsets/buttons.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/reversion/viewsets/displays.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/reversion/viewsets/endpoints.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/reversion/viewsets/titles.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/reversion/viewsets/viewsets.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/routers.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/search/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/serializers/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/serializers/fields/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/serializers/fields/boolean.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/serializers/fields/choice.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/serializers/fields/datetime.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/serializers/fields/fields.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/serializers/fields/file.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/serializers/fields/fsm.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/serializers/fields/json.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/serializers/fields/list.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/serializers/fields/mixins.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/serializers/fields/number.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/serializers/fields/other.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/serializers/fields/primary_key.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/serializers/fields/related.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/serializers/fields/text.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/serializers/fields/types.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/serializers/mixins.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/serializers/serializers.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/serializers/utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/shares/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/shares/config.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/shares/decorator.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/shares/signals.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/shares/sites.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/shares/views.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/signals/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/signals/filters.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/signals/instance_buttons.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/signals/merge.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/signals/models.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/signals/permissions.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/signals/serializers.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tasks.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/templates/errors/404.html +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/templates/errors/500.html +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/templates/errors/503.html +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/templates/errors/custom.html +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/templates/forms.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/templates/notifications/email_template.html +0 -0
- {wbcore-2.2.1/wbcore/tests/test_cache → wbcore-2.2.4/wbcore/templates/reversion}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/templates/reversion/compare_detail.html +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/templates/wbcore/admin/change_list.html +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/templates/wbcore/admin/csv_form.html +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/templates/wbcore/dynamic_color_array.html +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/templates/wbcore/email_base_template.html +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/templates/wbcore/email_notification_template.html +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/templates/wbcore/frontend.html +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/test/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/test/e2e_helpers_methods/e2e_checks.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/test/e2e_helpers_methods/e2e_helper_methods.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/test/mixins.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/test/signals.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/test/tests.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/test/utils.py +0 -0
- {wbcore-2.2.1/wbcore/tests/test_fields → wbcore-2.2.4/wbcore/tests}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/conftest.py +0 -0
- {wbcore-2.2.1/wbcore/tests/test_filters → wbcore-2.2.4/wbcore/tests/e2e}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/e2e/test_e2e.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/models.py +0 -0
- {wbcore-2.2.1/wbcore/tests/test_models → wbcore-2.2.4/wbcore/tests/test_cache}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_cache/test_decorators.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_cache/test_mixins.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_cache/test_registry.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_configs.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_enums.py +0 -0
- {wbcore-2.2.1/wbcore/tests/test_new_display → wbcore-2.2.4/wbcore/tests/test_fields}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_fields/test_boolean_fields.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_fields/test_choice_fields.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_fields/test_datetime_fields.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_fields/test_fields.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_fields/test_file_fields.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_fields/test_json_fields.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_fields/test_list_fields.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_fields/test_mixins.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_fields/test_number_fields.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_fields/test_other_fields.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_fields/test_primary_key_fields.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_fields/test_related.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_fields/test_text_fields.py +0 -0
- {wbcore-2.2.1/wbcore/tests/test_serializers → wbcore-2.2.4/wbcore/tests/test_filters}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_filters/test_mixins.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_filters/test_pandas.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_list_display.py +0 -0
- {wbcore-2.2.1/wbcore/tests/test_utils → wbcore-2.2.4/wbcore/tests/test_models}/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_models/test_fields.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_models/test_mixins.py +0 -0
- /wbcore-2.2.1/wbcore/tests/test_new_display/test_sections.py → /wbcore-2.2.4/wbcore/tests/test_new_display/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_new_display/test_inlines.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_new_display/test_layouts.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_new_display/test_operators.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_new_display/test_pages.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_new_display/test_shortcuts.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_new_display/test_utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_pagination.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_permissions/test_backend.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_serializers/test_fields.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_serializers/test_mixins.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_serializers/test_related.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_something.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_utils/test_date.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_utils/test_date_builder.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_utils/test_primary.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_utils/test_signals.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/tests/test_viewsets.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/urls.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/cache.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/date.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/date_builder/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/date_builder/components.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/date_builder/offsets.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/deprecations.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/enum.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/figures.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/html.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/importlib.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/itertools.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/models.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/numbers.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/prettytable.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/print.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/renderers.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/rrules.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/serializers.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/settings.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/signals.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/string_loader.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/strings.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/task.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/urls.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/utils/views.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/views.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/viewsets/__init__.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/viewsets/encoders.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/viewsets/generics.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/viewsets/mixins.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/viewsets/utils.py +0 -0
- {wbcore-2.2.1 → wbcore-2.2.4}/wbcore/viewsets/viewsets.py +0 -0
wbcore-2.2.4/.coveragerc
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
[report]
|
|
2
|
+
exclude_lines =
|
|
3
|
+
print()
|
|
4
|
+
def api_endpoints_root
|
|
5
|
+
def get_or_create_model_sql
|
|
6
|
+
def profile_check
|
|
7
|
+
if hasattr
|
|
8
|
+
raise Exception
|
|
9
|
+
raise Http404
|
|
10
|
+
except:
|
|
11
|
+
if TYPE_CHECKING:
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
[run]
|
|
15
|
+
omit = */migrations/*
|
|
16
|
+
manage.py
|
|
17
|
+
*/tests/*
|
|
18
|
+
*/test_project/*
|
|
19
|
+
*/config/*
|
|
20
|
+
*/apps.py
|
|
21
|
+
*/docs/*
|
|
22
|
+
*/dynamic_preferences_registry.py
|
|
23
|
+
*/permissions.py
|
|
24
|
+
*/preferences/*
|
|
25
|
+
*/.venv/*
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
deploy-example-app:
|
|
2
|
+
image: ubuntu
|
|
3
|
+
stage: deploy
|
|
4
|
+
variables:
|
|
5
|
+
GIT_DEPTH: 0
|
|
6
|
+
only:
|
|
7
|
+
refs:
|
|
8
|
+
- dev
|
|
9
|
+
changes:
|
|
10
|
+
- "modules/wbcore/**/*"
|
|
11
|
+
- "modules/wbcore/*"
|
|
12
|
+
before_script:
|
|
13
|
+
- apt-get update -y && apt-get install openssh-client git -y
|
|
14
|
+
- eval $(ssh-agent -s)
|
|
15
|
+
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
|
16
|
+
- mkdir -p ~/.ssh
|
|
17
|
+
- chmod 700 ~/.ssh
|
|
18
|
+
- ssh-keyscan example.stainly.com >> ~/.ssh/known_hosts
|
|
19
|
+
- chmod 644 ~/.ssh/known_hosts
|
|
20
|
+
- git config --global user.email "admin@stainly.com"
|
|
21
|
+
- git config --global user.name "Gitlab Runner"
|
|
22
|
+
- git config --global init.defaultBranch dev
|
|
23
|
+
script:
|
|
24
|
+
- cd modules/wbcore
|
|
25
|
+
- git init
|
|
26
|
+
- git add .
|
|
27
|
+
- git commit -m "initial commit"
|
|
28
|
+
- git remote add dokku dokku@example.stainly.com:example
|
|
29
|
+
- git push dokku $CI_COMMIT_REF_NAME --force
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.12.0
|
wbcore-2.2.4/Procfile
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import glob
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
|
|
4
|
+
from wbcore.release_notes.utils import parse_release_note
|
|
5
|
+
|
|
6
|
+
if __name__ == "__main__":
|
|
7
|
+
base_path = "../"
|
|
8
|
+
errors = {}
|
|
9
|
+
for release_note_folder in [
|
|
10
|
+
*glob.glob(f"{base_path}**/**/release_notes"),
|
|
11
|
+
"wbcore/release_notes/release_notes",
|
|
12
|
+
"wbcore/release_notes/frontend_release_notes",
|
|
13
|
+
]:
|
|
14
|
+
if release_note_folder != "../wbcore/wbcore/release_notes":
|
|
15
|
+
for release_note in Path(release_note_folder).iterdir():
|
|
16
|
+
if not release_note.is_dir():
|
|
17
|
+
with open(release_note, "r") as markdown_file:
|
|
18
|
+
try:
|
|
19
|
+
parse_release_note(markdown_file.read())
|
|
20
|
+
except Exception as e:
|
|
21
|
+
errors[str(release_note).replace("../", "")] = e
|
|
22
|
+
|
|
23
|
+
if errors:
|
|
24
|
+
raise ValueError(f"These release notes trigger an error {errors}")
|
|
25
|
+
else:
|
|
26
|
+
print("ok") # noqa: T201
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Buttons
|
|
2
|
+
|
|
3
|
+
There are different kinds of buttons that can be implemented through the wbcore, system buttons and custom buttons.
|
|
4
|
+
|
|
5
|
+
## System Buttons
|
|
6
|
+
|
|
7
|
+
System buttons are buttons reoccurring buttons with a default behaviour:
|
|
8
|
+
|
|
9
|
+
* save
|
|
10
|
+
* Saves an instance (`wbcore.enums.Button.SAVE`)
|
|
11
|
+
* saveandnew
|
|
12
|
+
* Saves an instance and opens a new instance (`wbcore.enums.Button.SAVE_AND_NEW`)
|
|
13
|
+
* saveandclose
|
|
14
|
+
* Saves an instance and closes the instance (`wbcore.enums.Button.SAVE_AND_CLOSE`)
|
|
15
|
+
* delete
|
|
16
|
+
* Deletes and instance (`wbcore.enums.Button.DELETE`)
|
|
17
|
+
* new
|
|
18
|
+
* Opens a new instance (`wbcore.enums.Button.NEW`)
|
|
19
|
+
* refresh
|
|
20
|
+
* Refreshes a list/instance (`wbcore.enums.Button.REFRESH`)
|
|
21
|
+
* reset
|
|
22
|
+
* Resets a new instance (`wbcore.enums.Button.RESET`)
|
|
23
|
+
|
|
24
|
+
## Custom Buttons
|
|
25
|
+
|
|
26
|
+
Custom buttons have a custom behaviour and can be attached to a list or an instance. There are four different custom buttons:
|
|
27
|
+
|
|
28
|
+
* Hyperlink
|
|
29
|
+
* Creates a hyperlink to an url (`wbcore.metadata.configs.buttons.HyperlinkButton`)
|
|
30
|
+
* Widget
|
|
31
|
+
* Opens a widget (`wbcore.metadata.configs.buttons.WidgetButton`)
|
|
32
|
+
* Dropdown
|
|
33
|
+
* Nests other buttons in a dropdown menu (`wbcore.metadata.configs.buttons.DropdownButton`)
|
|
34
|
+
* Action
|
|
35
|
+
* Creates a custom action (`wbcore.metadata.configs.buttons.ActionButton`)
|
|
36
|
+
|
|
37
|
+
The defaulf properties are as following:
|
|
38
|
+
|
|
39
|
+
| Property | Required | Value |
|
|
40
|
+
|----------|-------------------------|------------------------------------------|
|
|
41
|
+
| label | yes, if icon is None | A string that is rendered on the button |
|
|
42
|
+
| icon | yes, if label is None | A string that represents an icon class |
|
|
43
|
+
| title | no | A string that is used as the hover title |
|
|
44
|
+
| key | yes if endpoint is None | A string that matches against an url |
|
|
45
|
+
| endpoint | yes if key is None | A url |
|
|
46
|
+
|
|
47
|
+
## Remote Buttons
|
|
48
|
+
|
|
49
|
+
<Placeholder>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
The main concept of django wbcore is to leverage preflight OPTION requests and automatically assemble a frontend, based on the model, the serializer and the viewset.
|
|
2
|
+
|
|
3
|
+
### Frontend
|
|
4
|
+
|
|
5
|
+
The frontend is a react based desktop like application that populates itself with OPTION requests. Each OPTION requests describes the upcoming request:
|
|
6
|
+
|
|
7
|
+
* Is it a list or an instance?
|
|
8
|
+
* What fields are available?
|
|
9
|
+
* What filters are available?
|
|
10
|
+
* Can something be searched?
|
|
11
|
+
* Can something be ordered?
|
|
12
|
+
* Are there buttons that should open something?
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Display
|
|
2
|
+
|
|
3
|
+
## Legend
|
|
4
|
+
|
|
5
|
+
A table can have numerous legends, where each legend has a number of legend items.
|
|
6
|
+
|
|
7
|
+
### LegendItem
|
|
8
|
+
|
|
9
|
+
Each legend item has a label and an icon.
|
|
10
|
+
|
|
11
|
+
## Formatting
|
|
12
|
+
|
|
13
|
+
Table Formatting can be applied to the whole row, by altering the style or by adding an icon in front of the row, or it can be applied to a single cell. Applying formatting to a whole row happens through `RowFormatting` and formatting a single cell happens through `ColumnFormatting`.
|
|
14
|
+
|
|
15
|
+
### RowFormatting
|
|
16
|
+
|
|
17
|
+
Applying formatting to a whole row through `RowFormatting` is always conditional on the value of a column and accepts two arguments: column and conditions, where column is the name of the column and conditions is a list of conditions, which are either `RowIconCondition` or `RowStyleCondition` and can be used interchangable. Each condition is checked, and if it validates, then it is applied.
|
|
18
|
+
|
|
19
|
+
### RowIconCondition
|
|
20
|
+
|
|
21
|
+
The `RowIconCondition` accepts two arguments, icon and condition. Icon is a string that the frontend can use to determine the icon class and condition is a tuple that is checked against the column specified in the `RowFormatting`. (More on conditions below)
|
|
22
|
+
|
|
23
|
+
### RowStyleCondition
|
|
24
|
+
|
|
25
|
+
The `RowStyleCondition` works analogous to the `RowIconCondition`, except that it does not accept icon as an argument, but rather a style, which is a dictionairy, which holds css classes and their values. (*Note: If the Frontend is based on React, css class name are written like backgroundColor and not background_color*)
|
|
26
|
+
|
|
27
|
+
### Conditions
|
|
28
|
+
|
|
29
|
+
The condition is represented by a tuple of an operator and a value. For example: (">", 5) verifies that the value of the column has to be greater than 5. For convenience all operators are accessible through the `wbcore.enums.Operator` enum. The above example can be written as (Operator.GREATER.value, 5) with the enum. A list of all possible operator and how to use them are found below:
|
|
30
|
+
|
|
31
|
+
| Operator | Values | Explanation | Enum |
|
|
32
|
+
|----------|-------------------|--------------------------------------------------------------|------------------------|
|
|
33
|
+
| ∃ | True, False | Checks wether the column exists or not (e.g. is null or not) | Operator.EXISTS |
|
|
34
|
+
| > | [int, float] | Checks wether the column is greater than a value | Operator.GREATER |
|
|
35
|
+
| >= | [int, float] | Checks wether the column is greater or equal than a value | Operator.GREATER_EQUAL |
|
|
36
|
+
| < | [int, float] | Checks wether the column is less than a value | Operator.LESS |
|
|
37
|
+
| <= | [int, float] | Checks wether the column is less or equal than a value | Operator.LESS_EQUAL |
|
|
38
|
+
| == | [int, float, str] | Checks wether the column is equal to a value | Operator.EQUAL |
|
|
39
|
+
| != | [int, float, str] | Checks wether the column is unequal to a value | Operator.UNEQUAL |
|
|
40
|
+
|
|
41
|
+
### Example
|
|
42
|
+
|
|
43
|
+
The below Example does two things:
|
|
44
|
+
|
|
45
|
+
1. If `number` is greater than 5, then the row gets a star icon.
|
|
46
|
+
2. If `number` is greater than 10, then the row gets a blue background color.
|
|
47
|
+
|
|
48
|
+
```python
|
|
49
|
+
from wbcore.metadata.configs import display as dp
|
|
50
|
+
from wbcore.enums import Condition
|
|
51
|
+
|
|
52
|
+
LIST_DISPLAY = [
|
|
53
|
+
formatting=[
|
|
54
|
+
dp.RowFormatting(
|
|
55
|
+
column="number",
|
|
56
|
+
conditions=[
|
|
57
|
+
dp.RowIconCondition(
|
|
58
|
+
icon="icon-star", condition=(Condition.GREATER.value, 5)
|
|
59
|
+
),
|
|
60
|
+
dp.RowStyleCondition(
|
|
61
|
+
style={"backgroundColor": "rgb(13, 28, 189)",
|
|
62
|
+
condition=(Condition.GREATER.value, 10)
|
|
63
|
+
)
|
|
64
|
+
]
|
|
65
|
+
)
|
|
66
|
+
]
|
|
67
|
+
]
|
|
68
|
+
```
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
Filters are based on Django-Filters and can mostly be autogenerated from a simple dictionary when using a `wbcore.viewsets.ModelViewSet`. All customized parameters are taken from the attached model and are applied to the filter. When the completely autogenerated filter is not sufficient, a custom `wbcore.filters.FilterSet` can be provided to overwrite filters or set custom filters.
|
|
2
|
+
|
|
3
|
+
### Setup
|
|
4
|
+
|
|
5
|
+
Below are two examples on how to set up a rudimentary filter, where both examples yield exactly the same result: Two filters for the field `first_field`, one which filters for exact values, and one which filters for similar values (`SQL: LIKE`).
|
|
6
|
+
|
|
7
|
+
```python
|
|
8
|
+
from wbcore.filters import DjangoFilterBackend
|
|
9
|
+
from wbcore.viewsets import ModelViewSet
|
|
10
|
+
|
|
11
|
+
class XYZModelViewSet(ModelViewSet):
|
|
12
|
+
filter_backends = [DjangoFilterBackend]
|
|
13
|
+
filterset_fields = {
|
|
14
|
+
"first_field": ["exact", "icontains"]
|
|
15
|
+
}
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
```python
|
|
19
|
+
from wbcore.filters import DjangoFilterBackend, FilterSet
|
|
20
|
+
from wbcore.viewsets import ModelViewSet
|
|
21
|
+
|
|
22
|
+
class XYZFilterSet(FilterSet):
|
|
23
|
+
class Meta:
|
|
24
|
+
model = XYZ
|
|
25
|
+
fields = {
|
|
26
|
+
"first_field": ["exact", "icontains"]
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
class XYZModelViewSet(ModelViewSet):
|
|
30
|
+
filter_backends = [DjangoFilterBackend]
|
|
31
|
+
filter_class = XYZFilterSet
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Lookup Expressions
|
|
35
|
+
|
|
36
|
+
!!! warning
|
|
37
|
+
Not all field lookups from [Django](https://docs.djangoproject.com/en/3.0/ref/models/querysets/#field-lookups) are supported yet.
|
|
38
|
+
|
|
39
|
+
The different lookup expressions that are currently available are:
|
|
40
|
+
|
|
41
|
+
* `exact`: An exact match against the filtered value (for Text, Number, Dropdown). In SQL `=`
|
|
42
|
+
* `icontains`: A loose match against the filtered value (for Text, Number). In SQL `LIKE`
|
|
43
|
+
* `gt`: Greater than a value (for Number). In SQL `>`
|
|
44
|
+
* `gte`: Greater than or equal to a value (for Number). In SQL `>=`
|
|
45
|
+
* `lt`: Less than a value (for Number). In SQL `<`
|
|
46
|
+
* `lte`: Less than or equal to a value (for Number). In SQL `<=`
|
|
47
|
+
|
|
48
|
+
### Custom Filter
|
|
49
|
+
|
|
50
|
+
As mentioned previously, custom filters are specified in a `wbcore.filters.FilterSet`. There are two different reasons for custom filters:
|
|
51
|
+
|
|
52
|
+
1. Overwrite the filter method behind a filter
|
|
53
|
+
2. Specify filters that are not part of a field of the model
|
|
54
|
+
|
|
55
|
+
When implementing a custom filter, it is really important that this filter is specified the same as the other filters, as a dictionairy.
|
|
56
|
+
|
|
57
|
+
``` python
|
|
58
|
+
from wbcore.filters import FilterSet, BooleanFilter
|
|
59
|
+
|
|
60
|
+
class XYZFilterSet(FilterSet):
|
|
61
|
+
non_field_filter = BooleanFilter(label="Non Field", method="get_non_field_filter")
|
|
62
|
+
|
|
63
|
+
def get_non_field_filter(self, queryset, name, value):
|
|
64
|
+
if value:
|
|
65
|
+
return qs.filter(some_field=True)
|
|
66
|
+
return qs
|
|
67
|
+
|
|
68
|
+
class Meta:
|
|
69
|
+
model = XYZ
|
|
70
|
+
fields = {
|
|
71
|
+
"non_field_filter": ["exact"]
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Any dedicated model filter fields can take an extra `filter_params` argument (either as a dictionary or a callable) which returns the
|
|
77
|
+
dictionary to url encode. Let's recall that the resulting endpoint (and its potential query parameters) are returned to the frontend
|
|
78
|
+
and will be used by it to fetch the filter field representation.
|
|
79
|
+
|
|
80
|
+
Example:
|
|
81
|
+
|
|
82
|
+
```python
|
|
83
|
+
def get_filter_params(request, view):
|
|
84
|
+
return {}
|
|
85
|
+
|
|
86
|
+
class XXXFilter(wb_filters.FilterSet):
|
|
87
|
+
dedicated_filter = wb_filters.ModelChoiceFilter(
|
|
88
|
+
label="A filter",
|
|
89
|
+
queryset=Model.objects.all(),
|
|
90
|
+
endpoint=Model.get_representation_endpoint(),
|
|
91
|
+
value_key=Model.get_representation_value_key(),
|
|
92
|
+
label_key=Model.get_representation_label_key(),
|
|
93
|
+
filter_params=get_filter_params # or {'key': value},
|
|
94
|
+
)
|
|
95
|
+
```
|
|
96
|
+
### Remote Filters
|
|
97
|
+
|
|
98
|
+
In case a viewset needs to define extra filters proposed by another module (dependency), remote filters can be defined using a received to `add_filters`
|
|
99
|
+
|
|
100
|
+
Example: We have a module XXX and another YYY. YYY introduces a new field (e.g ForeignKey) on XXX and as such, we would like to define
|
|
101
|
+
a new filter on XXX viewset (from within YYY module) to avoid circular module dependency from XXX and YYY.
|
|
102
|
+
|
|
103
|
+
Do not forget to register/import the file where the signals receiver are defined
|
|
104
|
+
```python
|
|
105
|
+
# YYY.filters.signals
|
|
106
|
+
from wbcore.signals.filters import (
|
|
107
|
+
add_filters
|
|
108
|
+
)
|
|
109
|
+
from wbcore import filters as wb_filters
|
|
110
|
+
from django.dispatch import receiver
|
|
111
|
+
from xxx.filters import XXXFilter
|
|
112
|
+
|
|
113
|
+
@receiver(add_filters, sender=CompanyFilter)
|
|
114
|
+
def add_xxx_filter(sender, *args, **kwargs):
|
|
115
|
+
def method_x(queryset, name, value):
|
|
116
|
+
if value:
|
|
117
|
+
# do something with the field introduced by the module YYY on XXX
|
|
118
|
+
return queryset # Do something
|
|
119
|
+
return queryset
|
|
120
|
+
return {
|
|
121
|
+
'xxx_filter': wb_filters.BooleanFilter(
|
|
122
|
+
field_name="fitler_name", # important!
|
|
123
|
+
label="XXX filter",
|
|
124
|
+
method=method_x
|
|
125
|
+
)
|
|
126
|
+
}
|
|
127
|
+
```
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
### Installation
|
|
2
|
+
|
|
3
|
+
To install wbcore use pip:
|
|
4
|
+
|
|
5
|
+
pip install wbcore
|
|
6
|
+
|
|
7
|
+
Afterwards add wbcore to the project by:
|
|
8
|
+
|
|
9
|
+
```python
|
|
10
|
+
INSTALLED_APPS = [
|
|
11
|
+
...
|
|
12
|
+
"wbcore",
|
|
13
|
+
...
|
|
14
|
+
]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Install Development Environment
|
|
18
|
+
|
|
19
|
+
#### Cloning the repository
|
|
20
|
+
|
|
21
|
+
git clone git@github.com:intellineers/wbcore.git
|
|
22
|
+
|
|
23
|
+
#### Installing system dependencies
|
|
24
|
+
|
|
25
|
+
* [Poetry](https://python-poetry.org/docs/#installation)
|
|
26
|
+
* For pypi depenendency management / package building
|
|
27
|
+
* [Docker](https://docs.docker.com/get-docker/)
|
|
28
|
+
* For running external containerized services
|
|
29
|
+
* [Docker-Compose](https://docs.docker.com/compose/install/)
|
|
30
|
+
* For orchestrating containerized services
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
#### Setup environment variables
|
|
34
|
+
|
|
35
|
+
The url for the database has to be stored as a environment variable:
|
|
36
|
+
|
|
37
|
+
export DATABASE_URL=postgres://root:root@localhost:5432/wbcore
|
|
38
|
+
|
|
39
|
+
!!! hint
|
|
40
|
+
The management of environment variables is not automatically handled in poetry (opposed to pipenv), therefore you as a developer has to take care of this.
|
|
41
|
+
**Tip:** Use [direnv](https://direnv.net/) and store the environment variables in a `.envrc` file.
|
|
42
|
+
|
|
43
|
+
#### Setup initial system
|
|
44
|
+
|
|
45
|
+
In order to make the system work the following steps have to be taken:
|
|
46
|
+
|
|
47
|
+
1. Get the latest version of the repository
|
|
48
|
+
1. Install all dependencies through poetry
|
|
49
|
+
1. Startup docker containers which run external services (Postgres, Redis, S3 Minio)
|
|
50
|
+
* Postgres and S3 Minio are setup to have persistant data stored in the folder `~/DockerVolumes/`
|
|
51
|
+
1. Create a database
|
|
52
|
+
1. Migrate the database
|
|
53
|
+
1. **Optionally** insert fixtures into the database
|
|
54
|
+
|
|
55
|
+
To ease and speedup the process of setting up the development environment the last 6 steps can be done automatically by running the following script
|
|
56
|
+
|
|
57
|
+
./scripts/startup
|
|
58
|
+
|
|
59
|
+
### Useful Scripts
|
|
60
|
+
|
|
61
|
+
#### Development Server
|
|
62
|
+
|
|
63
|
+
Two development servers are available, one for the web-worker:
|
|
64
|
+
|
|
65
|
+
./scripts/dev-server
|
|
66
|
+
|
|
67
|
+
The other one is a celery consumer:
|
|
68
|
+
|
|
69
|
+
./scripts/celery
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
#### Testing
|
|
73
|
+
|
|
74
|
+
In order to run all tests with pytest:
|
|
75
|
+
|
|
76
|
+
./scripts/pytest
|
|
77
|
+
|
|
78
|
+
If you want to run all tests without the pytest-cache:
|
|
79
|
+
|
|
80
|
+
./scripts/pytest_full
|
|
81
|
+
|
|
82
|
+
If you want to deploy changes, you need to make sure that running the tests in an isolated environment with tox do not fail:
|
|
83
|
+
|
|
84
|
+
poetry run tox
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
#### Documentation
|
|
88
|
+
|
|
89
|
+
The documentation is available locally under `http://localhost:8000`:
|
|
90
|
+
|
|
91
|
+
./scripts/docs
|
|
92
|
+
|
|
93
|
+
#### Interactive Shell and Notebooks
|
|
94
|
+
|
|
95
|
+
The shell with a preloaded django environment is available under:
|
|
96
|
+
|
|
97
|
+
./scripts/django_shell
|
|
98
|
+
|
|
99
|
+
The same django environment is also available as a notebook:
|
|
100
|
+
|
|
101
|
+
./scripts/notebook
|
|
102
|
+
|
|
103
|
+
#### Database (PSQL)
|
|
104
|
+
|
|
105
|
+
Quick access to a psql shell:
|
|
106
|
+
|
|
107
|
+
./scripts/psql
|
|
108
|
+
|
|
109
|
+
#### Misc.
|
|
110
|
+
|
|
111
|
+
Apply isort, then black to all files:
|
|
112
|
+
|
|
113
|
+
./scripts/format
|
|
114
|
+
|
|
115
|
+
### Formatting Rules
|
|
116
|
+
|
|
117
|
+
The whole codebase has to be formatted with isort and black with the following parameters:
|
|
118
|
+
|
|
119
|
+
isort -m 3 -w 128 --tc .
|
|
120
|
+
black --line-length 128 .
|
|
121
|
+
|
|
122
|
+
This is automatically done by calling the formatting script (See [Misc.](#misc))
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
Django WBCore is a framework to streamline the development of django enterprise applications by providing means to create a desktop like experience in the browser without having to program a single line of HTML.
|
|
2
|
+
|
|
3
|
+
The main concept is to leverage pre-request `OPTIONS` requests where all information about the upcoming request are provided.
|
|
4
|
+
These information can afterwards be used in order to build a frontend automatically.
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
The wbcore has the capability to return menus by adding menus to a registry. By default there is a `wbcore.menus.default_registry` where menus can be added which in return can be retrieved through the `wbcore:menu` endpoint.
|
|
2
|
+
|
|
3
|
+
Usually the menu of an app is added to the `__init__.py` of the root directory of each app, but it could be placed at any location that is loaded upon starting the server.
|
|
4
|
+
|
|
5
|
+
# Structure
|
|
6
|
+
|
|
7
|
+
blockdiag {
|
|
8
|
+
registry [label="MenuRegistry"];
|
|
9
|
+
menu1 [label="Menu"];
|
|
10
|
+
menu2 [label="Menu"];
|
|
11
|
+
menu3 [label="Menu"];
|
|
12
|
+
menuitem1 [label="MenuItem"];
|
|
13
|
+
menuitem2 [label="MenuItem"];
|
|
14
|
+
menuitem3 [label="MenuItem"];
|
|
15
|
+
menuitem4 [label="MenuItem"];
|
|
16
|
+
menuitem5 [label="MenuItem"];
|
|
17
|
+
menuitem6 [label="MenuItem"];
|
|
18
|
+
itempermission [label="ItemPermission"];
|
|
19
|
+
registry -> menu1;
|
|
20
|
+
registry -> menu2;
|
|
21
|
+
menu1 -> menuitem1;
|
|
22
|
+
menu1 -> menuitem2;
|
|
23
|
+
menu1 -> menu3;
|
|
24
|
+
menu2 -> menuitem3;
|
|
25
|
+
menu2 -> menuitem4;
|
|
26
|
+
menuitem3 -> itempermission;
|
|
27
|
+
menu3 -> menuitem5;
|
|
28
|
+
menu3 -> menuitem6;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
# MenuRegistry
|
|
32
|
+
|
|
33
|
+
Each registry represents one menu group. A registry can register a menu through the `register(menu)` method.
|
|
34
|
+
|
|
35
|
+
# Menu
|
|
36
|
+
|
|
37
|
+
Each menu represents one menu that contains several items or nested menus.
|
|
38
|
+
|
|
39
|
+
# MenuItem
|
|
40
|
+
|
|
41
|
+
Each menu item represents one actionable item inside of a menu. The action that is run depends on the endpoint of the menu item.
|
|
42
|
+
|
|
43
|
+
For each menu item a create button can be defined. This is useful if a user should be able to create an instance of a model from the menu (e.g. open a form to create the instance). For this, another menu item has to be attached to the field `add`.
|
|
44
|
+
|
|
45
|
+
# ItemPermission
|
|
46
|
+
|
|
47
|
+
Each menu item can have an ItemPermission to determine if the current user that retrieves the menu can retrieve the menuitem.
|
|
48
|
+
|
|
49
|
+
To determine whether the current user can retrieve the menuitem has to fields that can be evaluated:
|
|
50
|
+
|
|
51
|
+
1. `permissions`: A list of django permissions that are checked against the current user. Returns `True` if all permissions are valid for the current user, otherwise `False`
|
|
52
|
+
2. `method`: A callable that has to accepts the request as a parameter. The callable has to return `True` or `False`
|
|
53
|
+
|
|
54
|
+
If the current user is a `superuser` the ItemPermission always returns `True`.
|
|
55
|
+
|
|
56
|
+
# Example
|
|
57
|
+
|
|
58
|
+
blockdiag {
|
|
59
|
+
registry [label="MenuRegistry"];
|
|
60
|
+
menu1 [label="Menu1"];
|
|
61
|
+
menu2 [label="Menu2"];
|
|
62
|
+
menuitem1 [label="MenuItem1"];
|
|
63
|
+
menuitem2 [label="MenuItem2"];
|
|
64
|
+
menuitem3 [label="MenuItem3"];
|
|
65
|
+
menuitem4 [label="MenuItem4"];
|
|
66
|
+
menuitem4_add [label="Add MenuItem4"];
|
|
67
|
+
itempermission [label="ItemPermission"];
|
|
68
|
+
registry -> menu1;
|
|
69
|
+
registry -> menu2;
|
|
70
|
+
menu1 -> menuitem1;
|
|
71
|
+
menu1 -> menuitem2;
|
|
72
|
+
menu2 -> menuitem3;
|
|
73
|
+
menu2 -> menuitem4;
|
|
74
|
+
menuitem4 -> menuitem4_add;
|
|
75
|
+
menuitem3 -> itempermission;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
```python
|
|
79
|
+
# __init__.py
|
|
80
|
+
from wbcore.menus import default_registry, Menu, MenuItem, ItemPermissions
|
|
81
|
+
|
|
82
|
+
default_registry.register(
|
|
83
|
+
Menu(label="Menu1", items=[
|
|
84
|
+
MenuItem(label="MenuItem1", endpoint="app:endpoint1"),
|
|
85
|
+
MenuItem(label="MenuItem2", endpoint="app:endpoint2"),
|
|
86
|
+
])
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
default_registry.register(
|
|
90
|
+
Menu(label="Menu2", items=[
|
|
91
|
+
MenuItem(
|
|
92
|
+
label="MenuItem3",
|
|
93
|
+
endpoint="app:endpoint3",
|
|
94
|
+
permission=ItemPermission(
|
|
95
|
+
method=lambda request: request.user.is_staff
|
|
96
|
+
)
|
|
97
|
+
),
|
|
98
|
+
MenuItem(
|
|
99
|
+
label="MenuItem4",
|
|
100
|
+
endpoint="app:endpoint4",
|
|
101
|
+
add=MenuItem(label="Add MenuItem4", endpoint="app:endpoint4")
|
|
102
|
+
),
|
|
103
|
+
])
|
|
104
|
+
)
|
|
105
|
+
```
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Concept
|
|
2
|
+
|
|
3
|
+
The metadata is the heart of workbench. It is the glue between the backend and the frontend and what allows the developer to streamline the development and UI-Generation. In its essence the metadata takes configurations from python classes and parses them through the `OPTIONS` request in a predetermined format in order to tell the frontend what to display and how. Currently the following configurations are supported:
|
|
4
|
+
|
|
5
|
+
- [`fields`](configs/fields.md): The fields with their properties
|
|
6
|
+
- [`filter_fields`](configs/filter_fields.md): The available filters with their properties
|
|
7
|
+
- [`ordering_fields`](configs/ordering_fields.md): Which field can be ordered/sorted
|
|
8
|
+
- [`search_fields`](configs/search_fields.md): The fields that are used for searching
|
|
9
|
+
- [`pagination`](configs/pagination.md): The pagination method that is used
|
|
10
|
+
- [`identifiers`](configs/identifiers.md): How to uniquely identify something
|
|
11
|
+
- [`type`](configs/type.md): What is displayed (chart, form, table, ...)
|
|
12
|
+
- [`titles`](configs/titles.md): What title should be displayed
|
|
13
|
+
- [`endpoints`](configs/endpoints.md): What endpoint should be used for what action
|
|
14
|
+
- [`buttons`](configs/buttons.md): What additional button should be displayed where
|
|
15
|
+
- [`display`](configs/display.md): How to display the data
|
|
16
|
+
- [`primary_key`](configs/primary_key.md): What is the primary key
|
|
17
|
+
|
|
18
|
+
The general workflow mostly looks like this:
|
|
19
|
+
|
|
20
|
+
```mermaid
|
|
21
|
+
sequenceDiagram
|
|
22
|
+
Frontend->>Backend: OPTIONS
|
|
23
|
+
Note right of Backend: Assemble all metadata
|
|
24
|
+
Backend->>Frontend: Response[OPTIONS]
|
|
25
|
+
Note left of Frontend: Parse metadata and build UI
|
|
26
|
+
Frontend->>Backend: GET
|
|
27
|
+
Note right of Backend: DB Access and build response
|
|
28
|
+
Backend->>Frontend: Response[GET]
|
|
29
|
+
Note left of Frontend: Display data into UI
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Since the instructions are rather generic and agnostic, the UI can be build on any device, such as a browser or a mobile app.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Endpoints
|
|
2
|
+
|
|
3
|
+
The endpoint config class is in charge of defining some actions on the current resource. For example an `instance_endpoint` when looking at a list will make it possible to open an item in a list.
|
|
4
|
+
|
|
5
|
+
The default behaviour is:
|
|
6
|
+
- `instance_endpoint`:
|
|
7
|
+
- In a list: Make it possible to open/change an item
|
|
8
|
+
- In a form: Make it possible to change an item
|
|
9
|
+
- `list_endpoint`:
|
|
10
|
+
- ???
|
|
11
|
+
- `delete_endpoint`:
|
|
12
|
+
- Make it possible to delete an item
|
|
13
|
+
- `create_endpoint`:
|
|
14
|
+
- Make it possible to create a new item
|
|
15
|
+
|
|
16
|
+
Usually, the developer does not have to customize this class, as it auto-generates itself with the help of some parameters:
|
|
17
|
+
|
|
18
|
+
1. For each endpoint it checks if the user has the necessary permissions, e.g. `create_endpoint` -> `<app_label>.add_<model>`
|
|
19
|
+
2. It gets the default endpoint from the model class: `Model.get_endpoint_basename()`
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## Customizing the config class
|
|
23
|
+
|
|
24
|
+
If, for some reason, the developer does not to override and customize his mechanism, it can be done by subclassing `wbcore.metadata.configs.endpoints.EndpointViewConfig` and set it as an attribute on your view `endpoint_config_class = MyEndpointViewConfig`.
|
|
25
|
+
|
|
26
|
+
=== "endpoints.py"
|
|
27
|
+
|
|
28
|
+
``` py
|
|
29
|
+
from wbcore.metadata.configs.endpoints import EndpointViewConfig
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class MyEndpointViewConfig(EndpointViewConfig):
|
|
33
|
+
|
|
34
|
+
# Override this method to customize the base endpoint
|
|
35
|
+
# that is used by all other methods
|
|
36
|
+
def get_endpoint(self, **kwargs):
|
|
37
|
+
return "some-endpoint"
|
|
38
|
+
|
|
39
|
+
# Override this method to customize only the instance
|
|
40
|
+
# endpoint
|
|
41
|
+
def get_instance_endpoint(self, **kwargs):
|
|
42
|
+
return "some-instance-endpoint"
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
=== "viewsets.py"
|
|
47
|
+
|
|
48
|
+
``` py
|
|
49
|
+
from wbcore import viewsets
|
|
50
|
+
from endpoints import MyEndpointViewConfig
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class MyModelViewSet(viewsets.ModelViewSet):
|
|
54
|
+
endpoint_config_class = MyEndpointViewConfig
|
|
55
|
+
|
|
56
|
+
```
|