Section "Activités en Francophonie" dans le formulaire d'inscription des
authorEric Mc Sween <eric.mcsween@gmail.com>
Thu, 4 Nov 2010 14:27:49 +0000 (10:27 -0400)
committerEric Mc Sween <eric.mcsween@gmail.com>
Thu, 4 Nov 2010 14:27:49 +0000 (10:27 -0400)
chercheurs.

Demande #589

auf_savoirs_en_partage/chercheurs/forms.py
auf_savoirs_en_partage/chercheurs/models.py
auf_savoirs_en_partage/chercheurs/views.py
auf_savoirs_en_partage/media/css/global.css
auf_savoirs_en_partage/savoirs/templatetags/form_tags.py [new file with mode: 0644]
auf_savoirs_en_partage/sql/2010-11-03.sql [new file with mode: 0644]
auf_savoirs_en_partage/templates/chercheurs/chercheur_form.html
auf_savoirs_en_partage/templates/chercheurs/edit.html
auf_savoirs_en_partage/templates/chercheurs/inscription.html

index 21490de..c654cf7 100644 (file)
@@ -1,4 +1,5 @@
 # -*- encoding: utf-8 -*-
+import hashlib
 from django import forms
 from django.db.models import Q
 from models import *
@@ -11,16 +12,83 @@ class PersonneForm(forms.ModelForm):
         model = Utilisateur
         fields = ('nom', 'prenom', 'courriel', 'password', 'genre')
         
-class GroupeForm(forms.ModelForm):
-    class Meta:
-        model = Chercheur
-        fields = ('groupes',)
+    def clean_password(self):
+        """Encrypter le mot de passe avant de le mettre dans la BD."""
+        return hashlib.md5(self.cleaned_data['password']).hexdigest()
 
+class PersonneEditForm(PersonneForm):
+    class Meta(PersonneForm.Meta):
+        exclude = ('password',)
+        
 class ChercheurForm(forms.ModelForm):
+    """Formulaire d'édition d'un chercheur."""
+    OUI_NON_CHOICES = ((1, 'Oui'), (0, 'Non'))
+
+    membre_instance_auf = forms.ChoiceField(
+        choices=OUI_NON_CHOICES, 
+        label="Êtes-vous (ou avez-vous déjà été) membre d'une instance de l'AUF?",
+        help_text="e.g. conseil scientifique, conseil associatif, commission régionale d'experts",
+        widget=forms.RadioSelect()
+    )
+    membre_instance_auf_dates = forms.CharField(label="Préciser les dates", required=False)
+    expert_oif = forms.ChoiceField(choices=OUI_NON_CHOICES,
+                                   label="Êtes-vous expert de l'OIF?",
+                                   widget=forms.RadioSelect())
+    membre_fipf = forms.ChoiceField(choices=OUI_NON_CHOICES,
+                                    label="Êtes-vous membre de la FIPF?",
+                                    widget=forms.RadioSelect())
+    membre_fipf_association = forms.CharField(label="Préciser le nom de votre association", required=False)
+
     class Meta:
         model = Chercheur
-        fields = ('statut', 'diplome', )
+        fields = ('statut', 'diplome', 'etablissement',
+                  'etablissement_autre_nom', 'etablissement_autre_pays',
+                  'discipline', 'theme_recherche', 'mots_cles',
+                  'url_site_web', 'url_blog', 'url_reseau_social',
+                  'membre_instance_auf', 'membre_instance_auf_dates',
+                  'expert_oif', 'membre_fipf', 'membre_fipf_association')
         
