diff --git a/python/nav/web/templates/useradmin/account_detail.html b/python/nav/web/templates/useradmin/account_detail.html index 718efaa2e4..d22fdcd8f1 100644 --- a/python/nav/web/templates/useradmin/account_detail.html +++ b/python/nav/web/templates/useradmin/account_detail.html @@ -63,7 +63,7 @@

{% comment %} ACCOUNT FORM {% endcomment %} {% if account_form %}
- {% crispy account_form %} + {% include 'custom_crispy_templates/flat_form.html' with form=account_form %}
{% endif %} diff --git a/python/nav/web/useradmin/forms.py b/python/nav/web/useradmin/forms.py index 225ac3aa70..854ec4ec00 100644 --- a/python/nav/web/useradmin/forms.py +++ b/python/nav/web/useradmin/forms.py @@ -29,10 +29,10 @@ Row, Column, Field, - HTML, ) from nav.web.crispyforms import ( set_flat_form_attributes, + FlatFieldset, FormColumn, FormRow, SubmitField, @@ -90,31 +90,33 @@ class AccountForm(forms.ModelForm): def __init__(self, *args, **kwargs): super(AccountForm, self).__init__(*args, **kwargs) account = kwargs.get('instance', False) - self.helper = FormHelper() - self.helper.form_action = '' - self.helper.form_method = 'POST' if account: self.fields['password1'].required = False - submit_value = 'Save changes' if kwargs["instance"].id == Account.DEFAULT_ACCOUNT: # We don't want to enable significant changes to the anonymous account self.fields["password1"].widget.attrs["readonly"] = True self.fields["password2"].widget.attrs["readonly"] = True self.fields["login"].widget.attrs["readonly"] = True - else: - submit_value = 'Create account' - self.helper.layout = Layout( - Fieldset( - 'Account', - 'login', - 'name', - 'password1', - 'password2', - Submit('submit_account', submit_value, css_class='small'), - ) + submit_value = "Save changes" if account else "Create account" + + self.attrs = set_flat_form_attributes( + form_fields=[ + FlatFieldset( + legend="Account", + fields=[ + self["login"], + self["name"], + self["password1"], + self["password2"], + SubmitField( + "submit_account", submit_value, css_classes="small" + ), + ], + ) + ], ) def clean_password1(self): @@ -144,29 +146,27 @@ class Meta(object): class ExternalAccountForm(AccountForm): def __init__(self, *args, **kwargs): super(AccountForm, self).__init__(*args, **kwargs) - self.helper = FormHelper() - self.helper.form_action = '' - self.helper.form_method = 'POST' - - if kwargs['instance'].ext_sync: - # We don't want to enable local password editing for accounts that are - # managed externally. - authenticator = ( - "

External authenticator: %s

" - % kwargs["instance"].ext_sync - ) - del self.fields['password1'] - del self.fields['password2'] - self.fields['login'].widget.attrs['readonly'] = True - self.helper.layout = Layout( - Fieldset( - 'Account', - 'login', - 'name', - HTML(authenticator), - Submit('submit_account', 'Save changes', css_class='small'), - ) + # We don't want to enable local password editing for accounts that are + # managed externally. + del self.fields['password1'] + del self.fields['password2'] + self.fields['login'].widget.attrs['readonly'] = True + + self.attrs = set_flat_form_attributes( + form_fields=[ + FlatFieldset( + legend="Account", + fields=[ + self["login"], + self["name"], + SubmitField( + "submit_account", "Save changes", css_classes="small" + ), + ], + template="useradmin/frag-external-account-fieldset.html", + ) + ], )