summaryrefslogtreecommitdiff
path: root/app/unused_apps/income/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/unused_apps/income/views.py')
-rw-r--r--app/unused_apps/income/views.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/app/unused_apps/income/views.py b/app/unused_apps/income/views.py
new file mode 100644
index 0000000..1c34068
--- /dev/null
+++ b/app/unused_apps/income/views.py
@@ -0,0 +1,53 @@
+import datetime
+from django.views.generic.detail import DetailView
+from django.template.loader import render_to_string
+from django.http import HttpResponse
+from django.conf import settings
+
+#from weasyprint import HTML, CSS
+
+from .models import Invoice, InvoiceItem
+
+
+class MonthlyInvoiceView(DetailView):
+ model = Invoice
+ template_name = "admin/income/monthly.html"
+ slug_field = "slug"
+
+ def get_context_data(self, **kwargs):
+ context = super(MonthlyInvoiceView, self).get_context_data(**kwargs)
+ context['object_list'] = InvoiceItem.objects.filter(time_start__range=[self.object.date_start, self.object.date_end])
+ total_time = []
+ for item in context['object_list']:
+ total_time.append(item.rounded_total)
+ hours = (sum(total_time))
+ context['total_hours'] = hours
+ context['total_billed'] = int(hours * 100)
+ context['invoice_number'] = self.object.id+21
+ return context
+
+
+class DownloadMonthlyInvoiceView(MonthlyInvoiceView):
+ model = Invoice
+ slug_field = "slug"
+
+ def get(self, *args, **kwargs):
+ import logging
+ logger = logging.getLogger('weasyprint')
+ logger.addHandler(logging.FileHandler('weasyprint.log'))
+ self.object = self.get_object() # assign the object to the view
+ context = self.get_context_data()
+ c = {
+ 'object': self.object,
+ 'object_list': context['object_list'],
+ 'total_hours': context['total_hours'],
+ 'total_billed': context['total_billed'],
+ 'invoice_number': self.object.id+23
+ }
+ t = render_to_string('details/invoice.html', c).encode('utf-8')
+ #html = HTML(string=t, base_url=self.request.build_absolute_uri())
+ #pdf = html.write_pdf(stylesheets=[CSS(settings.MEDIA_ROOT + '/pdf_gen.css')], presentational_hints=True)
+ #response = HttpResponse(pdf, content_type='application/pdf')
+ #response['Content-Disposition'] = 'inline; filename="invoice.pdf"'
+ response = HttpResponse('', content_type='application/pdf')
+ return response