diff options
author | luxagraf <sng@luxagraf.net> | 2020-11-11 21:49:34 -0500 |
---|---|---|
committer | luxagraf <sng@luxagraf.net> | 2020-11-11 21:49:34 -0500 |
commit | 199184b3b680bc4c8878bf11a60c0fbf72fb612f (patch) | |
tree | 92195ea8a1ba5e61fefca51896c2b8e01cdeaf43 /app/unused_apps/income/views.py | |
parent | 129a8545b520380a8567a4e7405634250f3d7da5 (diff) |
removed some things I wasn't using to clean up code base
Diffstat (limited to 'app/unused_apps/income/views.py')
-rw-r--r-- | app/unused_apps/income/views.py | 53 |
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 |