53 lines
1.3 KiB
Python
53 lines
1.3 KiB
Python
|
from django import forms
|
||
|
from django.contrib.auth import get_user_model
|
||
|
from django.contrib.auth.models import Group
|
||
|
|
||
|
from wiki_groups.models import WikiGroup
|
||
|
|
||
|
User = get_user_model()
|
||
|
|
||
|
|
||
|
class SelectUserForm(forms.Form):
|
||
|
user = forms.CharField(max_length=150)
|
||
|
|
||
|
def clean_user(self):
|
||
|
user = User.objects.filter(username=self.cleaned_data["user"]).first()
|
||
|
|
||
|
if user is None:
|
||
|
self.add_error(
|
||
|
"user", "Aucune utilisatrice ou utilisateur avec ce login n'existe."
|
||
|
)
|
||
|
|
||
|
return user
|
||
|
|
||
|
|
||
|
class SelectGroupForm(forms.Form):
|
||
|
group = forms.CharField(max_length=150)
|
||
|
|
||
|
def clean_group(self):
|
||
|
group = WikiGroup.objects.filter(
|
||
|
django_group__name=self.cleaned_data["group"]
|
||
|
).first()
|
||
|
|
||
|
if group is None:
|
||
|
self.add_error("group", "Aucun groupe avec ce nom n'existe.")
|
||
|
|
||
|
return group
|
||
|
|
||
|
|
||
|
class CreateGroupForm(forms.Form):
|
||
|
group = forms.CharField(max_length=150)
|
||
|
|
||
|
def clean_group(self):
|
||
|
name = self.cleaned_data["group"]
|
||
|
|
||
|
django_group, created = Group.objects.get_or_create(name=name)
|
||
|
|
||
|
if hasattr(django_group, "wikigroup"):
|
||
|
self.add_error("group", "Un groupe avec ce nom existe déjà.")
|
||
|
return None
|
||
|
|
||
|
group = WikiGroup.objects.create(django_group=django_group)
|
||
|
|
||
|
return group
|