...
authorAli Jetha <ali@U-AJ.(none)>
Sat, 16 Oct 2010 18:51:36 +0000 (14:51 -0400)
committerAli Jetha <ali@U-AJ.(none)>
Sat, 16 Oct 2010 18:51:36 +0000 (14:51 -0400)
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/production.py
auf_savoirs_en_partage/templates/chercheurs/edit.html
auf_savoirs_en_partage/templates/chercheurs/inscription.html
auf_savoirs_en_partage/templates/render_field.html

index f8f3e9d..122da3b 100644 (file)
@@ -10,11 +10,15 @@ class PersonneForm(forms.ModelForm):
         model = Utilisateur
         fields = ('nom', 'prenom', 'courriel', 'password', 'genre')
         
+class GroupeForm(forms.ModelForm):
+    class Meta:
+        model = Chercheur
+        fields = ('groupes',)
 
 class ChercheurForm(forms.ModelForm):
     class Meta:
         model = Chercheur
-        fields = ('groupes',)
+        fields = ('fonction', 'diplome',)
         
 class PublicationForm(forms.ModelForm):
     class Meta:
@@ -23,6 +27,7 @@ class PublicationForm(forms.ModelForm):
         
 class TheseForm(PublicationForm):
     titre = forms.CharField(required=True, label="Titre")
+    annee = forms.IntegerField(required=False, label="Année de soutenance")
     class Meta:
         model = Publication
         fields = ('titre', 'annee', 'revue', 'editeur', 'lieu_edition', 'nb_pages', 'url')
index 98af4f4..173d8ad 100644 (file)
@@ -74,17 +74,6 @@ class Chercheur(models.Model):
     
     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
     actif = models.BooleanField(editable = False)
     date_creation = models.DateField(auto_now_add=True, db_column='date_creation')
index 689a4d1..d38516b 100644 (file)
@@ -14,6 +14,7 @@ from models import Personne, Utilisateur, Groupe, ChercheurGroupe
 from django.contrib.auth.decorators import login_required
 
 from django.db.models import Q
+from django.shortcuts import get_object_or_404
 
 from django.utils.translation import ugettext_lazy as _
 from django.contrib.auth.forms import AuthenticationForm as OriginalAuthenticationForm
@@ -95,9 +96,10 @@ def inscription(request):
         publication3_form = PublicationForm (request.POST, prefix="publication3") 
         publication4_form = PublicationForm (request.POST, prefix="publication4")
         these_form = TheseForm(request.POST, prefix="these")
+        groupe_form = GroupeForm(request.POST, prefix="groupe")
         
         if personne_form.is_valid():
-            if chercheur_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)
@@ -127,6 +129,13 @@ def inscription(request):
                     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)
+                    
                     return HttpResponseRedirect(reverse('chercheurs.views.retrieve', args=(c.id,)))
     else:
         personne_form = PersonneForm(prefix="personne")
@@ -139,6 +148,7 @@ def inscription(request):
         publication3_form = PublicationForm(prefix="publication3") 
         publication4_form = PublicationForm(prefix="publication4")
         these_form = TheseForm(prefix="these")
+        groupe_form = GroupeForm(prefix="groupe")
     
     variables = { 'personne_form': personne_form,
                   'chercheur_form': chercheur_form,
@@ -150,6 +160,7 @@ def inscription(request):
                   'publication3_form': publication3_form,
                   'publication4_form': publication4_form,
                   'these_form': these_form,
+                  'groupe_form': groupe_form,
                 }
     
     return render_to_response ("chercheurs/inscription.html", \
@@ -174,12 +185,14 @@ def edit(request):
         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)
+        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 these_form.is_valid() ):
+        if( personne_form.is_valid() and discipline_form.is_valid() and chercheur_form.is_valid() and these_form.is_valid() and groupe_form.is_valid() ):
             personne_form.save()
             discipline_form.save()
+            chercheur_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']:
@@ -191,7 +204,7 @@ def edit(request):
             chercheur.these = these_form.save()                  
             chercheur.save()
             #Gestion des groupes
-            groupes = request.POST.getlist('chercheur-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...
@@ -213,6 +226,7 @@ def edit(request):
         publication3_form = PublicationForm(prefix="publication3", instance=chercheur.publication3) 
         publication4_form = PublicationForm(prefix="publication4", instance=chercheur.publication4) 
         these_form = TheseForm(prefix="these", instance=chercheur.these)
+        groupe_form = GroupeForm(prefix="groupe", instance=chercheur)
         #formset = GroupeFormset(prefix="groupes", instance = chercheur)
         
     variables = { 'chercheur': chercheur,
@@ -226,6 +240,7 @@ def edit(request):
                   'publication3_form': publication3_form,
                   'publication4_form': publication4_form,
                   'these_form': these_form,
+                  'groupe_form': groupe_form,
                   #'formset' : formset
                 }
     return render_to_response ("chercheurs/edit.html", \
@@ -248,7 +263,8 @@ def perso(request):
             
 def retrieve(request, id):
     """Fiche du chercheur"""
-    chercheur = Chercheur.objects.get(id=id)
+    #chercheur = Chercheur.objects.get(id=id)
+    chercheur = get_object_or_404(Chercheur, id=id)
     variables = { 'chercheur': chercheur,
                 }
     return render_to_response ("chercheurs/retrieve.html", \
index 19e137c..cdc9de5 100644 (file)
@@ -1,4 +1,4 @@
 from auf_savoirs_en_partage.settings import *
 
-DEBUG=False
+DEBUG=True
 TEMPLATE_DEBUG=DEBUG
index 396861e..e37c426 100644 (file)
             {% include "table_form.html" %}
         {% endwith %}
     </fieldset>
-    lolqut
     <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 %}
     </fieldset>
     
     <fieldset>
index 043a995..a236280 100644 (file)
@@ -18,6 +18,9 @@
         {% with chercheur_form as form %}
             {% include "table_form.html" %}
         {% endwith %}
+        {% with groupe_form as form %}
+            {% include "table_form.html" %}
+        {% endwith %}
     </fieldset>
     
     <fieldset>
index d93f2de..a7ebb23 100644 (file)
@@ -3,12 +3,12 @@
         {{ field }}
     {% else %}
         <td{{ field.row_attrs }} class="required" style="width: 150px;">
-            {{ field.label_tag }}
+            {{ field.label_tag }} {% if field.field.required %}<span style="color:red">*</span>{% endif %}
             {% if field.errors %}
                 {{ field.errors }}
             {% endif %}
         </td>
-        <td>{{ field }} {% if field.field.required %}*{% endif %}
+        <td>{{ field }}
         {% if field.field.help_text %}<p class="help">{{ field.field.help_text|safe }}</p>{% endif %}
         </td>
     {% endif %}