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