def update_project_careplan_config_release(sender, application, **kwargs): domain_name = application.domain config = CareplanConfig.for_domain(domain_name) parent_app_id = application.copy_of latest_app = application.get_latest_app(released_only=True) if latest_app and latest_app.is_released and latest_app.has_careplan_module: config = config or CareplanConfig(domain=domain_name) update_careplan_config(config, parent_app_id, latest_app) else: careplan_removed(domain_name, config, parent_app_id)
def update_project_careplan_config(sender, application, **kwargs): domain_name = application.domain config = CareplanConfig.for_domain(domain_name) if application.doc_type == 'Application-Deleted': if application.has_careplan_module: careplan_removed(domain_name, config, application.get_id)
def update_project_careplan_config(sender, application, **kwargs): app_id = application.get_id domain_name = application.domain config = CareplanConfig.for_domain(domain_name) def careplan_removed(): if config and app_id in config.app_configs: del config.app_configs[app_id] config.save() if not config.app_configs: domain = Domain.get_by_name(domain_name) domain.has_careplan = False domain.save() if application.doc_type == 'Application-Deleted': if application.has_careplan_module: careplan_removed() elif application.has_careplan_module: config = config or CareplanConfig(domain=domain_name) app_props = config.app_configs.get(app_id, CareplanAppProperties()) for module in application.get_modules(): if isinstance(module, CareplanModule): app_props.name = module.default_name() app_props.case_type = module.case_type app_props.goal_conf = { "edit_module_id": module.id, "edit_form_id": module.get_form_by_type(CAREPLAN_GOAL, 'update').id, "create_module_id": module.id, "create_form_id": module.get_form_by_type(CAREPLAN_GOAL, 'create').id, } app_props.task_conf = { "edit_module_id": module.id, "edit_form_id": module.get_form_by_type(CAREPLAN_TASK, 'update').id, "create_module_id": module.id, "create_form_id": module.get_form_by_type(CAREPLAN_TASK, 'create').id, } break config.app_configs[app_id] = app_props config.save() domain = Domain.get_by_name(domain_name) if not domain.has_careplan: domain.has_careplan = True domain.save() else: careplan_removed()
def REPORTS(project): from corehq.apps.reports.standard.cases.basic import CaseListReport from corehq.apps.reports.standard.cases.careplan import make_careplan_reports reports = [] reports.extend(_get_configurable_reports(project)) reports.extend([ (ugettext_lazy("Monitor Workers"), ( monitoring.WorkerActivityReport, monitoring.DailyFormStatsReport, monitoring.SubmissionsByFormReport, monitoring.FormCompletionTimeReport, monitoring.CaseActivityReport, monitoring.FormCompletionVsSubmissionTrendsReport, monitoring.WorkerActivityTimes, ProjectHealthDashboard, )), (ugettext_lazy("Inspect Data"), ( inspect.SubmitHistory, CaseListReport, OdmExportReport, )), (ugettext_lazy("Manage Deployments"), ( deployments.ApplicationStatusReport, receiverwrapper.SubmissionErrorReport, phonelog.DeviceLogDetailsReport, deployments.SyncHistoryReport, deployments.ApplicationErrorReport, )), ]) if project.commtrack_enabled: supply_reports = ( commtrack.SimplifiedInventoryReport, commtrack.InventoryReport, commtrack.CurrentStockStatusReport, commtrack.StockStatusMapReport, ) if not should_use_sql_backend(project): supply_reports = supply_reports + ( commtrack.ReportingRatesReport, commtrack.ReportingStatusMapReport, ) reports.insert(0, (ugettext_lazy("CommCare Supply"), supply_reports)) if project.has_careplan: from corehq.apps.app_manager.models import CareplanConfig config = CareplanConfig.for_domain(project.name) if config: cp_reports = tuple(make_careplan_reports(config)) reports.insert(0, (ugettext_lazy("Care Plans"), cp_reports)) reports = list(_get_report_builder_reports(project)) + reports from corehq.apps.accounting.utils import domain_has_privilege messaging_reports = [] project_can_use_sms = domain_has_privilege(project.name, privileges.OUTBOUND_SMS) if project_can_use_sms: messaging_reports.extend([ sms.MessagesReport, ]) # always have these historical reports visible messaging_reports.extend([ sms.MessagingEventsReport, sms.MessageEventDetailReport, sms.SurveyDetailReport, sms.MessageLogReport, sms.SMSOptOutReport, ivr.CallReport, ivr.ExpectedCallbackReport, ]) messaging_reports += getattr(Domain.get_module_by_name(project.name), 'MESSAGING_REPORTS', ()) messaging = (ugettext_lazy("Messaging"), messaging_reports) reports.append(messaging) reports.extend(_get_dynamic_reports(project)) return reports
def REPORTS(project): from corehq.apps.reports.standard.cases.basic import CaseListReport from corehq.apps.reports.standard.cases.careplan import make_careplan_reports from corehq.apps.reports.standard.maps import DemoMapReport, DemoMapReport2, DemoMapCaseList reports = [ (ugettext_lazy("Monitor Workers"), ( monitoring.WorkerActivityReport, monitoring.DailyFormStatsReport, monitoring.SubmissionsByFormReport, monitoring.FormCompletionTimeReport, monitoring.CaseActivityReport, monitoring.FormCompletionVsSubmissionTrendsReport, monitoring.WorkerActivityTimes, )), (ugettext_lazy("Inspect Data"), ( inspect.SubmitHistory, CaseListReport, )), (ugettext_lazy("Manage Deployments"), ( deployments.ApplicationStatusReport, receiverwrapper.SubmissionErrorReport, phonelog.FormErrorReport, phonelog.DeviceLogDetailsReport )), (ugettext_lazy("Demos for Previewers"), ( DemoMapReport, DemoMapReport2, DemoMapCaseList, )), ] if project.commtrack_enabled: reports.insert(0, (ugettext_lazy("Commtrack"), ( commtrack_reports.InventoryReport, commtrack_reports.CurrentStockStatusReport, commtrack_maps.StockStatusMapReport, commtrack_reports.ReportingRatesReport, commtrack_maps.ReportingStatusMapReport, # commtrack_reports.RequisitionReport, ))) if project.has_careplan: from corehq.apps.app_manager.models import CareplanConfig config = CareplanConfig.for_domain(project.name) if config: cp_reports = tuple(make_careplan_reports(config)) reports.insert(0, (ugettext_lazy("Care Plans"), cp_reports)) from corehq.apps.accounting.utils import domain_has_privilege messaging_reports = [] project_can_use_sms = domain_has_privilege(project.name, privileges.OUTBOUND_SMS) if project_can_use_sms: messaging_reports.extend([ sms.MessagesReport, ]) # always have this historical report visible messaging_reports.append(sms.MessageLogReport) project_can_use_inbound_sms = domain_has_privilege(project.name, privileges.INBOUND_SMS) if project_can_use_inbound_sms: messaging_reports.extend([ ivr.CallLogReport, ivr.ExpectedCallbackReport, system_overview.SystemOverviewReport, system_overview.SystemUsersReport, ]) messaging_reports += getattr(Domain.get_module_by_name(project.name), 'MESSAGING_REPORTS', ()) messaging = (lambda project, user: ( ugettext_lazy("Logs") if project.commtrack_enabled else ugettext_lazy("Messaging")), messaging_reports) if project.commconnect_enabled: reports.insert(0, messaging) else: reports.append(messaging) reports.extend(dynamic_reports(project)) return reports
def REPORTS(project): from corehq.apps.reports.standard.cases.basic import CaseListReport from corehq.apps.reports.standard.cases.careplan import make_careplan_reports from corehq.apps.reports.standard.maps import DemoMapReport, DemoMapReport2, DemoMapCaseList reports = [] reports.extend(_get_configurable_reports(project)) reports.extend([ (ugettext_lazy("Monitor Workers"), ( monitoring.WorkerActivityReport, monitoring.DailyFormStatsReport, monitoring.SubmissionsByFormReport, monitoring.FormCompletionTimeReport, monitoring.CaseActivityReport, monitoring.FormCompletionVsSubmissionTrendsReport, monitoring.WorkerActivityTimes, ProjectHealthDashboard, )), (ugettext_lazy("Inspect Data"), ( inspect.SubmitHistory, CaseListReport, OdmExportReport, )), (ugettext_lazy("Manage Deployments"), ( deployments.ApplicationStatusReport, receiverwrapper.SubmissionErrorReport, phonelog.DeviceLogDetailsReport, deployments.SyncHistoryReport, deployments.ApplicationErrorReport, )), (ugettext_lazy("Demos"), ( DemoMapReport, DemoMapReport2, DemoMapCaseList, )), ]) if project.commtrack_enabled: supply_reports = ( commtrack.SimplifiedInventoryReport, commtrack.InventoryReport, commtrack.CurrentStockStatusReport, commtrack.StockStatusMapReport, ) if not should_use_sql_backend(project): supply_reports = supply_reports + ( commtrack.ReportingRatesReport, commtrack.ReportingStatusMapReport, ) reports.insert(0, (ugettext_lazy("CommCare Supply"), supply_reports)) if project.has_careplan: from corehq.apps.app_manager.models import CareplanConfig config = CareplanConfig.for_domain(project.name) if config: cp_reports = tuple(make_careplan_reports(config)) reports.insert(0, (ugettext_lazy("Care Plans"), cp_reports)) reports = list(_get_report_builder_reports(project)) + reports from corehq.apps.accounting.utils import domain_has_privilege messaging_reports = [] project_can_use_sms = domain_has_privilege(project.name, privileges.OUTBOUND_SMS) if project_can_use_sms: messaging_reports.extend([ sms.MessagesReport, ]) # always have these historical reports visible messaging_reports.extend([ sms.MessagingEventsReport, sms.MessageEventDetailReport, sms.SurveyDetailReport, sms.MessageLogReport, sms.SMSOptOutReport, ivr.CallReport, ivr.ExpectedCallbackReport, ]) messaging_reports += getattr(Domain.get_module_by_name(project.name), 'MESSAGING_REPORTS', ()) messaging = (ugettext_lazy("Messaging"), messaging_reports) reports.append(messaging) reports.extend(_get_dynamic_reports(project)) return reports
def REPORTS(project): from corehq.apps.reports.standard.cases.basic import CaseListReport from corehq.apps.reports.standard.cases.careplan import make_careplan_reports from corehq.apps.reports.standard.maps import DemoMapReport, DemoMapReport2, DemoMapCaseList reports = [ (_("Monitor Workers"), ( monitoring.WorkerActivityReport, monitoring.DailyFormStatsReport, monitoring.SubmissionsByFormReport, monitoring.FormCompletionTimeReport, monitoring.CaseActivityReport, monitoring.FormCompletionVsSubmissionTrendsReport, monitoring.WorkerActivityTimes, )), (_("Inspect Data"), ( inspect.SubmitHistory, CaseListReport, )), (_("Manage Deployments"), ( deployments.ApplicationStatusReport, receiverwrapper.SubmissionErrorReport, phonelog.FormErrorReport, phonelog.DeviceLogDetailsReport )), (_("Demos for Previewers"), ( DemoMapReport, DemoMapReport2, DemoMapCaseList, )), ] if project.commtrack_enabled: reports.insert(0, (_("Commtrack"), ( commtrack_reports.ReportingRatesReport, commtrack_reports.CurrentStockStatusReport, commtrack_reports.AggregateStockStatusReport, commtrack_reports.RequisitionReport, psi_prototype.VisitReport, psi_prototype.SalesAndConsumptionReport, psi_prototype.CumulativeSalesAndConsumptionReport, psi_prototype.StockOutReport, psi_prototype.StockReportExport, commtrack_maps.StockStatusMapReport, commtrack_maps.ReportingStatusMapReport, ))) if project.has_careplan: from corehq.apps.app_manager.models import CareplanConfig config = CareplanConfig.for_domain(project.name) if config: cp_reports = tuple(make_careplan_reports(config)) reports.insert(0, (_("Care Plans"), cp_reports)) messaging_reports = ( sms.MessagesReport, sms.MessageLogReport, ivr.CallLogReport, ivr.ExpectedCallbackReport, ) messaging_reports += getattr(Domain.get_module_by_name(project.name), 'MESSAGING_REPORTS', ()) messaging = (lambda project, user: ( _("Logs") if project.commtrack_enabled else _("Messaging")), messaging_reports) if project.commconnect_enabled: reports.insert(0, messaging) else: reports.append(messaging) reports.extend(dynamic_reports(project)) return reports