Browse Source

Merge branch 'export_group_list' into dev

Close #28
pull/4/head
Yoann Piétri 7 years ago
parent
commit
f10309a1ce
  1. 3
      users/forms.py
  2. 1
      users/templates/users/index.html
  3. 15
      users/views.py

3
users/forms.py

@ -128,4 +128,5 @@ class ExportForm(forms.Form):
('debit', 'Débit') ('debit', 'Débit')
) )
query_type = forms.ChoiceField(choices=QUERY_TYPE_CHOICES, label="Ensemble de la demande") query_type = forms.ChoiceField(choices=QUERY_TYPE_CHOICES, label="Ensemble de la demande")
fields = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=FIELDS_CHOICES, label="Champs") fields = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=FIELDS_CHOICES, label="Champs")
group = forms.ModelChoiceField(queryset=Group.objects.all(), empty_label="Tous les groupes", required=False, label="Groupe")

1
users/templates/users/index.html

@ -106,6 +106,7 @@
<form action="{% url 'users:exportCSV' %}" method="POST"> <form action="{% url 'users:exportCSV' %}" method="POST">
{% csrf_token %} {% csrf_token %}
{{export_form}} {{export_form}}
<br>
<button class="button" target="_blank">Exporter au format csv</button> <button class="button" target="_blank">Exporter au format csv</button>
</form> </form>
</section> </section>

15
users/views.py

@ -83,19 +83,24 @@ def export_csv(request):
users = User.objects users = User.objects
qt = export_form.cleaned_data['query_type'] qt = export_form.cleaned_data['query_type']
if qt == 'all': if qt == 'all':
users = users.all() filename = "Utilisateurs-coope"
filename="Utilisateurs-coope" if not export_form.cleaned_data['group']:
users = users.all()
elif qt == 'all_active': elif qt == 'all_active':
users = users.filter(is_active=True) users = users.filter(is_active=True)
filename="Utilisateurs-actifs-coope" filename = "Utilisateurs-actifs-coope"
elif qt == 'adherent': elif qt == 'adherent':
pks = [x.pk for x in User.objects.all() if x.profile.is_adherent] pks = [x.pk for x in User.objects.all() if x.profile.is_adherent]
users = users.filter(pk__in=pks) users = users.filter(pk__in=pks)
filename="Adherents-coope" filename = "Adherents-coope"
elif qt == 'adherent_active': elif qt == 'adherent_active':
pks = [x.pk for x in User.objects.filter(is_active=True) if x.profile.is_adherent] pks = [x.pk for x in User.objects.filter(is_active=True) if x.profile.is_adherent]
users = users.filter(pk__in=pks) users = users.filter(pk__in=pks)
filename="Adherents-actifs-coope" filename = "Adherents-actifs-coope"
if export_form.cleaned_data['group']:
group = export_form.cleaned_data['group']
users = users.filter(groups=group)
filename += "(" + group.name + ")"
response = HttpResponse(content_type='text/csv') response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="'+ filename + '.csv"' response['Content-Disposition'] = 'attachment; filename="'+ filename + '.csv"'
writer = csv.writer(response) writer = csv.writer(response)

Loading…
Cancel
Save