def async_report(token): try: report_request = ReportRequest.objects.get(token=token) except ReportRequest.DoesNotExist: # Error? return # THis is like 90% the same reportengine.autodiscover() ## Populate the reportengine registry report_request.build_report()
def handle(self, *args, **kwargs): if not kwargs['namespace'] or not kwargs['report']: raise CommandError('--namespace and --report are required') ## Try to open the file path if specified, default to sys.stdout if it wasn't if kwargs['file']: try: output = file(kwargs['file'], 'w') except Exception: raise CommandError('Could not open file path for writing') else: output = sys.stdout reportengine.autodiscover() ## Populate the reportengine registry try: report = reportengine.get_report(kwargs['namespace'], kwargs['report'])() except Exception, err: raise CommandError('Could not find report for (%(namespace)s, %(report)s)' % kwargs)
try: from django.conf.urls import patterns, include except ImportError: from django.conf.urls.defaults import patterns, include from django.contrib import admin admin.autodiscover() # Be sure to autodiscover the reports import reportengine reportengine.autodiscover() urlpatterns = patterns( '', (r'^$', 'django.views.generic.simple.redirect_to', {"url": "/reports/"}), (r'^admin/', include(admin.site.urls)), (r'^reports/', include('reportengine.urls')), )
from django.conf.urls.defaults import * from django.contrib import admin admin.autodiscover() # Be sure to autodiscover the reports import reportengine reportengine.autodiscover() urlpatterns = patterns( '', (r'^$', 'django.views.generic.simple.redirect_to', { "url": "/reports/" }), (r'^admin/', include(admin.site.urls)), (r'^reports/', include('reportengine.urls')), )
def handle(self, *args, **kwargs): if not kwargs['namespace'] or not kwargs['report']: raise CommandError('--namespace and --report are required') ## Try to open the file path if specified, default to sys.stdout if it wasn't if kwargs['file']: try: output = file(kwargs['file'], 'w') except Exception: raise CommandError('Could not open file path for writing') else: output = sys.stdout reportengine.autodiscover() ## Populate the reportengine registry try: report = reportengine.get_report(kwargs['namespace'], kwargs['report'])() except Exception as err: raise CommandError('Could not find report for (%(namespace)s, %(report)s)' % kwargs) ## Parse our filters request = dict(parse_qsl(kwargs['filter'])) filter_form = report.get_filter_form(request) if filter_form.fields: if filter_form.is_valid(): filters = filter_form.cleaned_data else: filters = {} else: if report.allow_unspecified_filters: filters = request else: filters = {} # Remove blank filters for k in filters.keys(): if filters[k] == '': del filters[k] ## Update the mask and run the report! mask = report.get_default_mask() mask.update(filters) rows, aggregates = report.get_rows(mask, order_by=kwargs['order_by']) ## Get our output format, setting a default if one wasn't set or isn't valid for this report outputformat = None if output: for format in report.output_formats: if format.slug == kwargs['format']: outputformat = format if not outputformat: ## By default, [0] is AdminOutputFormat, so grab the last one instead outputformat = report.output_formats[-1] context = { 'report': report, 'title': report.verbose_name, 'rows': rows, 'filter_form': filter_form, 'aggregates': aggregates, 'paginator': None, 'cl': None, 'page': 0, 'urlparams': kwargs['filter'] } outputformat.generate_output(context, output) output.close()