diff options
Diffstat (limited to 'django/contrib/admin/helpers.py')
| -rw-r--r-- | django/contrib/admin/helpers.py | 80 |
1 files changed, 46 insertions, 34 deletions
diff --git a/django/contrib/admin/helpers.py b/django/contrib/admin/helpers.py index cc773e7256..a9db82ae78 100644 --- a/django/contrib/admin/helpers.py +++ b/django/contrib/admin/helpers.py @@ -25,8 +25,12 @@ ACTION_CHECKBOX_NAME = '_selected_action' class ActionForm(forms.Form): action = forms.ChoiceField(label=_('Action:')) - select_across = forms.BooleanField(label='', required=False, initial=0, - widget=forms.HiddenInput({'class': 'select-across'})) + select_across = forms.BooleanField( + label='', + required=False, + initial=0, + widget=forms.HiddenInput({'class': 'select-across'}), + ) checkbox = forms.CheckboxInput({'class': 'action-select'}, lambda value: False) @@ -62,7 +66,7 @@ class AdminForm(object): class Fieldset(object): def __init__(self, form, name=None, readonly_fields=(), fields=(), classes=(), - description=None, model_admin=None): + description=None, model_admin=None): self.form = form self.name, self.fields = name, fields self.classes = ' '.join(classes) @@ -73,9 +77,11 @@ class Fieldset(object): def _media(self): if 'collapse' in self.classes: extra = '' if settings.DEBUG else '.min' - js = ['vendor/jquery/jquery%s.js' % extra, - 'jquery.init.js', - 'collapse%s.js' % extra] + js = [ + 'vendor/jquery/jquery%s.js' % extra, + 'jquery.init.js', + 'collapse%s.js' % extra, + ] return forms.Media(js=['admin/js/%s' % url for url in js]) return forms.Media() media = property(_media) @@ -92,9 +98,10 @@ class Fieldline(object): self.fields = [field] else: self.fields = field - self.has_visible_field = not all(field in self.form.fields and - self.form.fields[field].widget.is_hidden - for field in self.fields) + self.has_visible_field = not all( + field in self.form.fields and self.form.fields[field].widget.is_hidden + for field in self.fields + ) self.model_admin = model_admin if readonly_fields is None: readonly_fields = () @@ -103,15 +110,15 @@ class Fieldline(object): def __iter__(self): for i, field in enumerate(self.fields): if field in self.readonly_fields: - yield AdminReadonlyField(self.form, field, is_first=(i == 0), - model_admin=self.model_admin) + yield AdminReadonlyField(self.form, field, is_first=(i == 0), model_admin=self.model_admin) else: yield AdminField(self.form, field, is_first=(i == 0)) def errors(self): return mark_safe( - '\n'.join(self.form[f].errors.as_ul() - for f in self.fields if f not in self.readonly_fields).strip('\n') + '\n'.join( + self.form[f].errors.as_ul() for f in self.fields if f not in self.readonly_fields + ).strip('\n') ) @@ -135,8 +142,10 @@ class AdminField(object): attrs = {'class': ' '.join(classes)} if classes else {} # checkboxes should not have a label suffix as the checkbox appears # to the left of the label. - return self.field.label_tag(contents=mark_safe(contents), attrs=attrs, - label_suffix='' if self.is_checkbox else None) + return self.field.label_tag( + contents=mark_safe(contents), attrs=attrs, + label_suffix='' if self.is_checkbox else None, + ) def errors(self): return mark_safe(self.field.errors.as_ul()) @@ -225,7 +234,7 @@ class InlineAdminFormSet(object): A wrapper around an inline formset for use in the admin system. """ def __init__(self, inline, formset, fieldsets, prepopulated_fields=None, - readonly_fields=None, model_admin=None): + readonly_fields=None, model_admin=None): self.opts = inline self.formset = formset self.fieldsets = fieldsets @@ -241,16 +250,21 @@ class InlineAdminFormSet(object): def __iter__(self): for form, original in zip(self.formset.initial_forms, self.formset.get_queryset()): view_on_site_url = self.opts.get_view_on_site_url(original) - yield InlineAdminForm(self.formset, form, self.fieldsets, - self.prepopulated_fields, original, self.readonly_fields, - model_admin=self.opts, view_on_site_url=view_on_site_url) + yield InlineAdminForm( + self.formset, form, self.fieldsets, self.prepopulated_fields, + original, self.readonly_fields, model_admin=self.opts, + view_on_site_url=view_on_site_url, + ) for form in self.formset.extra_forms: - yield InlineAdminForm(self.formset, form, self.fieldsets, - self.prepopulated_fields, None, self.readonly_fields, - model_admin=self.opts) - yield InlineAdminForm(self.formset, self.formset.empty_form, + yield InlineAdminForm( + self.formset, form, self.fieldsets, self.prepopulated_fields, + None, self.readonly_fields, model_admin=self.opts, + ) + yield InlineAdminForm( + self.formset, self.formset.empty_form, self.fieldsets, self.prepopulated_fields, None, - self.readonly_fields, model_admin=self.opts) + self.readonly_fields, model_admin=self.opts, + ) def fields(self): fk = getattr(self.formset, "fk", None) @@ -260,9 +274,7 @@ class InlineAdminFormSet(object): if field_name in self.readonly_fields: yield { 'label': label_for_field(field_name, self.opts.model, self.opts), - 'widget': { - 'is_hidden': False - }, + 'widget': {'is_hidden': False}, 'required': False, 'help_text': help_text_for_field(field_name, self.opts.model), } @@ -304,19 +316,20 @@ class InlineAdminForm(AdminForm): A wrapper around an inline form for use in the admin system. """ def __init__(self, formset, form, fieldsets, prepopulated_fields, original, - readonly_fields=None, model_admin=None, view_on_site_url=None): + readonly_fields=None, model_admin=None, view_on_site_url=None): self.formset = formset self.model_admin = model_admin self.original = original self.show_url = original and view_on_site_url is not None self.absolute_url = view_on_site_url - super(InlineAdminForm, self).__init__(form, fieldsets, prepopulated_fields, - readonly_fields, model_admin) + super(InlineAdminForm, self).__init__(form, fieldsets, prepopulated_fields, readonly_fields, model_admin) def __iter__(self): for name, options in self.fieldsets: - yield InlineFieldset(self.formset, self.form, name, - self.readonly_fields, model_admin=self.model_admin, **options) + yield InlineFieldset( + self.formset, self.form, name, self.readonly_fields, + model_admin=self.model_admin, **options + ) def needs_explicit_pk_field(self): # Auto fields are editable (oddly), so need to check for auto or non-editable pk @@ -358,8 +371,7 @@ class InlineFieldset(Fieldset): for field in self.fields: if fk and fk.name == field: continue - yield Fieldline(self.form, field, self.readonly_fields, - model_admin=self.model_admin) + yield Fieldline(self.form, field, self.readonly_fields, model_admin=self.model_admin) class AdminErrorList(forms.utils.ErrorList): |
