From 8ca0b621434804100cab3893240f24f7f6d88be9 Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Tue, 28 Feb 2017 11:13:59 +0100 Subject: Ajout deux deux commandes d'administration - cleancourses efface tous les cours, les groupes et les dernières mises à jours par défaut. Il est possible de supprimer seulement ceux d'un ou plusieurs emploi du temps en passant leurs ID au paramètre --timetable - listtimetables affiche la liste des emplois du temps enregistrés dans la base de données, ordonnés par leur nom. Il est possible de les ordonner par ID avec le paramètre --order-by-id --- management/commands/cleancourses.py | 39 +++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 management/commands/cleancourses.py (limited to 'management/commands/cleancourses.py') diff --git a/management/commands/cleancourses.py b/management/commands/cleancourses.py new file mode 100644 index 0000000..bc14893 --- /dev/null +++ b/management/commands/cleancourses.py @@ -0,0 +1,39 @@ +# Copyright (C) 2017 Alban Gruin +# +# celcatsanitizer is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# celcatsanitizer is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with celcatsanitizer; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +from django.core.management.base import BaseCommand +from django.db import transaction +from edt.models import Course, Group, LastUpdate + + +class Command(BaseCommand): + help = "Remove all courses and groups from the database" + + def add_arguments(self, parser): + parser.add_argument("--timetable", type=int, nargs="+") + + @transaction.atomic + def handle(self, *args, **options): + if options["timetable"] is None: + Course.objects.all().delete() + Group.objects.all().delete() + LastUpdate.objects.all().delete() + else: + Course.objects.filter(timetable__id__in=options["timetable"]).delete() + Group.objects.filter(timetable__id__in=options["timetable"]).delete() + LastUpdate.objects.filter(timetable__id__in=options["timetable"]).delete() + + self.stdout.write(self.style.SUCCESS("Done.")) -- cgit v1.2.1 From 2ca125053e753482d13f40da3c602c964b215626 Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Tue, 28 Feb 2017 13:21:24 +0100 Subject: Modification de la gestion de la transaction dans la commande cleancourses --- management/commands/cleancourses.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'management/commands/cleancourses.py') diff --git a/management/commands/cleancourses.py b/management/commands/cleancourses.py index bc14893..8bb1b97 100644 --- a/management/commands/cleancourses.py +++ b/management/commands/cleancourses.py @@ -25,15 +25,15 @@ class Command(BaseCommand): def add_arguments(self, parser): parser.add_argument("--timetable", type=int, nargs="+") - @transaction.atomic def handle(self, *args, **options): - if options["timetable"] is None: - Course.objects.all().delete() - Group.objects.all().delete() - LastUpdate.objects.all().delete() - else: - Course.objects.filter(timetable__id__in=options["timetable"]).delete() - Group.objects.filter(timetable__id__in=options["timetable"]).delete() - LastUpdate.objects.filter(timetable__id__in=options["timetable"]).delete() + with transaction.atomic: + if options["timetable"] is None: + Course.objects.all().delete() + Group.objects.all().delete() + LastUpdate.objects.all().delete() + else: + Course.objects.filter(timetable__id__in=options["timetable"]).delete() + Group.objects.filter(timetable__id__in=options["timetable"]).delete() + LastUpdate.objects.filter(timetable__id__in=options["timetable"]).delete() self.stdout.write(self.style.SUCCESS("Done.")) -- cgit v1.2.1 From 66be6f2e7a3c642fb3c69e7c2a70cc3f898d77ea Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Tue, 28 Feb 2017 13:25:08 +0100 Subject: Avec des parenthèses c'est mieux --- management/commands/cleancourses.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'management/commands/cleancourses.py') diff --git a/management/commands/cleancourses.py b/management/commands/cleancourses.py index 8bb1b97..5f71861 100644 --- a/management/commands/cleancourses.py +++ b/management/commands/cleancourses.py @@ -26,7 +26,7 @@ class Command(BaseCommand): parser.add_argument("--timetable", type=int, nargs="+") def handle(self, *args, **options): - with transaction.atomic: + with transaction.atomic(): if options["timetable"] is None: Course.objects.all().delete() Group.objects.all().delete() -- cgit v1.2.1