示例#1
0
 def formfield_for_manytomany(self, db_field, request=None, **kwargs):
     if db_field.name == 'services':
         kwargs['widget'] = SortedFilteredSelectMultiple()
     if db_field.name == 'companies':
         kwargs['widget'] = SortedFilteredSelectMultiple()
     return super(ArticleAdmin,
                  self).formfield_for_manytomany(db_field, request,
                                                 **kwargs)
示例#2
0
 def formfield_for_manytomany(self, db_field, request=None, **kwargs):
     if db_field.name == 'related' and SERVICES_HIDE_RELATED_SERVICES == 0:
         kwargs['widget'] = SortedFilteredSelectMultiple('service')
     if db_field.name == 'companies':
         kwargs['widget'] = SortedFilteredSelectMultiple(
             'company', False, attrs={'verbose_name_plural': 'companies'})
     if db_field.name == 'sections':
         kwargs["queryset"] = models.ServicesConfig.objects.exclude(
             namespace=models.ServicesConfig.default_namespace)
     return super(ServiceAdmin,
                  self).formfield_for_manytomany(db_field, request,
                                                 **kwargs)
示例#3
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.fields['articles'].widget = SortedFilteredSelectMultiple()
        self.fields['articles'].queryset = models.Article.objects.all()
        if self.instance.pk and self.instance.article_set.count():
            self.fields['articles'].initial = self.instance.article_set.all()
示例#4
0
 def __init__(self, *args, **kwargs):
     super(RelatedServicesPluginForm, self).__init__(*args, **kwargs)
     #if len(RELATED_LAYOUTS) == 0:
     #    self.fields['layout'].widget = forms.HiddenInput()
     if IS_THERE_COMPANIES:
         self.fields['related_companies'] = forms.ModelMultipleChoiceField(queryset=Company.objects.all(), required=False)
         self.fields['related_companies'].widget = SortedFilteredSelectMultiple()
         self.fields['related_companies'].queryset = Company.objects.all()
         if self.instance.pk and self.instance.related_companies.count():
             self.fields['related_companies'].initial = self.instance.related_companies.all()
示例#5
0
 def formfield_for_manytomany(self, db_field, request=None, **kwargs):
     if db_field.name == "authors":
         kwargs['widget'] = SortedFilteredSelectMultiple()
     elif db_field.name == "projects":
         kwargs["widget"] = widgets.FilteredSelectMultiple("projects", is_stacked=False)
     elif db_field.name == "project_umbrellas":
         kwargs["widget"] = widgets.FilteredSelectMultiple("project umbrellas", is_stacked=False)
     elif db_field.name == "keywords":
         kwargs["widget"] = widgets.FilteredSelectMultiple("keywords", is_stacked=False)
     return super(PublicationAdmin, self).formfield_for_manytomany(db_field, request, **kwargs)
示例#6
0
    def __init__(self, *args, **kwargs):
        #if 'initial' in kwargs:
        #kwargs['initial']['medium'] = models.ArticleMedium.objects.first().pk if models.ArticleMedium.objects.first() else None
        super().__init__(*args, **kwargs)

        qs = models.Article.objects
        if self.instance.app_config_id:
            qs = models.Article.objects.filter(
                app_config=self.instance.app_config)
        elif 'initial' in kwargs and 'app_config' in kwargs['initial']:
            qs = models.Article.objects.filter(
                app_config=kwargs['initial']['app_config'])

        author_fileds = [
            'author',
            'author_trans',
            'author_2',
            'author_2_trans',
            'author_3',
            'author_3_trans',
        ]
        for field in author_fileds:
            if field in self.fields:
                self.fields[field].queryset = Person.objects.all().order_by(
                    'last_name')

        if self.instance.pk:
            qs = qs.exclude(pk=self.instance.pk)

        if 'related' in self.fields:
            self.fields['related'].queryset = qs

        # Don't allow app_configs to be added here. The correct way to add an
        # apphook-config is to create an apphook on a cms Page.
        self.fields['app_config'].widget.can_add_related = False
        # Don't allow related articles to be added here.
        # doesn't makes much sense to add articles from another article other
        # than save and add another.
        if ('related' in self.fields
                and hasattr(self.fields['related'], 'widget')):
            self.fields['related'].widget.can_add_related = False
        if not SUMMARY_RICHTEXT:
            self.fields['lead_in'].widget = forms.widgets.Textarea()
        if IS_THERE_COMPANIES:
            self.fields['companies'] = forms.ModelMultipleChoiceField(
                queryset=Company.objects.all(),
                required=False)  # self.instance.companies
            self.fields['companies'].widget = SortedFilteredSelectMultiple()
            self.fields['companies'].queryset = Company.objects.all()
            if self.instance.pk and self.instance.companies.count():
                self.fields['companies'].initial = self.instance.companies.all(
                )
        else:
            del self.fields['companies']
