cms.models.metaclasses: 18 total statements, 0.0% covered

Generated: Wed 2013-03-13 10:33 CET

Source file: /media/Envs/Envs/filer-gallery/lib/python2.7/site-packages/cms/models/metaclasses.py

Stats: 0 executed, 13 missed, 5 excluded, 11 ignored

  1. # -*- coding: utf-8 -*-
  2. from django.conf import settings
  3. from django.db.models.base import ModelBase
  4. from cms.publisher.manager import PublisherManager
  5. from mptt.models import MPTTModelBase
  6. from cms.publisher.options import PublisherOptions
  7. class PageMetaClass(MPTTModelBase):
  8. def __new__(cls, name, bases, attrs):
  9. super_new = super(PageMetaClass, cls).__new__
  10. if not settings.CMS_MODERATOR:
  11. return super_new(cls, name, bases, attrs)
  12. if 'objects' in attrs:
  13. if not isinstance(attrs['objects'], PublisherManager):
  14. raise ValueError, ("Model %s extends Publisher, " +
  15. "so its 'objects' manager must be " +
  16. "a subclass of publisher.PublisherManager") % (name,)
  17. else:
  18. attrs['objects'] = PublisherManager()
  19. attrs['_is_publisher_model'] = lambda self: True
  20. # build meta object
  21. publisher_meta = attrs.pop('PublisherMeta', None)
  22. attrs['_publisher_meta'] = PublisherOptions(name, bases, publisher_meta)
  23. return super_new(cls, name, bases, attrs)