def recipients_by_language(self): user_languages = { user['username']: user['language'] for user in get_user_docs_by_username(self.all_recipient_emails) if 'username' in user and 'language' in user } fallback_language = user_languages.get(self.owner_email, 'en') recipients = defaultdict(list) for email in self.all_recipient_emails: language = user_languages.get(email, fallback_language) recipients[language].append(email) return recipients
def recipients_by_language(self): user_languages = { user['username']: user['language'] for user in get_user_docs_by_username(self.all_recipient_emails) if 'username' in user and 'language' in user } fallback_language = user_languages.get(self.owner_email, 'en') recipients = defaultdict(list) for email in self.all_recipient_emails: language = user_languages.get(email, fallback_language) recipients[language].append(email) return immutabledict(recipients)
def recipients_by_language(self): user_languages = { user["username"]: user["language"] for user in get_user_docs_by_username(self.all_recipient_emails) if "username" in user and "language" in user } fallback_language = user_languages.get(self.owner_email, "en") recipients = defaultdict(list) for email in self.all_recipient_emails: language = user_languages.get(email, fallback_language) recipients[language].append(email) return immutabledict(recipients)
def get_users_without_permission(self, start_date, end_date): usernames = self.get_usernames(start_date, end_date) print(f'Filter {len(usernames)} users according to permission') permission_name = get_permission_name(Permissions.view_report) users_without_permission = [] for chunk in with_progress_bar(chunked(usernames, 100), prefix='\tProcessing'): users = [ CouchUser.wrap_correctly(doc) for doc in get_user_docs_by_username(chunk) ] for user in users: if not user.has_permission( DASHBOARD_DOMAIN, permission_name, data=PERMISSION): users_without_permission.append(user.username) return users_without_permission
def tearDownClass(cls): delete_domain_phone_numbers(TEST_DOMAIN) if cls.sms_backend_mapping.id is not None: cls.sms_backend_mapping.delete() if cls.sms_backend.id is not None: cls.sms_backend.delete() users = get_user_docs_by_username([ 'stella', 'bella', 'trella', 'msd_person', ]) if users: CommCareUser.bulk_delete([ CommCareUser.wrap_correctly(user) for user in users ]) for product in Product.by_domain(TEST_DOMAIN): product.delete() SQLProduct.objects.all().delete() ils_gateway_config = ILSGatewayConfig.for_domain(TEST_DOMAIN) if ils_gateway_config: ils_gateway_config.delete() DocDomainMapping.objects.all().delete() for site_code in [ 'loc1', 'loc2', 'dis1', 'reg1', 'moh1', ]: location = cls.get_location_by_site_code(site_code) if location: location.delete() SQLLocation.objects.all().delete() test_domain = Domain.get_by_name(TEST_DOMAIN, strict=True) if test_domain: test_domain.delete() super(ILSTestScript, cls).tearDownClass()
def tearDownClass(cls): delete_domain_phone_numbers(TEST_DOMAIN) if cls.sms_backend_mapping.id is not None: cls.sms_backend_mapping.delete() if cls.sms_backend.id is not None: cls.sms_backend.delete() users = get_user_docs_by_username([ 'stella', 'bella', 'trella', 'msd_person', ]) if users: CommCareUser.bulk_delete([ CommCareUser.wrap_correctly(user) for user in users ]) for product in Product.by_domain(TEST_DOMAIN): product.delete() SQLProduct.objects.all().delete() ils_gateway_config = ILSGatewayConfig.for_domain(TEST_DOMAIN) if ils_gateway_config: ils_gateway_config.delete() DocDomainMapping.objects.all().delete() for site_code in [ 'loc1', 'loc2', 'dis1', 'reg1', 'moh1', ]: location = cls.get_location_by_site_code(site_code) if location: location.delete() SQLLocation.objects.all().delete() test_domain = Domain.get_by_name(TEST_DOMAIN, strict=True) if test_domain: test_domain.delete() super(ILSTestScript, cls).tearDownClass()
def test_get_user_docs_by_username(self): users = [self.ccuser_1, self.web_user, self.ccuser_other_domain] usernames = [u.username for u in users] + ['*****@*****.**'] self.assertItemsEqual(get_user_docs_by_username(usernames), [u.to_json() for u in users])