class Utilisateur(Personne):
password = models.CharField (max_length=35, verbose_name = 'Mot de passe')
-FONCTION_CHOICES = (('Professeur', 'Professeur'), ('Chercheur', 'Chercheur'), ('Doctorant', 'Doctorant'), ('Autre', 'Autre'))
+FONCTION_CHOICES = (('Professeur', 'Professeur'), ('Chercheur', 'Chercheur'), ('Chercheur_independant', 'Chercheur indépendant'), ('Doctorant', 'Doctorant'))
class Chercheur(models.Model):
id = models.AutoField(primary_key=True, db_column='id')
personne = models.ForeignKey('Personne', db_column='personne')
- pays = models.ForeignKey(Pays, null = True, db_column='pays', to_field='code', verbose_name = 'Nationalité')
+ 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)
- scolarite = models.CharField(max_length=255, null=True,
+ 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_nom = models.CharField(max_length=255, null=True, blank=True,
+ verbose_name = 'Autre établissement')
+ 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')
#Domaine
- thematique = models.ForeignKey(Thematique, db_column='thematique', null=True)
+ thematique = models.ForeignKey(Thematique, db_column='thematique', null=True, verbose_name='Thematique')
mots_cles = models.CharField(max_length=255, null=True, blank=True,
- verbose_name='Mots-clés')
- these = models.CharField(max_length=255, null=True, blank=True,
- verbose_name='Thèse')
+ verbose_name='Mots-clés')
discipline = models.ForeignKey(Discipline, db_column='discipline', null=True, blank=True,
verbose_name='Champ disciplinaire')
expertise = models.TextField(null=True, blank=True, verbose_name='Domaine d\'expertise et thèmes de recherche')
- url = models.URLField(max_length=255, null=True, blank=True,
+ url_site_web = models.URLField(max_length=255, null=True, blank=True,
verbose_name='Adresse site Internet personnel')
- publication1 = models.CharField(max_length=255, null=True, blank=True,
- verbose_name = 'Publication 1')
- publication2 = models.CharField(max_length=255, null=True, blank=True,
- verbose_name = 'Publication 2')
- publication3 = models.CharField(max_length=255, null=True, blank=True,
- verbose_name = 'Publication 3')
- publication4 = models.CharField(max_length=255, null=True, blank=True,
- verbose_name = 'Publication 4')
+ url_blog = models.URLField(max_length=255, null=True, blank=True,
+ verbose_name='Blog')
+ url_facebook = models.URLField(max_length=255, null=True, blank=True,
+ verbose_name='Facebook')
+ url_linkedin = models.URLField(max_length=255, null=True, blank=True,
+ verbose_name='Linkedin')
+
groupes = models.ManyToManyField('Groupe', through='ChercheurGroupe', blank=True, verbose_name = 'Domaines de recherche')
actif = models.BooleanField(editable = False)
+ #Refactoring, mettre les publications comme etant des many2many;
+ publication1 = models.ForeignKey('Publication', db_column='publication1', null=True, blank=True, related_name='publication1', verbose_name = 'Publication 1')
+ publication2 = models.ForeignKey('Publication', db_column='publication2', null=True, blank=True, related_name='publication2', verbose_name = 'Publication 2')
+ publication3 = models.ForeignKey('Publication', db_column='publication3', null=True, blank=True, related_name='publication3', verbose_name = 'Publication 3')
+ publication4 = models.ForeignKey('Publication', db_column='publication4', null=True, blank=True, related_name='publication4', verbose_name = 'Publication 4')
+
+ these = models.ForeignKey('Publication', db_column='these', null=True, blank=True, related_name='These')
+ #communication_annee
+ #communication_titre
+ #communication_nom_manifestation_scientifique
+ #communication_lieu
+ #communication_date
+
+ #laboratoire_nom =
+ #laboratoire_etablissement =
+ #laboratoire_pays =
+ #laboratoire_url=
+
+ #meta
+ date_creation = models.DateField(auto_now_add=True, db_column='date_creation')
+ date_modification = models.DateField(auto_now=True, db_column='date_modification')
+
def __unicode__(self):
return u"%s %s" % (self.personne.nom.upper(), self.personne.prenom.title())
+class Publication(models.Model):
+ id = models.AutoField(primary_key=True, db_column='id')
+ titre = models.CharField(max_length=255, db_column='titre', null=True, blank=True, verbose_name = 'Titre')
+ annee = models.IntegerField(db_column='annee', null=True, blank=True, verbose_name='Année de publication')
+ revue = models.CharField(max_length=255, db_column='revue', null=True, blank=True, verbose_name = 'Revue')
+ editeur = models.CharField(max_length=255, db_column='editeur', null=True, blank=True, verbose_name = 'Éditeur')
+ lieu_edition = models.CharField(max_length=255, db_column='lieu_edition', null=True, blank=True, verbose_name = 'Lieu d\'édition')
+ nb_pages = models.CharField(max_length=255, db_column='nb_pages', null=True, blank=True, verbose_name = 'Nombre de pages')
+ url = models.CharField(max_length=255, db_column='url', null=True, blank=True, verbose_name = 'Lien vers la publication')
class Groupe(models.Model):
id = models.AutoField(primary_key=True, db_column='id')
nom = models.CharField(max_length=255, db_column='nom')
+ url = models.URLField(max_length=255, null=True, blank=True,
+ verbose_name='Site web')
+ liste_diffusion = models.URLField(max_length=255, null=True, blank=True,
+ verbose_name='Liste de diffusion')
+ bulletin = models.URLField(max_length=255, null=True, blank=True,
+ verbose_name='Bulletin')
actif = models.BooleanField(editable = False, db_column='actif')
def __unicode__(self):
id = models.AutoField(primary_key=True, db_column='id')
chercheur = models.ForeignKey('Chercheur', db_column='chercheur')
groupe = models.ForeignKey('Groupe', db_column='groupe')
- date_inscription = models.DateField(auto_now=True)
+ date_inscription = models.DateField(auto_now_add=True)
+ date_modification = models.DateField(auto_now=True)
personne_form = PersonneForm (request.POST, prefix="personne")
chercheur_form = ChercheurForm (request.POST, prefix="chercheur")
etablissement_form = EtablissementForm (request.POST, prefix="etablissement")
+ etablissement_autre_form = EtablissementAutreForm(request.POST, prefix="etablissement_autre")
discipline_form = DisciplineForm (request.POST, prefix="discipline")
+ publication1_form = PublicationForm (request.POST, prefix="publication1")
+ publication2_form = PublicationForm (request.POST, prefix="publication2")
+ publication3_form = PublicationForm (request.POST, prefix="publication3")
+ publication4_form = PublicationForm (request.POST, prefix="publication4")
if personne_form.is_valid():
if chercheur_form.is_valid():
etablissement_form = EtablissementForm (request.POST, prefix="etablissement", instance=c)
discipline_form = DisciplineForm (request.POST, prefix="discipline", instance=c)
- if etablissement_form.is_valid() and discipline_form.is_valid():
- etablissement_form.save(commit=False)
+ if etablissement_form.is_valid() and discipline_form.is_valid():
+ if publication1_form.is_valid():
+ pub = publication1_form.save()
+ c.publication1 = pub
+ if publication2_form.is_valid():
+ pub = publication2_form.save()
+ c.publication2 = pub
+ if publication3_form.is_valid():
+ pub = publication3_form.save()
+ c.publication3 = pub
+ if publication4_form.is_valid():
+ pub = publication4_form.save()
+ c.publication4 = pub
+ etablissement_form.save(commit=False)
+ etablissement_autre_form.save(commit=False)
discipline_form.save(commit=False)
p = personne_form.save()
c.personne = p
personne_form = PersonneForm(prefix="personne")
chercheur_form = ChercheurForm(prefix="chercheur")
etablissement_form = EtablissementForm(prefix="etablissement")
+ etablissement_autre_form = EtablissementAutreForm(prefix="etablissement_autre")
discipline_form = DisciplineForm(prefix="discipline")
+ publication1_form = PublicationForm(prefix="publication1")
+ publication2_form = PublicationForm(prefix="publication2")
+ publication3_form = PublicationForm(prefix="publication3")
+ publication4_form = PublicationForm(prefix="publication4")
variables = { 'personne_form': personne_form,
'chercheur_form': chercheur_form,
'etablissement_form': etablissement_form,
'discipline_form': discipline_form,
+ 'etablissement_autre_form': etablissement_autre_form,
+ 'publication1_form': publication1_form,
+ 'publication2_form': publication2_form,
+ 'publication3_form': publication3_form,
+ 'publication4_form': publication4_form,
}
return render_to_response ("chercheurs/inscription.html", \