Ejemplo n.º 1
0
class MyPDFView(View):
    template = 'qcreports/test.html'  # the template
    groups = Group.get_sms_maama_groups()
    contacts = Contact.get_sms_maama_weekly_contacts()
    sms_maama_contacts = Contact.get_sms_maama_contacts()
    sent_messages = Message.get_sms_maama_sent_messages()
    delivered_messages = Message.get_sms_maama_delivered_messages()
    failed_messages = Message.get_sms_maama_failed_messages()
    failed_messages_count = Message.get_sms_maama_failed_messages_count()
    contacts_count = Contact.get_sms_maama_contacts_count()
    weekly_contacts_count = Contact.get_sms_maama_weekly_contacts_count()
    messages_count = Message.get_sms_maama_sent_messages_count()
    read_messages_count = Message.get_sms_maama_read_messages_count()
    unread_messages = Message.get_sms_maama_unread_messages()
    flow_responses_count = Message.get_sms_maama_flow_responses_count()
    baby_responses = Message.get_sms_maama_flow_responses_baby()
    baby_responses_count = Message.get_sms_maama_flow_responses_baby_count()
    stops = Message.get_sms_maama_opted_out()
    stops_count = Message.get_sms_maama_opted_out_count()
    flows = Run.sms_maama_contact_flows()
    antenatal_responses = Run.sms_maama_contact_flows_antenatal()
    start_date = datetime.datetime.now() - datetime.timedelta(days=7)
    end_date = datetime.datetime.now()
    this_day = now()
    context = {
        'groups': groups,
        'contacts': contacts,
        'sms_maama_contacts': sms_maama_contacts,
        'sent_messages': sent_messages,
        'delivered_messages': delivered_messages,
        'failed_messages': failed_messages,
        'failed_messages_count': failed_messages_count,
        'contacts_count': contacts_count,
        'weekly_contacts_count': weekly_contacts_count,
        'messages_count': messages_count,
        'read_messages_count': read_messages_count,
        'unread_messages': unread_messages,
        'flow_responses_count': flow_responses_count,
        'baby_responses': baby_responses,
        'baby_responses_count': baby_responses_count,
        'stops': stops,
        'stops_count': stops_count,
        'flows': flows,
        'antenatal_responses': antenatal_responses,
        'start_date': start_date,
        'end_date': end_date,
        'this_day': this_day
    }  # data that has to be renderd to pdf templete

    def get(self, request):
        response = PDFTemplateResponse(
            request=request,
            template=self.template,
            filename="sms_maama_weekly_report.pdf",
            context=self.context,
            show_content_in_browser=False,
            # cmd_options={'margin-top': 10,
            #              "zoom": 1,
            #              "viewport-size": "1366 x 513",
            #              'javascript-delay': 1000,
            #              'footer-center': '[page]/[topage]',
            #              "no-stop-slow-scripts": True},
        )
        return response