Example #1
0
def new_project_report_email(request, project):
    if request.method == "POST":
        form = crm_forms.EmailForm(request.POST, project=project)
        if form.is_valid():
            memo = form.cleaned_data["memo"]
            recipient = form.cleaned_data["to"]

            context = {"project": project, "memo": memo, "recipient": recipient}
            recipients = [recipient.email]
            attachment = generate_project_report_pdf(project)
            subject = "%s project report" % project.name

            if not send_project_report_email(recipients=recipients, context=context, attachment=attachment):
                request.notifications.add("Failed to send email")
                return HttpResponseRedirect(
                    reverse("view_project", kwargs={"business_id": project.business.id, "project_id": project.id})
                )

            message = "Successfully sent Project Report to %s (%s)" % (recipient.get_full_name(), recipient.email)
            interaction = crm.Interaction.objects.create(
                date=datetime.datetime.now(),
                type="business",
                completed=True,
                project=project,
                memo="%s: %s" % (message, memo),
            )
            # add projects contacts to contacts list
            for contact in interaction.project.contacts.all():
                interaction.contacts.add(contact)
            request.notifications.add(message)

            return HttpResponseRedirect(
                reverse("view_project", kwargs={"business_id": project.business.id, "project_id": project.id})
            )
    else:
        form = crm_forms.EmailForm(project=project)

    context = {"project": project, "form": form}
    return context
Example #2
0
def show_project_report(request, project):
    if project.editor == request.user:
        pdf = generate_project_report_pdf(project)
        return HttpResponse(pdf, content_type="application/pdf")
    else:
        return HttpResponseForbidden("<h1>Permission Denied.</h1>")