Esempio n. 1
0
 class Meta:
     widgets = {
         'supplier': AutocompleteSelect(
             SupplierInvoiceParts._meta.get_field('supplier').remote_field,
             admin.site,
             attrs={'data-dropdown-auto-width': 'true','style':'width:100px'}
         ),
         'part': AutocompleteSelect(
             SupplierInvoiceParts._meta.get_field('part').remote_field,
             admin.site,
             attrs={'data-dropdown-auto-width': 'true','style':'width:100px'}
         ),
     }
Esempio n. 2
0
 class Meta:
     model = Album
     fields = ['band', 'featuring']
     widgets = {
         'band':
         AutocompleteSelect(
             Album._meta.get_field('band').remote_field,
             attrs={'class': 'my-class'},
         ),
         'featuring':
         AutocompleteSelect(
             Album._meta.get_field('featuring').remote_field, )
     }
 class Meta:
     model = Album
     fields = ["band", "featuring"]
     widgets = {
         "band": AutocompleteSelect(
             Album._meta.get_field("band"),
             admin.site,
             attrs={"class": "my-class"},
         ),
         "featuring": AutocompleteSelect(
             Album._meta.get_field("featuring"),
             admin.site,
         ),
     }
    def __init__(self, request, params, model, model_admin):
        self.parameter_name = '{}__{}__exact'.format(self.field_name,
                                                     self.field_pk)
        super().__init__(request, params, model, model_admin)

        if self.rel_model:
            model = self.rel_model

        remote_field = model._meta.get_field(self.field_name).remote_field

        widget = AutocompleteSelect(remote_field, model_admin.admin_site)
        field = forms.ModelChoiceField(
            queryset=self.get_queryset_for_field(model, self.field_name),
            widget=widget,
            required=False,
        )

        self._add_media(model_admin, widget)

        attrs = self.widget_attrs.copy()
        attrs['id'] = 'id-%s-dal-filter' % self.field_name
        if self.is_placeholder_title:
            # Upper case letter P as dirty hack for bypass django2 widget force placeholder value as empty string ("")
            attrs['data-Placeholder'] = self.title
        self.rendered_widget = field.widget.render(
            name=self.parameter_name,
            value=self.used_parameters.get(self.parameter_name, ''),
            attrs=attrs)
 def get_widget_instance(self):
     rel = get_fields_from_path(self.model,
                                self.field_name)[-1].remote_field
     return AutocompleteSelect(
         rel,
         self.model_admin.admin_site,
     )
Esempio n. 6
0
 def test_media(self):
     rel = Album._meta.get_field("band").remote_field
     base_files = (
         "admin/js/vendor/jquery/jquery.min.js",
         "admin/js/vendor/select2/select2.full.min.js",
         # Language file is inserted here.
         "admin/js/jquery.init.js",
         "admin/js/autocomplete.js",
     )
     languages = (
         ("de", "de"),
         # Language with code 00 does not exist.
         ("00", None),
         # Language files are case sensitive.
         ("sr-cyrl", "sr-Cyrl"),
         ("zh-hans", "zh-CN"),
         ("zh-hant", "zh-TW"),
     )
     for lang, select_lang in languages:
         with self.subTest(lang=lang):
             if select_lang:
                 expected_files = (base_files[:2] +
                                   (("admin/js/vendor/select2/i18n/%s.js" %
                                     select_lang), ) + base_files[2:])
             else:
                 expected_files = base_files
             with translation.override(lang):
                 self.assertEqual(
                     AutocompleteSelect(rel, admin.site).media._js,
                     list(expected_files),
                 )
Esempio n. 7
0
    def formfield_for_foreignkey(self, db_field, request, **kwargs):
        """
        Get a form Field for a ForeignKey.
        """
        db = kwargs.get('using')

        if db_field.name in self.get_autocomplete_fields(request):
            kwargs['widget'] = AutocompleteSelect(db_field.remote_field,
                                                  self.admin_site,
                                                  using=db)
        elif db_field.name in self.raw_id_fields:
            kwargs['widget'] = FixedForeignKeyRawIdWidget(
                db_field.remote_field, self.admin_site, using=db)
        elif db_field.name in self.radio_fields:
            kwargs['widget'] = widgets.AdminRadioSelect(
                attrs={
                    'class': get_ul_class(self.radio_fields[db_field.name]),
                })
            kwargs['empty_label'] = _('None') if db_field.blank else None

        if 'queryset' not in kwargs:
            queryset = self.get_field_queryset(db, db_field, request)
            if queryset is not None:
                kwargs['queryset'] = queryset

        return db_field.formfield(**kwargs)
