From 9e50a825e0f2f9287948631efeb0e679e5afd33b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Fri, 8 Jul 2016 00:18:58 +0200 Subject: [PATCH] Ajoute un switch sur les tirages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le switch permet d'autoriser/interdire le lancement d'un tirage. Il s'agit d'une sécurité face aux erreurs d'inattention. Le champ `token` du modèle `Tirage` devient `tokens` et stocke les graines des tirages déjà lancés si le tirage est lancé plusieurs fois. --- bda/admin.py | 5 ++-- bda/migrations/0004_add_tirage_switch.py | 30 ++++++++++++++++++++++++ bda/models.py | 4 +++- 3 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 bda/migrations/0004_add_tirage_switch.py diff --git a/bda/admin.py b/bda/admin.py index 604ac883..8644a264 100644 --- a/bda/admin.py +++ b/bda/admin.py @@ -144,8 +144,9 @@ class SpectacleAdmin(admin.ModelAdmin): class TirageAdmin(admin.ModelAdmin): model = Tirage - list_display = ("title", "ouverture", "fermeture", "active") - readonly_fields = ("token", ) + list_display = ("title", "ouverture", "fermeture", "active", + "enable_do_tirage") + readonly_fields = ("tokens", ) list_filter = ("active", ) search_fields = ("title", ) diff --git a/bda/migrations/0004_add_tirage_switch.py b/bda/migrations/0004_add_tirage_switch.py new file mode 100644 index 00000000..1f566b6d --- /dev/null +++ b/bda/migrations/0004_add_tirage_switch.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models +from django.utils import timezone + +def forwards_func(apps, schema_editor): + Tirage = apps.get_model("bda", "Tirage") + db_alias = schema_editor.connection.alias + for tirage in Tirage.objects.all(): + tirage.tokens = "Before %s\n\"\"\"%s\"\"\"\n" % ( + timezone.now().strftime("%y-%m-%d %H:%M:%S"), + tirage.tokens) + tirage.save() + +class Migration(migrations.Migration): + + dependencies = [ + ('bda', '0003_update_tirage_and_spectacle'), + ] + + operations = [ + migrations.RenameField('tirage', 'token', 'tokens'), + migrations.AddField( + model_name='tirage', + name='enable_do_tirage', + field=models.BooleanField(default=False, verbose_name=b'Le tirage peut \xc3\xaatre lanc\xc3\xa9'), + ), + migrations.RunPython(forwards_func, migrations.RunPython.noop), + ] diff --git a/bda/models.py b/bda/models.py index 16ea4818..01429dc2 100644 --- a/bda/models.py +++ b/bda/models.py @@ -10,8 +10,10 @@ class Tirage(models.Model): title = models.CharField("Titre", max_length=300) ouverture = models.DateTimeField("Date et heure d'ouverture du tirage") fermeture = models.DateTimeField("Date et heure de fermerture du tirage") - token = models.TextField("Graine du tirage", blank=True) + tokens = models.TextField("Graine(s) du tirage", blank=True) active = models.BooleanField("Tirage actif", default=False) + enable_do_tirage = models.BooleanField("Le tirage peut être lancé", + default=False) def date_no_seconds(self): return self.fermeture.strftime('%d %b %Y %H:%M')