From ea1b3c71a36533eed5d02e4c32bcf78e48cb29c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Tue, 29 Nov 2016 11:29:18 +0100 Subject: [PATCH 1/7] =?UTF-8?q?D=C3=A9corateur=20inutile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Décorateur `@buro_required` sur une fonction qui n'est pas une vue et dont le premier paramètre n'est pas la requête. --- gestioncof/views.py | 1 - 1 file changed, 1 deletion(-) diff --git a/gestioncof/views.py b/gestioncof/views.py index 4f1e5009..b04b0011 100644 --- a/gestioncof/views.py +++ b/gestioncof/views.py @@ -550,7 +550,6 @@ def export_members(request): return response -@buro_required def csv_export_mega(filename, qs): response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename=' + filename From 4da7689b16196952e96f7b2d0252638464ce55e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Sun, 4 Dec 2016 10:40:38 +0100 Subject: [PATCH 2/7] =?UTF-8?q?Met=20=C3=A0=20jour=20donn=C3=A9es=20hardco?= =?UTF-8?q?d=C3=A9es...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gestioncof/views.py | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/gestioncof/views.py b/gestioncof/views.py index b04b0011..3bc8c2f9 100644 --- a/gestioncof/views.py +++ b/gestioncof/views.py @@ -571,12 +571,12 @@ def csv_export_mega(filename, qs): @buro_required def export_mega_remarksonly(request): - filename = 'remarques_mega_2015.csv' + filename = 'remarques_mega_2016.csv' response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename=' + filename writer = unicodecsv.writer(response) - event = Event.objects.get(title="Mega 15") + event = Event.objects.get(title="Mega 2016") commentfield = event.commentfields.get(name="Commentaires") for val in commentfield.values.all(): reg = val.registration @@ -599,42 +599,40 @@ def export_mega_bytype(request, type): if type not in types: raise Http404 - event = Event.objects.get(title="Mega 15") + event = Event.objects.get(title="Mega 2016") type_option = event.options.get(name="Type") participant_type = type_option.choices.get(value=types[type]).id qs = EventRegistration.objects.filter(event=event).filter( options__id__exact=participant_type) - return csv_export_mega(type + '_mega_2015.csv', qs) + return csv_export_mega(type + '_mega_2016.csv', qs) @buro_required def export_mega_orgas(request): - event = Event.objects.get(title="Mega 15") - type_option = event.options.get(name="Type") - participant_type_a = type_option.choices.get(value="Conscrit étudiant").id - participant_type_b = type_option.choices.get(value="Conscrit élève").id + event = Event.objects.get(title="Mega 2016") + type_option = event.options.get(name="Conscrit ou orga ?") + participant_type = type_option.choices.get(value="Vieux").id qs = EventRegistration.objects.filter(event=event).exclude( - options__id__in=(participant_type_a, participant_type_b)) - return csv_export_mega('orgas_mega_15.csv', qs) + options__id=participant_type) + return csv_export_mega('orgas_mega_2016.csv', qs) @buro_required def export_mega_participants(request): - event = Event.objects.get(title="Mega 15") - type_option = event.options.get(name="Type") - participant_type_a = type_option.choices.get(value="Conscrit étudiant").id - participant_type_b = type_option.choices.get(value="Conscrit élève").id + event = Event.objects.get(title="Mega 2016") + type_option = event.options.get(name="Conscrit ou orga ?") + participant_type = type_option.choices.get(value="Conscrit").id qs = EventRegistration.objects.filter(event=event).filter( - options__id__in=(participant_type_a, participant_type_b)) - return csv_export_mega('participants_mega_15.csv', qs) + options__id=participant_type) + return csv_export_mega('participants_mega_2016.csv', qs) @buro_required def export_mega(request): - event = Event.objects.filter(title="Mega 15") + event = Event.objects.filter(title="Mega 2016") qs = EventRegistration.objects.filter(event=event) \ .order_by("user__username") - return csv_export_mega('all_mega_2015.csv', qs) + return csv_export_mega('all_mega_2016.csv', qs) @buro_required From 38dd220c23151c07f3f1fb2f130d5bd15385ad32 Mon Sep 17 00:00:00 2001 From: Ludovic Stephan Date: Wed, 21 Dec 2016 00:35:05 -0200 Subject: [PATCH 3/7] modernize reventes_shotgun --- bda/views.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/bda/views.py b/bda/views.py index 4ffae2eb..58c54a01 100644 --- a/bda/views.py +++ b/bda/views.py @@ -468,14 +468,11 @@ def revente_shotgun(request, tirage_id): date__gte=timezone.now()) shotgun = [] for spectacle in spectacles: - revente_objects = SpectacleRevente.objects.filter( + reventes = SpectacleRevente.objects.filter( attribution__spectacle=spectacle, + shotgun=True, soldTo__isnull=True) - revente_count = 0 - for revente in revente_objects: - if revente.shotgun: - revente_count += 1 - if revente_count: + if reventes.exists(): shotgun.append(spectacle) return render(request, "bda-shotgun.html", From 07f920976fd0ac6d11b16559c363e5a78ee0228d Mon Sep 17 00:00:00 2001 From: Ludovic Stephan Date: Wed, 21 Dec 2016 00:45:30 -0200 Subject: [PATCH 4/7] change soldTo functioning --- bda/forms.py | 5 ++--- bda/views.py | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/bda/forms.py b/bda/forms.py index fe20e565..352914e4 100644 --- a/bda/forms.py +++ b/bda/forms.py @@ -68,9 +68,8 @@ class AnnulForm(forms.Form): self.fields['attributions'].queryset = participant.attribution_set\ .filter(spectacle__date__gte=timezone.now(), revente__isnull=False, - revente__date__gt=timezone.now()-timedelta(hours=1))\ - .filter(Q(revente__soldTo__isnull=True) | - Q(revente__soldTo=participant)) + revente__date__gt=timezone.now()-timedelta(hours=1), + revente__soldTo__isnull=True) class InscriptionReventeForm(forms.Form): diff --git a/bda/views.py b/bda/views.py index 58c54a01..fbfd9bcd 100644 --- a/bda/views.py +++ b/bda/views.py @@ -285,6 +285,7 @@ def revente(request, tirage_id): if not created: revente.seller = participant revente.date = timezone.now() + revente.soldTo = None revente.notif_sent = False revente.tirage_done = False revente.shotgun = False @@ -337,6 +338,7 @@ def revente(request, tirage_id): revente.soldTo = None revente.notif_sent = False revente.tirage_done = False + revente.shotgun = False if revente.answered_mail: revente.answered_mail.clear() revente.save() From 9bbc9e934d5bd9d7d9de1442d70ef034aa6f4daa Mon Sep 17 00:00:00 2001 From: Ludovic Stephan Date: Wed, 21 Dec 2016 00:45:30 -0200 Subject: [PATCH 5/7] change soldTo functioning --- bda/forms.py | 5 ++--- bda/views.py | 5 +++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bda/forms.py b/bda/forms.py index fe20e565..352914e4 100644 --- a/bda/forms.py +++ b/bda/forms.py @@ -68,9 +68,8 @@ class AnnulForm(forms.Form): self.fields['attributions'].queryset = participant.attribution_set\ .filter(spectacle__date__gte=timezone.now(), revente__isnull=False, - revente__date__gt=timezone.now()-timedelta(hours=1))\ - .filter(Q(revente__soldTo__isnull=True) | - Q(revente__soldTo=participant)) + revente__date__gt=timezone.now()-timedelta(hours=1), + revente__soldTo__isnull=True) class InscriptionReventeForm(forms.Form): diff --git a/bda/views.py b/bda/views.py index 58c54a01..1ff2be41 100644 --- a/bda/views.py +++ b/bda/views.py @@ -285,6 +285,7 @@ def revente(request, tirage_id): if not created: revente.seller = participant revente.date = timezone.now() + revente.soldTo = None revente.notif_sent = False revente.tirage_done = False revente.shotgun = False @@ -337,6 +338,7 @@ def revente(request, tirage_id): revente.soldTo = None revente.notif_sent = False revente.tirage_done = False + revente.shotgun = False if revente.answered_mail: revente.answered_mail.clear() revente.save() @@ -357,8 +359,7 @@ def revente(request, tirage_id): sold = participant.attribution_set.filter( spectacle__date__gte=timezone.now(), revente__isnull=False, - revente__soldTo__isnull=False).exclude( - revente__soldTo=participant) + revente__soldTo__isnull=False) return render(request, "bda-revente.html", {'tirage': tirage, 'overdue': overdue, "sold": sold, From e8be072e7899602a661e2e0dce106a66276d1324 Mon Sep 17 00:00:00 2001 From: Ludovic Stephan Date: Wed, 21 Dec 2016 00:53:35 -0200 Subject: [PATCH 6/7] message si inscription a une revente en cours --- bda/templates/liste-reventes.html | 3 +++ bda/views.py | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/bda/templates/liste-reventes.html b/bda/templates/liste-reventes.html index d08d4010..c0bf8ff0 100644 --- a/bda/templates/liste-reventes.html +++ b/bda/templates/liste-reventes.html @@ -8,7 +8,10 @@ {% endif %} {% if deja_revente %}

Des reventes existent déjà pour certains de ces spectacles ; vérifie les places disponibles sans tirage !

+ {% elif inscrit_revente %} +

Tu as été inscrit à une revente en cours pour ce spectacle !

{% endif %} +
{% csrf_token %}
diff --git a/bda/views.py b/bda/views.py index 1ff2be41..96060de2 100644 --- a/bda/views.py +++ b/bda/views.py @@ -388,6 +388,7 @@ def list_revente(request, tirage_id): user=request.user, tirage=tirage) deja_revente = False success = False + inscrit_revente = False if request.method == 'POST': form = InscriptionReventeForm(tirage, request.POST) if form.is_valid(): @@ -405,6 +406,7 @@ def list_revente(request, tirage_id): else: revente.answered_mail.add(participant) revente.save() + inscrit_revente = True break success = True else: @@ -414,7 +416,8 @@ def list_revente(request, tirage_id): return render(request, "liste-reventes.html", {"form": form, - "deja_revente": deja_revente, "success": success}) + "deja_revente": deja_revente, "success": success, + "inscrit_revente": inscrit_revente}) @login_required From 2f70dbf911fe4adf95b45ae899b01eba9f42ff8c Mon Sep 17 00:00:00 2001 From: Ludovic Stephan Date: Wed, 21 Dec 2016 01:05:04 -0200 Subject: [PATCH 7/7] default shotgun for existing rows --- bda/migrations/0010_spectaclerevente_shotgun.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/bda/migrations/0010_spectaclerevente_shotgun.py b/bda/migrations/0010_spectaclerevente_shotgun.py index a4bf2abc..35b4da8a 100644 --- a/bda/migrations/0010_spectaclerevente_shotgun.py +++ b/bda/migrations/0010_spectaclerevente_shotgun.py @@ -2,6 +2,19 @@ from __future__ import unicode_literals from django.db import models, migrations +from django.utils import timezone +from datetime import timedelta + + +def forwards_func(apps, schema_editor): + SpectacleRevente = apps.get_model("bda", "SpectacleRevente") + + for revente in SpectacleRevente.objects.all(): + is_expired = timezone.now() > revente.date_tirage() + is_direct = (revente.attribution.spectacle.date >= revente.date and + timezone.now() > revente.date + timedelta(minutes=15)) + revente.shotgun = is_expired or is_direct + revente.save() class Migration(migrations.Migration): @@ -16,4 +29,5 @@ class Migration(migrations.Migration): name='shotgun', field=models.BooleanField(default=False, verbose_name='Disponible imm\xe9diatement'), ), + migrations.RunPython(forwards_func, migrations.RunPython.noop), ]