Пример #1
0
 def _append_to_submission(self, entity_question_codes, fieldset_fields,
                           image_fields, language, media_field_codes,
                           meta_fields, required_field_names, res,
                           submission):
     for key in required_field_names:
         if key not in meta_fields:
             if key in entity_question_codes:
                 self.combine_name_and_id(short_code=safe_getattr(
                     res, es_unique_id_code_field_name(key)),
                                          entity_name=safe_getattr(
                                              res, key),
                                          submission=submission)
             elif key == SubmissionIndexConstants.DATASENDER_NAME_KEY:
                 self._populate_datasender(res, submission)
             elif key == 'status':
                 submission.append(ugettext(safe_getattr(res, key)))
             elif key == SubmissionIndexConstants.SUBMISSION_DATE_KEY:
                 self._convert_to_localized_date_time(key, res, submission)
             elif key == 'error_msg':
                 self._populate_error_message(key, language, res,
                                              submission)
             elif key in fieldset_fields.keys():
                 submission.append(
                     format_fieldset_values_for_representation(
                         safe_getattr(res, key), fieldset_fields.get(key),
                         submission[0]))
             else:
                 submission.append(
                     self._append_if_attachments_are_present(
                         res, key, media_field_codes, image_fields,
                         submission[0]))
Пример #2
0
    def _append_if_attachments_are_present(self, res, key, media_field_codes, image_fields, submission_id):
        if self.form_model.is_media_type_fields_present and key in media_field_codes:
            if key in image_fields:
                return _format_media_value(submission_id, safe_getattr(res, key), thumbnail_flag=True)
            else:
                return _format_media_value(submission_id, safe_getattr(res, key))

        else:
            temp_dict = {code.replace(".", " "):res[code] for code in res}
            return temp_dict.get(ugettext(key))
Пример #3
0
 def _populate_datasender(self, res, submission):
     if safe_getattr(res,
                     SubmissionIndexConstants.DATASENDER_ID_KEY) == u'N/A':
         submission.append(
             safe_getattr(res,
                          SubmissionIndexConstants.DATASENDER_NAME_KEY))
     else:
         self.combine_name_and_id(
             safe_getattr(res, SubmissionIndexConstants.DATASENDER_ID_KEY),
             safe_getattr(res,
                          SubmissionIndexConstants.DATASENDER_NAME_KEY),
             submission)
Пример #4
0
def _get_all_contacts_details(dbm, search_parameters):
    search_parameters['response_fields'] = [
        'short_code', 'name', 'mobile_number'
    ]
    search_results = get_all_datasenders_search_results(dbm, search_parameters)
    mobile_numbers, contact_display_list = [], []

    for entry in search_results.hits:
        mobile_numbers.append(safe_getattr(entry, 'mobile_number')[0])
        display_prefix = safe_getattr(entry, 'name')[0] if safe_getattr(
            entry, 'name') else safe_getattr(entry, 'mobile_number')[0]
        short_code = (safe_getattr(entry, 'short_code')[0])
        contact_display_list.append("%s (%s)" % (display_prefix, short_code))

    return mobile_numbers, contact_display_list
Пример #5
0
def get_all_data_sender_mobile_numbers(dbm):
    all_data_senders_count = get_all_data_senders_count(dbm)
    search_parameters = {
        "response_fields": ['mobile_number'],
        "number_of_results": all_data_senders_count,
        "start_result_number": 0
    }
    es = Elasticsearch(hosts=[{
        "host": ELASTIC_SEARCH_HOST,
        "port": ELASTIC_SEARCH_PORT
    }])
    search = Search(using=es,
                    index=dbm.database_name,
                    doc_type=REPORTER_DOC_TYPE)
    search = _add_non_contact_filter(search)
    search = _add_non_deleted_ds_filter(search)
    search = _restrict_test_ds_filter(search)
    search = _add_pagination_criteria(search_parameters, search)
    search = _add_response_fields(search_parameters, search)
    search_results = search.execute()
    return [
        safe_getattr(item, 'mobile_number')[0] for item in search_results.hits
    ]
Пример #6
0
 def _convert_to_localized_date_time(self, key, res, submission):
     submission_date_time = datetime.datetime.strptime(
         safe_getattr(res, key), "%b. %d, %Y, %I:%M %p")
     datetime_local = convert_utc_to_localized(self.localized_time_delta,
                                               submission_date_time)
     submission.append(datetime_local.strftime("%b. %d, %Y, %H:%M"))
Пример #7
0
 def _populate_error_message(self, key, language, res, submission):
     error_msg = safe_getattr(res, key)
     if error_msg.find('| |') != -1:
         error_msg = error_msg.split('| |,')[['en', 'fr'].index(language)]
     submission.append(error_msg)
Пример #8
0
def get_all_datasenders_short_codes(dbm, search_parameters):
    search_parameters['response_fields'] = ['short_code']
    search_results = get_all_datasenders_search_results(dbm, search_parameters)
    return [
        safe_getattr(item, 'short_code')[0] for item in search_results.hits
    ]
Пример #9
0
def _get_all_contacts_mobile_numbers(dbm, search_parameters):
    search_parameters['response_fields'] = ['mobile_number']
    search_results = get_all_datasenders_search_results(dbm, search_parameters)
    return [
        safe_getattr(item, 'mobile_number')[0] for item in search_results.hits
    ]