From 82c2785272fcd7b090d00c6597c8204d408b2cbb Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Sun, 14 Dec 2014 00:24:22 +0530 Subject: [PATCH] Auto-generate model form for user updation - Remove the custom UserForm --- plinth/modules/users/forms.py | 30 ------------------------------ plinth/modules/users/views.py | 16 +++++++++++----- 2 files changed, 11 insertions(+), 35 deletions(-) delete mode 100644 plinth/modules/users/forms.py diff --git a/plinth/modules/users/forms.py b/plinth/modules/users/forms.py deleted file mode 100644 index 78e637dfd..000000000 --- a/plinth/modules/users/forms.py +++ /dev/null @@ -1,30 +0,0 @@ -# -# This file is part of Plinth. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# - -from django import forms -from django.contrib.auth.models import User - - -class UserForm(forms.ModelForm): - """Form to change one user""" - class Meta: - model = User - fields = ('username', 'groups') - widgets = { - 'username': forms.widgets.TextInput(attrs={'style': 'width: 50%'}), - 'groups': forms.widgets.CheckboxSelectMultiple(), - } diff --git a/plinth/modules/users/views.py b/plinth/modules/users/views.py index 7235ba985..aaebcd2d9 100644 --- a/plinth/modules/users/views.py +++ b/plinth/modules/users/views.py @@ -15,6 +15,7 @@ # along with this program. If not, see . # +from django import forms from django.contrib import messages from django.contrib.auth import update_session_auth_hash from django.contrib.auth.forms import UserCreationForm, AdminPasswordChangeForm @@ -25,7 +26,6 @@ from django.views.generic.edit import (CreateView, DeleteView, UpdateView, FormView) from django.views.generic import ListView from gettext import gettext as _ -from .forms import UserForm # TODO: we do not use the title anymore, and 'items' is also a python keyword. @@ -69,13 +69,19 @@ class UserList(PlinthContextMixin, ListView): class UserUpdate(PlinthContextMixin, SuccessMessageMixin, UpdateView): template_name = 'users_update.html' - form_class = UserForm + fields = ('username', 'groups', 'is_active') model = User - slug_field = "username" - fields = ['username', 'password'] - exclude = ('last_login', 'email', 'first_name', 'last_name') + slug_field = 'username' success_message = _('User %(username)s updated.') title = _('Edit User') + widgets = { + 'groups': forms.widgets.CheckboxSelectMultiple(), + } + + def get_form_class(self): + """Return a form class generated from user model.""" + return forms.models.modelform_factory(self.model, fields=self.fields, + widgets=self.widgets) def get_success_url(self): return reverse('users:edit', kwargs={'slug': self.object.username})