diff options
author | SVN-Git Migration <python-modules-team@lists.alioth.debian.org> | 2015-10-08 11:51:49 -0700 |
---|---|---|
committer | SVN-Git Migration <python-modules-team@lists.alioth.debian.org> | 2015-10-08 11:51:49 -0700 |
commit | 29425a36c920e9b54e5860429ef3e3ce639fb155 (patch) | |
tree | edea6a643fec30f40ca1a05be55ae401fcc344de /tagging/__init__.py | |
parent | 99fde585a39d7867d2c2257b74a7cc441bc9f2a5 (diff) | |
download | python-django-tagging-29425a36c920e9b54e5860429ef3e3ce639fb155.tar python-django-tagging-29425a36c920e9b54e5860429ef3e3ce639fb155.tar.gz |
Imported Upstream version 0.3.1upstream/0.3.1
Diffstat (limited to 'tagging/__init__.py')
-rw-r--r-- | tagging/__init__.py | 48 |
1 files changed, 40 insertions, 8 deletions
diff --git a/tagging/__init__.py b/tagging/__init__.py index 9241c20..03d6c03 100644 --- a/tagging/__init__.py +++ b/tagging/__init__.py @@ -1,8 +1,20 @@ -from django.utils.translation import ugettext as _ +VERSION = (0, 3, 1, "final", 0) -from tagging.managers import ModelTaggedItemManager, TagDescriptor -VERSION = (0, 3, 'pre') + +def get_version(): + if VERSION[3] == "final": + return "%s.%s.%s" % (VERSION[0], VERSION[1], VERSION[2]) + elif VERSION[3] == "dev": + if VERSION[2] == 0: + return "%s.%s.%s%s" % (VERSION[0], VERSION[1], VERSION[3], VERSION[4]) + return "%s.%s.%s.%s%s" % (VERSION[0], VERSION[1], VERSION[2], VERSION[3], VERSION[4]) + else: + return "%s.%s.%s%s" % (VERSION[0], VERSION[1], VERSION[2], VERSION[3]) + + +__version__ = get_version() + class AlreadyRegistered(Exception): """ @@ -10,21 +22,41 @@ class AlreadyRegistered(Exception): """ pass + registry = [] + def register(model, tag_descriptor_attr='tags', tagged_item_manager_attr='tagged'): """ Sets the given model class up for working with tags. """ + + from tagging.managers import ModelTaggedItemManager, TagDescriptor + if model in registry: - raise AlreadyRegistered( - _('The model %s has already been registered.') % model.__name__) - registry.append(model) + raise AlreadyRegistered("The model '%s' has already been " + "registered." % model._meta.object_name) + if hasattr(model, tag_descriptor_attr): + raise AttributeError("'%s' already has an attribute '%s'. You must " + "provide a custom tag_descriptor_attr to register." % ( + model._meta.object_name, + tag_descriptor_attr, + ) + ) + if hasattr(model, tagged_item_manager_attr): + raise AttributeError("'%s' already has an attribute '%s'. You must " + "provide a custom tagged_item_manager_attr to register." % ( + model._meta.object_name, + tagged_item_manager_attr, + ) + ) # Add tag descriptor setattr(model, tag_descriptor_attr, TagDescriptor()) # Add custom manager - ModelTaggedItemManager().contribute_to_class(model, - tagged_item_manager_attr) + ModelTaggedItemManager().contribute_to_class(model, tagged_item_manager_attr) + + # Finally register in registry + registry.append(model) |