django-orchestra/orchestra/core/__init__.py

34 lines
946 B
Python
Raw Normal View History

2014-11-14 15:51:18 +00:00
from ..utils.python import AttrDict
class Register(object):
def __init__(self):
self._registry = {}
2014-05-08 16:59:35 +00:00
2014-07-17 16:09:24 +00:00
def __contains__(self, key):
return key in self._registry
2014-11-14 15:51:18 +00:00
def __getitem__(self, key):
return self._registry[key]
2014-05-08 16:59:35 +00:00
def register(self, model, **kwargs):
if model in self._registry:
raise KeyError("%s already registered" % str(model))
plural = kwargs.get('verbose_name_plural', model._meta.verbose_name_plural)
2014-11-14 15:51:18 +00:00
self._registry[model] = AttrDict(**{
2014-05-08 16:59:35 +00:00
'verbose_name': kwargs.get('verbose_name', model._meta.verbose_name),
'verbose_name_plural': plural,
2014-11-18 13:59:21 +00:00
'menu': kwargs.get('menu', True),
2014-11-14 15:51:18 +00:00
})
2014-05-08 16:59:35 +00:00
2014-11-14 15:51:18 +00:00
def get(self, *args):
if args:
2015-04-04 17:44:07 +00:00
return self._registry[args[0]]
2014-05-08 16:59:35 +00:00
return self._registry
services = Register()
# TODO rename to something else
accounts = Register()
2015-05-05 19:42:55 +00:00
administration = Register()