]> git.parisson.com Git - telemeta.git/commitdiff
add item import command
authorGuillaume Pellerin <yomguy@parisson.com>
Mon, 14 Oct 2013 23:55:34 +0000 (01:55 +0200)
committerGuillaume Pellerin <yomguy@parisson.com>
Mon, 14 Oct 2013 23:55:34 +0000 (01:55 +0200)
telemeta/management/commands/__init__.py
telemeta/management/commands/telemeta-import-items.py [new file with mode: 0644]

index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..40a96afc6ff09d58a702b76e3f7dd412fe975e26 100644 (file)
@@ -0,0 +1 @@
+# -*- coding: utf-8 -*-
diff --git a/telemeta/management/commands/telemeta-import-items.py b/telemeta/management/commands/telemeta-import-items.py
new file mode 100644 (file)
index 0000000..9ab3c4b
--- /dev/null
@@ -0,0 +1,41 @@
+from optparse import make_option
+from django.conf import settings
+from django.core.management.base import BaseCommand, CommandError
+from django.core.files.base import ContentFile
+from telemeta.models import *
+from telemeta.util.unaccent import unaccent
+import os
+
+
+class Command(BaseCommand):
+    help = "import media files from a directory to a collection"
+    args = "collection_code media_dir"
+
+    def handle(self, *args, **options):
+        collection_code = args[-2]
+        media_dir = args[-1]
+
+        collections = MediaCollection.objects.filter(code=collection_code)
+        if not collections:
+            collection = MediaCollection(code=collection_code, title=collection_code)
+            collection.public_access = 'full'
+            collection.save()
+            print 'collection created: ' + collection_code
+        else:
+            collection = collections[0]
+            print 'using collection: ' + collection.code
+
+        for root, dirs, files in os.walk(media_dir):
+            for filename in files:
+                path = root + os.sep + filename
+                items = MediaItem.objects.filter(code=filename)
+                if not items:
+                    item = MediaItem(collection=collection, code=filename)
+                    f = open(path, 'r')
+                    file_content = ContentFile(f.read())
+                    item.file.save(filename, file_content)
+                    item.public_access = 'full'
+                    item.save()
+                    print 'item created: ' + item.code
+                else:
+                    print 'item already exists: ' + item.code