2014-11-14 15:51:18 +00:00
|
|
|
from ..utils.python import AttrDict
|
|
|
|
|
|
|
|
|
2014-07-28 17:28:00 +00:00
|
|
|
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
|
|
|
|
|
|
|
|
|
2014-07-28 17:28:00 +00:00
|
|
|
services = Register()
|
|
|
|
# TODO rename to something else
|
|
|
|
accounts = Register()
|
2015-05-05 19:42:55 +00:00
|
|
|
administration = Register()
|