def _get_context_for_saved_report(report_config): if report_config: report_config_data = report_config.to_json() report_config_data['filters'].update(report_config.get_date_range()) return report_config_data else: return ReportConfig.default()
def _update_initial_context(self): """ Intention: Don't override. """ report_configs = ReportConfig.by_domain_and_owner(self.domain, self.request.couch_user._id, report_slug=self.slug) current_config_id = self.request.GET.get('config_id', '') default_config = ReportConfig.default() def is_editable_datespan(field): if isinstance(field, six.string_types): soft_assert_type_text(field) field_fn = to_function(field) if isinstance(field, six.string_types) else field return issubclass(field_fn, DatespanFilter) and field_fn.is_editable has_datespan = any([is_editable_datespan(field) for field in self.fields]) self.context.update( report=dict( title=self.rendered_report_title, description=self.description, section_name=self.section_name, slug=self.slug, sub_slug=None, type=self.dispatcher.prefix, url_root=self.url_root, is_async=self.asynchronous, is_exportable=self.exportable, dispatcher=self.dispatcher, filter_set=self.filter_set, needs_filters=self.needs_filters, has_datespan=has_datespan, show=( self.override_permissions_check or self.request.couch_user.can_view_some_reports(self.domain) ), is_emailable=self.emailable, is_export_all = self.exportable_all, is_printable=self.printable, is_admin=self.is_admin_report, special_notice=self.special_notice, report_title=self.report_title or self.rendered_report_title, report_subtitles=self.report_subtitles, export_target=self.export_target, js_options=self.js_options, custom_filter_action_template=( self.custom_filter_action_template if hasattr(self, 'custom_filter_action_template') else False ), ), current_config_id=current_config_id, default_config=default_config, report_configs=report_configs, show_time_notice=self.show_time_notice, domain=self.domain, layout_flush_content=self.flush_layout )