import os
from django.urls import reverse
from django.apps import apps
from builder.base import BuildNew
from itertools import chain

from django.conf import settings
from .models import NewsletterMailing


class BuildNewsletterArchives(BuildNew):

    def get_model_queryset(self):
        return self.model.objects.exclude(slug='test')

    def build(self):
        for lttr in self.get_model_queryset():
            self.build_list_view(
                base_path=reverse("lttr:list", kwargs={'slug':lttr.slug}),
                paginate_by=50
            )
            self.build_detail_view(lttr)

    def build_detail_view(self, lttr):
        for obj in lttr.newslettermailing_set.all():
            url = obj.get_absolute_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 lttr_builder():
    j = BuildNewsletterArchives("lttr", "Newsletter")
    j.build()