diff options
| author | Alban Gruin | 2017-02-28 11:13:59 +0100 | 
|---|---|---|
| committer | Alban Gruin | 2017-02-28 11:13:59 +0100 | 
| commit | 8ca0b621434804100cab3893240f24f7f6d88be9 (patch) | |
| tree | 938f1b241fdef84fd7bc9129484fbbfdb9a5c139 /management/commands/cleancourses.py | |
| parent | 246d7a2e3a22548ce355a551fb19936dc420f695 (diff) | |
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
Diffstat (limited to 'management/commands/cleancourses.py')
| -rw-r--r-- | management/commands/cleancourses.py | 39 | 
1 files changed, 39 insertions, 0 deletions
| 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.")) | 