Esempio n. 8
0
    def formfield_for_foreignkey(self, db_field, request, **kwargs):
        db = kwargs.get('using')

        if db_field.name in self.get_autocomplete_fields(request):
            kwargs['widget'] = AutocompleteSelect(db_field.remote_field,
                                                  self.admin_site,
                                                  using=db)
        elif db_field.name in self.raw_id_fields:
            kwargs['widget'] = widgets.ForeignKeyRawIdWidget(
                db_field.remote_field, self.admin_site, using=db)
        elif db_field.name in self.radio_fields:
            kwargs['widget'] = widgets.AdminRadioSelect(
                attrs={
                    'class': get_ul_class(self.radio_fields[db_field.name]),
                })
            kwargs['empty_label'] = gettext('None') if db_field.blank else None

        if db_field.name == 'image':
            kwargs['widget'] = widgets.ForeignKeyRawIdWidget(
                db_field.remote_field, self.admin_site, using=db)

        if 'queryset' not in kwargs:
            queryset = self.get_field_queryset(db, db_field, request)
            if queryset is not None:
                kwargs['queryset'] = queryset
        return super(PlaceArticleInline,
                     self).formfield_for_foreignkey(db_field, request,
                                                    **kwargs)
    def get_rendered_widget(self):
        rel = get_fields_from_path(self.model,
                                   self.field_name)[-1].remote_field
        widget = AutocompleteSelect(
            rel,
            self.model_admin.admin_site,
        )
        FieldClass = self.get_form_field()
        field = FieldClass(
            queryset=self.get_queryset_for_field(),
            widget=widget,
            required=False,
        )

        self._add_media(self.model_admin, widget)

        attrs = self.widget_attrs.copy()
        attrs["id"] = "id-%s-autocomplete-filter" % self.field_name
        attrs["class"] = f'{attrs.get("class", "")} select-filter'.strip()

        return field.widget.render(
            name=self.parameter_name,
            value=self.used_parameters.get(self.parameter_name, ""),
            attrs=attrs,
        )
Esempio n. 10
0
 def test_media(self):
     rel = Album._meta.get_field('band').remote_field
     base_files = (
         'admin/js/vendor/jquery/jquery.min.js',
         'admin/js/vendor/select2/select2.full.min.js',
         # Language file is inserted here.
         'admin/js/jquery.init.js',
         'admin/js/autocomplete.js',
     )
     languages = (
         ('de', 'de'),
         # Language with code 00 does not exist.
         ('00', None),
         # Language files are case sensitive.
         ('sr-cyrl', 'sr-Cyrl'),
         ('zh-cn', 'zh-CN'),
     )
     for lang, select_lang in languages:
         with self.subTest(lang=lang):
             if select_lang:
                 expected_files = (base_files[:2] +
                                   (('admin/js/vendor/select2/i18n/%s.js' %
                                     select_lang), ) + base_files[2:])
             else:
                 expected_files = base_files
             with translation.override(lang):
                 self.assertEqual(
                     AutocompleteSelect(rel, admin.site).media._js,
                     expected_files)
Esempio n. 11
0
    def __init__(self, *args, model_admin, event, **kwargs):
        super().__init__(*args, **kwargs)

        self.event = event

        self.fields["existing_person"].widget = AutocompleteSelect(
            rel=Person._meta.get_field("rsvps"),
            admin_site=model_admin.admin_site,
            choices=self.fields["existing_person"].choices,
        )

        if "location_address2" in self.fields:
            self.fields["location_address2"].required = False

        self.fieldsets = [
            (
                "Compte",
                {
                    "fields":
                    ("existing_person", "new_person_email", "insoumise")
                },
            ),
            (
                "Informations d'inscription",
                {
                    "fields": list(self.person_form_instance.fields_dict)
                },
            ),
        ]
Esempio n. 12
0
class RequiredBandForm(forms.Form):
    band = ModelChoiceField(
        queryset=Album.objects.all(),
        widget=AutocompleteSelect(
            Album._meta.get_field('band').remote_field, admin.site),
        required=True,
    )
