def get(self, request, *args, **kwargs): fileName = kwargs['filename'] url = os.path.join( functions.get_absolute_directory( settings.TEMPLADO_REPORT_TEMPLATE_DIR), fileName) wrapper = FileWrapper(file(url)) response = HttpResponse(wrapper, content_type='text/plain') response[ 'Content-Disposition'] = 'attachment; filename=%s' % os.path.basename( fileName) response['Content-Length'] = os.path.getsize(url) return response
def recreate_report(self, report, data={}, tags=''): ''' changes attributes of report given new data and generates data ''' data.update({'STATIC_DIR': functions.get_absolute_directory(settings.TEMPLADO_REPORT_STATIC_DIR)}) report = self.as_obj(report) if data: data.update(data) report.content = json.dumps(data) report.name = Template(report.template.title_pattern).render(Context(data)) report.auto_tags = Template(report.template.tags_pattern).render(Context(data)) report.generate_pdf() if tags: self.tag(report, tags) report.save() return report
def create_report(self, template, data, tags=''): ''' creates new report and generates pdf based on data from new report ''' data.update({'STATIC_DIR': functions.get_absolute_directory(settings.TEMPLADO_REPORT_STATIC_DIR)}) if isinstance(template, int): template = str(template) if isinstance(template, str): template = Report.objects.get(pk=template) report = self.model(template=template, name=Template(template.title_pattern).render(Context(data)), content=json.dumps(data), auto_tags=Template(template.tags_pattern).render(Context(data)), tags=' '.join(tags.split()), ) report.started = timezone.now() report.generate_pdf() report.finished = timezone.now() report.save() return report
from django.conf import settings from .views import ReportsListView, TemplatesListView, ReportFormView, DownloadReport, DownloadTemplate, EditReportFormView, \ TemplateFormView, SearchView, HelpView, UploadStaticView from templado import functions urlpatterns = patterns( '', url(r'^uploadstatic/$', UploadStaticView.as_view(), name='upload-static'), url(r'^create/$', TemplateFormView.as_view(), name='template-form'), url(r'^search/$', SearchView.as_view(), name='search'), url(r'^edit/(?P<template>\d+)/$', TemplateFormView.as_view(), name='edit-template-form'), url(r'^generate/(?P<template>\d+)/$', ReportFormView.as_view(), name='report-form'), url(r'^regenerate/(?P<report>\d+)/$', EditReportFormView.as_view(), name='edit-report-form'), url(r'^reports$', ReportsListView.as_view(), name='report-list'), url(r'^download/(?P<report>\d+)/$', DownloadReport.as_view(), name='download-report'), url(r'^download/' + functions.get_absolute_directory( settings.TEMPLADO_REPORT_TEMPLATE_DIR).strip('/') + '/(?P<filename>[^/]+)/$', DownloadTemplate.as_view(), name='download-template'), url(r'^help$', HelpView.as_view(), name='help'), url(r'^$', TemplatesListView.as_view(), name='template-list'), )
from django.conf.urls import patterns, url from django.conf import settings from .views import ReportsListView, TemplatesListView, ReportFormView, DownloadReport, DownloadTemplate, EditReportFormView, \ TemplateFormView, SearchView, HelpView, UploadStaticView from templado import functions urlpatterns = patterns('', url(r'^uploadstatic/$', UploadStaticView.as_view(), name='upload-static'), url(r'^create/$', TemplateFormView.as_view(), name='template-form'), url(r'^search/$', SearchView.as_view(), name='search'), url(r'^edit/(?P<template>\d+)/$', TemplateFormView.as_view(), name='edit-template-form'), url(r'^generate/(?P<template>\d+)/$', ReportFormView.as_view(), name='report-form'), url(r'^regenerate/(?P<report>\d+)/$', EditReportFormView.as_view(), name='edit-report-form'), url(r'^reports$', ReportsListView.as_view(), name='report-list'), url(r'^download/(?P<report>\d+)/$', DownloadReport.as_view(), name='download-report'), url(r'^download/'+functions.get_absolute_directory(settings.TEMPLADO_REPORT_TEMPLATE_DIR).strip('/')+'/(?P<filename>[^/]+)/$', DownloadTemplate.as_view(), name='download-template'), url(r'^help$', HelpView.as_view(), name='help'), url(r'^$', TemplatesListView.as_view(), name='template-list'), )