From 68fe55599c5bd796380ca2ae09bda0b157526f52 Mon Sep 17 00:00:00 2001 From: jdugh Date: Wed, 29 Apr 2020 19:48:13 +0200 Subject: [PATCH 1/2] add lang_header parameter. lang_header can be used for specify the language for header values in excel/csv export (you can have _xml header values and _default values for submits datas). If not set, lang arg override lang_header arg value. Need this PR : https://github.com/kobotoolbox/formpack/pull/215 --- kpi/models/import_export_task.py | 9 +++++++++ kpi/views/v1/export_task.py | 1 + 2 files changed, 10 insertions(+) diff --git a/kpi/models/import_export_task.py b/kpi/models/import_export_task.py index 33c9c3d772..08bbfb4086 100644 --- a/kpi/models/import_export_task.py +++ b/kpi/models/import_export_task.py @@ -348,6 +348,12 @@ class ExportTask(ImportExportTask): response values. Specify `_xml` to use question and choice names instead of labels. Leave unset, or use `_default` for labels in the default language + * `lang_header`: optional; the name of the translation to be used just for + headers values. Specify `_xml` to use question names in headers + instead of labels. Use `_default` for headers labels in the + default language. Leave unset for override it and use lang arg + value. + Need this PR : https://github.com/kobotoolbox/formpack/pull/215 * `hierarchy_in_labels`: optional; when `true`, include the labels for all ancestor groups in each field label, separated by `group_sep`. Defaults to `False` @@ -462,10 +468,12 @@ def _build_export_options(self, pack): group_sep = self.data.get('group_sep', '/') translations = pack.available_translations lang = self.data.get('lang', None) or next(iter(translations), None) + lang_header = self.data.get('lang_header', lang) or next(iter(translations), None) try: # If applicable, substitute the constants that formpack expects for # friendlier language strings used by the API lang = self.API_LANGUAGE_TO_FORMPACK_LANGUAGE[lang] + lang_header = self.API_LANGUAGE_TO_FORMPACK_LANGUAGE[lang_header] except KeyError: pass tag_cols_for_header = self.data.get('tag_cols_for_header', ['hxl']) @@ -478,6 +486,7 @@ def _build_export_options(self, pack): 'copy_fields': self.COPY_FIELDS, 'force_index': True, 'tag_cols_for_header': tag_cols_for_header, + 'lang_header': lang_header, } def _record_last_submission_time(self, submission_stream): diff --git a/kpi/views/v1/export_task.py b/kpi/views/v1/export_task.py index 3dfb0264f8..e67f5a1c6a 100644 --- a/kpi/views/v1/export_task.py +++ b/kpi/views/v1/export_task.py @@ -56,6 +56,7 @@ def create(self, request, *args, **kwargs): 'lang', 'hierarchy_in_labels', 'fields_from_all_versions', + 'lang_header', ) task_data = {} for opt in valid_options: From 67a012f74bbd0509d73e4d9c92be2553c9ef8bcc Mon Sep 17 00:00:00 2001 From: jdugh Date: Thu, 30 Apr 2020 09:29:22 +0200 Subject: [PATCH 2/2] change arg name lang_header to header_lang and remove second fallback value for header_lang --- kpi/models/import_export_task.py | 8 ++++---- kpi/views/v1/export_task.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/kpi/models/import_export_task.py b/kpi/models/import_export_task.py index 08bbfb4086..16079b8821 100644 --- a/kpi/models/import_export_task.py +++ b/kpi/models/import_export_task.py @@ -348,7 +348,7 @@ class ExportTask(ImportExportTask): response values. Specify `_xml` to use question and choice names instead of labels. Leave unset, or use `_default` for labels in the default language - * `lang_header`: optional; the name of the translation to be used just for + * `header_lang`: optional; the name of the translation to be used just for headers values. Specify `_xml` to use question names in headers instead of labels. Use `_default` for headers labels in the default language. Leave unset for override it and use lang arg @@ -468,12 +468,12 @@ def _build_export_options(self, pack): group_sep = self.data.get('group_sep', '/') translations = pack.available_translations lang = self.data.get('lang', None) or next(iter(translations), None) - lang_header = self.data.get('lang_header', lang) or next(iter(translations), None) + header_lang = self.data.get('header_lang', lang) try: # If applicable, substitute the constants that formpack expects for # friendlier language strings used by the API lang = self.API_LANGUAGE_TO_FORMPACK_LANGUAGE[lang] - lang_header = self.API_LANGUAGE_TO_FORMPACK_LANGUAGE[lang_header] + header_lang = self.API_LANGUAGE_TO_FORMPACK_LANGUAGE[header_lang] except KeyError: pass tag_cols_for_header = self.data.get('tag_cols_for_header', ['hxl']) @@ -486,7 +486,7 @@ def _build_export_options(self, pack): 'copy_fields': self.COPY_FIELDS, 'force_index': True, 'tag_cols_for_header': tag_cols_for_header, - 'lang_header': lang_header, + 'header_lang': header_lang, } def _record_last_submission_time(self, submission_stream): diff --git a/kpi/views/v1/export_task.py b/kpi/views/v1/export_task.py index e67f5a1c6a..6478114ff9 100644 --- a/kpi/views/v1/export_task.py +++ b/kpi/views/v1/export_task.py @@ -56,7 +56,7 @@ def create(self, request, *args, **kwargs): 'lang', 'hierarchy_in_labels', 'fields_from_all_versions', - 'lang_header', + 'header_lang', ) task_data = {} for opt in valid_options: