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
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>")