X-Git-Url: https://git.mdrn.pl/edumed.git/blobdiff_plain/996389725d454494a8e0046f6b7b4f03d9407463..05333a6f2d2ea77a602612c3aaff039dc7b97200:/catalogue/models.py?ds=inline diff --git a/catalogue/models.py b/catalogue/models.py index e5ee3a9..ee0222c 100644 --- a/catalogue/models.py +++ b/catalogue/models.py @@ -35,7 +35,7 @@ class Section(models.Model): lessons = [Lesson.objects.get(slug=part.slug) for part in wldoc.book_info.parts] except Lesson.DoesNotExist, e: - raise cls.IncompleteError(e) + raise cls.IncompleteError(part.slug) slug = wldoc.book_info.url.slug try: @@ -56,10 +56,9 @@ class Section(models.Model): return section - - def syntetic_lesson(self): + def syntetic_lesson(self, level): try: - return self.lesson_set.filter(type='synthetic')[0] + return self.lesson_set.filter(type='synthetic', level=level)[0] except IndexError: return None @@ -149,23 +148,31 @@ class Lesson(models.Model): self.html_file.save("%s.html" % self.slug, File(open(html.get_filename()))) + def add_to_zip(self, zipf, student=False, prefix=''): + zipf.write(self.xml_file.path, + "%spliki-zrodlowe/%s.xml" % (prefix, self.slug)) + pdf = self.student_pdf if student else self.pdf + if pdf: + zipf.write(self.xml_file.path, + "%s%s%s.pdf" % (prefix, self.slug, "_student" if student else "")) + + def build_package(self, student=False): from StringIO import StringIO import zipfile from django.core.files.base import ContentFile buff = StringIO() zipf = zipfile.ZipFile(buff, 'w', zipfile.ZIP_STORED) - zipf.write(self.xml_file.path, "pliki-zrodlowe/%s.xml" % self.slug) - pdf = self.student_pdf if student else self.pdf - if pdf: - zipf.write(self.xml_file.path, - "%s%s.pdf" % (self.slug, "_student" if student else "")) + self.add_to_zip(zipf, student) zipf.close() fieldname = "student_package" if student else "package" getattr(self, fieldname).save( "%s%s.zip" % (self.slug, "_student" if student else ""), ContentFile(buff.getvalue())) + def get_syntetic(self): + return self.section.syntetic_lesson(self.level) + class Attachment(models.Model): slug = models.CharField(max_length=255)