+    def clean(self):
+        etablissement = self.cleaned_data['etablissement']
+        etablissement_autre_nom = self.cleaned_data['etablissement_autre_nom']
+        etablissement_autre_pays = self.cleaned_data['etablissement_autre_pays']
+        if not etablissement:
+            if not etablissement_autre_nom:
+                self._errors['etablissement'] = self.error_class([u"Vous devez renseigner l'établissement"])
+            elif not etablissement_autre_pays:
+                self._errors['etablissement_autre_pays'] = self.error_class([u"Vous devez renseigner le pays de l'établissement"])
+        return self.cleaned_data
+
+    def clean_membre_instance_auf(self):
+        """Transforme la valeur du champ en booléen"""
+        return bool(int(self.cleaned_data['membre_instance_auf']))
+
+    def clean_expert_oif(self):
+        """Transforme la valeur du champ en booléen"""
+        return bool(int(self.cleaned_data['expert_oif']))
+
+    def clean_membre_fipf(self):
+        """Transforme la valeur du champ en booléen"""
+        return bool(int(self.cleaned_data['membre_fipf']))
+
+class GroupesForm(forms.Form):
+    """Formulaire qui associe des groupes à un chercheur."""
+    groupes = forms.ModelMultipleChoiceField(queryset=Groupe.objects.all(), required=False)
+
+    def __init__(self, data=None, prefix=None, chercheur=None):
+        self.chercheur = chercheur
+        initial = {}
+        if chercheur:
+            initial['groupes'] = chercheur.groupes.values_list('id', flat=True)
+        super(GroupesForm, self).__init__(data=data, prefix=prefix, initial=initial)
+
+    def save(self):
+        if self.is_valid():
+            groupes = self.cleaned_data['groupes']
+            ChercheurGroupe.objects.filter(chercheur=self.chercheur).exclude(groupe__in=groupes).delete()
+            for g in groupes:
+                ChercheurGroupe.objects.get_or_create(chercheur=self.chercheur, groupe=g, actif=1)
+
 class PublicationForm(forms.ModelForm):
     class Meta:
         model = Publication
@@ -41,32 +109,60 @@ class ExpertiseForm(forms.ModelForm):
         model = Expertise
         fields = ('nom', 'date', 'organisme_demandeur', 'organisme_demandeur_visible')        
 
-class EtablissementForm(forms.ModelForm):
-    class Meta:
-        model = Chercheur
-        fields = ('etablissement',)
-    def clean(self):
-        cleaned_data = self.cleaned_data
-        etablissement = self.cleaned_data.get("etablissement")
-        etablissement_autre_nom = self.data.get("etablissement_autre-etablissement_autre_nom")
-        if not etablissement and not etablissement_autre_nom:
-            raise forms.ValidationError("")
-        return cleaned_data
+class ChercheurFormGroup(object):
+    """Groupe de formulaires nécessaires pour l'inscription et l'édition
+       d'un chercheur."""
 
-class EtablissementAutreForm(forms.ModelForm):
-    class Meta:
-        model = Chercheur
-        fields = ('etablissement_autre_nom', 'etablissement_autre_pays' )
+    def __init__(self, data=None, chercheur=None):
+        personne_form_class = PersonneForm if chercheur is None else PersonneEditForm
+        self.chercheur = ChercheurForm(data=data, prefix='chercheur', instance=chercheur)
+        self.groupes = GroupesForm(data=data, prefix='chercheur', chercheur=chercheur)
+        self.personne = personne_form_class(data=data, prefix='personne', instance=chercheur and chercheur.personne)
+        self.publication1 = PublicationForm(data=data, prefix='publication1', instance=chercheur and chercheur.publication1)
+        self.publication2 = PublicationForm(data=data, prefix='publication2', instance=chercheur and chercheur.publication2)
+        self.publication3 = PublicationForm(data=data, prefix='publication3', instance=chercheur and chercheur.publication3)
+        self.publication4 = PublicationForm(data=data, prefix='publication4', instance=chercheur and chercheur.publication4)
+        self.these = TheseForm(data=data, prefix='these', instance=chercheur and chercheur.these)
+        self.expertise = ExpertiseForm(data=data, prefix='expertise', instance=chercheur and chercheur.expertise)
 
