From dc5de6f0a29b4e9a808fc134a5b3a49efe8b6e76 Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Mon, 26 Feb 2024 16:13:19 +0100 Subject: [PATCH] added migration and try/catch to apps.py --- cookbook/apps.py | 14 +++++--- cookbook/migrations/0215_connectorconfig.py | 36 +++++++++++++++++++++ 2 files changed, 45 insertions(+), 5 deletions(-) create mode 100644 cookbook/migrations/0215_connectorconfig.py diff --git a/cookbook/apps.py b/cookbook/apps.py index 3bd8d847..63b8296e 100644 --- a/cookbook/apps.py +++ b/cookbook/apps.py @@ -16,11 +16,15 @@ class CookbookConfig(AppConfig): import cookbook.signals # noqa if not settings.DISABLE_EXTERNAL_CONNECTORS: - from cookbook.connectors.connector_manager import ConnectorManager # Needs to be here to prevent loading race condition of oauth2 modules in models.py - handler = ConnectorManager() - post_save.connect(handler, dispatch_uid="connector_manager") - post_delete.connect(handler, dispatch_uid="connector_manager") - + try: + from cookbook.connectors.connector_manager import ConnectorManager # Needs to be here to prevent loading race condition of oauth2 modules in models.py + handler = ConnectorManager() + post_save.connect(handler, dispatch_uid="connector_manager") + post_delete.connect(handler, dispatch_uid="connector_manager") + except Exception as e: + traceback.print_exc() + print('Failed to initialize connectors') + pass # if not settings.DISABLE_TREE_FIX_STARTUP: # # when starting up run fix_tree to: # # a) make sure that nodes are sorted when switching between sort modes diff --git a/cookbook/migrations/0215_connectorconfig.py b/cookbook/migrations/0215_connectorconfig.py new file mode 100644 index 00000000..eaee40b2 --- /dev/null +++ b/cookbook/migrations/0215_connectorconfig.py @@ -0,0 +1,36 @@ +# Generated by Django 4.2.10 on 2024-02-26 14:41 + +import cookbook.models +from django.conf import settings +import django.core.validators +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('cookbook', '0214_cooklog_comment_cooklog_updated_at_and_more'), + ] + + operations = [ + migrations.CreateModel( + name='ConnectorConfig', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=128, validators=[django.core.validators.MinLengthValidator(1)])), + ('type', models.CharField(choices=[('HomeAssistant', 'HomeAssistant')], default='HomeAssistant', max_length=128)), + ('enabled', models.BooleanField(default=True, help_text='Is Connector Enabled')), + ('on_shopping_list_entry_created_enabled', models.BooleanField(default=False)), + ('on_shopping_list_entry_updated_enabled', models.BooleanField(default=False)), + ('on_shopping_list_entry_deleted_enabled', models.BooleanField(default=False)), + ('url', models.URLField(blank=True, null=True)), + ('token', models.CharField(blank=True, max_length=512, null=True)), + ('todo_entity', models.CharField(blank=True, max_length=128, null=True)), + ('created_by', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL)), + ('space', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cookbook.space')), + ], + bases=(models.Model, cookbook.models.PermissionModelMixin), + ), + ]