Exemplo n.º 1
0
def _case_changed(case_id, handler_ids):
    subcases = None
    case = CommCareCase.get(case_id)
    for handler in CaseReminderHandler.get_handlers_from_ids(handler_ids):
        if handler.start_condition_type == CASE_CRITERIA:
            handler.case_changed(case)
            if handler.uses_parent_case_property:
                if subcases is None:
                    subcases = get_subcases(case)
                for subcase in subcases:
                    handler.case_changed(subcase)
Exemplo n.º 2
0
 def format_broadcast_data(self, ids):
     broadcasts = CaseReminderHandler.get_handlers_from_ids(ids)
     result = []
     for broadcast in broadcasts:
         display = self.format_broadcast_name(broadcast)
         result.append([
             display,
             self.format_recipients(broadcast),
             self.format_content(broadcast),
             broadcast._id,
             reverse(EditBroadcastView.urlname, args=[self.domain, broadcast._id]),
             reverse(CopyBroadcastView.urlname, args=[self.domain, broadcast._id]),
         ])
     return result
Exemplo n.º 3
0
 def format_broadcast_data(self, ids):
     broadcasts = CaseReminderHandler.get_handlers_from_ids(ids)
     result = []
     for broadcast in broadcasts:
         display = self.format_broadcast_name(broadcast)
         result.append([
             display,
             self.format_recipients(broadcast),
             self.format_content(broadcast),
             broadcast._id,
             reverse(EditBroadcastView.urlname, args=[self.domain, broadcast._id]),
             reverse(CopyBroadcastView.urlname, args=[self.domain, broadcast._id]),
         ])
     return result
Exemplo n.º 4
0
def _case_changed(case_id, handler_ids):
    subcases = None
    case = CommCareCase.get(case_id)
    for handler in CaseReminderHandler.get_handlers_from_ids(handler_ids):
        if handler.start_condition_type == CASE_CRITERIA:
            kwargs = {}
            if handler.uses_time_case_property:
                kwargs = {"schedule_changed": True, "prev_definition": handler}
            handler.case_changed(case, **kwargs)
            if handler.uses_parent_case_property:
                if subcases is None:
                    subcases = get_subcases(case)
                for subcase in subcases:
                    handler.case_changed(subcase, **kwargs)
Exemplo n.º 5
0
def _case_changed(domain, case_id, handler_ids):
    case = CaseAccessors(domain).get_case(case_id)
    for handler in CaseReminderHandler.get_handlers_from_ids(handler_ids):
        if handler.start_condition_type == CASE_CRITERIA:
            kwargs = {}
            if handler.uses_time_case_property:
                kwargs = {
                    'schedule_changed': True,
                    'prev_definition': handler,
                }
            handler.case_changed(case, **kwargs)
            if handler.uses_parent_case_property:
                subcases = case.get_subcases(index_identifier=DEFAULT_PARENT_IDENTIFIER)
                for subcase in subcases:
                    handler.case_changed(subcase, **kwargs)
Exemplo n.º 6
0
def _case_changed(case_id, handler_ids):
    subcases = None
    case = CommCareCase.get(case_id)
    for handler in CaseReminderHandler.get_handlers_from_ids(handler_ids):
        if handler.start_condition_type == CASE_CRITERIA:
            kwargs = {}
            if handler.uses_time_case_property:
                kwargs = {
                    'schedule_changed': True,
                    'prev_definition': handler,
                }
            handler.case_changed(case, **kwargs)
            if handler.uses_parent_case_property:
                if subcases is None:
                    subcases = get_subcases(case)
                for subcase in subcases:
                    handler.case_changed(subcase, **kwargs)
Exemplo n.º 7
0
      default_retry_delay=CASE_CHANGED_RETRY_INTERVAL * 60,
      max_retries=CASE_CHANGED_RETRY_MAX,
      bind=True)
def case_changed(self, domain, case_id):
    try:
        handler_ids = CaseReminderHandler.get_handler_ids(
            domain, reminder_type_filter=REMINDER_TYPE_DEFAULT)
        if handler_ids:
            _case_changed(domain, case_id, handler_ids)
    except Exception as e:
        self.retry(exc=e)


def _case_changed(domain, case_id, handler_ids):
    case = CaseAccessors(domain).get_case(case_id)
    for handler in CaseReminderHandler.get_handlers_from_ids(handler_ids):
        if handler.start_condition_type == CASE_CRITERIA:
            kwargs = {}
            if handler.uses_time_case_property:
                kwargs = {
                    'schedule_changed': True,
                    'prev_definition': handler,
                }
            handler.case_changed(case, **kwargs)
            if handler.uses_parent_case_property:
                subcases = case.get_subcases(
                    index_identifier=DEFAULT_PARENT_IDENTIFIER)
                for subcase in subcases:
                    handler.case_changed(subcase, **kwargs)