diff options
Diffstat (limited to 'management')
| -rw-r--r-- | management/commands/cleancourses.py | 39 | ||||
| -rw-r--r-- | management/commands/listtimetables.py | 39 | 
2 files changed, 78 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.")) 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.")) | 
