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
# -*- coding: utf-8 -*-
from django.conf import settings
from django.db.models.base import ModelBase
from cms.publisher.manager import PublisherManager
from mptt.models import MPTTModelBase
from cms.publisher.options import PublisherOptions
class PageMetaClass(MPTTModelBase):
def __new__(cls, name, bases, attrs):
super_new = super(PageMetaClass, cls).__new__
if not settings.CMS_MODERATOR:
return super_new(cls, name, bases, attrs)
if 'objects' in attrs:
if not isinstance(attrs['objects'], PublisherManager):
raise ValueError, ("Model %s extends Publisher, " +
"so its 'objects' manager must be " +
"a subclass of publisher.PublisherManager") % (name,)
else:
attrs['objects'] = PublisherManager()
attrs['_is_publisher_model'] = lambda self: True
# build meta object
publisher_meta = attrs.pop('PublisherMeta', None)
attrs['_publisher_meta'] = PublisherOptions(name, bases, publisher_meta)
return super_new(cls, name, bases, attrs)