def lookup_allowed(self, lookup):
return lookup in ['genre', 'statut', 'membre_reseau_institutionnel',
'membre_instance_auf', 'discipline', 'region', 'pays',
- 'groupes'] or \
+ 'groupes', 'nord_sud'] or \
admin.ModelAdmin.lookup_allowed(self, lookup)
def remove_from_group(self, request, queryset):
qs = self
pays = kwargs.pop('pays', None)
region = kwargs.pop('region', None)
+ nord_sud = kwargs.pop('nord_sud', None)
expert = kwargs.pop('expert', None)
if pays is not None:
- qs = qs.filter(Q(etablissement__pays=pays) | (Q(etablissement=None) & Q(etablissement_autre_pays=pays)))
+ qs = qs.filter(Q(etablissement__pays=pays) |
+ (Q(etablissement=None) & Q(etablissement_autre_pays=pays)))
elif region is not None:
- qs = qs.filter(Q(etablissement__pays__region=region) | (Q(etablissement=None) & Q(etablissement_autre_pays__region=region)))
+ qs = qs.filter(Q(etablissement__pays__region=region) |
+ (Q(etablissement=None) & Q(etablissement_autre_pays__region=region)))
+ elif nord_sud is not None:
+ qs = qs.filter(Q(etablissement__pays__nord_sud=nord_sud) |
+ (Q(etablissement=None) & Q(etablissement_autre_pays__nord_sud=nord_sud)))
if expert is not None:
if expert in ['1', 1, True]:
qs = qs.exclude(expertises=None)
@register.inclusion_tag('admin/filter.html', takes_context=True)
def filter_region(context):
return {'title': u"région",
- 'choices': prepare_choices(Region.objects.values_list('id', 'nom'), 'region', context, remove=['pays'])}
+ 'choices': prepare_choices(Region.objects.values_list('id', 'nom'), 'region', context, remove=['pays', 'nord_sud'])}
+
+@register.inclusion_tag('admin/filter.html', takes_context=True)
+def filter_nord_sud(context):
+ return {'title': u'nord/sud',
+ 'choices': prepare_choices([('Nord', 'Nord'), ('Sud', 'Sud')], 'nord_sud', context, remove=['pays', 'region'])}
@register.inclusion_tag('admin/filter.html', takes_context=True)
def filter_pays(context):
request = context['request']
region = request.GET.get('region')
+ nord_sud = request.GET.get('nord_sud')
choices = Pays.objects
if region is not None:
choices = choices.filter(region=region)
+ elif nord_sud is not None:
+ choices = choices.filter(nord_sud=nord_sud)
return {'title': u"pays",
'choices': prepare_choices(choices.values_list('code', 'nom'), 'pays', context)}
{% filter_membre_instance_auf %}
{% filter_discipline %}
{% filter_region %}
+ {% filter_nord_sud %}
{% filter_pays %}
{% filter_groupe %}
{% filter_expert %}
<td>
Nombre de chercheurs
</td>
- <td>{{ nb_hommes }}</td>
- <td>{{ nb_femmes }}</td>
- <td>{{ nb_chercheurs }}</td>
+ <td><a href="{% url admin:chercheurs_chercheur_changelist %}?genre=m">{{ nb_hommes }}</a></td>
+ <td><a href="{% url admin:chercheurs_chercheur_changelist %}?genre=f">{{ nb_femmes }}</a></td>
+ <td><a href="{% url admin:chercheurs_chercheur_changelist %}">{{ nb_chercheurs }}</a></td>
</tr>
<tr>
<td>
{% for region in regions %}
<tr>
<td>{{ region.nom }}</td>
- <td>{{ hommes_par_region|getitem:region.id }}</td>
- <td>{{ femmes_par_region|getitem:region.id }}</td>
- <td>{{ chercheurs_par_region|getitem:region.id }}</td>
+ <td>
+ <a href="{% url admin:chercheurs_chercheur_changelist %}?genre=m®ion={{ region.id }}"
+ >{{ hommes_par_region|getitem:region.id }}</a>
+ </td>
+ <td>
+ <a href="{% url admin:chercheurs_chercheur_changelist %}?genre=f®ion={{ region.id }}"
+ >{{ femmes_par_region|getitem:region.id }}</a>
+ </td>
+ <td>
+ <a href="{% url admin:chercheurs_chercheur_changelist %}?region={{ region.id }}"
+ >{{ chercheurs_par_region|getitem:region.id }}</a>
+ </td>
</tr>
{% endfor %}
</tbody>
+ </table>
+
+ <h2>Chercheurs du Nord et du Sud</h2>
+ <table>
+ <thead>
+ <th></th>
+ <th>Hommes</th>
+ <th>Femmes</th>
+ <th>Total</th>
+ </thead>
<tbody>
{% for hemisphere in hemispheres %}
<tr>
<td>{{ hemisphere }}</td>
- <td>{{ hommes_par_hemisphere|getitem:hemisphere }}</td>
- <td>{{ femmes_par_hemisphere|getitem:hemisphere }}</td>
- <td>{{ chercheurs_par_hemisphere|getitem:hemisphere }}</td>
+ <td>
+ <a href="{% url admin:chercheurs_chercheur_changelist %}?genre=m&nord_sud={{ hemisphere }}"
+ >{{ hommes_par_hemisphere|getitem:hemisphere }}</a>
+ </td>
+ <td>
+ <a href="{% url admin:chercheurs_chercheur_changelist %}?genre=f&nord_sud={{ hemisphere }}"
+ >{{ femmes_par_hemisphere|getitem:hemisphere }}</a>
+ </td>
+ <td>
+ <a href="{% url admin:chercheurs_chercheur_changelist %}?nord_sud={{ hemisphere }}"
+ >{{ chercheurs_par_hemisphere|getitem:hemisphere }}</a>
+ </td>
</tr>
{% endfor %}
</tbody>
{% for domaine in domaines %}
<tr>
<td>{{ domaine.nom }}</td>
- <td>{{ hommes_par_domaine|getitem:domaine.id }}</td>
- <td>{{ femmes_par_domaine|getitem:domaine.id }}</td>
- <td>{{ chercheurs_par_domaine|getitem:domaine.id }}</td>
+ <td>
+ <a href="{% url admin:chercheurs_chercheur_changelist %}?genre=m&groupes={{ domaine.id }}"
+ >{{ hommes_par_domaine|getitem:domaine.id }}</a>
+ </td>
+ <td>
+ <a href="{% url admin:chercheurs_chercheur_changelist %}?genre=f&groupes={{ domaine.id }}"
+ >{{ femmes_par_domaine|getitem:domaine.id }}</a>
+ </td>
+ <td>
+ <a href="{% url admin:chercheurs_chercheur_changelist %}?groupes={{ domaine.id }}"
+ >{{ chercheurs_par_domaine|getitem:domaine.id }}</a>
+ </td>
</tr>
{% endfor %}
</tbody>
{% for discipline in disciplines %}
<tr>
<td>{{ discipline.nom }}</td>
- <td>{{ hommes_par_discipline|getitem:discipline.id }}</td>
- <td>{{ femmes_par_discipline|getitem:discipline.id }}</td>
- <td>{{ chercheurs_par_discipline|getitem:discipline.id }}</td>
+ <td>
+ <a href="{% url admin:chercheurs_chercheur_changelist %}?genre=m&discipline={{ discipline.id }}"
+ >{{ hommes_par_discipline|getitem:discipline.id }}</a>
+ </td>
+ <td>
+ <a href="{% url admin:chercheurs_chercheur_changelist %}?genre=f&discipline={{ discipline.id }}"
+ >{{ femmes_par_discipline|getitem:discipline.id }}</a>
+ </td>
+ <td>
+ <a href="{% url admin:chercheurs_chercheur_changelist %}?discipline={{ discipline.id }}"
+ >{{ chercheurs_par_discipline|getitem:discipline.id }}</a>
+ </td>
</tr>
{% endfor %}
</tbody>