-class DisciplineForm(forms.ModelForm):
-    class Meta:
-        model = Chercheur
-        fields = ('discipline', 'theme_recherche', 'mots_cles', 'url_site_web', 'url_blog', 'url_reseau_social')
-        
-class PersonneEditForm(forms.ModelForm):
-    class Meta:
-        model = Personne
-        fields = ('nom', 'prenom', 'genre') 
+    @property
+    def has_errors(self):
+        return bool(self.chercheur.errors or self.personne.errors or self.groupes.errors or
+                    self.publication1.errors or self.publication2.errors or self.publication3.errors or
+                    self.publication4.errors or self.these.errors or self.expertise.errors)
+
+    def is_valid(self):
+        return self.chercheur.is_valid() and self.personne.is_valid() and self.groupes.is_valid() and \
+               self.publication1.is_valid() and self.publication2.is_valid() and \
+               self.publication3.is_valid() and self.publication4.is_valid() and \
+               self.these.is_valid() and self.expertise.is_valid()
+
+    def save(self):
+        if self.is_valid():
+
+            chercheur = self.chercheur.instance
+
+            # Enregistrer d'abord les clés étrangères car on doit les stocker dans
+            # l'objet chercheur.
+            chercheur.personne = self.personne.save()
+            if self.publication1.cleaned_data['titre']:
+                chercheur.publication1 = self.publication1.save()
+            if self.publication2.cleaned_data['titre']:
+                chercheur.publication2 = self.publication2.save()
+            if self.publication3.cleaned_data['titre']:
+                chercheur.publication3 = self.publication3.save()
+            if self.publication4.cleaned_data['titre']:
+                chercheur.publication4 = self.publication4.save()
+            chercheur.these = self.these.save()
+            if self.expertise.cleaned_data['nom']:
+                chercheur.expertise = self.expertise.save()
+
+            # Puis enregistrer le chercheur lui-même.
+            self.chercheur.save()
+
+            # Puis les many-to-many puisqu'on a besoin d'un id.
+            self.groupes.chercheur = chercheur
+            self.groupes.save()
 
 class RepertoireSearchForm (forms.Form):
     mots_cles = forms.CharField(required=False, label="Rechercher dans tous les champs")
index 54d84fe..71fd7e7 100644 (file)
@@ -123,6 +123,13 @@ class Chercheur(models.Model):
     
     these = models.ForeignKey('Publication', db_column='these', null=True, blank=True, related_name='These')
     
+    # Activités en francophonie
+    membre_instance_auf = models.BooleanField(default=False, verbose_name="est ou a déjà été membre d'une instance de l'AUF")
+    membre_instance_auf_dates = models.CharField(max_length=255, blank=True, verbose_name="dates")
+    expert_oif = models.BooleanField(default=False, verbose_name="est un expert de l'OIF")
+    membre_fipf = models.BooleanField(default=False, verbose_name="est membre de la FIPF")
+    membre_fipf_association = models.CharField(max_length=255, blank=True, verbose_name="nom de l'association")
+
     #meta
     actif = models.BooleanField(editable = False)
     date_creation = models.DateField(auto_now_add=True, db_column='date_creation')
index e08f8d5..ebc9c52 100644 (file)
@@ -7,6 +7,7 @@ from django.template.loader import get_template
 from django.core.urlresolvers import reverse as url
 from django.core.mail import send_mail
 from django.conf import settings
+from django.views.decorators.cache import never_cache
 
 from forms import *
 from django.forms.models import inlineformset_factory
@@ -129,186 +130,37 @@ def index(request):
 
 def inscription(request):
     if request.method == 'POST':
