]> git.parisson.com Git - teleforma.git/commitdiff
add conf delete script
authorGuillaume Pellerin <yomguy@parisson.com>
Mon, 11 Nov 2013 14:33:03 +0000 (15:33 +0100)
committerGuillaume Pellerin <yomguy@parisson.com>
Mon, 11 Nov 2013 14:33:03 +0000 (15:33 +0100)
teleforma/management/commands/teleforma-delete-conferences.py [new file with mode: 0644]

diff --git a/teleforma/management/commands/teleforma-delete-conferences.py b/teleforma/management/commands/teleforma-delete-conferences.py
new file mode 100644 (file)
index 0000000..e583089
--- /dev/null
@@ -0,0 +1,31 @@
+from optparse import make_option
+from django.conf import settings
+from django.core.management.base import BaseCommand, CommandError
+from django.contrib.auth.models import User
+from django.template.defaultfilters import slugify
+from telemeta.models import *
+from telemeta.util.unaccent import unaccent
+from teleforma.models import *
+import logging
+import json
+import datetime
+
+
+class Command(BaseCommand):
+    help = "Delete all conferences between two dates"
+    args = "start_month start_year end_month end_year"
+    admin_email = 'webmaster@parisson.com'
+
+    def handle(self, *args, **options):
+        start_month, start_year, end_month, end_year = int(args[-4]), int(args[-3]), \
+                                                    int(args[-2]), int(args[-1])
+        start_time = datetime.datetime(start_year, start_month, 1, 0, 0)
+        end_time = datetime.datetime(end_year, end_month, 30, 23, 59)
+        conferences = Conference.objects.filter(date_begin__gte=start_time)
+        conferences = conferences.filter(date_begin__lte=end_time)
+        for conference in conferences:
+            medias = Media.objects.filter(conference=conference)
+            for media in medias:
+                media.delete()
+            conference.delete()
+        print str(len(conferences)) + ' conferences and related media deleted.'