summaryrefslogtreecommitdiff
path: root/app/src/build.py
blob: 3abd8fff494a3823069aa7fb3fea5a7d16172794 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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()


    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/%s' % topic.slug
            c = Context({
                'object_list': Entry.objects.filter(topic__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)