Ajout des groupes de chercheurs dans la page stats
authorPA Parent <paparent@paparent.me>
Fri, 29 Jul 2011 14:40:37 +0000 (10:40 -0400)
committerPA Parent <paparent@paparent.me>
Fri, 29 Jul 2011 14:40:37 +0000 (10:40 -0400)
auf_savoirs_en_partage/savoirs/admin_views.py
auf_savoirs_en_partage/templates/savoirs/stats.html

index 2fa5d5e..d4c9ffe 100644 (file)
@@ -8,7 +8,7 @@ from django.contrib.auth.decorators import login_required, permission_required
 from django.template import Context, RequestContext
 from django.shortcuts import render_to_response
 
-from chercheurs.models import Chercheur, Groupe
+from chercheurs.models import Chercheur, GroupeChercheur, DomaineRecherche
 from datamaster_modeles.models import Thematique, Pays, Region
 from savoirs.models import Record, Discipline, Actualite, Serveur, RecordCategorie
 from savoirs.forms import CategorieForm, PaysForm, RegionsForm, ThematiquesForm, DisciplinesForm, ConfirmationForm
@@ -313,8 +313,18 @@ def stats(request):
         return dict(qs.values_list('discipline').annotate(count=Count('pk')))
 
     def par_domaine(qs):
-        qs = qs.extra(tables=['chercheurs_chercheurgroupe'], 
-                      where=['chercheurs_chercheurgroupe.chercheur = chercheurs_chercheur.personne_ptr_id'],
+        qs = qs.extra(tables=['chercheurs_chercheurgroupe', 'chercheurs_groupe'], 
+                      where=['chercheurs_chercheurgroupe.chercheur = chercheurs_chercheur.personne_ptr_id',
+                             'chercheurs_chercheurgroupe.groupe = chercheurs_groupe.id',
+                             'chercheurs_groupe.groupe_chercheur = 0'],
+                      select={'groupe': 'chercheurs_chercheurgroupe.groupe'})
+        return dict(qs.values_list('groupe').annotate(count=Count('pk')))
+
+    def par_groupe(qs):
+        qs = qs.extra(tables=['chercheurs_chercheurgroupe', 'chercheurs_groupe'], 
+                      where=['chercheurs_chercheurgroupe.chercheur = chercheurs_chercheur.personne_ptr_id',
+                             'chercheurs_chercheurgroupe.groupe = chercheurs_groupe.id',
+                             'chercheurs_groupe.groupe_chercheur = 1'],
                       select={'groupe': 'chercheurs_chercheurgroupe.groupe'})
         return dict(qs.values_list('groupe').annotate(count=Count('pk')))
 
@@ -341,9 +351,13 @@ def stats(request):
             'chercheurs_par_discipline': par_discipline(chercheurs),
             'hommes_par_discipline': par_discipline(hommes),
             'femmes_par_discipline': par_discipline(femmes),
-            'domaines': Groupe.objects.order_by('nom'),
+            'domaines': DomaineRecherche.objects.order_by('nom'),
             'chercheurs_par_domaine': par_domaine(chercheurs),
             'hommes_par_domaine': par_domaine(hommes),
             'femmes_par_domaine': par_domaine(femmes),
+            'groupeschercheurs': GroupeChercheur.objects.order_by('nom'),
+            'chercheurs_par_groupe': par_groupe(chercheurs),
+            'hommes_par_groupe': par_groupe(hommes),
+            'femmes_par_groupe': par_groupe(femmes),
         }, context_instance=RequestContext(request)
     )
index 341ab02..7d7d907 100644 (file)
             {% endfor %}
         </tbody>
     </table>
+
+    <h2>Chercheurs par groupe de chercheurs</h2>
+
+    <table>
+        <thead>
+            <tr>
+                <th>Groupe de chercheurs</th>
+                <th>Hommes</th>
+                <th>Femmes</th>
+                <th>Total</th>
+            </tr>
+        </thead>
+        <tbody>
+            {% for groupe in groupeschercheurs %}
+            <tr>
+                <td>{{ groupe.nom }}</td>
+                <td>
+                    <a href="{% url admin:chercheurs_chercheur_changelist %}?genre=m&groupes={{ groupe.id }}"
+                        >{{ hommes_par_groupe|getitem:groupe.id }}</a>
+                </td>
+                <td>
+                    <a href="{% url admin:chercheurs_chercheur_changelist %}?genre=f&groupes={{ groupe.id }}"
+                        >{{ femmes_par_groupe|getitem:groupe.id }}</a>
+                </td>
+                <td>
+                    <a href="{% url admin:chercheurs_chercheur_changelist %}?groupes={{ groupe.id }}"
+                        >{{ chercheurs_par_groupe|getitem:groupe.id }}</a>
+                </td>
+            </tr>
+            {% endfor %}
+        </tbody>
+    </table>
 </div>
 
 <div class="subcol">