django-microsys 2.2.4__tar.gz → 2.2.6__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.
- django_microsys-2.2.6/LICENSE +105 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/PKG-INFO +4 -3
- {django_microsys-2.2.4 → django_microsys-2.2.6}/django_microsys.egg-info/PKG-INFO +4 -3
- {django_microsys-2.2.4 → django_microsys-2.2.6}/django_microsys.egg-info/SOURCES.txt +22 -3
- {django_microsys-2.2.4 → django_microsys-2.2.6}/django_microsys.egg-info/requires.txt +1 -0
- django_microsys-2.2.6/microsys/VERSION +1 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/constants.py +13 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/context_processors.py +25 -8
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/fonts.py +49 -10
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/forms.py +147 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/management/commands/microsys_settings.py +1 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/middleware.py +12 -41
- django_microsys-2.2.6/microsys/migrations/0007_systemsettings_prevent_multiple_active_sessions.py +18 -0
- django_microsys-2.2.6/microsys/migrations/0008_user_device_presence_history.py +85 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/models.py +92 -0
- django_microsys-2.2.6/microsys/session_history.py +319 -0
- django_microsys-2.2.6/microsys/static/microsys/fonts/Alexandria-Bold.woff2 +0 -0
- django_microsys-2.2.6/microsys/static/microsys/fonts/Alexandria-Medium.woff2 +0 -0
- django_microsys-2.2.6/microsys/static/microsys/fonts/Alexandria-Regular.woff2 +0 -0
- django_microsys-2.2.6/microsys/static/microsys/fonts/Changa-Bold.woff2 +0 -0
- django_microsys-2.2.6/microsys/static/microsys/fonts/Changa-Medium.woff2 +0 -0
- django_microsys-2.2.6/microsys/static/microsys/fonts/Changa-Regular.woff2 +0 -0
- django_microsys-2.2.6/microsys/static/microsys/fonts/MarkaziText-Bold.woff2 +0 -0
- django_microsys-2.2.6/microsys/static/microsys/fonts/MarkaziText-Medium.woff2 +0 -0
- django_microsys-2.2.6/microsys/static/microsys/fonts/MarkaziText-Regular.woff2 +0 -0
- django_microsys-2.2.6/microsys/static/microsys/fonts/ReadexPro-Bold.woff2 +0 -0
- django_microsys-2.2.6/microsys/static/microsys/fonts/ReadexPro-Medium.woff2 +0 -0
- django_microsys-2.2.6/microsys/static/microsys/fonts/ReadexPro-Regular.woff2 +0 -0
- django_microsys-2.2.6/microsys/static/microsys/helpers/tooltip/css/main.css +87 -0
- django_microsys-2.2.6/microsys/static/microsys/helpers/tooltip/js/main.js +265 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/main/css/buttons.css +40 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/main/css/main.css +19 -18
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/main/css/options.css +19 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/main/css/system_setup.css +20 -5
- django_microsys-2.2.6/microsys/static/microsys/main/css/template_cleanup.css +267 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/main/css/titlebar.css +37 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/main/js/base_head.js +4 -1
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/main/js/options.js +4 -2
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/main/js/system_setup.js +25 -2
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/sidebar/css/main.css +0 -8
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/sidebar/js/main.js +7 -13
- django_microsys-2.2.6/microsys/static/microsys/themes/css/aether.css +1310 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/themes/css/dark.css +33 -9
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/themes/css/gothic.css +23 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/themes/css/mono.css +3 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/themes/css/neon.css +26 -0
- django_microsys-2.2.6/microsys/static/microsys/themes/css/prism.css +1195 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/themes/css/retro.css +18 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/tutorial/css/main.css +3 -3
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/tutorial/js/main.js +3 -3
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/users/css/permissions.css +5 -2
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/users/css/user_hub.css +0 -45
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/users/js/manage_users.js +75 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/users/js/profile_2fa.js +46 -3
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/users/js/user_hub.js +1 -32
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/tables.py +11 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/base.html +13 -9
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/includes/titlebar.html +2 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/sidebar/main.html +2 -2
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/users/manage_users.html +1 -1
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/users/profile.html +25 -5
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/users/user_detail_modal.html +8 -0
- django_microsys-2.2.6/microsys/templates/microsys/users/user_report_modal.html +202 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/themes.py +14 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/translations.py +178 -0
- django_microsys-2.2.6/microsys/trust.py +210 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/urls.py +3 -0
- django_microsys-2.2.6/microsys/user_reports.py +282 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/utils.py +37 -2
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/views/__init__.py +3 -1
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/views/profile.py +84 -32
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/views/twofa.py +17 -102
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/views/users.py +42 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/pyproject.toml +3 -2
- django_microsys-2.2.4/LICENSE +0 -65
- django_microsys-2.2.4/microsys/VERSION +0 -1
- django_microsys-2.2.4/microsys/static/microsys/fonts/shabwa-bold.woff2 +0 -0
- django_microsys-2.2.4/microsys/static/microsys/fonts/shabwa-medium.woff2 +0 -0
- django_microsys-2.2.4/microsys/static/microsys/fonts/shabwa-regular.woff2 +0 -0
- django_microsys-2.2.4/microsys/static/microsys/main/css/template_cleanup.css +0 -121
- {django_microsys-2.2.4 → django_microsys-2.2.6}/MANIFEST.in +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/README.md +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/django_microsys.egg-info/dependency_links.txt +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/django_microsys.egg-info/entry_points.txt +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/django_microsys.egg-info/top_level.txt +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/__init__.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/__main__.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/admin.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/api.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/apps.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/cli.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/discovery.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/fetcher.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/filters.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/formats/__init__.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/formats/ar/__init__.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/formats/ar/formats.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/formats/en/__init__.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/formats/en/formats.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/guards.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/management/commands/__init__.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/management/commands/microsys_check.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/management/commands/microsys_setup.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/management/commands/migrator.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/management/commands/seed_activity_log.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/managers.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/migrations/0001_initial.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/migrations/0002_public_registration.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/migrations/0003_public_root_split.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/migrations/0004_client_ip_and_trusted_devices.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/migrations/0005_systemsettings_allow_user_font_override_and_more.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/migrations/0006_systemsettings_navbar_config.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/migrations/__init__.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/navbar.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/patches.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/registration.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/app/README.md.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/app/__init__.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/app/apps.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/app/filters.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/app/forms.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/app/migrations/__init__.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/app/models.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/app/tables.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/app/templates/example_record_confirm_delete.html.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/app/templates/example_record_detail.html.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/app/templates/example_record_form.html.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/app/templates/example_record_list.html.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/app/tests/__init__.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/app/tests/test_app.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/app/translations.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/app/urls.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/app/views.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/.nginx/nginx.conf.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/.secrets/.env.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/Dockerfile.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/README.md.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/compose.dev.yml.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/compose.yml.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/dockerignore.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/docs/README.md.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/entrypoint.sh.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/gitattributes.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/gitignore.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/gunicorn.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/manage.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/package/__init__.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/package/asgi.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/package/celery.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/package/settings.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/package/urls.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/package/wsgi.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/req.txt.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/start.ps1.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/start.sh.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/tests/__init__.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/tests/test_scaffold.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/scaffold_templates/project/tools/smtp_relay.py.tmpl +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/signals.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/bootstrap/bootstrap-icons.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/bootstrap/bootstrap-icons.woff +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/bootstrap/bootstrap-icons.woff2 +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/bootstrap/bootstrap.bundle.min.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/bootstrap/bootstrap.bundle.min.js.map +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/bootstrap/bootstrap.min.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/bootstrap/bootstrap.min.css.map +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/bootstrap/bootstrap.rtl.min.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/bootstrap/bootstrap.rtl.min.css.map +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/favicon.ico +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/img/base_logo.webp +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/img/default_profile.webp +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/img/login_logo.webp +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/accessibility/css/main.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/accessibility/js/main.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/activitylog/js/main.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/fonts/TwemojiCountryFlags.woff2 +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/fonts/cairo-bold.woff2 +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/fonts/cairo-medium.woff2 +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/fonts/cairo-regular.woff2 +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/forms/css/file_field.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/forms/css/form_actions.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/forms/css/form_fields.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/forms/js/file_field.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/forms/js/filter_form.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/helpers/autofill/js/main.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/helpers/context_menu/css/main.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/helpers/context_menu/js/main.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/helpers/context_menu/js/section_manager.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/helpers/dynamic_modal/js/main.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/helpers/prevent_double_submit.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/helpers/scan_link/js/main.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/helpers/scan_link/js/scan_button.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/helpers/wizard/js/main.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/language/css/main.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/language/js/main.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/language/js/translations.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/main/css/dropdowns.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/main/css/index_cards.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/main/css/navbar.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/main/css/pagination.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/main/css/selectors.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/main/css/tables.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/main/js/base_runtime.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/main/js/navbar.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/main/js/selectors.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/main/js/tables.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/sections/js/manage_sections.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/sidebar/css/reorder.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/sidebar/css/theme_picker.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/sidebar/js/preload.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/sidebar/js/reorder.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/sidebar/js/theme_picker.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/themes/css/blue.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/themes/css/gold.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/themes/css/green.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/themes/css/light.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/themes/css/red.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/themes/js/main.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/tutorial/js/driver.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/users/css/login.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/users/css/profile.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/users/js/login.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/users/js/permissions.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/users/js/profile_image_widget.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/microsys/users/js/twofa_verify.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/vanillajs-datepicker/datepicker-bs5.min.css +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/static/vanillajs-datepicker/datepicker.min.js +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/bootstrap5/layout/field_file.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/2fa/verify.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/activitylog/activity_log.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/activitylog/activity_log_detail_modal.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/form_base.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/forms/assets_head.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/forms/assets_scripts.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/forms/crispy_file_field.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/forms/file_input.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/forms/filter_assets_head.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/forms/filter_assets_scripts.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/helpers/dynamic_modal.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/helpers/dynamic_modal_combined.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/helpers/dynamic_modal_detail.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/helpers/dynamic_modal_form.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/helpers/dynamic_modal_list.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/helpers/micro_context_menu.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/includes/font_previews.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/includes/font_settings_matrix.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/includes/language_catalog_editor.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/includes/language_fonts_editor.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/includes/language_previews.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/includes/navbar.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/includes/navbar_builder.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/includes/navbar_mode_previews.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/includes/options.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/includes/sidebar_builder.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/includes/sidebar_density_previews.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/includes/sidebar_items.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/includes/system_names_editor.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/includes/system_setup.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/includes/table_density_previews.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/includes/theme_previews.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/includes/theme_settings_matrix.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/includes/translation_matrix_editor.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/includes/tutorial.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/list_base.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/registration/pending.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/scopes/scope_actions.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/scopes/scope_form.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/scopes/scope_manager.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/sections/manage_sections.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/sections/subsection_select.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/sidebar/auto.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/sidebar/extra_groups.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/sidebar/tree.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/tables/table.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/users/grouped_permissions.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/users/profile_image_widget.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/microsys/users/user_hub.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/registration/email/verify_registration.txt +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/registration/login.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/registration/register.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/registration/register_sent.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templates/registration/register_verify.html +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templatetags/__init__.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templatetags/microsys_tags.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templatetags/microsys_translation.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/templatetags/sidebar_tags.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/views/activitylog.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/views/general.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/views/registration.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/views/scopes.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/views/sections.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/views/sidebar.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/microsys/widgets.py +0 -0
- {django_microsys-2.2.4 → django_microsys-2.2.6}/setup.cfg +0 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# MIT License
|
|
2
|
+
|
|
3
|
+
Software: django-microsys
|
|
4
|
+
Repository: https://github.com/debeski/django-microsys
|
|
5
|
+
Author: DeBeski (micro)
|
|
6
|
+
Website: https://github.com/debeski
|
|
7
|
+
Copyright (c) 2026
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
12
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
13
|
+
in the Software without restriction, including without limitation the rights
|
|
14
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
15
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
16
|
+
furnished to do so, subject to the following conditions:
|
|
17
|
+
|
|
18
|
+
The above copyright notice and this permission notice shall be included in all
|
|
19
|
+
copies or substantial portions of the Software.
|
|
20
|
+
|
|
21
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
22
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
23
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
24
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
25
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
26
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
27
|
+
SOFTWARE.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
# THIRD-PARTY NOTICES
|
|
32
|
+
|
|
33
|
+
This Software utilizes the following open-source packages. By using this Software,
|
|
34
|
+
you agree to the terms of their respective licenses:
|
|
35
|
+
|
|
36
|
+
## Python Runtime Dependencies
|
|
37
|
+
The following Python dependencies are declared by the main `django-microsys`
|
|
38
|
+
package and should retain their upstream license notices.
|
|
39
|
+
|
|
40
|
+
- Python (3.9+) - Python Software Foundation License (PSFL)
|
|
41
|
+
https://docs.python.org/3/license.html
|
|
42
|
+
- Django (5.1+) - BSD-3-Clause License
|
|
43
|
+
https://github.com/django/django/blob/main/LICENSE
|
|
44
|
+
- django-crispy-forms - MIT License
|
|
45
|
+
https://github.com/django-crispy-forms/django-crispy-forms/blob/main/LICENSE.txt
|
|
46
|
+
- crispy-bootstrap5 - MIT License
|
|
47
|
+
https://github.com/django-crispy-forms/crispy-bootstrap5/blob/main/LICENSE
|
|
48
|
+
- django-tables2 - BSD-2-Clause License
|
|
49
|
+
https://github.com/jieter/django-tables2/blob/master/LICENSE
|
|
50
|
+
- django-filter - BSD-3-Clause License
|
|
51
|
+
https://github.com/carltongibson/django-filter/blob/main/LICENSE
|
|
52
|
+
- psutil - BSD-3-Clause License
|
|
53
|
+
https://github.com/giampaolo/psutil/blob/master/LICENSE
|
|
54
|
+
- pyotp - MIT License
|
|
55
|
+
https://github.com/pyauth/pyotp/blob/main/LICENSE
|
|
56
|
+
- qrcode - BSD-3-Clause License
|
|
57
|
+
https://github.com/lincolnloop/python-qrcode/blob/main/LICENSE
|
|
58
|
+
- Pillow - HPND (Pillow License)
|
|
59
|
+
https://github.com/python-pillow/Pillow/blob/main/LICENSE
|
|
60
|
+
- Babel - BSD-3-Clause License
|
|
61
|
+
https://github.com/python-babel/babel/blob/master/LICENSE
|
|
62
|
+
- cryptography - Apache-2.0 OR BSD-3-Clause
|
|
63
|
+
https://github.com/pyca/cryptography/blob/main/LICENSE
|
|
64
|
+
- openpyxl - MIT License
|
|
65
|
+
https://foss.heptapod.net/openpyxl/openpyxl/-/blob/branch/default/LICENCE.rst
|
|
66
|
+
|
|
67
|
+
## Bundled Frontend Assets
|
|
68
|
+
The following third-party frontend assets are bundled under `microsys/static/`
|
|
69
|
+
and should also retain their upstream license notices.
|
|
70
|
+
|
|
71
|
+
- Bootstrap - MIT License
|
|
72
|
+
https://github.com/twbs/bootstrap/blob/main/LICENSE
|
|
73
|
+
- Bootstrap Icons - MIT License
|
|
74
|
+
https://github.com/twbs/icons/blob/main/LICENSE
|
|
75
|
+
- vanillajs-datepicker - MIT License
|
|
76
|
+
https://github.com/mymth/vanillajs-datepicker/blob/master/LICENSE
|
|
77
|
+
- Driver.js - MIT License
|
|
78
|
+
https://github.com/nilbuild/driver.js/blob/master/license
|
|
79
|
+
|
|
80
|
+
## Bundled Font Assets
|
|
81
|
+
The following bundled font assets should also retain their upstream license
|
|
82
|
+
notices and attribution where applicable.
|
|
83
|
+
|
|
84
|
+
- Cairo - SIL Open Font License 1.1
|
|
85
|
+
https://github.com/Gue3bara/Cairo/blob/main/OFL.txt
|
|
86
|
+
- Alexandria - SIL Open Font License 1.1
|
|
87
|
+
https://github.com/Gue3bara/Alexandria/blob/master/OFL.txt
|
|
88
|
+
- Changa - SIL Open Font License 1.1
|
|
89
|
+
https://github.com/google/fonts/blob/main/ofl/changa/OFL.txt
|
|
90
|
+
- Markazi Text - SIL Open Font License 1.1
|
|
91
|
+
https://github.com/google/fonts/blob/main/ofl/markazitext/OFL.txt
|
|
92
|
+
- Readex Pro - SIL Open Font License 1.1
|
|
93
|
+
https://github.com/google/fonts/blob/main/ofl/readexpro/OFL.txt
|
|
94
|
+
- Twemoji Country Flags / Twemoji Mozilla derived asset
|
|
95
|
+
Upstream references:
|
|
96
|
+
https://github.com/PasteBar/country-flags-emoji-polyfill-builder
|
|
97
|
+
https://github.com/mozilla/twemoji-colr/blob/master/LICENSE.md
|
|
98
|
+
https://github.com/twitter/twemoji/blob/master/LICENSE-GRAPHICS
|
|
99
|
+
|
|
100
|
+
## Optional Package Note
|
|
101
|
+
This repository also includes optional packages under `optional_packages/`
|
|
102
|
+
with their own dependency trees, such as `django-microsys-sso` and
|
|
103
|
+
`django-microsys-sso-client`. If you distribute those optional packages, keep
|
|
104
|
+
their dependency notices aligned with their own `pyproject.toml` metadata as
|
|
105
|
+
well.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: django_microsys
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.6
|
|
4
4
|
Summary: Django microSYS (System Integration Service) - Multilingual Django Starter Pack, Packed with Features.
|
|
5
5
|
Author-email: DeBeski <debeski1@gmail.com>
|
|
6
|
-
License:
|
|
6
|
+
License: MIT
|
|
7
7
|
Project-URL: Homepage, https://github.com/debeski/django-microsys
|
|
8
8
|
Keywords: django,microsys,permissions,authentication
|
|
9
9
|
Classifier: Framework :: Django
|
|
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.13
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.14
|
|
17
|
-
Classifier: License ::
|
|
17
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
18
18
|
Classifier: Operating System :: OS Independent
|
|
19
19
|
Requires-Python: >=3.11
|
|
20
20
|
Description-Content-Type: text/markdown
|
|
@@ -30,6 +30,7 @@ Requires-Dist: qrcode>=8.2
|
|
|
30
30
|
Requires-Dist: pillow>=11.0
|
|
31
31
|
Requires-Dist: babel>=2.1
|
|
32
32
|
Requires-Dist: cryptography>=42.0
|
|
33
|
+
Requires-Dist: openpyxl>=3.1
|
|
33
34
|
Provides-Extra: sso
|
|
34
35
|
Requires-Dist: django-microsys-sso>=0.1.0; extra == "sso"
|
|
35
36
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: django-microsys
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.6
|
|
4
4
|
Summary: Django microSYS (System Integration Service) - Multilingual Django Starter Pack, Packed with Features.
|
|
5
5
|
Author-email: DeBeski <debeski1@gmail.com>
|
|
6
|
-
License:
|
|
6
|
+
License: MIT
|
|
7
7
|
Project-URL: Homepage, https://github.com/debeski/django-microsys
|
|
8
8
|
Keywords: django,microsys,permissions,authentication
|
|
9
9
|
Classifier: Framework :: Django
|
|
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.13
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.14
|
|
17
|
-
Classifier: License ::
|
|
17
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
18
18
|
Classifier: Operating System :: OS Independent
|
|
19
19
|
Requires-Python: >=3.11
|
|
20
20
|
Description-Content-Type: text/markdown
|
|
@@ -30,6 +30,7 @@ Requires-Dist: qrcode>=8.2
|
|
|
30
30
|
Requires-Dist: pillow>=11.0
|
|
31
31
|
Requires-Dist: babel>=2.1
|
|
32
32
|
Requires-Dist: cryptography>=42.0
|
|
33
|
+
Requires-Dist: openpyxl>=3.1
|
|
33
34
|
Provides-Extra: sso
|
|
34
35
|
Requires-Dist: django-microsys-sso>=0.1.0; extra == "sso"
|
|
35
36
|
|
|
@@ -30,11 +30,14 @@ microsys/navbar.py
|
|
|
30
30
|
microsys/patches.py
|
|
31
31
|
microsys/registration.py
|
|
32
32
|
microsys/scaffold.py
|
|
33
|
+
microsys/session_history.py
|
|
33
34
|
microsys/signals.py
|
|
34
35
|
microsys/tables.py
|
|
35
36
|
microsys/themes.py
|
|
36
37
|
microsys/translations.py
|
|
38
|
+
microsys/trust.py
|
|
37
39
|
microsys/urls.py
|
|
40
|
+
microsys/user_reports.py
|
|
38
41
|
microsys/utils.py
|
|
39
42
|
microsys/widgets.py
|
|
40
43
|
microsys/formats/__init__.py
|
|
@@ -54,6 +57,8 @@ microsys/migrations/0003_public_root_split.py
|
|
|
54
57
|
microsys/migrations/0004_client_ip_and_trusted_devices.py
|
|
55
58
|
microsys/migrations/0005_systemsettings_allow_user_font_override_and_more.py
|
|
56
59
|
microsys/migrations/0006_systemsettings_navbar_config.py
|
|
60
|
+
microsys/migrations/0007_systemsettings_prevent_multiple_active_sessions.py
|
|
61
|
+
microsys/migrations/0008_user_device_presence_history.py
|
|
57
62
|
microsys/migrations/__init__.py
|
|
58
63
|
microsys/scaffold_templates/app/README.md.tmpl
|
|
59
64
|
microsys/scaffold_templates/app/__init__.py.tmpl
|
|
@@ -113,13 +118,22 @@ microsys/static/img/login_logo.webp
|
|
|
113
118
|
microsys/static/microsys/accessibility/css/main.css
|
|
114
119
|
microsys/static/microsys/accessibility/js/main.js
|
|
115
120
|
microsys/static/microsys/activitylog/js/main.js
|
|
121
|
+
microsys/static/microsys/fonts/Alexandria-Bold.woff2
|
|
122
|
+
microsys/static/microsys/fonts/Alexandria-Medium.woff2
|
|
123
|
+
microsys/static/microsys/fonts/Alexandria-Regular.woff2
|
|
124
|
+
microsys/static/microsys/fonts/Changa-Bold.woff2
|
|
125
|
+
microsys/static/microsys/fonts/Changa-Medium.woff2
|
|
126
|
+
microsys/static/microsys/fonts/Changa-Regular.woff2
|
|
127
|
+
microsys/static/microsys/fonts/MarkaziText-Bold.woff2
|
|
128
|
+
microsys/static/microsys/fonts/MarkaziText-Medium.woff2
|
|
129
|
+
microsys/static/microsys/fonts/MarkaziText-Regular.woff2
|
|
130
|
+
microsys/static/microsys/fonts/ReadexPro-Bold.woff2
|
|
131
|
+
microsys/static/microsys/fonts/ReadexPro-Medium.woff2
|
|
132
|
+
microsys/static/microsys/fonts/ReadexPro-Regular.woff2
|
|
116
133
|
microsys/static/microsys/fonts/TwemojiCountryFlags.woff2
|
|
117
134
|
microsys/static/microsys/fonts/cairo-bold.woff2
|
|
118
135
|
microsys/static/microsys/fonts/cairo-medium.woff2
|
|
119
136
|
microsys/static/microsys/fonts/cairo-regular.woff2
|
|
120
|
-
microsys/static/microsys/fonts/shabwa-bold.woff2
|
|
121
|
-
microsys/static/microsys/fonts/shabwa-medium.woff2
|
|
122
|
-
microsys/static/microsys/fonts/shabwa-regular.woff2
|
|
123
137
|
microsys/static/microsys/forms/css/file_field.css
|
|
124
138
|
microsys/static/microsys/forms/css/form_actions.css
|
|
125
139
|
microsys/static/microsys/forms/css/form_fields.css
|
|
@@ -133,6 +147,8 @@ microsys/static/microsys/helpers/context_menu/js/section_manager.js
|
|
|
133
147
|
microsys/static/microsys/helpers/dynamic_modal/js/main.js
|
|
134
148
|
microsys/static/microsys/helpers/scan_link/js/main.js
|
|
135
149
|
microsys/static/microsys/helpers/scan_link/js/scan_button.js
|
|
150
|
+
microsys/static/microsys/helpers/tooltip/css/main.css
|
|
151
|
+
microsys/static/microsys/helpers/tooltip/js/main.js
|
|
136
152
|
microsys/static/microsys/helpers/wizard/js/main.js
|
|
137
153
|
microsys/static/microsys/language/css/main.css
|
|
138
154
|
microsys/static/microsys/language/js/main.js
|
|
@@ -164,6 +180,7 @@ microsys/static/microsys/sidebar/js/main.js
|
|
|
164
180
|
microsys/static/microsys/sidebar/js/preload.js
|
|
165
181
|
microsys/static/microsys/sidebar/js/reorder.js
|
|
166
182
|
microsys/static/microsys/sidebar/js/theme_picker.js
|
|
183
|
+
microsys/static/microsys/themes/css/aether.css
|
|
167
184
|
microsys/static/microsys/themes/css/blue.css
|
|
168
185
|
microsys/static/microsys/themes/css/dark.css
|
|
169
186
|
microsys/static/microsys/themes/css/gold.css
|
|
@@ -172,6 +189,7 @@ microsys/static/microsys/themes/css/green.css
|
|
|
172
189
|
microsys/static/microsys/themes/css/light.css
|
|
173
190
|
microsys/static/microsys/themes/css/mono.css
|
|
174
191
|
microsys/static/microsys/themes/css/neon.css
|
|
192
|
+
microsys/static/microsys/themes/css/prism.css
|
|
175
193
|
microsys/static/microsys/themes/css/red.css
|
|
176
194
|
microsys/static/microsys/themes/css/retro.css
|
|
177
195
|
microsys/static/microsys/themes/js/main.js
|
|
@@ -247,6 +265,7 @@ microsys/templates/microsys/users/profile.html
|
|
|
247
265
|
microsys/templates/microsys/users/profile_image_widget.html
|
|
248
266
|
microsys/templates/microsys/users/user_detail_modal.html
|
|
249
267
|
microsys/templates/microsys/users/user_hub.html
|
|
268
|
+
microsys/templates/microsys/users/user_report_modal.html
|
|
250
269
|
microsys/templates/registration/login.html
|
|
251
270
|
microsys/templates/registration/register.html
|
|
252
271
|
microsys/templates/registration/register_sent.html
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.2.6
|
|
@@ -56,6 +56,19 @@ TITLEBAR_SURFACE_CHOICES = (
|
|
|
56
56
|
('glass', 'Glass'),
|
|
57
57
|
)
|
|
58
58
|
TITLEBAR_SURFACE_VALUES = {value for value, _label in TITLEBAR_SURFACE_CHOICES}
|
|
59
|
+
TITLEBAR_LOGO_TREATMENT_CHOICES = (
|
|
60
|
+
('none', 'None'),
|
|
61
|
+
('plate', 'Plate'),
|
|
62
|
+
('halo', 'Halo'),
|
|
63
|
+
('contrast', 'Contrast'),
|
|
64
|
+
)
|
|
65
|
+
TITLEBAR_LOGO_TREATMENT_VALUES = {value for value, _label in TITLEBAR_LOGO_TREATMENT_CHOICES}
|
|
66
|
+
TITLEBAR_LOGO_TREATMENT_SHAPE_CHOICES = (
|
|
67
|
+
('soft', 'Soft'),
|
|
68
|
+
('pill', 'Pill'),
|
|
69
|
+
('square', 'Square'),
|
|
70
|
+
)
|
|
71
|
+
TITLEBAR_LOGO_TREATMENT_SHAPE_VALUES = {value for value, _label in TITLEBAR_LOGO_TREATMENT_SHAPE_CHOICES}
|
|
59
72
|
|
|
60
73
|
REGISTRATION_ACTIVATION_AUTO_LOGIN = 'auto_login_after_verify'
|
|
61
74
|
REGISTRATION_ACTIVATION_PENDING_APPROVAL = 'verified_pending_approval'
|
|
@@ -356,10 +356,22 @@ def microsys_context(request):
|
|
|
356
356
|
context['titlebar'],
|
|
357
357
|
)
|
|
358
358
|
# 8. Font Resolution
|
|
359
|
-
from .fonts import
|
|
359
|
+
from .fonts import (
|
|
360
|
+
DEFAULT_FONT_SLUG,
|
|
361
|
+
generate_font_face_css,
|
|
362
|
+
get_builtin_fonts,
|
|
363
|
+
get_default_font_family,
|
|
364
|
+
get_font_by_slug,
|
|
365
|
+
)
|
|
366
|
+
builtin_fonts = get_builtin_fonts()
|
|
360
367
|
allowed_fonts = normalize_allowed_fonts(final_config.get('allowed_fonts'))
|
|
361
368
|
context['font_face_css'] = generate_font_face_css(allowed_fonts)
|
|
362
|
-
context['
|
|
369
|
+
context['default_font_family'] = get_default_font_family()
|
|
370
|
+
context['font_families'] = {
|
|
371
|
+
font['slug']: font['family']
|
|
372
|
+
for font in builtin_fonts
|
|
373
|
+
}
|
|
374
|
+
context['option_fonts'] = [font for font in builtin_fonts if font.get('slug') in allowed_fonts]
|
|
363
375
|
|
|
364
376
|
allow_user_font_override = bool(final_config.get('allow_user_font_override', True))
|
|
365
377
|
default_fonts_by_lang = final_config.get('default_fonts', {})
|
|
@@ -372,16 +384,21 @@ def microsys_context(request):
|
|
|
372
384
|
active_font = default_fonts_by_lang.get(current_lang)
|
|
373
385
|
|
|
374
386
|
if not active_font or active_font not in allowed_fonts:
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
# Ensure active_font is valid, else hard fallback to shabwa
|
|
387
|
+
active_font = DEFAULT_FONT_SLUG
|
|
388
|
+
|
|
389
|
+
# Ensure active_font is valid, else hard fallback to cairo
|
|
379
390
|
if active_font not in allowed_fonts and allowed_fonts:
|
|
380
391
|
active_font = allowed_fonts[0]
|
|
381
392
|
elif not active_font:
|
|
382
|
-
active_font =
|
|
383
|
-
|
|
393
|
+
active_font = DEFAULT_FONT_SLUG
|
|
394
|
+
|
|
395
|
+
active_font_config = get_font_by_slug(active_font) if active_font else None
|
|
384
396
|
context['active_font'] = active_font
|
|
397
|
+
context['active_font_family'] = (
|
|
398
|
+
active_font_config.get('family')
|
|
399
|
+
if active_font_config
|
|
400
|
+
else get_default_font_family()
|
|
401
|
+
)
|
|
385
402
|
context['font_picker_enabled'] = bool(allow_user_font_override and len(allowed_fonts) > 1)
|
|
386
403
|
|
|
387
404
|
return context
|
|
@@ -2,18 +2,11 @@ from functools import lru_cache
|
|
|
2
2
|
from django.conf import settings
|
|
3
3
|
from django.templatetags.static import static
|
|
4
4
|
|
|
5
|
+
DEFAULT_FONT_SLUG = 'cairo'
|
|
6
|
+
DEFAULT_FONT_FAMILY = 'Cairo'
|
|
7
|
+
|
|
5
8
|
# Registry for built-in fonts provided by the package
|
|
6
9
|
_FONT_REGISTRY = (
|
|
7
|
-
{
|
|
8
|
-
'slug': 'shabwa',
|
|
9
|
-
'family': 'Shabwa',
|
|
10
|
-
'label': 'Shabwa',
|
|
11
|
-
'variants': [
|
|
12
|
-
{'weight': 400, 'path': 'microsys/fonts/shabwa-regular.woff2'},
|
|
13
|
-
{'weight': 600, 'path': 'microsys/fonts/shabwa-medium.woff2'},
|
|
14
|
-
{'weight': 800, 'path': 'microsys/fonts/shabwa-bold.woff2'},
|
|
15
|
-
]
|
|
16
|
-
},
|
|
17
10
|
{
|
|
18
11
|
'slug': 'cairo',
|
|
19
12
|
'family': 'Cairo',
|
|
@@ -24,6 +17,46 @@ _FONT_REGISTRY = (
|
|
|
24
17
|
{'weight': 800, 'path': 'microsys/fonts/cairo-bold.woff2'},
|
|
25
18
|
]
|
|
26
19
|
},
|
|
20
|
+
{
|
|
21
|
+
'slug': 'changa',
|
|
22
|
+
'family': 'Changa',
|
|
23
|
+
'label': 'Changa',
|
|
24
|
+
'variants': [
|
|
25
|
+
{'weight': 400, 'path': 'microsys/fonts/Changa-Regular.woff2'},
|
|
26
|
+
{'weight': 600, 'path': 'microsys/fonts/Changa-Medium.woff2'},
|
|
27
|
+
{'weight': 800, 'path': 'microsys/fonts/Changa-Bold.woff2'},
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
# {
|
|
31
|
+
# 'slug': 'markazi_text',
|
|
32
|
+
# 'family': 'Markazi Text',
|
|
33
|
+
# 'label': 'Markazi Text',
|
|
34
|
+
# 'variants': [
|
|
35
|
+
# {'weight': 400, 'path': 'microsys/fonts/MarkaziText-Regular.woff2'},
|
|
36
|
+
# {'weight': 600, 'path': 'microsys/fonts/MarkaziText-Medium.woff2'},
|
|
37
|
+
# {'weight': 800, 'path': 'microsys/fonts/MarkaziText-Bold.woff2'},
|
|
38
|
+
# ]
|
|
39
|
+
# },
|
|
40
|
+
{
|
|
41
|
+
'slug': 'readex_pro',
|
|
42
|
+
'family': 'Readex Pro',
|
|
43
|
+
'label': 'Readex Pro',
|
|
44
|
+
'variants': [
|
|
45
|
+
{'weight': 400, 'path': 'microsys/fonts/ReadexPro-Regular.woff2'},
|
|
46
|
+
{'weight': 600, 'path': 'microsys/fonts/ReadexPro-Medium.woff2'},
|
|
47
|
+
{'weight': 800, 'path': 'microsys/fonts/ReadexPro-Bold.woff2'},
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
'slug': 'alexandria',
|
|
52
|
+
'family': 'Alexandria',
|
|
53
|
+
'label': 'Alexandria',
|
|
54
|
+
'variants': [
|
|
55
|
+
{'weight': 400, 'path': 'microsys/fonts/Alexandria-Regular.woff2'},
|
|
56
|
+
{'weight': 600, 'path': 'microsys/fonts/Alexandria-Medium.woff2'},
|
|
57
|
+
{'weight': 800, 'path': 'microsys/fonts/Alexandria-Bold.woff2'},
|
|
58
|
+
]
|
|
59
|
+
},
|
|
27
60
|
)
|
|
28
61
|
|
|
29
62
|
@lru_cache(maxsize=1)
|
|
@@ -42,6 +75,12 @@ def get_font_by_slug(slug):
|
|
|
42
75
|
return font
|
|
43
76
|
return None
|
|
44
77
|
|
|
78
|
+
def get_default_font_family():
|
|
79
|
+
default_font = get_font_by_slug(DEFAULT_FONT_SLUG)
|
|
80
|
+
if default_font:
|
|
81
|
+
return default_font['family']
|
|
82
|
+
return DEFAULT_FONT_FAMILY
|
|
83
|
+
|
|
45
84
|
def generate_font_face_css(allowed_fonts=None):
|
|
46
85
|
"""
|
|
47
86
|
Generates the @font-face CSS block for all allowed fonts.
|