Esempio n. 13
0
    def __init__(self, request, params, model, model_admin):
        if self.parameter_name:
            raise AttributeError('Rename attribute `parameter_name` to '
                                 '`field_name` for {}'.format(self.__class__))
        self.parameter_name = '{}__id__exact'.format(self.field_name)
        super().__init__(request, params, model, model_admin)

        if self.rel_model:
            model = self.rel_model

        remote_field = model._meta.get_field(self.field_name).remote_field

        attrs = self.widget_attrs.copy()

        field = forms.ModelChoiceField(
            queryset=getattr(model, self.field_name).get_queryset(),
            widget=AutocompleteSelect(remote_field, model_admin.admin_site),
            required=False)

        self._add_media(model_admin)

        attrs['id'] = 'id-%s-dal-filter' % self.field_name

        if self.is_placeholder_title:
            attrs['data-placeholder'] = "By " + self.title

        self.rendered_widget = field.widget.render(
            name=self.parameter_name,
            value=self.used_parameters.get(self.parameter_name, ''),
            attrs=attrs)
Esempio n. 14
0
    def get_rendered_widget(self):
        rel = models.ForeignKey(to=Segment, on_delete=models.CASCADE)
        rel.model = Segment
        widget = AutocompleteSelect(
            rel,
            self.model_admin.admin_site,
        )
        FieldClass = self.get_form_field()
        field = FieldClass(
            queryset=self.get_queryset_for_field(),
            widget=widget,
            required=False,
        )

        self._add_media(self.model_admin, widget)

        attrs = self.widget_attrs.copy()
        attrs["id"] = "id-%s-autocomplete-filter" % self.field_name
        attrs["class"] = f'{attrs.get("class", "")} select-filter'.strip()

        return field.widget.render(
            name=self.parameter_name,
            value=self.used_parameters.get(self.parameter_name, ""),
            attrs=attrs,
        ) + format_html(
            '<a style="margin-top: 5px" href="{}">Gérer les segments</a>',
            reverse("admin:mailing_segment_changelist"),
        )
Esempio n. 15
0
File: admin.py Progetto: JBEI/edd
 def formfield_for_foreignkey(self, db_field, request, **kwargs):
     if db_field.name == "group":
         kwargs["widget"] = AutocompleteSelect(
             models.GroupPermission._meta.get_field("group"),
             admin.site,
         )
     return db_field.formfield(**kwargs)
Esempio n. 16
0
File: admin.py Progetto: JBEI/edd
 def formfield_for_foreignkey(self, db_field, request, **kwargs):
     if db_field.name == "meta_type":
         kwargs["widget"] = AutocompleteSelect(
             models.WorklistColumn._meta.get_field("meta_type"),
             admin.site,
         )
     return db_field.formfield(**kwargs)
Esempio n. 17
0
 class Meta:
     widgets = {
         'actividad':
         AutocompleteSelect(
             ActividadesPOA._meta.get_field('actividad').remote_field,
             admin.site,
             attrs={'style': 'width: 400px'}),
     }
Esempio n. 18
0
class PopularMobileForm(forms.ModelForm):
    mobile = forms.ModelChoiceField(
            queryset=Mobile.objects.all(),
            widget=AutocompleteSelect(FakeRelation(Mobile), admin.site),
        )
    class Meta:
        model = PopularMobile
        fields = ['mobile']
Esempio n. 19
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        # Hack to make AutocompleteSelect work for non-foreign key
        class FakeRemoteField:
            model = self.queryset.model

        self.widget = AutocompleteSelect(FakeRemoteField, admin.site)