-        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")
-        these_form = TheseForm(request.POST, prefix="these")
-        expertise_form = ExpertiseForm(request.POST, prefix="expertise")
-        groupe_form = GroupeForm(request.POST, prefix="groupe")
-        
-        if personne_form.is_valid():
-            if chercheur_form.is_valid() and groupe_form.is_valid():
-                c = chercheur_form.save(commit=False)
-                
-                etablissement_form = EtablissementForm (request.POST, prefix="etablissement", instance=c)
-                etablissement_autre_form = EtablissementAutreForm (request.POST, prefix="etablissement_autre", instance=c)
-                discipline_form = DisciplineForm (request.POST, prefix="discipline", instance=c)
-                
-                if etablissement_form.is_valid() and discipline_form.is_valid() and these_form.is_valid():       
-                    if publication1_form.is_valid() and publication1_form.cleaned_data['titre']:
-                       pub = publication1_form.save()
-                       c.publication1 = pub
-                    if publication2_form.is_valid() and publication2_form.cleaned_data['titre']:
-                       pub = publication2_form.save()
-                       c.publication2 = pub   
-                    if publication3_form.is_valid() and publication3_form.cleaned_data['titre']:
-                       pub = publication3_form.save()
-                       c.publication3 = pub    
-                    if publication4_form.is_valid() and publication4_form.cleaned_data['titre']:
-                       pub = publication4_form.save()
-                       c.publication4 = pub    
-                    these = these_form.save()
-                    if expertise_form.is_valid() and expertise_form.cleaned_data['nom']:
-                        expertise = expertise_form.save()
-                        c.expertise = expertise
-                    c.these = these 
-                    etablissement_form.save(commit=False)
-                    etablissement_autre_form.save(commit=False)
-                    discipline_form.save(commit=False)
-                    #encodage du mot de passe de l'utilisateur (refactorer car c'est pas clean
-                    #et c'est pas la bonne place pour faire ca - AJ
-                    personne_form.cleaned_data['password'] = hashlib.md5(personne_form.cleaned_data['password']).hexdigest()
-                    p = personne_form.save()
-                    c.personne = p
-                    c.save()
-                    
-                    #sauvegarde des groupes
-                    groupes = request.POST.getlist('groupe-groupes')
-                    for g in groupes:
-                        g = Groupe.objects.get(pk=g)
-                        ChercheurGroupe.objects.get_or_create(chercheur=c, groupe=g, actif=1)
-
-                    # login automatique
-                    login(request, authenticate(username=personne_form.cleaned_data['courriel'], 
-                                                password=personne_form.cleaned_data['password']))
-                    return HttpResponseRedirect(url('chercheurs.views.perso'))
+        forms = ChercheurFormGroup(request.POST)
+        if forms.is_valid():
+            forms.save()
+            # login automatique
+            login(request, authenticate(username=forms.personne.cleaned_data['courriel'], 
+                                        password=forms.personne.cleaned_data['password']))
+            return HttpResponseRedirect(url('chercheurs.views.perso'))
     else:
-        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")
-        these_form = TheseForm(prefix="these")
-        expertise_form = ExpertiseForm(prefix="expertise")
-        groupe_form = GroupeForm(prefix="groupe")
-    
-    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,
-                  'these_form': these_form,
-                  'expertise_form': expertise_form,
-                  'groupe_form': groupe_form,
-                }
+        forms = ChercheurFormGroup()
     
-    return render_to_response ("chercheurs/inscription.html", \
-            Context (variables), 
-            context_instance = RequestContext(request))
+    return render_to_response("chercheurs/inscription.html",
+                              dict(forms=forms),
+                              context_instance=RequestContext(request))
 
 @login_required()
+@never_cache
 def edit(request):
     """Edition d'un chercheur"""
     context_instance = RequestContext(request)
     chercheur = context_instance['user_chercheur']    
-    #GroupeFormset = inlineformset_factory(Chercheur, ChercheurGroupe)
-    
     if request.method == 'POST':
