attachments by slugs
authorJan Szejko <janek37@gmail.com>
Wed, 25 Jan 2017 14:39:11 +0000 (15:39 +0100)
committerJan Szejko <janek37@gmail.com>
Wed, 25 Jan 2017 14:39:11 +0000 (15:39 +0100)
catalogue/management/commands/republish.py
catalogue/models.py

index 63e072d..5c3b429 100644 (file)
@@ -12,20 +12,14 @@ class Command(BaseCommand):
         from catalogue.models import Lesson
         from curriculum.models import Level
 
         from catalogue.models import Lesson
         from curriculum.models import Level
 
-        from catalogue.management.commands.importlessons import Command
-        from django.conf import settings
-        import os.path
-
-        attachments = Command.all_attachments(os.path.join(settings.MEDIA_ROOT, 'catalogue', 'attachments'))
-
         for lesson in Lesson.objects.all():
             print
             print 'Republishing: %s' % lesson.slug
         for lesson in Lesson.objects.all():
             print
             print 'Republishing: %s' % lesson.slug
-            try:
-                lesson.republish(repackage_level=False)
-            except BaseException as e:
-                print '!!!!!! EXCEPTION !!!!!!'
-                print e
+            try:
+            lesson.republish(repackage_level=False)
+            except BaseException as e:
+                print '!!!!!! EXCEPTION !!!!!!'
+                print e
 
         print 'Rebuilding levels...'
         for level in Level.objects.all():
 
         print 'Rebuilding levels...'
         for level in Level.objects.all():
index 45284cb..6a3bbb7 100644 (file)
@@ -155,13 +155,13 @@ class Lesson(models.Model):
     def republish(self, repackage_level=True, attachments=None):
         from librarian import IOFile
         import os.path
     def republish(self, repackage_level=True, attachments=None):
         from librarian import IOFile
         import os.path
+        from django.conf import settings
         if attachments is None:
             attachments = {}
             for attachment in self.attachment_set.all():
         if attachments is None:
             attachments = {}
             for attachment in self.attachment_set.all():
-                f = IOFile.from_filename(attachment.file.name)
-                name = os.path.basename(attachment.file.name)
-                attachments[name.decode('utf-8')] = f
-                attachments.setdefault(name.replace(" ", "").decode('utf-8'), f)
+                full_name = os.path.join(settings.MEDIA_ROOT, attachment.file.name)
+                f = IOFile.from_filename(full_name)
+                attachments[attachment.slug] = f
         infile = IOFile.from_filename(self.xml_file.path, attachments=attachments)
         Lesson.publish(infile)
         if repackage_level:
         infile = IOFile.from_filename(self.xml_file.path, attachments=attachments)
         Lesson.publish(infile)
         if repackage_level: