Merge branch 'master' of ssh://gitosis@git.auf/auf_savoirs_en_partage_django
authorolivier larcheveque <olivier.larcheveque@u-ol.(none)>
Mon, 4 Oct 2010 15:13:09 +0000 (11:13 -0400)
committerolivier larcheveque <olivier.larcheveque@u-ol.(none)>
Mon, 4 Oct 2010 15:13:09 +0000 (11:13 -0400)
auf_savoirs_en_partage/authentification.py
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/templates/chercheurs/edit.html
auf_savoirs_en_partage/templates/chercheurs/inscription.html
auf_savoirs_en_partage/templates/chercheurs/rechercher.html
auf_savoirs_en_partage/templates/chercheurs/retrieve.html
auf_savoirs_en_partage/templates/savoirs/index.html

index 97ee14b..546413f 100644 (file)
@@ -18,7 +18,7 @@ class CascadeBackend(ModelBackend):
         remoteUser = localUser = None
         try:
             if settings.AUTH_PASSWORD_REQUIRED:
-                remoteUser = RemoteUser.objects.get (courriel=email, password=password)
+                remoteUser = RemoteUser.objects.get (courriel=email, password=md5pass)
             else:
                 remoteUser = RemoteUser.objects.get (courriel=email)
         except:
index 9eab15c..4bedb80 100644 (file)
@@ -4,18 +4,21 @@ from models import *
 
 
 class PersonneForm(forms.ModelForm):
+    password = forms.CharField(widget=forms.PasswordInput(), label="Mot de passe")  
     class Meta:
         model = Utilisateur
         fields = ('nom', 'prenom', 'courriel', 'password', 'genre')
+        
 
 class ChercheurForm(forms.ModelForm):
     class Meta:
         model = Chercheur
-        fields = ('nationalite', 'groupes')
+        fields = ('groupes',)
         
 class PublicationForm(forms.ModelForm):
     class Meta:
         model = Publication
+        fields = ('titre', 'annee', 'revue', 'editeur', 'lieu_edition', 'nb_pages', 'url')
 
 class EtablissementForm(forms.ModelForm):
     class Meta:
@@ -30,7 +33,7 @@ class EtablissementAutreForm(forms.ModelForm):
 class DisciplineForm(forms.ModelForm):
     class Meta:
         model = Chercheur
-        fields = ('discipline', 'expertise', 'mots_cles', 'url')
+        fields = ('discipline', 'expertise', 'mots_cles', 'url_site_web', 'url_blog', 'url_facebook', 'url_linkedin')
         
 class PersonneEditForm(forms.ModelForm):
     class Meta:
@@ -39,7 +42,7 @@ class PersonneEditForm(forms.ModelForm):
         
         
 class RepertoireSearchForm (forms.Form):
-      mots_cles = forms.CharField (required = False, label="Mots-clés")
+      #mots_cles = forms.CharField (required = False, label="Mots-clés")
       discipline = forms.ModelChoiceField(queryset=Discipline.objects.all(), required=False, label="Champ disciplinaire", empty_label="Tous")
       fonction = forms.ChoiceField(choices=(('','Tous'),)+FONCTION_CHOICES, required=False, label="Fonction")
       pays = forms.ModelChoiceField(queryset=Pays.objects.all().order_by("nom"), required=False, label="Localisation", empty_label="Tous")
index 46d0dc5..7eae25c 100644 (file)
@@ -64,7 +64,6 @@ class Chercheur(models.Model):
                                     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')
@@ -73,6 +72,7 @@ class Chercheur(models.Model):
     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
@@ -85,6 +85,7 @@ class Chercheur(models.Model):
     #laboratoire_url=
     
     #meta
+    actif = models.BooleanField(editable = False)
     date_creation = models.DateField(auto_now_add=True, db_column='date_creation')
     date_modification = models.DateField(auto_now=True, db_column='date_modification')
     
@@ -100,6 +101,10 @@ class Publication(models.Model):
     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')