Esempio n. 20
0
 def __init__(self, event, model_admin, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.event = event
     self.fields["person"].widget = AutocompleteSelect(
         rel=Person._meta.get_field("organizer_configs"),
         admin_site=model_admin.admin_site,
         choices=self.fields["person"].choices,
     )
Esempio n. 21
0
 class Meta:
     fields = ('tables',)
     widgets = {
         'tables': AutocompleteSelect(
             models.DbQueryUserAllowedTables._meta.get_field('tables').remote_field,
             admin.site,
             attrs={'data-dropdown-auto-width': 'true'}
         ),
     }
Esempio n. 22
0
 class Meta:
     model = Order
     exclude = [
         "order_budget_total", "order_budget_labor",
         "order_budget_material", "order_customer_PO",
         "order_invoice_number"
     ]
     widgets = {
         "order_project":
         AutocompleteSelect(Order.order_project.field.remote_field,
                            admin.site,
                            attrs={'style': 'width: 500px'}),
         "order_name":
         forms.Textarea(attrs={
             'rows': 1,
             'cols': 80
         }),
         "order_description":
         forms.Textarea(attrs={
             'rows': 4,
             'cols': 150
         }),
         "order_facility":
         AutocompleteSelectMultiple(Order.order_facility.field.remote_field,
                                    admin.site,
                                    attrs={'style': 'width: 500px'}),
         "order_model_number":
         forms.Textarea(attrs={
             'rows': 1,
             'cols': 80
         }),
         "order_serial_number":
         forms.Textarea(attrs={
             'rows': 1,
             'cols': 80
         }),
         "order_customer_PO":
         forms.Textarea(attrs={
             'rows': 1,
             'cols': 80
         }),
         "order_invoice_number":
         forms.Textarea(attrs={
             'rows': 1,
             'cols': 80
         }),
         "order_internal_notes":
         forms.Textarea(attrs={
             'rows': 4,
             'cols': 150
         }),
         "order_client_notes":
         forms.Textarea(attrs={
             'rows': 4,
             'cols': 150
         }),
     }
Esempio n. 23
0
class VariationForm(forms.ModelForm):
    mobile = forms.ModelChoiceField(
            queryset=Mobile.objects.all(),
            # widget=AutocompleteSelect(Mobile._meta.get_field('name').remote_field, admin.site)
            widget=AutocompleteSelect(FakeRelation(Mobile), admin.site),
        )
    class Meta:
        model = Variation
        fields = ['name', 'mobile',]
 class Meta:
     model = VideoStream
     fields = ["release_event"]
     widgets = {
         "release_event": AutocompleteSelect(
             VideoStream._meta.get_field("release_event"),
             admin.site,
         ),
     }
Esempio n. 25
0
class OfferForm(forms.ModelForm):
    mobile = forms.ModelChoiceField(
            queryset=Mobile.objects.all(),
            # widget=AutocompleteSelect(Mobile._meta.get_field('name').remote_field, admin.site)
            widget=AutocompleteSelect(FakeRelation(Mobile), admin.site),
        )
    class Meta:
        model = Offer
        fields = ['mobile', 'telecom_company', 'mobile_name', 'discount', 'discount_offered', 'offer_url', 'price', 'slug']
Esempio n. 26
0
class MultiTrainingsForStudentForm(forms.ModelForm):
    student = forms.ModelChoiceField(
        Student.objects.all(),
        widget=AutocompleteSelect(
            Attendance._meta.get_field('student').remote_field, site))

    class Meta:
        model = Training
        fields = ('group', )
Esempio n. 27
0
 class Meta:
     model = StaffTimeSheet
     fields = "__all__"
     widgets = {
         "task_belongs_to_order":
         AutocompleteSelect(
             StaffTimeSheet.task_belongs_to_order.field.remote_field,
             admin.site,
             attrs={'style': 'width: 500px'}),
     }
    def get_widget_instance(self):
        # AutoCompleteSelect demande une relation dans son constructeur, mais n'utilise en réalité
        # que l'attribut model. On lui fournit donc un objet ad-hoc avec cet attribut.
        pseudo_rel = lambda: None
        pseudo_rel.model = self.filter_model

        return AutocompleteSelect(
            pseudo_rel,
            self.model_admin.admin_site,
        )
 class Meta:
     model = VideoStream
     fields = ['release_event']
     widgets = {
         'release_event':
         AutocompleteSelect(
             VideoStream._meta.get_field('release_event'),
             admin.site,
         ),
     }
Esempio n. 30
0
 class Meta:
     widgets = {
         'question':
         AutocompleteSelect(QuestionSet.questions.through._meta.get_field(
             'question').remote_field,
                            admin.site,
                            attrs={
                                'data-dropdown-auto-width': 'true',
                                'style': 'width: 800px;'
                            }),
     }
Esempio n. 31
0
 def test_get_url(self):
     rel = Album._meta.get_field('band').remote_field
     w = AutocompleteSelect(rel)
     url = w.get_url()
     self.assertEqual(url, '/admin_widgets/band/autocomplete/')