-        personne_form = PersonneEditForm(request.POST, prefix="personne", instance=chercheur.personne)
-        chercheur_form = ChercheurForm (request.POST, prefix="chercheur", instance=chercheur)
-        etablissement_form = EtablissementForm(request.POST, prefix="etablissement", instance=chercheur)
-        etablissement_autre_form = EtablissementAutreForm(request.POST, prefix="etablissement_autre", instance=chercheur)
-        discipline_form = DisciplineForm(request.POST, prefix="discipline", instance=chercheur)
-        publication1_form = PublicationForm(request.POST, prefix="publication1", instance=chercheur.publication1)
-        publication2_form = PublicationForm(request.POST, prefix="publication2", instance=chercheur.publication2) 
-        publication3_form = PublicationForm(request.POST, prefix="publication3", instance=chercheur.publication3) 
-        publication4_form = PublicationForm(request.POST, prefix="publication4", instance=chercheur.publication4)
-        these_form = TheseForm(request.POST, prefix="these", instance=chercheur.these)
-        expertise_form = ExpertiseForm(request.POST, prefix="expertise", instance=chercheur.expertise)
-        groupe_form = GroupeForm(request.POST, prefix="groupe", instance=chercheur)
-        
-        #formset = GroupeFormset(request.POST, prefix="groupes", instance = chercheur)
-        
-        if( personne_form.is_valid() and discipline_form.is_valid() and chercheur_form.is_valid() and these_form.is_valid()
-            and etablissement_form.is_valid() and etablissement_autre_form.save() and groupe_form.is_valid() and expertise_form.is_valid() ):
-            personne_form.save()
-            discipline_form.save()
-            chercheur_form.save()
-            etablissement_form.save()
-            etablissement_autre_form.save()
-            
-            if publication1_form.is_valid() and publication1_form.cleaned_data['titre']:
-                chercheur.publication1 = publication1_form.save()
-            if publication2_form.is_valid() and publication2_form.cleaned_data['titre']:
-                chercheur.publication2 = publication2_form.save()
-            if publication3_form.is_valid() and publication3_form.cleaned_data['titre']:
-                chercheur.publication3 = publication3_form.save()              
-            if publication4_form.is_valid() and publication4_form.cleaned_data['titre']:
-                chercheur.publication4 = publication4_form.save()
-            chercheur.these = these_form.save()  
-            if expertise_form.cleaned_data['nom']:
-                chercheur.expertise = expertise_form.save()                
-            chercheur.save()
-            #Gestion des groupes
-            groupes = request.POST.getlist('groupe-groupes')
-            #On delete les chercheurs deselectionnés
-            ChercheurGroupe.objects.filter(chercheur=chercheur).exclude(groupe__in=groupes).delete()
-            #Sauvegarde des groupes...
-            for g in groupes:
-                g = Groupe.objects.get(pk=g)
-                ChercheurGroupe.objects.get_or_create(chercheur=chercheur, groupe=g, actif=1)
+        forms = ChercheurFormGroup(request.POST, chercheur=chercheur)
+        if forms.is_valid():
+            forms.save()
             return HttpResponseRedirect("/chercheurs/perso/?modification=1")
-            
-            #formset.save()
-            
     else:
-        personne_form = PersonneEditForm(prefix="personne", instance=chercheur.personne) 
-        chercheur_form = ChercheurForm (prefix="chercheur", instance=chercheur)
-        etablissement_form = EtablissementForm(prefix="etablissement", instance=chercheur)
-        etablissement_autre_form = EtablissementAutreForm(prefix="etablissement_autre", instance=chercheur)
-        discipline_form = DisciplineForm(prefix="discipline", instance=chercheur)
-        publication1_form = PublicationForm(prefix="publication1", instance=chercheur.publication1)
-        publication2_form = PublicationForm(prefix="publication2", instance=chercheur.publication2) 
-        publication3_form = PublicationForm(prefix="publication3", instance=chercheur.publication3) 
-        publication4_form = PublicationForm(prefix="publication4", instance=chercheur.publication4) 
-        these_form = TheseForm(prefix="these", instance=chercheur.these)
-        expertise_form = ExpertiseForm(prefix="expertise", instance=chercheur.expertise)
-        groupe_form = GroupeForm(prefix="groupe", instance=chercheur)
-        #formset = GroupeFormset(prefix="groupes", instance = chercheur)
+        forms = ChercheurFormGroup(chercheur=chercheur)
         
-    variables = { 'chercheur': chercheur,
-                  '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,
-                  'these_form': these_form,
-                  'expertise_form': expertise_form,
-                  'groupe_form': groupe_form,
-                  #'formset' : formset
-                }
-    return render_to_response ("chercheurs/edit.html", \
-            Context (variables), 
-            context_instance = RequestContext(request))
-            
+    return render_to_response("chercheurs/edit.html",
+                              dict(forms=forms, chercheur=chercheur),
+                              context_instance = RequestContext(request))
             
 @login_required()
 def perso(request):
index 4d0e2bd..b87dd9d 100644 (file)
@@ -195,7 +195,7 @@ ul.actions { position: absolute; top: 15px; right: 20px; }
 #repertoire th, td { padding:5px }
 
 
