49 lines
2.1 KiB
Python
49 lines
2.1 KiB
Python
import traceback
|
|
|
|
from django.apps import AppConfig
|
|
from django.conf import settings
|
|
from django.db import OperationalError, ProgrammingError
|
|
from django.db.models.signals import post_save, post_delete
|
|
from django_scopes import scopes_disabled
|
|
|
|
from recipes.settings import DEBUG
|
|
|
|
|
|
class CookbookConfig(AppConfig):
|
|
name = 'cookbook'
|
|
|
|
def ready(self):
|
|
import cookbook.signals # noqa
|
|
|
|
if not settings.DISABLE_EXTERNAL_CONNECTORS:
|
|
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
|
|
# # b) fix problems, if any, with tree consistency
|
|
# with scopes_disabled():
|
|
# try:
|
|
# from cookbook.models import Food, Keyword
|
|
# Keyword.fix_tree(fix_paths=True)
|
|
# Food.fix_tree(fix_paths=True)
|
|
# except OperationalError:
|
|
# if DEBUG:
|
|
# traceback.print_exc()
|
|
# pass # if model does not exist there is no need to fix it
|
|
# except ProgrammingError:
|
|
# if DEBUG:
|
|
# traceback.print_exc()
|
|
# pass # if migration has not been run database cannot be fixed yet
|
|
# except Exception:
|
|
# if DEBUG:
|
|
# traceback.print_exc()
|
|
# pass # dont break startup just because fix could not run, need to investigate cases when this happens
|