From: Jan Szejko Date: Wed, 25 Jan 2017 12:41:47 +0000 (+0100) Subject: republish lessons X-Git-Url: https://git.mdrn.pl/edumed.git/commitdiff_plain/e34d67aa6d16443c41215f6ad3aa7737dd14559f?ds=inline republish lessons --- diff --git a/catalogue/management/commands/republish.py b/catalogue/management/commands/republish.py new file mode 100644 index 0000000..7ead31b --- /dev/null +++ b/catalogue/management/commands/republish.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# This file is part of EduMed, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. +# +from django.core.management.base import BaseCommand + + +class Command(BaseCommand): + help = 'Republishes all lessons.' + + def handle(self, **options): + from catalogue.models import Lesson + from curriculum.models import Level + + for lesson in Lesson.objects.all(): + print 'Republishing: %s' % lesson.title + lesson.republish(repackage_level=False) + + print 'Rebuilding levels...' + for level in Level.objects.all(): + level.build_packages() diff --git a/catalogue/models.py b/catalogue/models.py index bae04ed..2f9a76d 100644 --- a/catalogue/models.py +++ b/catalogue/models.py @@ -4,6 +4,7 @@ from django.core.urlresolvers import reverse from django.db import models from jsonfield import JSONField from fnpdjango.storage import BofhFileSystemStorage + from curriculum.models import Level, Curriculum, CurriculumCourse import logging @@ -151,6 +152,13 @@ class Lesson(models.Model): lesson.build_package(student=True) return lesson + def republish(self, repackage_level=True): + from librarian import IOFile + infile = IOFile.from_filename(self.xml_file.path) + Lesson.publish(infile) + if repackage_level: + self.level.build_packages() + def populate_dc(self): from librarian.parser import WLDocument wldoc = WLDocument.from_file(self.xml_file.path)