Есть файл forms.py. Вот его содержимое:
# -*- coding: utf-8 -*-
from django import forms
from permissions.models import *
from taxi.models import Service
from auth.models import User, Group
class PermissionForm(forms.ModelForm):
class Meta:
model = Permission
class UserForm(forms.ModelForm):
plain_password = forms.CharField(label='Пароль', help_text='Оставьте пустым чтобы не менять', required=False)
groups = forms.ModelMultipleChoiceField(queryset=Group.objects.exclude(name__in=('Group1', 'Group2', 'Group3', 'Group4')).all(), widget=forms.CheckboxSelectMultiple())
username = forms.CharField(label='Имя пользователя', help_text='Максимум 30 букв. Разрешены латинские цифры и буквы без пробелов а также сиволы @_.+-')
first_name = forms.CharField(label="Имя")
last_name = forms.CharField(label="Фамилия")
is_active = forms.BooleanField(label="Активен", help_text="Имеет ли пользователь право пользоваться панелью", required=False)
is_superuser = forms.BooleanField(label="Полный доступ", help_text="Пользователь будет иметь доступ ко всем данным панели (Не давайте полный доступ, тем, кому он не нужен!)", required=False)
class Meta:
model = User
exclude = ('email', 'password', 'is_staff', 'last_login', 'date_joined', 'user_permissions',)
class UserEditForm(UserForm):
def save(self, *args, **kwargs):
if self.cleaned_data:
newpwd = self.cleaned_data['plain_password']
else:
newpwd = False
user = super(UserEditForm, self).save(*args, **kwargs)
if newpwd:
user.set_password(newpwd)
user.save()
return user
class GroupForm(forms.ModelForm):
class Meta:
model = Group
exclude = ('permissions',)
class ManagerForm(forms.ModelForm):
username = forms.CharField(label='Имя пользователя', help_text='Максимум 30 букв. Разрешены латинские цифры и буквы без пробелов а также сиволы @_.+-')
plain_password = forms.CharField(label='Пароль', help_text='Оставьте пустым чтобы не менять', required=False)
services = forms.ModelMultipleChoiceField(queryset=Service.objects.all(), widget=forms.CheckboxSelectMultiple())
first_name = forms.CharField(label="Имя")
last_name = forms.CharField(label="Фамилия")
is_active = forms.BooleanField(label="Активен", help_text="Имеет ли пользователь право пользоваться панелью", required=False)
class Meta:
model = User
exclude = ('email', 'password', 'is_staff', 'last_login', 'date_joined', 'user_permissions',)
class ManagerEditForm(ManagerForm):
def save(self, *args, **kwargs):
if self.cleaned_data:
newpwd = self.cleaned_data['plain_password']
else:
newpwd = False
user = super(ManagerEditForm, self).save(*args, **kwargs)
if newpwd:
user.set_password(newpwd)
user.save()
return user