Example #1
0
def first_post_letter(letter):
    pdfs = []
    pdfs.append(
        utils.render_tex_to_pdf("correspondence/first-post-template.tex",
                                {'letter': letter}))
    # First post, if any.  First post uses a dynamic document rather than the
    # letter.document field, so that if a document is ever removed/unpublished,
    # we get the updated "first post" on printout.
    try:
        document = Document.objects.filter(
            status="published", type="post",
            author__pk=letter.recipient.pk).order_by('date_written')[0]
        pdfs.append(utils.url_to_pdf(document.get_absolute_url()))
    except IndexError:
        pass
    # Profile, if any
    if Document.objects.filter(
            status="published", type="profile",
            author__pk=letter.recipient.pk).order_by('-date_written').exists():
        pdfs.append(
            utils.url_to_pdf(letter.recipient.profile.get_absolute_url()))
    if not pdfs:
        return None

    combined_pdf = utils.combine_pdfs(*pdfs)
    for pdf in pdfs:
        os.remove(pdf)
    return combined_pdf
Example #2
0
def comment_removal(letter):
    return utils.render_tex_to_pdf(
        "correspondence/comment-removal.tex", {
            'letter': letter,
            'comment': letter.comments.get(),
            'message': letter.body,
        })
Example #3
0
def first_post_letter(letter):
    pdfs = []
    pdfs.append(
        utils.render_tex_to_pdf("correspondence/first-post-template.tex", {
            'letter': letter
        })
    )
    # First post, if any.  First post uses a dynamic document rather than the
    # letter.document field, so that if a document is ever removed/unpublished,
    # we get the updated "first post" on printout.
    try:
        document = Document.objects.filter(status="published", type="post",
                author__pk=letter.recipient.pk).order_by('date_written')[0]
        pdfs.append(utils.url_to_pdf(document.get_absolute_url()))
    except IndexError:
        pass
    # Profile, if any
    if Document.objects.filter(status="published", type="profile",
            author__pk=letter.recipient.pk).order_by('-date_written').exists():
        pdfs.append(utils.url_to_pdf(letter.recipient.profile.get_absolute_url()))
    if not pdfs:
        return None

    combined_pdf = utils.combine_pdfs(*pdfs)
    for pdf in pdfs:
        os.remove(pdf)
    return combined_pdf
Example #4
0
def generic_letter(letter):
    if letter.is_postcard:
        return utils.render_postcard(
            "correspondence/generic-postcard.txt",
            {"letter": letter, "address": letter.recipient.profile.full_address()},
        )
    else:
        return utils.render_tex_to_pdf("correspondence/generic-letter.tex", {"letter": letter})
Example #5
0
def generic_letter(letter):
    if letter.is_postcard:
        return utils.render_postcard("correspondence/generic-postcard.txt", {
            'letter': letter,
            'address': letter.recipient.profile.full_address()
        })
    else:
        return utils.render_tex_to_pdf("correspondence/generic-letter.tex", {
            'letter': letter,
        })
Example #6
0
def comments_letter(letter):
    pdfs = [
        # cover letter
        utils.render_tex_to_pdf("correspondence/comment-mailing.tex", {"letter": letter}),
        utils.url_to_pdf(reverse("correspondence.recent_comments_letter", args=[letter.pk])),
    ]
    combined_pdf = utils.combine_pdfs(*pdfs)
    for pdf in pdfs:
        os.remove(pdf)
    return combined_pdf
Example #7
0
def consent_form(letter):
    parts = []
    delete_after = []
    if letter.org.custom_intro_packet:
        parts.append(letter.org.custom_intro_packet.path)
    else:
        cover = utils.render_tex_to_pdf("correspondence/intro-packet-cover.tex", {"letter": letter})
        parts.append(cover)
        delete_after.append(cover)
        packet = utils.render_tex_to_pdf(
            "correspondence/intro-packet-packet.tex", {"MEDIA_ROOT": settings.MEDIA_ROOT, "letter": letter}
        )
        parts.append(packet)
        delete_after.append(packet)
    parts.append(os.path.join(settings.MEDIA_ROOT, "intro", "license.pdf"))

    combined = utils.combine_pdfs(*parts, add_blanks=True)
    for pdf in delete_after:
        os.remove(pdf)
    return combined
Example #8
0
def comments_letter(letter):
    pdfs = [
        # cover letter
        utils.render_tex_to_pdf("correspondence/comment-mailing.tex",
                                {'letter': letter}),
        utils.url_to_pdf(
            reverse("correspondence.recent_comments_letter", args=[letter.pk]))
    ]
    combined_pdf = utils.combine_pdfs(*pdfs)
    for pdf in pdfs:
        os.remove(pdf)
    return combined_pdf
Example #9
0
def consent_form(letter):
    parts = []
    delete_after = []
    if letter.org.custom_intro_packet:
        parts.append(letter.org.custom_intro_packet.path)
    else:
        cover = utils.render_tex_to_pdf(
            "correspondence/intro-packet-cover.tex", {'letter': letter})
        parts.append(cover)
        delete_after.append(cover)
        packet = utils.render_tex_to_pdf(
            "correspondence/intro-packet-packet.tex", {
                'MEDIA_ROOT': settings.MEDIA_ROOT,
                'letter': letter
            })
        parts.append(packet)
        delete_after.append(packet)
    parts.append(os.path.join(settings.MEDIA_ROOT, "intro", "license.pdf"))

    combined = utils.combine_pdfs(*parts, add_blanks=True)
    for pdf in delete_after:
        os.remove(pdf)
    return combined
Example #10
0
def refused_original(letter):
    return utils.render_tex_to_pdf(
        "correspondence/refused-original.tex", {
            'letter': letter,
            'address': letter.recipient.profile.full_address(),
        })
Example #11
0
def signup_complete_letter(letter):
    return utils.render_tex_to_pdf(
        "correspondence/created-packet-template.tex", {'letter': letter})
Example #12
0
def signup_complete_letter(letter):
    return utils.render_tex_to_pdf("correspondence/created-packet-template.tex", {
        'letter': letter
    })
Example #13
0
def comment_removal(letter):
    return utils.render_tex_to_pdf("correspondence/comment-removal.tex", {
            'letter': letter,
            'comment': letter.comments.get(),
            'message': letter.body,
        })
Example #14
0
def refused_original(letter):
    return utils.render_tex_to_pdf("correspondence/refused-original.tex", {
        'letter': letter,
        'address': letter.recipient.profile.full_address(),
    })
Example #15
0
def comment_removal(letter):
    return utils.render_tex_to_pdf(
        "correspondence/comment-removal.tex",
        {"letter": letter, "comment": letter.comments.get(), "message": letter.body},
    )
Example #16
0
def returned_original(letter):
    return utils.render_tex_to_pdf(
        "correspondence/returned-original.tex", {"letter": letter, "address": letter.recipient.profile.full_address()}
    )