1 # -*- encoding: utf-8 -*-
2 from django
import forms
4 from models
import Utilisateur
6 class PersonneForm(forms
.ModelForm
):
7 password
= forms
.CharField(widget
=forms
.PasswordInput(), label
="Mot de passe")
8 genre
= forms
.ChoiceField(widget
=forms
.RadioSelect(), choices
=GENRE_CHOICES
)
11 fields
= ('nom', 'prenom', 'courriel', 'password', 'genre')
13 class GroupeForm(forms
.ModelForm
):
18 class ChercheurForm(forms
.ModelForm
):
21 fields
= ('fonction', 'diplome',)
23 class PublicationForm(forms
.ModelForm
):
26 fields
= ('titre', 'annee', 'revue', 'editeur', 'lieu_edition', 'nb_pages', 'url')
28 class TheseForm(PublicationForm
):
29 titre
= forms
.CharField(required
=True, label
="Titre de la thèse ou du mémoire")
30 annee
= forms
.IntegerField(required
=False, label
="Année de soutenance")
31 editeur
= forms
.CharField(required
=False, label
="Directeur de thèse")
32 lieu_edition
= forms
.CharField(required
=False, label
="Établissement de soutenance")
35 fields
= ('titre', 'annee', 'editeur', 'lieu_edition', 'nb_pages', 'url')
39 class EtablissementForm(forms
.ModelForm
):
42 fields
= ('etablissement',)
44 class EtablissementAutreForm(forms
.ModelForm
):
47 fields
= ('etablissement_autre_nom', 'etablissement_autre_pays', )
49 class DisciplineForm(forms
.ModelForm
):
52 fields
= ('discipline', 'expertise', 'mots_cles', 'url_site_web', 'url_blog', 'url_facebook', 'url_linkedin')
54 class PersonneEditForm(forms
.ModelForm
):
57 fields
= ('nom', 'prenom', 'genre')
60 class RepertoireSearchForm (forms
.Form
):
61 mots_cles
= forms
.CharField (required
= False, label
="Mots-clés")
62 discipline
= forms
.ModelChoiceField(queryset
=Discipline
.objects
.all(), required
=False, label
="Discipline", empty_label
="Tous")
63 domaine
= forms
.ModelChoiceField(queryset
=Groupe
.objects
.all(), required
=False, label
="Domaine de recherche", empty_label
="Tous")
64 fonction
= forms
.ChoiceField(choices
=(('','Tous'),)+FONCTION_CHOICES
, required
=False, label
="Fonction")
65 pays
= forms
.ModelChoiceField(queryset
=Pays
.objects
.all().order_by("nom"), required
=False, label
="Localisation", empty_label
="Tous")
67 class SendPasswordForm(forms
.Form
):
68 email
= forms
.EmailField(required
=True, label
="courriel")
69 def clean_email(self
):
70 cleaned_data
= self
.cleaned_data
71 email
= cleaned_data
.get("email")
74 Utilisateur
.objects
.get(courriel
=email
)
76 raise forms
.ValidationError("Ce courriel n'existe pas dans notre base de données.")
79 class NewPasswordForm(forms
.Form
):
80 password
= forms
.CharField(widget
=forms
.PasswordInput(), required
=True, label
="Mot de passe")
81 password_repeat
= forms
.CharField(widget
=forms
.PasswordInput(), required
=True, label
="Confirmez mot de passe")
82 def clean_password_repeat(self
):
83 cleaned_data
= self
.cleaned_data
84 password
= cleaned_data
.get("password")
85 password_repeat
= cleaned_data
.get("password_repeat")
86 if password
and password_repeat
:
87 if password
!= password_repeat
:
88 raise forms
.ValidationError("Les mots de passe ne concordent pas")
89 return password_repeat