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 +++++++++++++++++++++++++++++++++++ management/commands/listtimetables.py | 39 +++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 management/commands/cleancourses.py create mode 100644 management/commands/listtimetables.py (limited to 'management') 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.")) diff --git a/management/commands/listtimetables.py b/management/commands/listtimetables.py new file mode 100644 index 0000000..c5ef41f --- /dev/null +++ b/management/commands/listtimetables.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 edt.models import Timetable + + +class Command(BaseCommand): + help = "List timetables in the database" + + def add_arguments(self, parser): + parser.add_argument("--order-by-id", action="store_true") + + def handle(self, *args, **options): + timetables = Timetable.objects.all() + if options["order_by_id"]: + print("oui") + timetables = timetables.order_by("id") + else: + timetables = timetables.order_by("name") + + for timetable in timetables: + self.stdout.write("{0} (id: {1})".format(timetable, timetable.id)) + + self.stdout.write("") + self.stdout.write(self.style.SUCCESS("Done.")) -- cgit v1.2.1