+    #Migration des publications depuis l'ancien repertoire de chercheurs
+    publication_affichage = models.TextField(verbose_name = 'Publication', null = True, 
+                                   blank = True)
+    actif = models.BooleanField(editable = False, db_column='actif')
 
 class Groupe(models.Model):
     id = models.AutoField(primary_key=True, db_column='id')
@@ -121,3 +126,4 @@ class ChercheurGroupe(models.Model):
     groupe = models.ForeignKey('Groupe', db_column='groupe')
     date_inscription = models.DateField(auto_now_add=True)
     date_modification = models.DateField(auto_now=True)
+    actif = models.BooleanField(editable = False, db_column='actif')
index 15a06dd..ff95ee3 100644 (file)
@@ -1,6 +1,9 @@
 # -*- encoding: utf-8 -*-
+import hashlib
 from django.shortcuts import render_to_response
+from django.http import HttpResponseRedirect
 from django.template import Context, RequestContext
+from django.core.urlresolvers import reverse
 from forms import *
 
 from auf_references_client.models import Discipline, TypeImplantation
@@ -16,7 +19,7 @@ def chercheur_queryset (request):
     if simpleForm.is_valid ():
         pays = simpleForm.cleaned_data["pays"]
         if pays:
-            list = list.filter (pays = pays.pk)
+            list = list.filter (nationalite = pays.pk)
         fonction = simpleForm.cleaned_data["fonction"]
         if fonction:
             list = list.filter (fonction = fonction)
@@ -26,9 +29,9 @@ def chercheur_queryset (request):
         discipline = simpleForm.cleaned_data["discipline"]
         if discipline:
             list = list.filter (discipline=discipline)
-        mots_cles = simpleForm.cleaned_data["mots_cles"]
-        if mots_cles:
-            list = list.filter (personne__nom__icontains=mots_cles)
+        #mots_cles = simpleForm.cleaned_data["mots_cles"]
+        #if mots_cles:
+        #    list = list.filter (personne__nom__icontains=mots_cles)
     return list
     
 def repertoire(request):
@@ -66,24 +69,28 @@ def inscription(request):
                 discipline_form = DisciplineForm (request.POST, prefix="discipline", instance=c)
                 
                 if etablissement_form.is_valid() and discipline_form.is_valid():       
-                    if publication1_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():
+                    if publication2_form.is_valid() and publication2_form.cleaned_data['titre']:
                        pub = publication2_form.save()
                        c.publication2 = pub   
-                    if publication3_form.is_valid():
+                    if publication3_form.is_valid() and publication3_form.cleaned_data['titre']:
                        pub = publication3_form.save()
                        c.publication3 = pub    
-                    if publication4_form.is_valid():
+                    if publication4_form.is_valid() and publication4_form.cleaned_data['titre']:
                        pub = publication4_form.save()
                        c.publication4 = pub    
                     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()
+                    return HttpResponseRedirect(reverse('chercheurs.views.retrieve', args=(p.id,)))
     else:
         personne_form = PersonneForm(prefix="personne")
         chercheur_form = ChercheurForm(prefix="chercheur")
@@ -116,13 +123,47 @@ def edit(request):
     context_instance = RequestContext(request)
     chercheur = context_instance['user_chercheur']    
     if request.method == 'POST':
-        personne_form = PersonneEditForm(request.POST, prefix="personne", instance=chercheur.personne)  
-        personne_form.save()
+        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)
+        
+
+        if( personne_form.is_valid() and discipline_form.is_valid() and publication1_form.is_valid() and publication2_form.is_valid() and publication3_form.is_valid() and publication4_form.is_valid() and chercheur_form.is_valid() ):
+            personne_form.save()
+            chercheur_form.save()
+            discipline_form.save()
+            publication1_form.save()
+            publication2_form.save()
+            publication3_form.save()
+            publication4_form.save()
     else:
