class ChercheurForm(forms.ModelForm):
class Meta:
model = Chercheur
- fields = ('diplome',)
+ fields = ('statut', 'diplome', )
class PublicationForm(forms.ModelForm):
class Meta:
class TheseForm(PublicationForm):
titre = forms.CharField(required=True, label="Titre de la thèse ou du mémoire")
- annee = forms.IntegerField(required=False, label="Année de soutenance (réalisée ou prévue)")
+ annee = forms.IntegerField(required=True, label="Année de soutenance (réalisée ou prévue)")
editeur = forms.CharField(required=False, label="Directeur de thèse")
lieu_edition = forms.CharField(required=False, label="Établissement de soutenance")
class Meta:
model = Publication
fields = ('titre', 'annee', 'editeur', 'lieu_edition', 'nb_pages', 'url')
+
+ #def clean(self):
+ # statut = self.data.get('chercheur-statut')
+ # titre = self.cleaned_data.get("titre")
+ # annee = self.cleaned_data.get("annee")
+ # editeur = self.cleaned_data.get("editeur")
+ #
+ # if (statut == "enseignant" or statut == "etudiant") \
+ # and (not titre or not annee or not editeur):
+ # raise forms.ValidationError("Vous devez renseigner la rubrique thèse.")
class ExpertiseForm(forms.ModelForm):
class Meta:
class Meta:
model = Chercheur
fields = ('etablissement',)
+ def clean(self):
+ statut = self.data.get('chercheur-statut')
+ etablissement = self.cleaned_data.get("etablissement")
+ etablissement_autre_nom = self.data.get("etablissement_autre-etablissement_autre_nom")
+
+ if statut == "enseignant":
+ if not etablissement or not etablissement_autre_nom:
+ raise forms.ValidationError("")
+
class EtablissementAutreForm(forms.ModelForm):
class Meta:
model = Chercheur
- fields = ('etablissement_autre_nom', 'etablissement_autre_pays', 'enseignant' )
+ fields = ('etablissement_autre_nom', 'etablissement_autre_pays' )
class DisciplineForm(forms.ModelForm):
class Meta:
model = Chercheur
- fields = ('discipline', 'theme_recherche', 'mots_cles', 'url_site_web', 'url_blog', 'url_facebook', 'url_linkedin')
+ fields = ('discipline', 'theme_recherche', 'mots_cles', 'url_site_web', 'url_blog',)
class PersonneEditForm(forms.ModelForm):
class Meta:
salutation = models.CharField(max_length=128, null = True, blank = True)
nom = models.CharField(max_length=255)
prenom = models.CharField(max_length=128, verbose_name = 'Prénom')
- courriel = models.EmailField(max_length=128, unique=True)
+ courriel = models.EmailField(max_length=128, unique=True, verbose_name="Adresse électronique")
fonction = models.CharField(max_length=128, null = True, blank = True)
date_naissance = models.DateField(null=True, blank=True)
sousfonction = models.CharField(max_length=128, null = True, blank = True,
Q(these__titre__icontains=word)).distinct()
return qs
-FONCTION_CHOICES = (('Professeur', 'Professeur'), ('Chercheur', 'Chercheur'), ('Chercheur_independant', 'Chercheur indépendant'), ('Doctorant', 'Doctorant'))
+STATUT_CHOICES = (('enseignant', 'Enseignant-chercheur dans un établissement'), ('etudiant', 'Étudiant-chercheur doctorant'), ('independant', 'Chercheur indépendant docteur'))
class Chercheur(models.Model):
id = models.AutoField(primary_key=True, db_column='id')
personne = models.ForeignKey('Personne', db_column='personne')
nationalite = models.ForeignKey(Pays, null = True, db_column='nationalite', to_field='code',
verbose_name = 'Nationalité', related_name='nationalite')
#fonction = models.CharField(max_length=36, choices=FONCTION_CHOICES)
+ statut = models.CharField(max_length=36, choices=STATUT_CHOICES)
diplome = models.CharField(max_length=255, null=True,
verbose_name = 'Diplôme le plus élevé')
etablissement = models.ForeignKey(Etablissement, db_column='etablissement', null=True, blank=True)
etablissement_autre_pays = models.ForeignKey(Pays, null = True, blank=True, db_column='etablissement_autre_pays',
to_field='code', related_name='etablissement_autre_pays',
verbose_name = 'Pays de l\'établissement')
- enseignant = models.BooleanField(verbose_name="Êtes-vous aussi enseignant dans cet établissement?")
#Domaine
thematique = models.ForeignKey(Thematique, db_column='thematique', null=True, verbose_name='Thematique')
- mots_cles = models.CharField(max_length=255, null=True, blank=True,
+ mots_cles = models.CharField(max_length=255, null=True,
verbose_name='Mots-clés')
- discipline = models.ForeignKey(Discipline, db_column='discipline', null=True, blank=True,
- verbose_name='Champ disciplinaire')
+ discipline = models.ForeignKey(Discipline, db_column='discipline', null=True,
+ verbose_name='Discipline')
theme_recherche = models.TextField(null=True, blank=True, verbose_name='Thème de recherche')
expertise = models.ForeignKey('Expertise', db_column='expertise', null=True, blank=True, related_name='expertise')
url_site_web = models.URLField(max_length=255, null=True, blank=True,
class Expertise(models.Model):
id = models.AutoField(primary_key=True, db_column='id')
- nom = models.CharField(max_length=255, null=True, blank=True, verbose_name = 'Titre de l\'expertise')
+ nom = models.CharField(max_length=255, null=True, blank=True, verbose_name = 'Objet de la dernière expertise')
date = models.DateField(db_column='date_expertise', null=True, blank=True)
- organisme_demandeur = models.CharField(max_length=255, null=True, blank=True, verbose_name = 'Organisme demandeur')
- organisme_demandeur_visible = models.BooleanField(verbose_name="Afficher l'organisme demandeur")
+ lieu = models.CharField(max_length=255, null=True, blank=True, verbose_name = 'Lieu de la dernière expertise')
+ organisme_demandeur = models.CharField(max_length=255, null=True, blank=True, verbose_name = 'Organisme commanditaire')
+ organisme_demandeur_visible = models.BooleanField(verbose_name="Afficher l'organisme commanditaire")
actif = models.BooleanField(editable = False, db_column='actif')
def __unicode__(self):