def test_get_call_center_cases_all(self): factory = CaseFactory(domain=TEST_DOMAIN, case_defaults={ 'user_id': self.user_id, 'owner_id': self.user_id, 'case_type': CASE_TYPE, 'update': {'hq_user_id': self.user_id} }) factory.create_or_update_cases([ CaseStructure(attrs={'create': True}), CaseStructure(attrs={'create': True}), CaseStructure(attrs={'create': True, 'owner_id': 'another_user'}), ]) cases = get_call_center_cases(TEST_DOMAIN, CASE_TYPE) self.assertEqual(len(cases), 3)
def test_get_call_center_cases_all(self): factory = CaseFactory(domain=TEST_DOMAIN, case_defaults={ 'user_id': self.user_id, 'owner_id': self.user_id, 'case_type': CASE_TYPE, 'update': {'hq_user_id': self.user_id} }) factory.create_or_update_cases([ CaseStructure(attrs={'create': True}), CaseStructure(attrs={'create': True}), CaseStructure(attrs={'create': True, 'owner_id': 'another_user'}), ]) cases = get_call_center_cases(TEST_DOMAIN, CASE_TYPE) self.assertEqual(len(cases), 3)
def test_get_call_center_cases_for_user(self): factory = CaseFactory(domain=TEST_DOMAIN, case_defaults={ 'user_id': self.user_id, 'owner_id': self.user_id, 'case_type': CASE_TYPE, 'update': {'hq_user_id': self.user_id} }) c1, c2, c3 = factory.create_or_update_cases([ CaseStructure(attrs={'create': True}), CaseStructure(attrs={'create': True}), CaseStructure(attrs={'create': True, 'owner_id': 'another_user'}), ]) cases = get_call_center_cases(TEST_DOMAIN, CASE_TYPE, self.user) self.assertEqual(len(cases), 2) case_ids = {case.case_id for case in cases} user_ids = {case.hq_user_id for case in cases} self.assertEqual(case_ids, set([c1.case_id, c2.case_id])) self.assertEqual(user_ids, set([self.user_id]))
def calculate_indicators(): """ Although this task runs every 15 minutes it only re-calculates the indicators for a domain if we're within 15 minutes after midnight in the domain's timezone. """ domains = [ domain for domain in get_call_center_domains() if is_midnight_for_domain(domain.midnight, error_margin=15) ] for domain in domains: all_cases = get_call_center_cases(domain.name, domain.cc_case_type) indicator_set = CallCenterIndicators( domain.name, domain.default_timezone, domain.cc_case_type, user=None, override_cases=all_cases, override_cache=True ) indicator_set.get_data()
def calculate_indicators(): """ Although this task runs every 15 minutes it only re-calculates the indicators for a domain if we're within 15 minutes after midnight in the domain's timezone. """ domains = [ domain for domain in get_call_center_domains() for midnight in domain.midnights if is_midnight_for_domain(midnight, error_margin=20) ] logger.info( "Calculating callcenter indicators for domains:\n{}".format(domains)) for domain in domains: all_cases = get_call_center_cases(domain.name, domain.cc_case_type) indicator_set = CallCenterIndicators(domain.name, domain.default_timezone, domain.cc_case_type, user=None, override_cases=all_cases, override_cache=True) indicator_set.get_data()
def call_center_cases(self): if self.override_cases: return self.override_cases return get_call_center_cases(self.domain, self.cc_case_type, self.user)
def call_center_cases(self): if self.override_cases: return self.override_cases return get_call_center_cases(self.domain, self.cc_case_type, self.user)