Exemplo n.º 1
0
class ArticleDetail:
    def __init__(self):
        self.article_service = ArticleService()
        self.pdf_generator = PDFGenerator()
        self.style_article_pdf = StyleArticlePDF()

    def article_detail(self, request, slug, template="article/article_detail.html"):
        articles = self.article_service.get_published_articles_with_related_articles(request)
        article = process_tag_or_categories_or_article(slug, articles)
        page = get_page(request)
        article_map = get_article_map(True)
        if article_is_a_perspective(article):
            request.path_info = '/policy-edits/'
            page = get_page(request)
        return render(request, template, {"article": article, "page": page, 'form': MapFormForSideBar(initial={'map': article_map}),
                                          "latest_commented_articles": self.article_service.get_latest_unique_commented_on_articles()})

    def build_response(self, article_title):
        response = HttpResponse(content_type=PDF_CONTENT_TYPE)
        response['Content-Disposition'] = urllib.quote(self.pdf_generator.generate_pdf_filename(article_title))
        return response

    def build_pdf_content(self, article):
        return self.style_article_pdf.sytle_pdf_content(article)

    def article_download(self, request, slug):
        article = process_tag_or_categories_or_article(slug,
                                                       self.article_service.get_published_articles_with_related_articles(
                                                           request))
        response = self.pdf_generator.generate_pdf_from_html(html=self.build_pdf_content(article),
                                                             file=self.build_response(article_title=article.slug))
        return response
Exemplo n.º 2
0
class PDFGeneratorTest(TestCase):
    def setUp(self):
        self.pdf_generator = PDFGenerator()

    def test_unicode_pdf_filename(self):
        filename = self.pdf_generator.generate_pdf_filename(
            u"सध्याच्या विकासाच्या पर्यायांचा पाठपुरावा करण्याचा निर्धार करून ‘महाराष्ट्र विकल्प संगम’ची सांगता (IN MARATHI)")
        self.assertEqual(
            u"attachment; filename=सध्याच्या विकासाच्या पर्यायांचा पाठपुरावा करण्याचा निर्धार करून ‘महाराष्ट्र विकल्प संगम’ची सांगता (IN MARATHI).pdf",
            filename)
Exemplo n.º 3
0
 def setUp(self):
     self.pdf_generator = PDFGenerator()
Exemplo n.º 4
0
 def __init__(self):
     self.article_service = ArticleService()
     self.pdf_generator = PDFGenerator()
     self.style_article_pdf = StyleArticlePDF()