diff options
author | Alban Gruin | 2017-02-28 13:30:03 +0100 |
---|---|---|
committer | Alban Gruin | 2017-02-28 13:30:03 +0100 |
commit | ce0ed9347adde9ca80c11efe79766c966d5749ba (patch) | |
tree | e371a2d06374efbad1c1c8a4558d92ee0a07c025 /management/commands/cleancourses.py | |
parent | a543aaa14957f390d2b640a264113b639c7d3194 (diff) | |
parent | 66be6f2e7a3c642fb3c69e7c2a70cc3f898d77ea (diff) |
Merge branch 'stable/0.y.z' into prod/pa1ch/0.y.zv0.7.0-pa1ch
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..5f71861 --- /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="+") + + def handle(self, *args, **options): + 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.")) |