Add support for registering bootstrapped models from registry

This commit is contained in:
Roberto Rosario
2012-09-24 17:35:07 -04:00
parent 7f7ba8924d
commit 46fb8dfc10
2 changed files with 21 additions and 14 deletions

View File

@@ -8,16 +8,19 @@ from django.utils.importlib import import_module
from .models import App from .models import App
###app.set_backup([ModelBackup()])
for app_name in settings.INSTALLED_APPS: def register_apps():
App.register(app_name) for app_name in settings.INSTALLED_APPS:
try: App.register(app_name)
post_init = import_module('%s.post_init' % app_name) try:
except ImportError: post_init = import_module('%s.post_init' % app_name)
pass except ImportError:
else: pass
if post_init: else:
for name, value in inspect.getmembers(post_init): if post_init:
if hasattr(value, '__call__') and name.startswith('init'): for name, value in inspect.getmembers(post_init):
value() if hasattr(value, '__call__') and name.startswith('init'):
value()
register_apps()

View File

@@ -19,7 +19,7 @@ from project_setup.api import register_setup
from project_tools.api import register_tool from project_tools.api import register_tool
from statistics.api import register_statistics from statistics.api import register_statistics
from navigation.api import register_top_menu from navigation.api import register_top_menu
from bootstrap.classes import Cleanup from bootstrap.classes import Cleanup, BootstrapModel
#from .classes import AppBackup, StorageModuleBase, Setting #from .classes import AppBackup, StorageModuleBase, Setting
@@ -103,7 +103,11 @@ class App(TranslatableLabelMixin, LiveObjectMixin, models.Model):
logger.debug('cleanup_function: %s' % cleanup_function) logger.debug('cleanup_function: %s' % cleanup_function)
Cleanup(cleanup_function) Cleanup(cleanup_function)
for bootstrap_model in getattr(registration, 'bootstrap_models', []):
logger.debug('bootstrap_model: %s' % bootstrap_model)
BootstrapModel(model_name=bootstrap_model, app_name=app_name)
#def set_backup(self, *args, **kwargs): #def set_backup(self, *args, **kwargs):
# return AppBackup(self, *args, **kwargs) # return AppBackup(self, *args, **kwargs)