-.errorlist {color:red}
+.errorlist { color:red; margin: 0 }
 
 .publications_autre {border:1px solid #CCC; background:#FAFAFA; margin:10px; padding:10px; display:none;}
 
@@ -283,3 +283,6 @@ color:red;
 .fiche {margin-top: 6px;}
 .fiche a, .original a, .provenance a{text-decoration: none;}
 .back {position: absolute; top: 20px; right: 20px;}
+
+.horizontal-radio-buttons ul { margin-left: 0 }
+.horizontal-radio-buttons li { display: inline }
diff --git a/auf_savoirs_en_partage/savoirs/templatetags/form_tags.py b/auf_savoirs_en_partage/savoirs/templatetags/form_tags.py
new file mode 100644 (file)
index 0000000..b3b1dc3
--- /dev/null
@@ -0,0 +1,8 @@
+# -*- encoding: utf-8 -*-
+from django import template
+
+register = template.Library()
+
+@register.inclusion_tag('render_field.html')
+def form_field(field):
+    return dict(field=field)
diff --git a/auf_savoirs_en_partage/sql/2010-11-03.sql b/auf_savoirs_en_partage/sql/2010-11-03.sql
new file mode 100644 (file)
index 0000000..fb3f0dd
--- /dev/null
@@ -0,0 +1,10 @@
+-- Activités en francophonie d'un chercheur
+
+BEGIN;
+ALTER TABLE `chercheurs_chercheur`
+    ADD COLUMN `membre_instance_auf` bool NOT NULL,
+    ADD COLUMN `membre_instance_auf_dates` varchar(255) NOT NULL,
+    ADD COLUMN `expert_oif` bool NOT NULL,
+    ADD COLUMN `membre_fipf` bool NOT NULL,
+    ADD COLUMN `membre_fipf_association` varchar(255) NOT NULL;
+COMMIT;
index 3c5dbe4..bf2dd80 100644 (file)
@@ -1,54 +1,70 @@
+{% load form_tags %}
+
 <script>
   $(function () {
       $("#id_expertise").datetime({ userLang: 'fr' });
       });
 </script>
 
- {% if personne_form.errors or chercheur_form.errors or etablissement_form.errors or discipline_form.errors or these_form.errors %}
+{% if forms.has_errors %}
 <span class="message">Votre fiche n'a pas été enregistrée. Veuillez remplir tous les champs obligatoires (*).</span>
 {% endif %}   
-    <fieldset>
+    <fieldset class="horizontal-radio-buttons">
         <legend>Informations personnelles</legend>
-        {% with personne_form as form %}
+        {% with forms.personne as form %}
             {% include "table_form.html" %}
         {% endwith %}
     </fieldset>
+
     <fieldset>
         <legend>Informations académiques</legend>
-        {% with chercheur_form as form %}
-            {% include "table_form.html" %}
-        {% endwith %}
-        {% with groupe_form as form %}
-            {% include "table_form.html" %}
-        {% endwith %}
+        <table>
+            {% form_field forms.chercheur.statut %}
+            {% form_field forms.chercheur.diplome %}
+            {% form_field forms.groupes.groupes %}
+        </table>
     </fieldset>
-    
+
     <fieldset>
         <legend>Etablissement de rattachement <span style="color:red">*</span></legend>
-        {% if etablissement_form.errors %}
-        <span class="message">Vous devez renseigner un établissement.</span>
-        {% endif %}
-        {% with etablissement_form as form %}
-            {% include "table_form.html" %}
-        {% endwith %}
+        <table>
+            {% form_field forms.chercheur.etablissement %}
+        </table>
         <p>Si l'établissement n'existe pas ci-dessus</p>
-        {% with etablissement_autre_form as form %}
-            {% include "table_form.html" %}
-        {% endwith %}
+        <table>
+            {% form_field forms.chercheur.etablissement_autre_nom %}
+            {% form_field forms.chercheur.etablissement_autre_pays %}
+        </table>
     </fieldset>
     
     <fieldset>
         <legend>Champ disciplinaire, thèmes de recherche</legend>
-        {% with discipline_form as form %}
-            {% include "table_form.html" %}
-        {% endwith %}
+        <table>
+            {% form_field forms.chercheur.discipline %}
+            {% form_field forms.chercheur.theme_recherche %}
+            {% form_field forms.chercheur.mots_cles %}
+            {% form_field forms.chercheur.url_site_web %}
+            {% form_field forms.chercheur.url_blog %}
+            {% form_field forms.chercheur.url_reseau_social %}
+        </table>
     </fieldset>
     
     <fieldset>
+        <legend>Activités en Francophonie</legend>
+        <table class="horizontal-radio-buttons">
+            {% form_field forms.chercheur.membre_instance_auf %}
+            {% form_field forms.chercheur.membre_instance_auf_dates %}
+            {% form_field forms.chercheur.expert_oif %}
+            {% form_field forms.chercheur.membre_fipf %}
+            {% form_field forms.chercheur.membre_fipf_association %}
+        </table>
+    </fieldset>
+
+    <fieldset>
         <legend>Thèse ou mémoire</legend>
         <div>
             <div class="publication">
-              {% with these_form as form %}
+              {% with forms.these as form %}
                   {% include "table_form.html" %}
               {% endwith %}
             </div>
@@ -59,7 +75,7 @@
     <fieldset>
         <legend>Expertise</legend>
         <div>
-            {% with expertise_form as form %}
+            {% with forms.expertise as form %}
                 {% include "table_form.html" %}
             {% endwith %}
         </div>
index 9936b2c..e615a9a 100644 (file)
         <div>
             <div class="infotip">
               <strong>Renseignements préalablements enregistrés</strong>
-              <p>{{publication1_form.instance.publication_affichage|default:"-"}}</p>
+              <p>{{forms.publication1.instance.publication_affichage|default:"-"}}</p>
             </div>
             <div class="publication">
-              {% with publication1_form as form %}
+              {% with forms.publication1 as form %}
                   {% include "table_form.html" %}
               {% endwith %}
             </div>
             <h6>- Publication 2</h6>
             <div class="infotip">
               <strong>Renseignements préalablements enregistrés</strong>
-              <p>{{publication2_form.instance.publication_affichage|default:"-"}}</p>
+              <p>{{forms.publication2.instance.publication_affichage|default:"-"}}</p>
             </div>
             <div class="publication">
-                {% with publication2_form as form %}
+                {% with forms.publication2 as form %}
                     {% include "table_form.html" %}
                 {% endwith %} 
             </div>
             <h6>- Publication 3</h6>
             <div class="infotip">
               <strong>Renseignements préalablements enregistrés</strong>
-              <p>{{publication3_form.instance.publication_affichage|default:"-"}}</p>
+              <p>{{forms.publication3.instance.publication_affichage|default:"-"}}</p>
             </div>
             <div class="publication">
-                {% with publication3_form as form %}
+                {% with forms.publication3 as form %}
                     {% include "table_form.html" %}
                 {% endwith %}
             </div>
             <h6>- Publication 4</h6>
             <div class="infotip">
               <strong>Renseignements préalablements enregistrés</strong>
-              <p>{{publication4_form.instance.publication_affichage|default:"-"}}</p>
+              <p>{{forms.publication4.instance.publication_affichage|default:"-"}}</p>
             </div>
             <div class="publication">
-                {% with publication4_form as form %}
+                {% with forms.publication4 as form %}
                     {% include "table_form.html" %}
                 {% endwith %}
             </div>
index e8bc11f..464f857 100644 (file)
@@ -10,7 +10,7 @@
         <legend>Publications</legend>
         <div>
             <div class="publication">
-              {% with publication1_form as form %}
+              {% with forms.publication1 as form %}
                   {% include "table_form.html" %}
               {% endwith %}
             </div>
         <p id="show_publications">+ Autres publications</p>
         <div class="publications_autre">
             <h6>- Publication 2</h6>
-            {% with publication2_form as form %}
+            {% with forms.publication2 as form %}
                 {% include "table_form.html" %}
             {% endwith %} 
             <h6>- Publication 3</h6>
-            {% with publication3_form as form %}
+            {% with forms.publication3 as form %}
                 {% include "table_form.html" %}
             {% endwith %}     
             <h6>- Publication 4</h6>
-            {% with publication4_form as form %}
+            {% with forms.publication4 as form %}
                 {% include "table_form.html" %}
             {% endwith %}
         </div>