from builder.base import * from .models import Topic, Entry class BuildSrc(Build): def build(self): self.build_archive() self.build_topic_archive() self.build_detail_pages() self.build_feed() def build_detail_pages(self): ''' Grab all the notes, render them to a template string and write that out to the filesystem ''' for entry in Entry.objects.filter(status__exact=1): c = Context({'object': entry, 'MEDIA_URL': settings.BAKED_MEDIA_URL, 'IMAGES_URL': settings.BAKED_IMAGES_URL, 'SITE_URL':settings.SITE_URL}) t = render_to_string('details/src_entry.html', c).encode('utf-8') path = 'src/' self.write_file(path, t, 'html', entry.slug) s = render_to_string('details/note.txt', c).encode('utf-8') self.write_file(path, s, 'txt', entry.slug) def build_archive(self): path = 'src/' c = Context({ 'object_list': Entry.objects.filter(status__exact=1), 'MEDIA_URL': settings.BAKED_MEDIA_URL, 'IMAGES_URL': settings.BAKED_IMAGES_URL }) t = render_to_string('archives/src_home.html', c).encode('utf-8') self.write_file(path, t) def build_topic_archive(self): for topic in Topic.objects.all(): path = 'src/topic/' c = Context({ 'object_list': Entry.objects.filter(topics__slug=topic.slug), 'topic': topic, 'MEDIA_URL': settings.BAKED_MEDIA_URL, 'IMAGES_URL': settings.BAKED_IMAGES_URL }) t = render_to_string('archives/src_home.html', c).encode('utf-8') self.write_file(path, t, 'html', topic.slug) def build_feed(self): qs = Entry.objects.filter(status__exact=1) c = Context({'object_list': qs, 'SITE_URL': settings.SITE_URL}) t = render_to_string('feed.xml', c).encode('utf-8') fpath = '%s' % ('/src/rss/',) self.write_file(fpath, t, 'xml')