示例#7
0
 def __init__(self, *args, **kwargs):
     super(PersonAdminForm, self).__init__(*args, **kwargs)
     if not ALDRYN_PEOPLE_SUMMARY_RICHTEXT:
         self.fields['description'].widget = widgets.Textarea()
     if IS_THERE_COMPANIES:
         self.fields['companies'] = SortedMultipleChoiceField(
             queryset=Company.objects.all(),
             required=False)  # self.instance.companies
         self.fields['companies'].widget = SortedFilteredSelectMultiple()
         self.fields['companies'].queryset = Company.objects.all()
         if self.instance.pk and self.instance.companies.count():
             self.fields[
                 'companies'].initial = self.instance.sorted_companies
示例#8
0
class NewsBlogRelatedPluginForm(forms.ModelForm):
    layout = forms.ChoiceField(choices=SPECIFIC_ARTICLES_LAYOUTS)
    related_articles = SortedMultipleChoiceField(
        label='ralated articles',
        queryset=models.Article.objects.all(),
        required=False,
        widget=SortedFilteredSelectMultiple(attrs={
            'verbose_name': 'article',
            'verbose_name_plural': 'articles'
        }))

    class Meta:
        fields = '__all__'
示例#9
0
文件: admin.py 项目: xjpazx/schedule
 def formfield_for_manytomany(self, db_field, request=None, **kwargs):
     user = CuserMiddleware.get_user()
     if user.groups.all().first():
         if user.groups.all().first().configuration_set.all().first():
             configuration = user.groups.all().first(
             ).configuration_set.all().first()
             if db_field.name == 'trucks':
                 kwargs['widget'] = apply_select2(
                     forms.SelectMultiple
                 ) if configuration.activity_filter_two == 2 else SortedFilteredSelectMultiple(
                 )
             elif 'employees' == db_field.name:
                 kwargs['widget'] = apply_select2(
                     forms.SelectMultiple
                 ) if configuration.employees_filter_two == 2 else SortedFilteredSelectMultiple(
                 )
             return super(AdminActivity2, self).formfield_for_manytomany(
                 db_field, request, **kwargs)
         else:
             if db_field.name in ['trucks', 'employees']:
                 kwargs['widget'] = apply_select2(forms.SelectMultiple)
             return super(AdminActivity2, self).formfield_for_manytomany(
                 db_field, request, **kwargs)
示例#10
0
 def __init__(self, *args, **kwargs):
     super(RelatedPeoplePluginForm, self).__init__(*args, **kwargs)
     if 'related_groups' in self.fields and ALDRYN_PEOPLE_HIDE_GROUPS != 0:
         del self.fields['related_groups']
     if 'related_locations' in self.fields and ALDRYN_PEOPLE_HIDE_LOCATION != 0:
         del self.fields['related_locations']
     if IS_THERE_COMPANIES:
         self.fields['related_companies'] = forms.ModelMultipleChoiceField(
             queryset=Company.objects.all(), required=False)
         self.fields[
             'related_companies'].widget = SortedFilteredSelectMultiple()
         self.fields['related_companies'].queryset = Company.objects.all()
         if self.instance.pk and self.instance.related_companies.count():
             self.fields[
                 'related_companies'].initial = self.instance.related_companies.all(
                 )
