) placeholder_detail_top = PlaceholderField( 'newsblog_detail_top', related_name='aldryn_newsblog_detail_top', ) placeholder_detail_bottom = PlaceholderField( 'newsblog_detail_bottom', related_name='aldryn_newsblog_detail_bottom', ) placeholder_detail_footer = PlaceholderField( 'newsblog_detail_footer', related_name='aldryn_newsblog_detail_footer', ) def get_app_title(self): return getattr(self, 'app_title', _('untitled')) class Meta: verbose_name = 'config' verbose_name_plural = 'configs' class NewsBlogConfigForm(AppDataForm): default_published = forms.BooleanField( label=_(u'Post published by default'), required=False, initial=getattr(settings, 'ALDRYN_NEWSBLOG_DEFAULT_PUBLISHED', False)) setup_config(NewsBlogConfigForm, NewsBlogConfig)
from aldryn_apphooks_config.models import AppHookConfig from aldryn_apphooks_config.utils import setup_config from app_data import AppDataForm from django import forms from django.db import models from django.utils.translation import ugettext_lazy as _ class ExampleConfig(AppHookConfig): """Adds some translatable, per-app-instance fields.""" app_title = models.CharField(_('application title'), max_length=234) class AnotherExampleConfig(AppHookConfig): max_entries = models.SmallIntegerField(default=5) class ExampleConfigForm(AppDataForm): property = forms.CharField() published_default = forms.BooleanField(initial=True, required=False) setup_config(ExampleConfigForm, ExampleConfig) class AnotherExampleConfigForm(AppDataForm): property = forms.CharField() setup_config(AnotherExampleConfigForm, AnotherExampleConfig)
from polls.models import Question from aldryn_apphooks_config.models import AppHookConfig from aldryn_apphooks_config.utils import setup_config from app_data import AppDataForm from django.db import models from django import forms from django.utils.translation import ugettext_lazy as _ class PollsApphookConfig(AppHookConfig): poll = models.ForeignKey(Question, on_delete=models.PROTECT) class PollsApphookConfigForm(AppDataForm): pass setup_config(PollsApphookConfigForm, PollsApphookConfig)
from sortedm2m.fields import SortedManyToManyField try: from sortedm2m_filter_horizontal_widget.forms import SortedFilteredSelectMultiple, SortedMultipleChoiceField except: from django.contrib.admin.widgets import FilteredSelectMultiple as SortedFilteredSelectMultiple SortedMultipleChoiceField = forms.ModelMultipleChoiceField @python_2_unicode_compatible class PeopleConfig(TranslatableModel, AppHookConfig): """Adds some translatable, per-app-instance fields.""" translations = TranslatedFields( app_title=models.CharField(_('name'), max_length=234), ) group = models.ForeignKey('aldryn_people.Group', on_delete=models.CASCADE) def get_app_title(self): return getattr(self, 'app_title', _('untitled')) class Meta: verbose_name = _('Section') verbose_name_plural = _('Sections') def __str__(self): return self.safe_translation_getter('app_title') class PeopleConfigForm(AppDataForm): pass setup_config(PeopleConfigForm, PeopleConfig)
placeholder_detail_bottom = PlaceholderField( 'newsblog_detail_bottom', related_name='aldryn_newsblog_detail_bottom', ) placeholder_detail_footer = PlaceholderField( 'newsblog_detail_footer', related_name='aldryn_newsblog_detail_footer', ) def get_app_title(self): return getattr(self, 'app_title', _('untitled')) class Meta: verbose_name = _('Section') verbose_name_plural = _('Sections') def __str__(self): return self.safe_translation_getter('app_title') class NewsBlogConfigForm(AppDataForm): default_published = forms.BooleanField( label=_(u'Post published by default'), required=False, initial=getattr(settings, 'ALDRYN_NEWSBLOG_DEFAULT_PUBLISHED', False)) setup_config(NewsBlogConfigForm, NewsBlogConfig)
) og_author_url = forms.CharField( max_length=200, label=_('Facebook author URL'), required=False, initial=get_setting('FB_AUTHOR_URL') ) og_author = forms.CharField( max_length=200, label=_('Facebook author'), required=False, initial=get_setting('FB_AUTHOR') ) twitter_type = forms.ChoiceField( label=_('Twitter type'), required=False, choices=get_setting('TWITTER_TYPES'), initial=get_setting('TWITTER_TYPE') ) twitter_site = forms.CharField( max_length=200, label=_('Twitter site handle'), required=False, initial=get_setting('TWITTER_SITE') ) twitter_author = forms.CharField( max_length=200, label=_('Twitter author handle'), required=False, initial=get_setting('TWITTER_AUTHOR') ) gplus_type = forms.ChoiceField( label=_('Google+ type'), required=False, choices=get_setting('GPLUS_TYPES'), initial=get_setting('GPLUS_TYPE') ) gplus_author = forms.CharField( max_length=200, label=_('Google+ author name'), required=False, initial=get_setting('GPLUS_AUTHOR') ) setup_config(BlogConfigForm, BlogConfig)
blank=False, default='Rss201rev2Feed', choices=FEED_TYPES) model = models.CharField(_('feed model'), max_length=32, blank=False, default='article', choices=MODELS) section = models.CharField(_('feed section slug'), max_length=32, blank=True, null=True) limit = models.PositiveIntegerField(_('feed limit'), blank=True, null=True) def get_app_title(self): return self.safe_translation_getter('app_title') class Meta: verbose_name = _('RSS Feed') verbose_name_plural = _('RSS Feeds') def __str__(self): return self.safe_translation_getter('app_title') class RSSFeedConfigForm(AppDataForm): pass setup_config(RSSFeedConfigForm, RSSFeedConfig)
from aldryn_apphooks_config.models import AppHookConfig from aldryn_apphooks_config.utils import setup_config from app_data import AppDataForm from django.db import models from django import forms from django.utils.translation import ugettext_lazy as _ class FaqConfig(AppHookConfig): paginate_by = models.PositiveIntegerField( _('Paginate size'), blank=False, default=5, ) class FaqConfigForm(AppDataForm): title = forms.CharField() setup_config(FaqConfigForm, FaqConfig)
from aldryn_apphooks_config.models import AppHookConfig from aldryn_apphooks_config.utils import setup_config from app_data import AppDataForm class BlogAppConfig(AppHookConfig): pass class BlogAppConfigForm(AppDataForm): pass setup_config(BlogAppConfigForm, BlogAppConfig)
search_indexed = models.BooleanField( _('Include in search index?'), default=True, help_text=_('Include services in search indexes?'), ) custom_fields_settings = JSONField(blank=True, null=True) custom_fields = JSONField(blank=True, null=True) def get_app_title(self): return getattr(self, 'app_title', _('untitled')) class Meta: verbose_name = _('Section') verbose_name_plural = _('Sections') def __str__(self): return self.safe_translation_getter('app_title') default_namespace = 'all-services' default_app_title = 'All services' class ServicesConfigForm(AppDataForm): default_published = forms.BooleanField( label=_(u'Post published by default'), required=False, initial=getattr(settings, 'SERVICES_DEFAULT_PUBLISHED', False)) setup_config(ServicesConfigForm, ServicesConfig)
custom_fields = JSONField(blank=True, null=True) def get_app_title(self): return getattr(self, 'app_title', _('untitled')) class Meta: verbose_name = _('Section') verbose_name_plural = _('Sections') def __str__(self): return self.safe_translation_getter('app_title') def get_absolute_url(self, language=None): if not language: language = get_current_language() with override(language): return reverse('{0}:event-list'.format(self.namespace)) default_namespace = 'all-events' default_app_title = 'All events' class EventsConfigForm(AppDataForm): default_published = forms.BooleanField( label=_(u'Post published by default'), required=False, initial=getattr(settings, 'EVENTS_DEFAULT_PUBLISHED', False)) setup_config(EventsConfigForm, EventsConfig)
# -*- coding: utf-8 -*- from __future__ import absolute_import, print_function, unicode_literals from aldryn_apphooks_config.models import AppHookConfig from aldryn_apphooks_config.utils import setup_config from app_data import AppDataForm from django import forms from django.db import models from django.utils.translation import ugettext_lazy as _ from parler.models import TranslatableModel, TranslatedFields class App4Config(TranslatableModel, AppHookConfig): """ Adds some translatable, per-app-instance fields. """ random_option = models.BooleanField(default=False) translations = TranslatedFields( app_title=models.CharField(_('application title'), max_length=234), object_name=models.CharField(_('object name'), max_length=234), ) class App4ConfigForm(AppDataForm): some_option = forms.BooleanField(required=False, initial=False) setup_config(App4ConfigForm, App4Config)
code='invalid') return self.cleaned_data['app_config'] class JobListPluginForm(AppConfigPluginFormMixin, forms.ModelForm): model = JobListPlugin def clean(self): data = super(JobListPluginForm, self).clean() # save only events for selected app_config selected = data.get('jobopenings', []) app_config = data.get('app_config') new_jobopenings = [] if app_config is None: pass else: for job in selected: if job.category.app_config == app_config: new_jobopenings.append(job) data['jobopenings'] = new_jobopenings return data class JobCategoriesListPluginForm(AppConfigPluginFormMixin, forms.ModelForm): model = JobCategoriesPlugin setup_config(JobsConfigForm, JobsConfig)
from aldryn_apphooks_config.models import AppHookConfig from aldryn_apphooks_config.utils import setup_config from app_data import AppDataForm class FoodsAppConfig(AppHookConfig): class Meta(AppHookConfig.Meta): abstract = False verbose_name = u'Настройки на приложението' verbose_name_plural = u'Настройки на приложението' class FoodsAppConfigForm(AppDataForm): pass setup_config(FoodsAppConfigForm, FoodsAppConfig)
# return slug class QuestionListPluginForm(forms.ModelForm): questions = SortedMultipleChoiceField(queryset=Question.objects.none()) class Meta: model = QuestionListPlugin fields = [ 'questions', ] def __init__(self, *args, **kwargs): super(QuestionListPluginForm, self).__init__(*args, **kwargs) questions_field = self.fields['questions'] questions_field.queryset = Question.objects.language() class FaqOptionForm(AppDataForm): show_description = forms.BooleanField( required=False, help_text=_( "This option enables the short description to be available " "within the list view rendering for all plugins." ) ) setup_config(FaqOptionForm, FaqConfig)
twitter_author = forms.CharField(max_length=200, label=_('Twitter author handle'), required=False, initial=get_setting('TWITTER_AUTHOR')) gplus_type = forms.ChoiceField(label=_('Google+ type'), required=False, choices=get_setting('GPLUS_TYPES'), initial=get_setting('GPLUS_TYPE')) gplus_author = forms.CharField(max_length=200, label=_('Google+ author name'), required=False, initial=get_setting('GPLUS_AUTHOR')) send_knock_create = forms.BooleanField( label=_('Send notifications on post publish'), required=False, initial=False, help_text= _('Emits a desktop notification -if enabled- when publishing a new post' )) send_knock_update = forms.BooleanField( label=_('Send notifications on post update'), required=False, initial=False, help_text= _('Emits a desktop notification -if enabled- when editing a published post' )) setup_config(BlogConfigForm, BlogConfig)
class EventListPluginForm(AppConfigPluginFormMixin, forms.ModelForm): model = EventListPlugin def clean(self): data = super(EventListPluginForm, self).clean() # save only events for selected app_config selected_events = data.get('events', []) app_config = data['app_config'] new_events = [event for event in selected_events if event.app_config.pk == app_config.pk] data['events'] = new_events return data class EventCalendarPluginForm(AppConfigPluginFormMixin, forms.ModelForm): model = EventCalendarPlugin class EventOptionForm(AppDataForm): show_ongoing_first = forms.BooleanField( required=False, help_text=_( "When flagged will add an ongoing_objects to the context and " "exclude these objects from the normal list. If you are using " "the default template it's rendered as 'Current events'. Note: " "ongoing objects are not paginated." ) ) setup_config(EventOptionForm, EventsConfig)
# if categories_with_slug.exists(): # raise forms.ValidationError( # 'A category with this slug already exists.') # return slug class QuestionListPluginForm(forms.ModelForm): questions = SortedMultipleChoiceField(queryset=Question.objects.none()) class Meta: model = QuestionListPlugin fields = [ 'questions', ] def __init__(self, *args, **kwargs): super(QuestionListPluginForm, self).__init__(*args, **kwargs) questions_field = self.fields['questions'] questions_field.queryset = Question.objects.language() class FaqOptionForm(AppDataForm): show_description = forms.BooleanField( required=False, help_text=("This option enables the short descirption to be available " "within the list view rendering for all plugins.")) setup_config(FaqOptionForm, FaqConfig)
placeholder_detail_bottom = PlaceholderField( 'dashboards_app_detail_bottom', related_name='dashboards_app_detail_bottom', ) placeholder_detail_footer = PlaceholderField( 'dashboards_app_detail_footer', related_name='dashboards_app_detail_footer', ) def get_app_title(self): return getattr(self, 'app_title', _('untitled')) class Meta: verbose_name = _('Section') verbose_name_plural = _('Sections') def __str__(self): return self.safe_translation_getter('app_title') class Dashboards_appConfigForm(AppDataForm): default_published = forms.BooleanField( label=_(u'Post published by default'), required=False, initial=getattr(settings, 'dashboards_app_DEFAULT_PUBLISHED', False)) setup_config(Dashboards_appConfigForm, Dashboards_appConfig)
# -*- coding: utf-8 -*- from __future__ import absolute_import, print_function, unicode_literals from aldryn_apphooks_config.models import AppHookConfig from aldryn_apphooks_config.utils import setup_config from app_data import AppDataForm from django import forms from django.db import models from django.utils.translation import ugettext_lazy as _ class ExampleConfig(AppHookConfig): """Adds some translatable, per-app-instance fields.""" app_title = models.CharField(_('application title'), max_length=234) class AnotherExampleConfig(AppHookConfig): max_entries = models.SmallIntegerField(default=5) class ExampleConfigForm(AppDataForm): property = forms.CharField() published_default = forms.BooleanField(initial=True, required=False) setup_config(ExampleConfigForm, ExampleConfig) class AnotherExampleConfigForm(AppDataForm): property = forms.CharField() setup_config(AnotherExampleConfigForm, AnotherExampleConfig)