Beispiel #1
0
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)
Beispiel #2
0
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']))
Beispiel #3
0
 def __init__(self, domain):
     super(ConditionalAlertUploader, self).__init__()
     self.domain = domain
     self.langs = get_language_list(domain)
     self.msgs = []