Beispiel #1
0
    def get_form(self, request, obj=None, **kwargs):
        """
        Get PageForm for the Page model and modify its fields depending on
        the request.
        """
        form = super(M2MPlaceholderAdmin,
                     self).get_form(request, obj, **kwargs)

        if obj:

            for placeholder_name in obj._meta.get_field(
                    'placeholders').placeholders:

                placeholder, created = obj.placeholders.get_or_create(
                    slot=placeholder_name)

                defaults = {
                    'label': capfirst(placeholder_name),
                    'help_text': ''
                }
                defaults.update(kwargs)

                widget = PlaceholderPluginEditorWidget(
                    request, self.placeholder_plugin_filter)
                widget.choices = []

                form.base_fields[placeholder.slot] = CharField(widget=widget,
                                                               required=False)
                form.base_fields[placeholder.slot].initial = placeholder.pk

        return form
Beispiel #2
0
 def formfield_for_admin(self, request, filter_func, **kwargs):
     defaults = {
         'label': capfirst(self.verbose_name),
         'help_text': self.help_text
     }
     defaults.update(kwargs)
     widget = PlaceholderPluginEditorWidget(request, filter_func)
     widget.choices = []
     return PlaceholderFormField(required=False, widget=widget, **defaults)