Fix for CSV export. 0.4.5
authorRadek Czajka <rczajka@rczajka.pl>
Thu, 26 Mar 2020 13:37:19 +0000 (14:37 +0100)
committerRadek Czajka <rczajka@rczajka.pl>
Thu, 26 Mar 2020 13:37:19 +0000 (14:37 +0100)
CHANGELOG.md
fnpdjango/actions.py
fnpdjango/locale/pl/LC_MESSAGES/django.mo
fnpdjango/locale/pl/LC_MESSAGES/django.po
setup.py

index dac26e0..3ec1475 100644 (file)
@@ -2,7 +2,7 @@
 
 This document records all notable changes to fnpdjango.
 
 
 This document records all notable changes to fnpdjango.
 
-## 0.4.4 (2020-03-26)
+## 0.4.5 (2020-03-26)
 
 - Support for Django up do 3.0.
 - Added `actions.export_as_csv_action`.
 
 - Support for Django up do 3.0.
 - Added `actions.export_as_csv_action`.
index ec0479e..1e1316a 100644 (file)
@@ -3,6 +3,7 @@ from __future__ import unicode_literals
 
 import csv
 from django.http import HttpResponse
 
 import csv
 from django.http import HttpResponse
+from django.utils.translation import ugettext_lazy as _
 
 try:
     unicode
 
 try:
     unicode
@@ -12,7 +13,7 @@ else:
     str = unicode
 
 
     str = unicode
 
 
-def export_as_csv_action(description="Export selected objects as CSV file", fields=None, exclude=None, header=True):
+def export_as_csv_action(description=_("Export selected objects as CSV file"), fields=None, exclude=None, header=True):
     """
     This function returns an export csv action
     'fields' and 'exclude' work like in django ModelForm
     """
     This function returns an export csv action
     'fields' and 'exclude' work like in django ModelForm
@@ -24,14 +25,9 @@ def export_as_csv_action(description="Export selected objects as CSV file", fiel
         based on http://djangosnippets.org/snippets/1697/
         """
         opts = modeladmin.model._meta
         based on http://djangosnippets.org/snippets/1697/
         """
         opts = modeladmin.model._meta
-        field_names = [field.name for field in opts.fields]
+        field_names = fields or [field.name for field in opts.fields]
 
 
-        if fields:
-            for f in fields:
-                if f not in field_names:
-                    field_names.append(f)
-
-        elif exclude:
+        if exclude:
             field_names = [f for f in field_names if f not in exclude]
 
         response = HttpResponse(content_type='text/csv')
             field_names = [f for f in field_names if f not in exclude]
 
         response = HttpResponse(content_type='text/csv')
@@ -42,7 +38,13 @@ def export_as_csv_action(description="Export selected objects as CSV file", fiel
         if header:
             writer.writerow(field_names)
         for obj in queryset:
         if header:
             writer.writerow(field_names)
         for obj in queryset:
-            writer.writerow([str(getattr(obj, field)) for field in field_names])
+            row = []
+            for field in field_names:
+                value = getattr(obj, field)
+                if callable(value):
+                    value = value()
+                row.append(str(value))
+            writer.writerow(row)
 
         return response
 
 
         return response
 
index 6e5d1fc..53bc202 100644 (file)
Binary files a/fnpdjango/locale/pl/LC_MESSAGES/django.mo and b/fnpdjango/locale/pl/LC_MESSAGES/django.mo differ
index b43c1ce..bfc8b2a 100644 (file)
@@ -5,37 +5,23 @@
 #
 msgid ""
 msgstr ""
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-10 14:32+0200\n"
-"PO-Revision-Date: 2012-10-10 14:33+0100\n"
+"POT-Creation-Date: 2020-03-26 14:36+0100\n"
+"PO-Revision-Date: 2020-03-26 14:36+0100\n"
 "Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
 "Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
+"Language: pl\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+"Language-Team: \n"
+"X-Generator: Poedit 2.2.4\n"
 
 
-#: templates/fnpdjango/share.html:5
-#: templates/fnpdjango/share.html.py:7
-msgid "Share on Facebook"
-msgstr "Podziel się na Facebooku"
-
-#: templates/fnpdjango/share.html:10
-#: templates/fnpdjango/share.html.py:12
-msgid "Share on Google+"
-msgstr "Podziel się na Google+"
-
-#: templates/fnpdjango/share.html:15
-#: templates/fnpdjango/share.html.py:17
-msgid "Share on Twitter"
-msgstr "Podziel się na Twitterze"
-
-#: templates/fnpdjango/share.html:20
-#: templates/fnpdjango/share.html.py:22
-msgid "Share on NK.pl"
-msgstr "Podziel się na NK.pl"
+#: actions.py:16
+msgid "Export selected objects as CSV file"
+msgstr "Eksportuj wybrane obiekty jako plik CSV"
 
 #: templates/fnpdjango/prevnext/next.html:13
 msgid "next"
 
 #: templates/fnpdjango/prevnext/next.html:13
 msgid "next"
@@ -45,3 +31,17 @@ msgstr "następne"
 msgid "previous"
 msgstr "poprzednie"
 
 msgid "previous"
 msgstr "poprzednie"
 
+#: templates/fnpdjango/share.html:5 templates/fnpdjango/share.html:7
+msgid "Share on Facebook"
+msgstr "Podziel się na Facebooku"
+
+#: templates/fnpdjango/share.html:10 templates/fnpdjango/share.html:12
+msgid "Share on Google+"
+msgstr "Podziel się na Google+"
+
+#: templates/fnpdjango/share.html:15 templates/fnpdjango/share.html:17
+msgid "Share on Twitter"
+msgstr "Podziel się na Twitterze"
+
+#~ msgid "Share on NK.pl"
+#~ msgstr "Podziel się na NK.pl"
index 7b77c83..1a392f1 100755 (executable)
--- a/setup.py
+++ b/setup.py
@@ -23,7 +23,7 @@ def whole_trees(package_dir, paths):
 
 setup(
     name='fnpdjango',
 
 setup(
     name='fnpdjango',
-    version='0.4.4',
+    version='0.4.5',
     author='Radek Czajka',
     author_email='radekczajka@nowoczesnapolska.org.pl',
     url='',
     author='Radek Czajka',
     author_email='radekczajka@nowoczesnapolska.org.pl',
     url='',