From c8124e9fc297f248bf8c2c88b81975c2d05355d7 Mon Sep 17 00:00:00 2001 From: JensDiemer Date: Sun, 25 Oct 2020 16:20:00 +0100 Subject: [PATCH 1/3] Bugfix init: move Database access from checks into post-migate signal --- inventory/apps.py | 1 + inventory/checks.py | 26 +------------------------- inventory/signals.py | 15 +++++++++++++++ 3 files changed, 17 insertions(+), 25 deletions(-) create mode 100644 inventory/signals.py diff --git a/inventory/apps.py b/inventory/apps.py index 2ee050d..8f8b12f 100644 --- a/inventory/apps.py +++ b/inventory/apps.py @@ -16,3 +16,4 @@ class InventoryConfig(AppConfig): def ready(self): import inventory.checks # noqa + import inventory.signals # noqa diff --git a/inventory/checks.py b/inventory/checks.py index cd0ffc0..5d83730 100644 --- a/inventory/checks.py +++ b/inventory/checks.py @@ -1,8 +1,6 @@ from pathlib import Path -from django.core.checks import Error, Warning, register - -from inventory.permissions import get_or_create_normal_user_group, setup_normal_user_permissions +from django.core.checks import Error, register @register() @@ -17,25 +15,3 @@ def inventory_checks(app_configs, **kwargs): ) ) return errors - - -@register() -def inventory_user_groups(app_configs, **kwargs): - """ - Setup PyInventory user groups - """ - warnings = [] - - normal_user_group, created = get_or_create_normal_user_group() - if created: - warnings.append( - Warning(f'User group {normal_user_group} created') - ) - - updated = setup_normal_user_permissions(normal_user_group) - if updated: - warnings.append( - Warning(f'Update permissions for {normal_user_group}') - ) - - return warnings diff --git a/inventory/signals.py b/inventory/signals.py new file mode 100644 index 0000000..a397192 --- /dev/null +++ b/inventory/signals.py @@ -0,0 +1,15 @@ +from django.db.models.signals import post_migrate +from django.dispatch import receiver + +from inventory.permissions import get_or_create_normal_user_group, setup_normal_user_permissions + + +@receiver(post_migrate) +def post_migrate_callback(sender, **kwargs): + normal_user_group, created = get_or_create_normal_user_group() + if created: + print(f'User group {normal_user_group} created') + + updated = setup_normal_user_permissions(normal_user_group) + if updated: + print(f'Update permissions for {normal_user_group}') From c7ae715b96a58d517987268dd865db40c478276f Mon Sep 17 00:00:00 2001 From: JensDiemer Date: Sun, 25 Oct 2020 16:26:05 +0100 Subject: [PATCH 2/3] write start information to stderr for e.g.: `./manage.sh dumpdata>dumpdata.json` ;) --- inventory_project/__init__.py | 2 +- inventory_project/settings.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/inventory_project/__init__.py b/inventory_project/__init__.py index 89b1719..a9a2faa 100644 --- a/inventory_project/__init__.py +++ b/inventory_project/__init__.py @@ -11,4 +11,4 @@ from inventory import __version__ if __name__ == 'inventory_project': if '--version' not in sys.argv: - print(f'PyInventory v{__version__} (Django v{django_version})') + print(f'PyInventory v{__version__} (Django v{django_version})', file=sys.stderr) diff --git a/inventory_project/settings.py b/inventory_project/settings.py index d44fb6c..e4e7935 100644 --- a/inventory_project/settings.py +++ b/inventory_project/settings.py @@ -4,12 +4,13 @@ import logging import os as __os +import sys as __sys from pathlib import Path as __Path from django.utils.translation import ugettext_lazy as _ -print('Use settings:', __file__) +print(f'Use settings: {__file__!r}', file=__sys.stderr) # Build paths inside the project: @@ -117,7 +118,7 @@ else: 'timeout': 30, } } -print(f'Use Database: {DATABASES["default"]["NAME"]!r}') +print(f'Use Database: {DATABASES["default"]["NAME"]!r}', file=__sys.stderr) # _____________________________________________________________________________ # Internationalization From a6f7b9f239c34f701e51bb8c9330195fadcf31fd Mon Sep 17 00:00:00 2001 From: JensDiemer Date: Sun, 25 Oct 2020 16:28:48 +0100 Subject: [PATCH 3/3] Fix https://github.com/radiac/django-tagulous/issues/101 --- inventory_project/settings.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/inventory_project/settings.py b/inventory_project/settings.py index e4e7935..1ced0e8 100644 --- a/inventory_project/settings.py +++ b/inventory_project/settings.py @@ -217,6 +217,13 @@ TAGULOUS_LABEL_MAX_LENGTH = TAGULOUS_NAME_MAX_LENGTH TAGULOUS_SLUG_TRUNCATE_UNIQUE = 5 TAGULOUS_SLUG_ALLOW_UNICODE = False +SERIALIZATION_MODULES = { + 'xml': 'tagulous.serializers.xml_serializer', + 'json': 'tagulous.serializers.json', + 'python': 'tagulous.serializers.python', + 'yaml': 'tagulous.serializers.pyyaml', +} + # _____________________________________________________________________________ # cut 'pathname' in log output