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 'Republishing: %s' % lesson.title
- lesson.republish(repackage_level=False)
+ print
+ print 'Republishing: %s' % lesson.slug
+ lesson.republish(repackage_level=False, attachments=attachments)
print 'Rebuilding levels...'
for level in Level.objects.all():
lesson.build_package(student=True)
return lesson
- def republish(self, repackage_level=True):
+ def republish(self, repackage_level=True, attachments=None):
from librarian import IOFile
- infile = IOFile.from_filename(self.xml_file.path)
+ import os.path
+ 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)
+ infile = IOFile.from_filename(self.xml_file.path, attachments=attachments)
Lesson.publish(infile)
if repackage_level:
self.level.build_packages()