-        personne_form = PersonneEditForm(prefix="personne", instance=chercheur.personne)        
+        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)    
+    #import pdb; pdb.set_trace()    
         
     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,
                 }
     return render_to_response ("chercheurs/edit.html", \
             Context (variables), 
index 2dd0ef2..949b409 100644 (file)
@@ -175,3 +175,44 @@ select     { width:100%; overflow:hidden }
 
 #actualites {position: relative;}
 #rss-actualites {position: absolute; right: 26px; top: 10px;}
+
+form {padding-right:20px}
+
+form fieldset {
+  clear: both;
+  font-size: 100%;
+  border-color: #000000;
+  border-width: 1px 0 0 0;
+  border-style: solid none none none;
+  padding: 10px;
+  margin: 0 0 0 0;
+}
+
+form fieldset legend {
+  font-size: 150%;
+  font-weight: bold;
+  color: #000000;
+  margin: 0 0 0 0;
+  padding: 0 5px;
+}
+
+label {
+  font-size: 12px;
+}
+td
+{
+vertical-align:middle;
+}
+
+.infotip
+{
+width:300px;
+margin-top:5px;
+border:1px solid #CCC;
+background:#EEE;
+float:right;
+}
+.publication
+{
+
+}
index d17d6b9..6f50ff6 100644 (file)
@@ -6,10 +6,89 @@
 <div class="contenu-wrapper">
 
 <form method="post">
-    <h5>Informations personnelles</h5>
-    {% with personne_form as form %}
-        {% include "table_form.html" %}
-    {% endwith %}
+    <fieldset>
+        <legend>Informations personnelles</legend>
+        {% with personne_form as form %}
+            {% include "table_form.html" %}
+        {% endwith %}
+    </fieldset>
+    
+    <fieldset>
+        <legend>Informations académiques</legend>
+        {% with chercheur_form as form %}
+            {% include "table_form.html" %}
+        {% endwith %}
+    </fieldset>
+    
+    <fieldset>
+        <legend>Etablissement de rattachement</legend>
+        {% with etablissement_form as form %}
+            {% include "table_form.html" %}
+        {% endwith %}
+        <p>Si l'établissement n'existe pas ci-dessus</p>
+        {% with etablissement_autre_form as form %}
+            {% include "table_form.html" %}
+        {% endwith %}
+    </fieldset>
+    
+    <fieldset>
+        <legend>Champ disciplinaire, thèmes de recherche</legend>
+        {% with discipline_form as form %}
+            {% include "table_form.html" %}
+        {% endwith %}
+    </fieldset>
+
+    <fieldset>
+        <legend>Publications</legend>
+        <div>
+            <div class="infotip">
+              <strong>Renseignements préalablements enregistrés</strong>
+              <p>{{publication1_form.instance.publication_affichage}}</p>
+            </div>
+            <div class="publication">
+              {% with publication1_form as form %}
+                  {% include "table_form.html" %}
+              {% endwith %}
+            </div>
+            <div style="clear:both"></div>
+        </div>
+        <p id="show_publications">+ Autres publications</p>
+        <div class="publications_autre">
+            <h6>- Publication 2</h6>
+            <div class="infotip">
+              <strong>Renseignements préalablements enregistrés</strong>
+              <p>{{publication2_form.instance.publication_affichage}}</p>
+            </div>
+            <div class="publication">
+                {% with publication2_form as form %}
+                    {% include "table_form.html" %}
+                {% endwith %} 
+            </div>
+            <div style="clear:both"></div>
+            <h6>- Publication 3</h6>
+            <div class="infotip">
+              <strong>Renseignements préalablements enregistrés</strong>
+              <p>{{publication3_form.instance.publication_affichage}}</p>
+            </div>
+            <div class="publication">
+                {% with publication3_form as form %}
+                    {% include "table_form.html" %}
+                {% endwith %}
+            </div>
+            <div style="clear:both"></div>     
+            <h6>- Publication 4</h6>
+            <div class="infotip">
+              <strong>Renseignements préalablements enregistrés</strong>
+              <p>{{publication4_form.instance.publication_affichage}}</p>
+            </div>
+            <div class="publication">
+                {% with publication4_form as form %}
+                    {% include "table_form.html" %}
+                {% endwith %}
+            </div>
+            <div style="clear:both"></div>
+        </div>
+    </fieldset>
 
     <input type="submit" name="Submit" value="Éditer" class="bouton" />
 </form>
index 87c6b39..58322b1 100644 (file)
@@ -1,56 +1,69 @@
 {% extends "container_base.html" %}
 
 {% block contenu %}
-<h4>Inscription</h4>
+<h4>Inscription au répertoire de chercheurs</h4>
 
 <div class="contenu-wrapper">
 
 <form method="post">
-    <h5>Informations personnelles</h5>
-    {% with personne_form as form %}
-        {% include "table_form.html" %}
-    {% endwith %}
-    
-    <h5>Informations académiques</h5>
-    {% with chercheur_form as form %}
-        {% include "table_form.html" %}
-    {% endwith %}
-    <h5>Etablissement de rattachement</h5>
-    {% with etablissement_form as form %}
-        {% include "table_form.html" %}
-    {% endwith %}
-    <p>Si l'établissement n'existe pas ci-dessus</p>
-    {% with etablissement_autre_form as form %}
-        {% include "table_form.html" %}
-    {% endwith %}
-    
-    <h5>Champ disciplinaire, thèmes de recherche</h5>
-    {% with discipline_form as form %}
-        {% include "table_form.html" %}
-    {% endwith %}
-
-    <h5>Publications</h5>
-    {% with publication1_form as form %}
-        {% include "table_form.html" %}
-    {% endwith %}    
+    <fieldset>
+        <legend>Informations personnelles</legend>
+        {% with personne_form as form %}
+            {% include "table_form.html" %}
+        {% endwith %}
+    </fieldset>
     
-    <p id="show_publications">Autres publications</p>
+    <fieldset>
+        <legend>Informations académiques</legend>
+        {% with chercheur_form as form %}
+            {% include "table_form.html" %}
+        {% endwith %}
+    </fieldset>
     
-    <div class="publications_autre">
-        <h6>Publication 2</h6>
-        {% with publication2_form as form %}
+    <fieldset>
+        <legend>Etablissement de rattachement</legend>
+        {% with etablissement_form as form %}
             {% include "table_form.html" %}
-        {% endwith %} 
-        <h6>Publication 3</h6>
-        {% with publication3_form as form %}
+        {% endwith %}
+        <p>Si l'établissement n'existe pas ci-dessus</p>
+        {% with etablissement_autre_form as form %}
             {% include "table_form.html" %}
-        {% endwith %}     
-        <h6>Publication 4</h6>
-        {% with publication4_form as form %}
+        {% endwith %}
+    </fieldset>
+    
+    <fieldset>
+        <legend>Champ disciplinaire, thèmes de recherche</legend>
+        {% with discipline_form as form %}
             {% include "table_form.html" %}
         {% endwith %}
-    </div>
+    </fieldset>
+
+    <fieldset>
+        <legend>Publications</legend>
+        <div>
+            <div class="publication">
+              {% with publication1_form as form %}
+                  {% include "table_form.html" %}
+              {% endwith %}
+            </div>
+            <div style="clear:both"></div>
+        </div>
+        <p id="show_publications">+ Autres publications</p>
+        <div class="publications_autre">
+            <h6>- Publication 2</h6>
+            {% with publication2_form as form %}
+                {% include "table_form.html" %}
+            {% endwith %} 
+            <h6>- Publication 3</h6>
+            {% with publication3_form as form %}
+                {% include "table_form.html" %}
+            {% endwith %}     
+            <h6>- Publication 4</h6>
+            {% with publication4_form as form %}
+                {% include "table_form.html" %}
+            {% endwith %}
+        </div>
+    </fieldset>
     <br />
     <input type="submit" name="Submit" value="Inscription" class="bouton" />
 </form>
index 0250e4e..9857069 100644 (file)
@@ -31,8 +31,8 @@
 {% for chercheur in chercheurs %}
     <tr class="{% cycle 'odd' 'notodd' %}">
         <td><a href="{% url chercheurs.views.retrieve chercheur.id %}">{{ chercheur }}</a></td>
-        <td>{{ chercheur.etablissement }}</td>
-        <td>{{ chercheur.pays }}</td>
+        <td>{% firstof chercheur.etablissement chercheur.etablissement_autre_nom %}</td>
+        <td>{% firstof chercheur.etablissement.pays chercheur.etablissement_autre_pays %}</td>
     </tr>
 {% endfor %}
 </table>
index a4640f9..9d834cb 100644 (file)
@@ -7,23 +7,23 @@
 <p>{{chercheur.personne.courriel}}</p>
 <h5>Information générales</h5>
 <table>
-    <tr>
+    <tr class="odd">
         <td>Nationalité</td>
-        <td>{{chercheur.pays.nom}}</td>
+        <td>{{chercheur.nationalite.nom}}</td>
     </tr>
     <tr>
         <td>Fonction :</td>
         <td>{{chercheur.fonction}}</td>
     </tr>
-    <tr>
+    <tr class="odd">
         <td>Diplôme :</td>
-        <td>{{chercheur.scolarite}}</td>
+        <td>{{chercheur.diplome}}</td>
     </tr>
 </table>
 
 <h5>Établissement de rattachement</h5>
 <table>
-    <tr>
+    <tr class="odd">
         <td>Localisation</td>
         <td>{{chercheur.etablissement.pays}}</td>
     </tr>
 
 <h5>Champ disciplinaire, thèmes de recherche et publications</h5>
 <table>
+    <tr class="odd">
+        <td>Thèmes de recherche et domaine d'expertise</td>
+        <td>{{chercheur.expertise}}</td>
+    </tr>
     <tr>
+        <td>Adresse site Internet personnel</td>
+        <td>{%if chercheur.url_site_web %}<a href="{{chercheur.url_site_web}}">{{chercheur.url_site_web}}</a>{% endif %}</td>
+    </tr>    
+    <tr class="odd">
         <td>Publication 1</td>
-        <td>{{chercheur.publication1}}</td>
+        <td>{{chercheur.publication1.publication_affichage}}</td>
     </tr>
     <tr>
         <td>Publication 2</td>
-        <td>{{chercheur.publication2}}</td>
+        <td>{{chercheur.publication2.publication_affichage}}</td>
     </tr>
-    <tr>
+    <tr class="odd">
         <td>Publication 3</td>
-        <td>{{chercheur.publication3}}</td>
+        <td>{{chercheur.publication3.publication_affichage}}</td>
     </tr>
 </table>
 
+<h5>Domaines de recherche</h5>
+<p>Adhésion active</p>
+<ul>
+{% for g in chercheur.chercheurgroupe_set.all %}
+<li>{{g.groupe.nom}}</li>
+{% endfor %}
+</ul>
+
 </div>
 
 {% endblock %}
index c62fb09..5d76f4b 100644 (file)
@@ -35,7 +35,7 @@
         {% for chercheur in chercheurs %}
             <li class="clearfix">
             <a href="{% url chercheurs.views.retrieve chercheur.id %}" class="le-titre">{{ chercheur }}</a>
-            <span class="la-date">Disciplines : {{ chercheur.discipline }}</span>
+            {% if chercheurs.disciplines %}<span class="la-date">Disciplines : {{ chercheur.discipline }}</span>{% endif %}
             </li>
         {% endfor %}
         </ul>
@@ -72,7 +72,7 @@
             <li class="clearfix">
             <a href="{% url sitotheque.views.retrieve site.id %}" class="le-titre">{{ site }}</a>
             <a href="{{ site.url }}" class="le-titre">{{ site.url }}</a>
-            <span class="la-date">Disciplines : {{ site.discipline.all|join:", " }}</span>
+            {% if site.discipline.all.count %}<span class="la-date">Disciplines : {{ site.discipline.all|join:", " }}</span>{% endif %}
             </li>
         {% endfor %}
         </ul>