def get_possible_reports(domain_name): from corehq.apps.reports.dispatcher import (ProjectReportDispatcher, CustomProjectReportDispatcher) # todo: exports should be its own permission at some point? report_map = (ProjectReportDispatcher().get_reports(domain_name) + CustomProjectReportDispatcher().get_reports(domain_name)) reports = [] domain_obj = Domain.get_by_name(domain_name) for heading, models in report_map: for model in models: if getattr(model, 'parent_report_class', None): report_to_check_if_viewable = model.parent_report_class else: report_to_check_if_viewable = model if report_to_check_if_viewable.show_in_user_roles(domain=domain_name, project=domain_obj): path = model.__module__ + '.' + model.__name__ reports.append({ 'path': path, 'name': model.name, 'slug': path.replace('.', '_'), }) for slug, name, is_visible in get_extra_permissions(): if is_visible(domain_obj): reports.append({ 'path': slug, 'name': name, 'slug': slug.replace('.', '_'), }) return reports
def get_possible_reports(domain_name): from corehq.apps.reports.dispatcher import (ProjectReportDispatcher, CustomProjectReportDispatcher) from corehq.apps.data_interfaces.dispatcher import DataInterfaceDispatcher # todo: exports should be its own permission at some point? report_map = (ProjectReportDispatcher().get_reports(domain_name) + CustomProjectReportDispatcher().get_reports(domain_name) + DataInterfaceDispatcher().get_reports(domain_name)) reports = [] domain = Domain.get_by_name(domain_name) for heading, models in report_map: for model in models: if getattr(model, 'parent_report_class', None): report_to_check_if_viewable = model.parent_report_class else: report_to_check_if_viewable = model if report_to_check_if_viewable.show_in_navigation( domain=domain_name, project=domain): reports.append({ 'path': model.__module__ + '.' + model.__name__, 'name': model.name }) for slug, name, is_visible in get_extra_permissions(): if is_visible(domain): reports.append({'path': slug, 'name': name}) return reports
def get_possible_reports(domain_name): from corehq.apps.reports.dispatcher import ProjectReportDispatcher, CustomProjectReportDispatcher from corehq.apps.data_interfaces.dispatcher import DataInterfaceDispatcher # todo: exports should be its own permission at some point? report_map = ( ProjectReportDispatcher().get_reports(domain_name) + CustomProjectReportDispatcher().get_reports(domain_name) + DataInterfaceDispatcher().get_reports(domain_name) ) reports = [] domain = Domain.get_by_name(domain_name) for heading, models in report_map: for model in models: if model.show_in_navigation(domain=domain_name, project=domain): reports.append({"path": model.__module__ + "." + model.__name__, "name": model.name}) for slug, name, is_visible in get_extra_permissions(): if is_visible(domain): reports.append({"path": slug, "name": name}) return reports