def setUp(self): super(TestAppDataAdmin, self).setUp() app_registry.register('publish', AppDataContainer.from_form(PublishAppForm)) app_registry.register('rss', AppDataContainer.from_form(RSSAppForm)) self.url = '/admin/test_app_data/article/' User.objects.create_superuser('admin', '*****@*****.**', 'secret') self.client.login(username='******', password='******')
def setup_config(form_class, config_model): """ Register the provided form as config form for the provided config model :param form_class: Form class derived from AppDataForm :param config_model: Model class derived from AppHookConfig :return: """ app_registry.register('config', AppDataContainer.from_form(form_class), config_model)
def setup_config(form_class, config_model=None): """ Register the provided form as config form for the provided config model This can be used as a decorator by adding a `model` attribute to the config form:: @setup_config class ExampleConfigForm(AppDataForm): model = ExampleConfig :param form_class: Form class derived from AppDataForm :param config_model: Model class derived from AppHookConfig :return: """ # allow use as a decorator if config_model is None: return setup_config(form_class, form_class.model) app_registry.register('config', AppDataContainer.from_form(form_class), config_model)
paginator = FirstPagePaginator(self.get_listings(**kwargs), paginate_by, first_page_count=first_page_count) if page_no > paginator.num_pages or page_no < 1: raise Http404(_('Invalid page number %r') % page_no) return paginator.page(page_no) @property def child_behavior(self): if self.child_listings is None: return ListingHandler.ALL if self._instance.tree_parent_id else ListingHandler.NONE return self.child_listings app_registry.register('ella', EllaAppDataContainer, Category) # connect redis listing handler signals connect_signals() # connect cache invalidation signals connect_invalidation_signals() try: # django < 1.9 from django.template.base import add_to_builtins except ImportError: pass else: # add core templatetags to builtin so that you don't have to invoke {% load core %} in every template
paginate_by, first_page_count=first_page_count) if page_no > paginator.num_pages or page_no < 1: raise Http404(_('Invalid page number %r') % page_no) return paginator.page(page_no) @property def child_behavior(self): if self.child_listings is None: return ListingHandler.ALL if self._instance.tree_parent_id else ListingHandler.NONE return self.child_listings app_registry.register('ella', EllaAppDataContainer, Category) # connect redis listing handler signals connect_signals() # connect cache invalidation signals connect_invalidation_signals() # add core templatetags to builtin so that you don't have to invoke {% load core %} in every template template.add_to_builtins('ella.core.templatetags.core') # keep this here for backwards compatibility template.add_to_builtins('ella.core.templatetags.related') # and custom urls template.add_to_builtins('ella.core.templatetags.custom_urls_tags') # and the same for i18n template.add_to_builtins('django.templatetags.i18n')
from app_data import app_registry from entree.enauth.containers import EntreeDataContainer from entree.enauth.models import LoginToken app_registry.register('entree', EntreeDataContainer, LoginToken)
from django import forms from app_data import app_registry, AppDataForm, AppDataContainer from ella.core.models import Category from ella.core.conf import core_settings class CategoryAppForm(AppDataForm): archive_template = forms.CharField(initial=core_settings.ARCHIVE_TEMPLATE, required=False) no_home_listings = forms.BooleanField(initial=core_settings.CATEGORY_NO_HOME_LISTINGS, required=False) listing_handler = forms.CharField(initial='default', required=False) paginate_by = forms.IntegerField(initial=core_settings.CATEGORY_LISTINGS_PAGINATE_BY, required=False) propagate_listings = forms.BooleanField(initial=True, required=False) app_registry.register('ella', AppDataContainer.from_form(CategoryAppForm), Category)
alternate_registry = NamespaceRegistry() app_data = AppDataField(app_registry=alternate_registry) class PublishAppForm(AppDataForm): publish_from = forms.DateTimeField() published = forms.BooleanField(required=False) publish_to = forms.DateTimeField(required=False) class RSSAppForm(AppDataForm): title = forms.CharField(max_length=20) author = forms.CharField(max_length=20) description = forms.CharField(max_length=200) class PersonalAppForm(AppDataForm): first_name = forms.CharField(max_length=20, required=False) last_name = forms.CharField(max_length=20, required=False) class AlternateRegistryAppForm(AppDataForm): alternate_field = forms.CharField(max_length=20, required=False) app_registry.register('publish', AppDataContainer.from_form(PublishAppForm)) app_registry.register('rss', AppDataContainer.from_form(RSSAppForm)) app_registry.register('personal', AppDataContainer.from_form(PersonalAppForm)) AlternateRegistryModel.alternate_registry.register( 'alternate', AppDataContainer.from_form(AlternateRegistryAppForm))
app_data = AppDataField() class Tag(models.Model): name = models.CharField(max_length=255) def __unicode__(self): return self.name from django.forms.models import ModelMultipleChoiceField from app_data import app_registry, AppDataForm, AppDataContainer class TaggingAppDataForm(AppDataForm): public_tags = ModelMultipleChoiceField(Tag.objects.all()) admin_tags = ModelMultipleChoiceField(Tag.objects.all()) admin_fieldsets = [ ('Taggingzs!', {'fields': [('tagging.public_tags', 'tagging.admin_tags')]}) ] class TaggingAppDataContainer(AppDataContainer): form_class = TaggingAppDataForm def tag_string(self): print ', '.join(t.name for t in self.public_tags) app_registry.register('tagging', TaggingAppDataContainer, MyModel)
class Author(models.Model): publishable = models.ForeignKey(Publishable) app_data = AppDataField() class AlternateRegistryModel(models.Model): alternate_registry = NamespaceRegistry() app_data = AppDataField(app_registry=alternate_registry) class PublishAppForm(AppDataForm): publish_from = forms.DateTimeField() published = forms.BooleanField(required=False) publish_to = forms.DateTimeField(required=False) class RSSAppForm(AppDataForm): title = forms.CharField(max_length=20) author = forms.CharField(max_length=20) description = forms.CharField(max_length=200) class PersonalAppForm(AppDataForm): first_name = forms.CharField(max_length=20, required=False) last_name = forms.CharField(max_length=20, required=False) class AlternateRegistryAppForm(AppDataForm): alternate_field = forms.CharField(max_length=20, required=False) app_registry.register('publish', AppDataContainer.from_form(PublishAppForm)) app_registry.register('rss', AppDataContainer.from_form(RSSAppForm)) app_registry.register('personal', AppDataContainer.from_form(PersonalAppForm)) AlternateRegistryModel.alternate_registry.register( 'alternate', AppDataContainer.from_form(AlternateRegistryAppForm))
class Tag(models.Model): name = models.CharField(max_length=255) def __unicode__(self): return self.name from django.forms.models import ModelMultipleChoiceField from app_data import app_registry, AppDataForm, AppDataContainer class TaggingAppDataForm(AppDataForm): public_tags = ModelMultipleChoiceField(Tag.objects.all()) admin_tags = ModelMultipleChoiceField(Tag.objects.all()) admin_fieldsets = [('Taggingzs!', { 'fields': [('tagging.public_tags', 'tagging.admin_tags')] })] class TaggingAppDataContainer(AppDataContainer): form_class = TaggingAppDataForm def tag_string(self): print ', '.join(t.name for t in self.public_tags) app_registry.register('tagging', TaggingAppDataContainer, MyModel)