def get_conditional_alert_rows(domain): translated_rows = [] untranslated_rows = [] langs = get_language_list(domain) for rule in get_conditional_alerts_queryset_by_domain(domain): schedule = rule.get_messaging_rule_schedule() events = schedule.memoized_events send_frequency = ScheduleForm.get_send_frequency_by_ui_type( schedule.ui_type) # Custom schedules may have multiple events each with different content # Non-custom schedules may have multiple events (e.g., daily schedule sent MWF) but each # event will have identical content, so only include the first one if send_frequency not in (ScheduleForm.SEND_CUSTOM_DAILY, ScheduleForm.SEND_CUSTOM_IMMEDIATE): events = [events[0]] for event in events: common_columns = [rule.pk, rule.name] if UntranslatedConditionalAlertUploader.event_is_relevant(event): untranslated_rows.append(common_columns + [event.content.message.get('*', '')]) elif TranslatedConditionalAlertUploader.event_is_relevant(event): translated_rows.append( common_columns + [event.content.message.get(lang, '') for lang in langs]) return (translated_rows, untranslated_rows)
def get_conditional_alert_headers(domain): common_headers = ['id', 'name'] langs = get_language_list(domain) return ((TranslatedConditionalAlertUploader.sheet_name, common_headers + ['message_' + lang for lang in langs]), (UntranslatedConditionalAlertUploader.sheet_name, common_headers + ['message']))
def __init__(self, domain): super(ConditionalAlertUploader, self).__init__() self.domain = domain self.langs = get_language_list(domain) self.msgs = []