From 2d63a995bdf70751acb6413f7a613c31603add52 Mon Sep 17 00:00:00 2001 From: Malthe Borch Date: Tue, 12 Dec 2017 15:58:19 +0100 Subject: [PATCH] Add option to allow using field title instead of name when saving data This implements proposal #207. --- CHANGES.txt | 4 +++- .../PloneFormGen/content/saveDataAdapter.py | 20 +++++++++++++++++-- .../locales/da/LC_MESSAGES/ploneformgen.po | 10 ++++++++++ .../PloneFormGen/locales/ploneformgen.pot | 10 ++++++++++ 4 files changed, 41 insertions(+), 3 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 54a5d241..95a590e7 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -4,7 +4,9 @@ Change History 1.7.24 (unreleased) ------------------- -- Nothing changed yet. +- Add option to use field title instead of name when exporting using + save data adapter. + [malthe] 1.7.23 (2017-07-08) diff --git a/Products/PloneFormGen/content/saveDataAdapter.py b/Products/PloneFormGen/content/saveDataAdapter.py index 65ad1632..675892e2 100644 --- a/Products/PloneFormGen/content/saveDataAdapter.py +++ b/Products/PloneFormGen/content/saveDataAdapter.py @@ -87,6 +87,14 @@ class FormSaveDataAdapter(FormActionAdapter): description=_(u'help_usecolumnnames_text', default=u"Do you wish to have column names on the first line of downloaded input?"), ), ), + BooleanField("UseFieldTitleForColumn", + required=False, + searchable=False, + widget=BooleanWidget( + label=_(u'label_usefieldtitleforcolumn_text', default=u"Use Field Title for Column"), + description=_(u'help_usefieldtitleforcolumn_text', default=u"Do you wish to use the field title instead of the name for the column header?"), + ), + ), ExLinesField('SavedFormInput', edit_accessor='getSavedFormInputForEdit', mutator='setSavedFormInput', @@ -400,7 +408,11 @@ def download_tsv(self, REQUEST=None, RESPONSE=None): RESPONSE.setHeader("Content-Type", 'text/tab-separated-values;charset=%s' % self.getCharset()) if getattr(self, 'UseColumnNames', False): - res = "%s\n" % '\t'.join(self.getColumnNames(excludeServerSide=False)) + if getattr(self, "UseFieldTitleForColumn", False): + meth = self.getColumnTitles + else: + meth = self.getColumnNames + res = "%s\n" % '\t'.join(meth(excludeServerSide=False)) if isinstance(res, unicode): res = res.encode(self.getCharset()) else: @@ -425,8 +437,12 @@ def download_csv(self, REQUEST=None, RESPONSE=None): RESPONSE.setHeader("Content-Type", 'text/comma-separated-values;charset=%s' % self.getCharset()) if getattr(self, 'UseColumnNames', False): + if getattr(self, "UseFieldTitleForColumn", False): + meth = self.getColumnTitles + else: + meth = self.getColumnNames delimiter = self.csvDelimiter() - res = "%s\n" % delimiter.join(self.getColumnNames(excludeServerSide=False)) + res = "%s\n" % delimiter.join(meth(excludeServerSide=False)) if isinstance(res, unicode): res = res.encode(self.getCharset()) else: diff --git a/Products/PloneFormGen/locales/da/LC_MESSAGES/ploneformgen.po b/Products/PloneFormGen/locales/da/LC_MESSAGES/ploneformgen.po index be15d1b4..52bc1cb8 100644 --- a/Products/PloneFormGen/locales/da/LC_MESSAGES/ploneformgen.po +++ b/Products/PloneFormGen/locales/da/LC_MESSAGES/ploneformgen.po @@ -1003,6 +1003,11 @@ msgstr "Denne tekst vil blive vist over de valgte inputs" msgid "help_usecolumnnames_text" msgstr "Vil du have kolonnenavne på første linie?" +#. Default: "Do you wish to use the field title instead of the name for the column header?" +#: ./content/saveDataAdapter.py:154 +msgid "help_usefieldtitleforcolumn_text" +msgstr "Vil du anvende titel i stedet for navn på første linie?" + #. Default: "Useful for stopping spam" #: ./content/fields.py:939 msgid "help_validate_link_spam_text" @@ -1636,6 +1641,11 @@ msgstr "" msgid "label_usecolumnnames_text" msgstr "Inkluder kolonnenavne" +#. Default: "Use Field Title for Column" +#: ./content/saveDataAdapter.py:98 +msgid "label_usefieldtitleforcolumn_text" +msgstr "Brug titel i stedet for navn" + #. Default: "Reject Text with Links?" #: ./content/fields.py:938 msgid "label_validate_link_spam_text" diff --git a/Products/PloneFormGen/locales/ploneformgen.pot b/Products/PloneFormGen/locales/ploneformgen.pot index 614b149a..23263d22 100644 --- a/Products/PloneFormGen/locales/ploneformgen.pot +++ b/Products/PloneFormGen/locales/ploneformgen.pot @@ -821,6 +821,11 @@ msgstr "" msgid "help_usecolumnnames_text" msgstr "" +#. Default: "Do you wish to use the field title instead of the name for the column header?" +#: ./content/saveDataAdapter.py:154 +msgid "help_usefieldtitleforcolumn_text" +msgstr "" + #. Default: "Useful for stopping spam" #: ./content/fields.py:939 msgid "help_validate_link_spam_text" @@ -1354,6 +1359,11 @@ msgstr "" msgid "label_usecolumnnames_text" msgstr "" +#. Default: "Use Field Title for Column" +#: ./content/saveDataAdapter.py:98 +msgid "label_usefieldtitleforcolumn_text" +msgstr "" + #. Default: "Reject Text with Links?" #: ./content/fields.py:938 msgid "label_validate_link_spam_text"