示例#11
0
class RelatedPeoplePluginForm(forms.ModelForm):

    layout = forms.ChoiceField(choices=RELATED_PEOPLE_LAYOUT)

    related_people = SortedMultipleChoiceField(
        label='key people',
        queryset=models.Person.objects.all(),
        required=False,
        widget=SortedFilteredSelectMultiple(
            'person', False, attrs={'verbose_name_plural': 'people'}))
    related_groups = forms.ModelMultipleChoiceField(
        queryset=models.Group.objects.all().exclude(
            namespace=DEFAULT_APP_NAMESPACE),
        required=False,
        widget=FilteredSelectMultiple('groups', False))
    related_locations = forms.ModelMultipleChoiceField(
        queryset=Location.objects.all(),
        required=False,
        widget=FilteredSelectMultiple('locations', False))
    related_categories = forms.ModelMultipleChoiceField(
        queryset=Category.objects.all(),
        required=False,
        widget=FilteredSelectMultiple('categories', False))
    related_services = forms.ModelMultipleChoiceField(
        queryset=Service.objects.all(),
        required=False,
        widget=FilteredSelectMultiple('services', False))
    related_companies = forms.CharField(required=False,
                                        widget=forms.HiddenInput)

    def __init__(self, *args, **kwargs):
        super(RelatedPeoplePluginForm, self).__init__(*args, **kwargs)
        if 'related_groups' in self.fields and ALDRYN_PEOPLE_HIDE_GROUPS != 0:
            del self.fields['related_groups']
        if 'related_locations' in self.fields and ALDRYN_PEOPLE_HIDE_LOCATION != 0:
            del self.fields['related_locations']
        if IS_THERE_COMPANIES:
            self.fields['related_companies'] = forms.ModelMultipleChoiceField(
                queryset=Company.objects.all(), required=False)
            self.fields[
                'related_companies'].widget = SortedFilteredSelectMultiple()
            self.fields['related_companies'].queryset = Company.objects.all()
            if self.instance.pk and self.instance.related_companies.count():
                self.fields[
                    'related_companies'].initial = self.instance.related_companies.all(
                    )
示例#12
0
    def __init__(self, *args, **kwargs):
        super(EventAdminForm, self).__init__(*args, **kwargs)

        if not EVENTS_SUMMARY_RICHTEXT:
            self.fields['lead_in'].widget = widgets.Textarea()
            self.fields['location'].widget = widgets.Textarea()
        if IS_THERE_COMPANIES:
            self.fields['companies'] = forms.ModelMultipleChoiceField(
                queryset=Company.objects.all(),
                required=False)  # self.instance.companies
            self.fields['companies'].widget = SortedFilteredSelectMultiple()
            self.fields['companies'].queryset = Company.objects.all()
            if self.instance.pk and self.instance.companies.count():
                self.fields['companies'].initial = self.instance.companies.all(
                )
        else:
            del self.fields['companies']
示例#13
0
    def __init__(self, *args, **kwargs):
        super(ServiceAdminForm, self).__init__(*args, **kwargs)

        qs = models.Service.objects
        #if self.instance.app_config_id:
        #qs = models.Service.objects.filter(
        #app_config=self.instance.app_config)
        #elif 'initial' in kwargs and 'app_config' in kwargs['initial']:
        #qs = models.Service.objects.filter(
        #app_config=kwargs['initial']['app_config'])

        if self.instance.pk:
            qs = qs.exclude(pk=self.instance.pk)

        if 'related' in self.fields:
            self.fields['related'].queryset = qs

        # Don't allow app_configs to be added here. The correct way to add an
        # apphook-config is to create an apphook on a cms Page.
        #self.fields['app_config'].widget.can_add_related = False
        # Don't allow related articles to be added here.
        # doesn't makes much sense to add articles from another article other
        # than save and add another.
        if ('related' in self.fields
                and hasattr(self.fields['related'], 'widget')):
            self.fields['related'].widget.can_add_related = False
        if not SERVICES_SUMMARY_RICHTEXT:
            self.fields['lead_in'].widget = widgets.Textarea()
        self.fields['lead_in'].help_text = """The Summary gives the reader
         the main idea of the service, this is useful in overviews, lists or
         as an introduction to your service."""
        if IS_THERE_COMPANIES:
            self.fields['companies'] = forms.ModelMultipleChoiceField(
                queryset=Company.objects.all(),
                required=False)  # self.instance.companies
            self.fields['companies'].widget = SortedFilteredSelectMultiple()
            self.fields['companies'].queryset = Company.objects.all()
            if self.instance.pk and self.instance.companies.count():
                self.fields['companies'].initial = self.instance.companies.all(
                )
        else:
            del self.fields['companies']
