summaryrefslogtreecommitdiff
path: root/app/resume/build.py
blob: 4f051d59b5a5e4485b7681b08d4cbac66f6c69b0 (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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import os
from django.urls import reverse
from builder.base import BuildNew
from pages.models import Page

from .models import Publisher


class BuildPubs(BuildNew):

    def build(self):
        self.build_detail_view()
        self.build_publisher_list()
        self.build_list_view(
            base_path=reverse("resume:list"),
            paginate_by=9999
        )

    def get_model_queryset(self):
        return self.model.objects.all()

    def build_detail_view(self):
        for obj in self.get_model_queryset():
            url = obj.get_absolute_url()
            print(url)
            path, slug = os.path.split(url)
            path = '%s/' % path
            # write html
            response = self.client.get(url)
            print(path, slug)
            self.write_file(path, response.content, filename=slug)

    def build_publisher_list(self):
        publishers = Publisher.objects.all()
        for publisher in publishers:
            self.build_list_view(
                base_path=reverse("resume:list_by_publisher", kwargs={'publisher': publisher.slug, }),
                paginate_by=9999
            )


class BuildResume(BuildNew):

    def build(self):
        self.build_pages()

    def get_model_queryset(self):
        return self.model.objects.all()

    def build_pages(self):
        '''
        build out /work/index.html and work/resume.html
        '''
        pages = self.get_model_queryset().filter(app="resume", build=True)
        for obj in pages:
            path = "work/"
            if obj.slug == "profile":
                url = '/work/'
                slug = "index"
            else:
                url = "/%s%s/" % (path, obj.slug)
                slug = obj.slug
            # write html
            response = self.client.get(url, HTTP_HOST='127.0.0.1')
            self.write_file(path, response.content, filename=slug)


def pub_builder():
    j = BuildPubs("resume", "pubitem")
    j.build()


def resume_builder():
    j = BuildResume("pages", "page")
    j.build()