Example #1
0
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()
Example #2
0
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)
Example #4
0
    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)
Example #5
0
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')),
)

Example #6
0
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()