示例#14
0
class RelatedServicesPluginForm(forms.ModelForm):

    layout = forms.ChoiceField(choices=RELATED_LAYOUTS_CHOICES, required=False)

    related_services = SortedMultipleChoiceField(
        label='related services',
        queryset=models.Service.objects.all(),
        required=False,
        widget=SortedFilteredSelectMultiple('service', False, attrs={'verbose_name_plural':'services'})
    )
    related_sections = forms.ModelMultipleChoiceField(
        queryset=models.ServicesConfig.objects.exclude(namespace=models.ServicesConfig.default_namespace),
        required=False,
        widget=FilteredSelectMultiple('sections', False)
    )
    related_people = forms.ModelMultipleChoiceField(
        queryset=Person.objects.all(),
        required=False,
        widget=FilteredSelectMultiple('people', False)
    )
    related_categories = forms.ModelMultipleChoiceField(
        queryset=Category.objects.all(),
        required=False,
        widget=FilteredSelectMultiple('categories', False)
    )
    related_companies = forms.CharField(required=False, widget=forms.HiddenInput)

    def __init__(self, *args, **kwargs):
        super(RelatedServicesPluginForm, self).__init__(*args, **kwargs)
        #if len(RELATED_LAYOUTS) == 0:
        #    self.fields['layout'].widget = forms.HiddenInput()
        if IS_THERE_COMPANIES:
            self.fields['related_companies'] = forms.ModelMultipleChoiceField(queryset=Company.objects.all(), required=False)
            self.fields['related_companies'].widget = SortedFilteredSelectMultiple()
            self.fields['related_companies'].queryset = Company.objects.all()
            if self.instance.pk and self.instance.related_companies.count():
                self.fields['related_companies'].initial = self.instance.related_companies.all()
示例#15
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.fields['speakers'].widget = SortedFilteredSelectMultiple(attrs={'verbose_name': 'speaker'})
     self.fields['speakers'].queryset = models.Speaker.objects.all()
示例#16
0
 def formfield_for_manytomany(self, db_field, request=None, **kwargs):
     if db_field.name in ['speakers_list', 'speakers_list2']:
         kwargs['widget'] = SortedFilteredSelectMultiple()
     return super(SessionPlugin, self).formfield_for_manytomany(db_field, request, **kwargs)
示例#17
0
 def formfield_for_manytomany(self, db_field, request=None, **kwargs):
     if db_field.name in ['services', 'locations']:
         kwargs['widget'] = SortedFilteredSelectMultiple(
             attrs={'verbose_name': 'service'})
     return super().formfield_for_manytomany(db_field, request, **kwargs)
示例#18
0
 def formfield_for_manytomany(self, db_field, request=None, **kwargs):
     kwargs['widget'] = SortedFilteredSelectMultiple(
         attrs={'verbose_name': 'user groups'})
     return super().formfield_for_manytomany(db_field, request, **kwargs)
示例#19
0
 def formfield_for_manytomany(self, db_field, request=None, **kwargs):
     if db_field.name in ('reports', ):
         kwargs['widget'] = SortedFilteredSelectMultiple()
     return super().formfield_for_manytomany(db_field, request, **kwargs)
示例#20
0
 def formfield_for_manytomany(self, db_field, request=None, **kwargs):
     if db_field.name == 'instrument':
         kwargs['widget'] = SortedFilteredSelectMultiple()
     return super(InterviewAdmin,
                  self).formfield_for_manytomany(db_field, request,
                                                 **kwargs)
 def formfield_for_manytomany(self, db_field, request=None, **kwargs):
     if db_field.name == 'authors':
         kwargs['widget'] = SortedFilteredSelectMultiple()
     return super(BookAdmin, self).formfield_for_manytomany(db_field, request, **kwargs)