Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-django-import-export for openSUSE:Factory checked in at 2025-07-14 10:51:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-django-import-export (Old) and /work/SRC/openSUSE:Factory/.python-django-import-export.new.7373 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-django-import-export" Mon Jul 14 10:51:44 2025 rev:9 rq:1292427 version:4.3.8 Changes: -------- --- /work/SRC/openSUSE:Factory/python-django-import-export/python-django-import-export.changes 2025-02-26 17:20:34.276355694 +0100 +++ /work/SRC/openSUSE:Factory/.python-django-import-export.new.7373/python-django-import-export.changes 2025-07-14 10:57:04.381990259 +0200 @@ -1,0 +2,10 @@ +Sat Jul 12 17:19:29 UTC 2025 - Dirk Müller <dmuel...@suse.com> + +- update to 4.3.8: + * ui: fix error display twice issue on export field select page + (2066) + * ui: add 'select all' fields toggle on export page (2068) + * Add Hebrew translation (2071) + * ui: fix display of non field errors on import (2075) + +------------------------------------------------------------------- Old: ---- django_import_export-4.3.7.tar.gz New: ---- django_import_export-4.3.8.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-django-import-export.spec ++++++ --- /var/tmp/diff_new_pack.VoZUje/_old 2025-07-14 10:57:05.022016791 +0200 +++ /var/tmp/diff_new_pack.VoZUje/_new 2025-07-14 10:57:05.026016957 +0200 @@ -18,7 +18,7 @@ %{?sle15_python_module_pythons} Name: python-django-import-export -Version: 4.3.7 +Version: 4.3.8 Release: 0 Summary: Django data importing and exporting License: BSD-2-Clause ++++++ django_import_export-4.3.7.tar.gz -> django_import_export-4.3.8.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/.pre-commit-config.yaml new/django_import_export-4.3.8/.pre-commit-config.yaml --- old/django_import_export-4.3.7/.pre-commit-config.yaml 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/.pre-commit-config.yaml 2025-06-23 21:35:30.000000000 +0200 @@ -1,11 +1,11 @@ repos: - repo: https://github.com/adamchainz/django-upgrade - rev: 1.23.1 + rev: 1.25.0 hooks: - id: django-upgrade args: [--target-version, "4.2"] - repo: https://github.com/asottile/pyupgrade - rev: v3.19.1 + rev: v3.20.0 hooks: - id: pyupgrade args: [--py39-plus] @@ -14,11 +14,11 @@ hooks: - id: black - repo: https://github.com/PyCQA/isort - rev: 6.0.0 + rev: 6.0.1 hooks: - id: isort - repo: https://github.com/PyCQA/flake8 - rev: 7.1.2 + rev: 7.3.0 hooks: - id: flake8 additional_dependencies: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/.readthedocs.yaml new/django_import_export-4.3.8/.readthedocs.yaml --- old/django_import_export-4.3.7/.readthedocs.yaml 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/.readthedocs.yaml 2025-06-23 21:35:30.000000000 +0200 @@ -3,7 +3,7 @@ build: os: "ubuntu-22.04" tools: - python: "3.11" + python: "3.12" sphinx: configuration: docs/conf.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/AUTHORS new/django_import_export-4.3.8/AUTHORS --- old/django_import_export-4.3.7/AUTHORS 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/AUTHORS 2025-06-23 21:35:30.000000000 +0200 @@ -160,3 +160,6 @@ * dahvo (David Mark Awad) * jurrian * merwok +* rodolvbg (Rodolfo Becerra) +* Andy Zickler +* kuldeepkhatke (Kuldeep Khatke) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/PKG-INFO new/django_import_export-4.3.8/PKG-INFO --- old/django_import_export-4.3.7/PKG-INFO 2025-02-25 13:38:11.058808800 +0100 +++ new/django_import_export-4.3.8/PKG-INFO 2025-06-23 21:35:34.162772000 +0200 @@ -1,6 +1,6 @@ -Metadata-Version: 2.2 +Metadata-Version: 2.4 Name: django-import-export -Version: 4.3.7 +Version: 4.3.8 Summary: Django application and library for importing and exporting data with included admin integration. Author-email: Bojan Mihelač <djangoimportexp...@gmail.com> Maintainer-email: Matthew Hegarty <djangoimportexp...@gmail.com> @@ -35,7 +35,6 @@ Platform: OS Independent Classifier: Framework :: Django Classifier: Framework :: Django :: 4.2 -Classifier: Framework :: Django :: 5.0 Classifier: Framework :: Django :: 5.1 Classifier: Framework :: Django :: 5.2 Classifier: Intended Audience :: Developers @@ -75,8 +74,9 @@ Requires-Dist: sphinx==8.1.3; extra == "docs" Requires-Dist: sphinx-rtd-theme==3.0.1; extra == "docs" Requires-Dist: openpyxl==3.1.5; extra == "docs" +Requires-Dist: psycopg[binary]>=3.2.9; extra == "docs" Provides-Extra: tests -Requires-Dist: psycopg2-binary==2.9.10; extra == "tests" +Requires-Dist: psycopg[binary]>=3.2.9; extra == "tests" Requires-Dist: mysqlclient==2.2.5; extra == "tests" Requires-Dist: chardet==5.2.0; extra == "tests" Requires-Dist: pytz==2024.2; extra == "tests" @@ -85,6 +85,7 @@ Requires-Dist: coverage==7.6.4; extra == "tests" Requires-Dist: tablib[all]>=3.7.0; extra == "tests" Requires-Dist: setuptools-scm==8.1.0; extra == "tests" +Dynamic: license-file ==================== django-import-export diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/django_import_export.egg-info/PKG-INFO new/django_import_export-4.3.8/django_import_export.egg-info/PKG-INFO --- old/django_import_export-4.3.7/django_import_export.egg-info/PKG-INFO 2025-02-25 13:38:10.000000000 +0100 +++ new/django_import_export-4.3.8/django_import_export.egg-info/PKG-INFO 2025-06-23 21:35:34.000000000 +0200 @@ -1,6 +1,6 @@ -Metadata-Version: 2.2 +Metadata-Version: 2.4 Name: django-import-export -Version: 4.3.7 +Version: 4.3.8 Summary: Django application and library for importing and exporting data with included admin integration. Author-email: Bojan Mihelač <djangoimportexp...@gmail.com> Maintainer-email: Matthew Hegarty <djangoimportexp...@gmail.com> @@ -35,7 +35,6 @@ Platform: OS Independent Classifier: Framework :: Django Classifier: Framework :: Django :: 4.2 -Classifier: Framework :: Django :: 5.0 Classifier: Framework :: Django :: 5.1 Classifier: Framework :: Django :: 5.2 Classifier: Intended Audience :: Developers @@ -75,8 +74,9 @@ Requires-Dist: sphinx==8.1.3; extra == "docs" Requires-Dist: sphinx-rtd-theme==3.0.1; extra == "docs" Requires-Dist: openpyxl==3.1.5; extra == "docs" +Requires-Dist: psycopg[binary]>=3.2.9; extra == "docs" Provides-Extra: tests -Requires-Dist: psycopg2-binary==2.9.10; extra == "tests" +Requires-Dist: psycopg[binary]>=3.2.9; extra == "tests" Requires-Dist: mysqlclient==2.2.5; extra == "tests" Requires-Dist: chardet==5.2.0; extra == "tests" Requires-Dist: pytz==2024.2; extra == "tests" @@ -85,6 +85,7 @@ Requires-Dist: coverage==7.6.4; extra == "tests" Requires-Dist: tablib[all]>=3.7.0; extra == "tests" Requires-Dist: setuptools-scm==8.1.0; extra == "tests" +Dynamic: license-file ==================== django-import-export diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/django_import_export.egg-info/SOURCES.txt new/django_import_export-4.3.8/django_import_export.egg-info/SOURCES.txt --- old/django_import_export-4.3.7/django_import_export.egg-info/SOURCES.txt 2025-02-25 13:38:10.000000000 +0100 +++ new/django_import_export-4.3.8/django_import_export.egg-info/SOURCES.txt 2025-06-23 21:35:34.000000000 +0200 @@ -119,6 +119,8 @@ import_export/locale/fi/LC_MESSAGES/django.po import_export/locale/fr/LC_MESSAGES/django.mo import_export/locale/fr/LC_MESSAGES/django.po +import_export/locale/he/LC_MESSAGES/django.mo +import_export/locale/he/LC_MESSAGES/django.po import_export/locale/it/LC_MESSAGES/django.mo import_export/locale/it/LC_MESSAGES/django.po import_export/locale/ja/LC_MESSAGES/django.mo diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/django_import_export.egg-info/requires.txt new/django_import_export-4.3.8/django_import_export.egg-info/requires.txt --- old/django_import_export-4.3.7/django_import_export.egg-info/requires.txt 2025-02-25 13:38:10.000000000 +0100 +++ new/django_import_export-4.3.8/django_import_export.egg-info/requires.txt 2025-06-23 21:35:34.000000000 +0200 @@ -12,6 +12,7 @@ sphinx==8.1.3 sphinx-rtd-theme==3.0.1 openpyxl==3.1.5 +psycopg[binary]>=3.2.9 [ods] tablib[ods] @@ -20,7 +21,7 @@ tablib[pandas] [tests] -psycopg2-binary==2.9.10 +psycopg[binary]>=3.2.9 mysqlclient==2.2.5 chardet==5.2.0 pytz==2024.2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/docs/changelog.rst new/django_import_export-4.3.8/docs/changelog.rst --- old/django_import_export-4.3.7/docs/changelog.rst 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/docs/changelog.rst 2025-06-23 21:35:30.000000000 +0200 @@ -5,6 +5,14 @@ If upgrading from v3, v4 introduces breaking changes. Please refer to :doc:`release notes<release_notes>`. +4.3.8 (2025-06-23) +------------------ + +- ui: fix error display twice issue on export field select page (`2066 <https://github.com/django-import-export/django-import-export/pull/2066>`_) +- ui: add 'select all' fields toggle on export page (`2068 <https://github.com/django-import-export/django-import-export/pull/2068>`_) +- Add Hebrew translation (`2071 <https://github.com/django-import-export/django-import-export/pull/2071>`_) +- ui: fix display of non field errors on import (`2075 <https://github.com/django-import-export/django-import-export/pull/2075>`_) + 4.3.7 (2025-02-25) ------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/docs/contributing.rst new/django_import_export-4.3.8/docs/contributing.rst --- old/django_import_export-4.3.7/docs/contributing.rst 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/docs/contributing.rst 2025-06-23 21:35:30.000000000 +0200 @@ -165,7 +165,7 @@ python -m venv django-import-export-venv source django-import-export-venv/bin/activate - pip install .[tests] + python -m pip install '.[tests]' Run tests ^^^^^^^^^ @@ -179,7 +179,7 @@ To build a local version of the documentation:: - pip install -r requirements/docs.txt + python -m pip install -r requirements/docs.txt make build-html-doc The documentation will be present in ``docs/_build/html/index.html``. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/_version.py new/django_import_export-4.3.8/import_export/_version.py --- old/django_import_export-4.3.7/import_export/_version.py 2025-02-25 13:38:10.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/_version.py 2025-06-23 21:35:33.000000000 +0200 @@ -17,5 +17,5 @@ __version_tuple__: VERSION_TUPLE version_tuple: VERSION_TUPLE -__version__ = version = '4.3.7' -__version_tuple__ = version_tuple = (4, 3, 7) +__version__ = version = '4.3.8' +__version_tuple__ = version_tuple = (4, 3, 8) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/declarative.py new/django_import_export-4.3.8/import_export/declarative.py --- old/django_import_export-4.3.7/import_export/declarative.py 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/declarative.py 2025-06-23 21:35:30.000000000 +0200 @@ -65,6 +65,8 @@ class ModelDeclarativeMetaclass(DeclarativeMetaclass): def __new__(cls, name, bases, attrs): + # Save the names of fields declared on this class + class_fields = [name for (name, obj) in attrs.items() if isinstance(obj, Field)] new_class = super().__new__(cls, name, bases, attrs) opts = new_class._meta @@ -87,11 +89,14 @@ and field_name not in opts.fields and column_name not in opts.fields ): - warnings.warn( - f"ignoring field '{field_name}' because not declared " - "in 'fields' whitelist", - stacklevel=2, - ) + # #2017 warn only if the unlisted field is + # part of the current class + if field_name in class_fields: + warnings.warn( + f"{name}: ignoring field '{field_name}' because " + "not declared in 'fields' whitelist", + stacklevel=2, + ) continue declared_fields[field_name] = field diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/ar/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/ar/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/ar/LC_MESSAGES/django.po 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/ar/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-24 11:40-0500\n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <l...@li.org>\n" @@ -124,6 +124,10 @@ msgstr "هذا المستورد سوف يستورد الحقول التالية : " #: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html #: templates/admin/import_export/import.html msgid "Submit" msgstr "إرسال" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/bg/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/bg/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/bg/LC_MESSAGES/django.po 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/bg/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-24 11:40-0500\n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Hristo Gatsinski <gatsin...@gmail.com>\n" "Language-Team: LANGUAGE <l...@li.org>\n" @@ -121,6 +121,10 @@ msgstr "Ще бъдат импортирани следните полета: " #: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html #: templates/admin/import_export/import.html msgid "Submit" msgstr "Изпълни" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/ca/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/ca/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/ca/LC_MESSAGES/django.po 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/ca/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-24 11:40-0500\n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <l...@li.org>\n" @@ -119,6 +119,10 @@ msgstr "Aquest importador importarà els següents camps: " #: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html #: templates/admin/import_export/import.html msgid "Submit" msgstr "Enviar" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/cs/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/cs/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/cs/LC_MESSAGES/django.po 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/cs/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-24 11:40-0500\n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" "PO-Revision-Date: 2017-05-02 19:17+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -122,6 +122,10 @@ msgstr "Budou importována následující pole: " #: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html #: templates/admin/import_export/import.html msgid "Submit" msgstr "Odeslat" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/de/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/de/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/de/LC_MESSAGES/django.po 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/de/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -5,7 +5,7 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-24 11:40-0500\n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" "PO-Revision-Date: 2022-10-17 17:42+0200\n" "Last-Translator: Jannes Blobel <jannes.blo...@inlang.com>\n" "Language-Team: \n" @@ -125,6 +125,10 @@ msgstr "Es werden die folgenden Felder exportiert: " #: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html #: templates/admin/import_export/import.html msgid "Submit" msgstr "Absenden" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/es/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/es/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/es/LC_MESSAGES/django.po 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/es/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-24 11:40-0500\n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" "PO-Revision-Date: 2023-09-22 11:53-0300\n" "Last-Translator: Santiago Muñoz <smu...@mythologylabs.com.uy>\n" "Language-Team: Spanish\n" @@ -124,6 +124,10 @@ msgstr "Este importador importará los siguientes campos:" #: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html #: templates/admin/import_export/import.html msgid "Submit" msgstr "Enviar" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/es_AR/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/es_AR/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/es_AR/LC_MESSAGES/django.po 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/es_AR/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-24 11:40-0500\n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" "PO-Revision-Date: 2023-09-22 11:53-0300\n" "Last-Translator: Santiago Muñoz <smu...@mythologylabs.com.uy>\n" "Language-Team: Spanish (Argentina)\n" @@ -124,6 +124,10 @@ msgstr "Este importador importará los siguientes campos:" #: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html #: templates/admin/import_export/import.html msgid "Submit" msgstr "Enviar" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/fa/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/fa/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/fa/LC_MESSAGES/django.po 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/fa/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: 0.0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-24 11:40-0500\n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" "PO-Revision-Date: 2021-03-09 00:29+0030\n" "Last-Translator: MohammadReza Sadegh Zadeh <org.m....@gmail.com>\n" "Language-Team: Persain/Farsi <kde-i18n...@kde.org>\n" @@ -129,6 +129,10 @@ msgstr "این خروجی شامل این فیلدها هست:" #: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html #: templates/admin/import_export/import.html msgid "Submit" msgstr "ارسال" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/fi/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/fi/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/fi/LC_MESSAGES/django.po 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/fi/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -2,7 +2,7 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-24 11:40-0500\n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" "PO-Revision-Date: 2023-05-10 15:23+0300\n" "Last-Translator: Lauri Virtanen <lauri.virta...@iki.fi>\n" "Language-Team: \n" @@ -115,6 +115,10 @@ msgstr "Tämä vienti vie seuraavat kentät: " #: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html #: templates/admin/import_export/import.html msgid "Submit" msgstr "Lähetä" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/fr/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/fr/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/fr/LC_MESSAGES/django.po 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/fr/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-24 11:40-0500\n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <l...@li.org>\n" @@ -93,8 +93,8 @@ "The following fields are declared in 'import_id_fields' but are not present " "in the resource fields: %s" msgstr "" -"Les champs suivants sont déclarés dans 'import_id_fields' mais ne sont pas présents " -"dans les champs de la ressource: %s" +"Les champs suivants sont déclarés dans 'import_id_fields' mais ne sont pas " +"présents dans les champs de la ressource: %s" #: resources.py #, python-format @@ -102,8 +102,8 @@ "The following fields are declared in 'import_id_fields' but are not present " "in the file headers: %s" msgstr "" -"Les champs suivants sont déclarés dans 'import_id_fields' mais ne sont pas présents " -"dans les en-têtes du fichier: %s" +"Les champs suivants sont déclarés dans 'import_id_fields' mais ne sont pas " +"présents dans les en-têtes du fichier: %s" #: results.py #, python-format @@ -127,6 +127,10 @@ msgstr "Cet exportateur va exporter les champs suivants: " #: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html #: templates/admin/import_export/import.html msgid "Submit" msgstr "Soumettre" Binary files old/django_import_export-4.3.7/import_export/locale/he/LC_MESSAGES/django.mo and new/django_import_export-4.3.8/import_export/locale/he/LC_MESSAGES/django.mo differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/he/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/he/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/he/LC_MESSAGES/django.po 1970-01-01 01:00:00.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/he/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -0,0 +1,205 @@ +# Hebrew translation for django-import-export +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +msgid "" +msgstr "" +"Project-Id-Version: django-import-export\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" +"PO-Revision-Date: 2025-06-23 17:44+0300\n" +"Last-Translator: \n" +"Language-Team: Hebrew <h...@li.org>\n" +"Language: he\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.6\n" + +#: admin.py templates/admin/import_export/change_list_import_item.html +#: templates/admin/import_export/import.html +msgid "Import" +msgstr "ייבוא" + +#: admin.py +#, python-format +msgid "%s through import_export" +msgstr "%s באמצעות ייבוא/ייצוא" + +#: admin.py +msgid "Import finished: {} new, {} updated, {} deleted and {} skipped {}." +msgstr "הייבוא הסתיים: נוספו {}, עודכנו {}, נמחקו {}, דולגו {}." + +#: admin.py +#, python-format +msgid "" +"%(exc_name)s encountered while trying to read file. Ensure you have chosen " +"the correct format for the file." +msgstr "" +"שגיאת %(exc_name)s אירעה בקריאת הקובץ. ודאו שבחרתם את פורמט הקובץ הנכון." + +#: admin.py +msgid "" +"No valid data to import. Ensure your file has the correct headers or data " +"for import." +msgstr "" +"לא נמצא מידע תקין לייבוא. יש לוודא שהכותרות והנתונים בקובץ תקינים ומתאימים " +"לייבוא." + +#: admin.py templates/admin/import_export/change_form.html +#: templates/admin/import_export/change_list_export_item.html +#: templates/admin/import_export/export.html +msgid "Export" +msgstr "ייצוא" + +#: admin.py +#, python-format +msgid "Export selected %(verbose_name_plural)s" +msgstr "ייצוא %(verbose_name_plural)s שנבחרו" + +#: formats/base_formats.py +msgid "export failed due to IllegalCharacterError" +msgstr "הייצוא נכשל עקב שגיאת תו לא חוקי (IllegalCharacterError)" + +#: forms.py +msgid "Resource" +msgstr "משאב" + +#: forms.py +msgid "Format" +msgstr "פורמט" + +#: forms.py +msgid "File to import" +msgstr "קובץ לייבוא" + +#: forms.py +msgid "Form is not validated, call `is_valid` first" +msgstr "הטופס לא אומת, יש לקרוא לפונקציה `is_valid` תחילה" + +#: forms.py +#, python-format +msgid "Select at least 1 field for \"%(resource_name)s\" to export" +msgstr "יש לבחור לפחות שדה אחד לייצוא עבור \"%(resource_name)s\"" + +#: resources.py +#, python-format +msgid "" +"The following fields are declared in 'import_id_fields' but are not present " +"in the resource fields: %s" +msgstr "השדות הבאים הוגדרו ב-'import_id_fields' אך אינם קיימים בשדות המשאב: %s" + +#: resources.py +#, python-format +msgid "" +"The following fields are declared in 'import_id_fields' but are not present " +"in the file headers: %s" +msgstr "" +"השדות הבאים הוגדרו ב-'import_id_fields' אך אינם קיימים בכותרות הקובץ: %s" + +#: results.py +#, python-format +msgid "call to force_str() on instance failed: %s" +msgstr "הקריאה ל-force_str() על המופע נכשלה: %s" + +#: templates/admin/import_export/base.html +msgid "Home" +msgstr "דף הבית" + +#: templates/admin/import_export/export.html +#, python-format +msgid "Export %(len)s selected item." +msgid_plural "Export %(len)s selected items." +msgstr[0] "ייצוא הפריט שנבחר" +msgstr[1] "ייצוא %(len)s פריטים שנבחרו" + +#: templates/admin/import_export/export.html +#: templates/admin/import_export/resource_fields_list.html +msgid "This exporter will export the following fields: " +msgstr "הייצוא יכלול את השדות הבאים:" + +#: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html +#: templates/admin/import_export/import.html +msgid "Submit" +msgstr "שליחה" + +#: templates/admin/import_export/import.html +msgid "" +"Below is a preview of data to be imported. If you are satisfied with the " +"results, click 'Confirm import'" +msgstr "" +"להלן תצוגה מקדימה של הנתונים לייבוא. אם התוצאות נראות תקינות, לחצו על 'אשר " +"ייבוא'." + +#: templates/admin/import_export/import.html +msgid "Confirm import" +msgstr "אשר ייבוא" + +#: templates/admin/import_export/import.html +msgid "Errors" +msgstr "שגיאות" + +#: templates/admin/import_export/import.html +msgid "Line number" +msgstr "מספר שורה" + +#: templates/admin/import_export/import.html +msgid "Some rows failed to validate" +msgstr "אימות מספר שורות נכשל" + +#: templates/admin/import_export/import.html +msgid "" +"Please correct these errors in your data where possible, then reupload it " +"using the form above." +msgstr "" +"יש לתקן את השגיאות בקובץ המקורי במידת האפשר, ולטעון אותו מחדש באמצעות הטופס " +"למעלה." + +#: templates/admin/import_export/import.html +msgid "Row" +msgstr "שורה" + +#: templates/admin/import_export/import.html +msgid "Non field specific" +msgstr "לא קשור לשדה מסוים" + +#: templates/admin/import_export/import.html +msgid "Preview" +msgstr "תצוגה מקדימה" + +#: templates/admin/import_export/import.html +msgid "New" +msgstr "חדש" + +#: templates/admin/import_export/import.html +msgid "Skipped" +msgstr "דולג" + +#: templates/admin/import_export/import.html +msgid "Delete" +msgstr "מחיקה" + +#: templates/admin/import_export/import.html +msgid "Update" +msgstr "עדכון" + +#: templates/admin/import_export/resource_fields_list.html +msgid "This importer will import the following fields: " +msgstr "הייבוא יכלול את השדות הבאים:" + +#: widgets.py +msgid "Value could not be parsed." +msgstr "לא ניתן היה לפענח את הערך." + +#: widgets.py +msgid "use_natural_foreign_keys and key_is_id cannot both be True" +msgstr "" +"לא ניתן להפעיל את ההגדרות 'use_natural_foreign_keys' ו-'key_is_id' בו-זמנית." + +#~ msgid "You must select an export format." +#~ msgstr "עליך לבחור פורמט לייצוא." diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/it/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/it/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/it/LC_MESSAGES/django.po 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/it/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-24 11:40-0500\n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" "PO-Revision-Date: 2015-08-30 20:32+0100\n" "Last-Translator: Christian Galeffi <c...@gallochri.com>\n" "Language-Team: Italian <kde-i18n...@kde.org>\n" @@ -118,6 +118,10 @@ msgstr "Verranno importati i seguenti campi:" #: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html #: templates/admin/import_export/import.html msgid "Submit" msgstr "Inviare" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/ja/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/ja/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/ja/LC_MESSAGES/django.po 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/ja/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-24 11:40-0500\n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <l...@li.org>\n" @@ -118,6 +118,10 @@ msgstr "以下の列をインポートします。" #: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html #: templates/admin/import_export/import.html msgid "Submit" msgstr "確定" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/ko/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/ko/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/ko/LC_MESSAGES/django.po 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/ko/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-24 11:40-0500\n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Yeongkwang Yang <immutable...@gmail.com>\n" "Language-Team: LANGUAGE <l...@li.org>\n" @@ -120,6 +120,10 @@ msgstr "다음의 필드를 가져옵니다: " #: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html #: templates/admin/import_export/import.html msgid "Submit" msgstr "제출" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/kz/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/kz/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/kz/LC_MESSAGES/django.po 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/kz/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-24 11:40-0500\n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Muslim Beibytuly <muslimbeibyt...@gmail.com>\n" "Language-Team: LANGUAGE <l...@li.org>\n" @@ -120,6 +120,10 @@ msgstr "Бұл импорттаушы келесі өрістерді импорттайды: " #: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html #: templates/admin/import_export/import.html msgid "Submit" msgstr "Жіберу" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/nl/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/nl/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/nl/LC_MESSAGES/django.po 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/nl/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-24 11:40-0500\n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <l...@li.org>\n" @@ -121,6 +121,10 @@ msgstr "Deze import zal de volgende velden toevoegen" #: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html #: templates/admin/import_export/import.html msgid "Submit" msgstr "Indienen" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/pl/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/pl/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/pl/LC_MESSAGES/django.po 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/pl/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-24 11:40-0500\n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <l...@li.org>\n" @@ -123,6 +123,10 @@ msgstr "Zostaną zaimportowane następujące pola: " #: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html #: templates/admin/import_export/import.html msgid "Submit" msgstr "Wyślij" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/pt_BR/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/pt_BR/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/pt_BR/LC_MESSAGES/django.po 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/pt_BR/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-24 11:40-0500\n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" "PO-Revision-Date: 2020-06-06 10:30-0500\n" "Last-Translator: Daniel Pluth <plu...@gmail.com>\n" "Language-Team: \n" @@ -120,6 +120,10 @@ msgstr "Este importador vai importar os seguintes campos:" #: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html #: templates/admin/import_export/import.html msgid "Submit" msgstr "Enviar" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/ru/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/ru/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/ru/LC_MESSAGES/django.po 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/ru/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-24 11:40-0500\n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" "PO-Revision-Date: 2024-04-26 20:55+0700\n" "Last-Translator: \n" "Language-Team: \n" @@ -127,6 +127,10 @@ msgstr "Будут экспортированы следующие поля: " #: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html #: templates/admin/import_export/import.html msgid "Submit" msgstr "Отправить" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/sk/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/sk/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/sk/LC_MESSAGES/django.po 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/sk/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-24 11:40-0500\n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <l...@li.org>\n" @@ -120,6 +120,10 @@ msgstr "Budú importované nasledujúce polia: " #: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html #: templates/admin/import_export/import.html msgid "Submit" msgstr "Odoslať" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/tr/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/tr/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/tr/LC_MESSAGES/django.po 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/tr/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-24 11:40-0500\n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <l...@li.org>\n" @@ -129,6 +129,10 @@ msgstr "Bu içe aktarıcı aşağıdaki alanları içe aktaracaktır: " #: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html #: templates/admin/import_export/import.html msgid "Submit" msgstr "Kaydet" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/locale/zh_Hans/LC_MESSAGES/django.po new/django_import_export-4.3.8/import_export/locale/zh_Hans/LC_MESSAGES/django.po --- old/django_import_export-4.3.7/import_export/locale/zh_Hans/LC_MESSAGES/django.po 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/locale/zh_Hans/LC_MESSAGES/django.po 2025-06-23 21:35:30.000000000 +0200 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-24 11:40-0500\n" +"POT-Creation-Date: 2025-06-23 19:11+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: hao wang <173300...@qq.com>\n" "Language-Team: LANGUAGE <l...@li.org>\n" @@ -116,6 +116,10 @@ msgstr "此次将导出以下字段:" #: templates/admin/import_export/export.html +msgid "Select all" +msgstr "" + +#: templates/admin/import_export/export.html #: templates/admin/import_export/import.html msgid "Submit" msgstr "提交" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/resources.py new/django_import_export-4.3.8/import_export/resources.py --- old/django_import_export-4.3.7/import_export/resources.py 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/resources.py 2025-06-23 21:35:30.000000000 +0200 @@ -206,18 +206,15 @@ """ Creates objects by calling ``bulk_create``. """ - try: - if len(self.create_instances) > 0: - if not using_transactions and dry_run: - pass - else: - self._meta.model.objects.bulk_create( - self.create_instances, batch_size=batch_size - ) - except Exception as e: - self.handle_import_error(result, e, raise_errors) - finally: - self.create_instances.clear() + if len(self.create_instances) > 0 and (using_transactions or not dry_run): + try: + self._meta.model.objects.bulk_create( + self.create_instances, batch_size=batch_size + ) + except Exception as e: + self.handle_import_error(result, e, raise_errors) + finally: + self.create_instances.clear() def bulk_update( self, using_transactions, dry_run, raise_errors, batch_size=None, result=None @@ -225,37 +222,31 @@ """ Updates objects by calling ``bulk_update``. """ - try: - if len(self.update_instances) > 0: - if not using_transactions and dry_run: - pass - else: - self._meta.model.objects.bulk_update( - self.update_instances, - self.get_bulk_update_fields(), - batch_size=batch_size, - ) - except Exception as e: - self.handle_import_error(result, e, raise_errors) - finally: - self.update_instances.clear() + if len(self.update_instances) > 0 and (using_transactions or not dry_run): + try: + self._meta.model.objects.bulk_update( + self.update_instances, + self.get_bulk_update_fields(), + batch_size=batch_size, + ) + except Exception as e: + self.handle_import_error(result, e, raise_errors) + finally: + self.update_instances.clear() def bulk_delete(self, using_transactions, dry_run, raise_errors, result=None): """ Deletes objects by filtering on a list of instances to be deleted, then calling ``delete()`` on the entire queryset. """ - try: - if len(self.delete_instances) > 0: - if not using_transactions and dry_run: - pass - else: - delete_ids = [o.pk for o in self.delete_instances] - self._meta.model.objects.filter(pk__in=delete_ids).delete() - except Exception as e: - self.handle_import_error(result, e, raise_errors) - finally: - self.delete_instances.clear() + if len(self.delete_instances) > 0 and (using_transactions or not dry_run): + try: + delete_ids = [o.pk for o in self.delete_instances] + self._meta.model.objects.filter(pk__in=delete_ids).delete() + except Exception as e: + self.handle_import_error(result, e, raise_errors) + finally: + self.delete_instances.clear() def validate_instance( self, instance, import_validation_errors=None, validate_unique=True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/static/import_export/export_selectable_fields.js new/django_import_export-4.3.8/import_export/static/import_export/export_selectable_fields.js --- old/django_import_export-4.3.7/import_export/static/import_export/export_selectable_fields.js 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/static/import_export/export_selectable_fields.js 2025-06-23 21:35:30.000000000 +0200 @@ -26,6 +26,24 @@ hideUnselectedResourceFields(resourceIndex); } +function onSelectToggleChange(e) { + /* + * Handles a checkbox click event to select / deselect all field checkboxes. + */ + const select = e.target; + const isChecked = select.checked; + + if (isChecked) { + document.querySelectorAll('.selectable-field-export-row input[type="checkbox"]').forEach((checkbox) => { + checkbox.checked = true; + }); + } else { + document.querySelectorAll('.selectable-field-export-row input[type="checkbox"]').forEach((checkbox) => { + checkbox.checked = false; + }); + } +} + document.addEventListener("DOMContentLoaded", () => { const resourceSelector = document.querySelector("#id_resource"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/templates/admin/import_export/export.html new/django_import_export-4.3.8/import_export/templates/admin/import_export/export.html --- old/django_import_export-4.3.7/import_export/templates/admin/import_export/export.html 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/templates/admin/import_export/export.html 2025-06-23 21:35:30.000000000 +0200 @@ -13,9 +13,6 @@ {% endblock %} {% block content %} -{% if form.errors %} - {{ form.errors }} -{% endif %} <form action="{{ export_url }}" method="POST"> {% csrf_token %} {# export request has originated from an Admin UI action #} @@ -28,6 +25,11 @@ {% endblocktranslate %} </p> {% endif %} + {% if form.export_items.errors %} + <div class="error"> + {{ form.export_items.errors }} + </div> + {% endif %} {# fields list is not required with selectable fields form #} {% if not form.is_selectable_fields_form %} @@ -49,9 +51,17 @@ > {% if field.field.initial_field %} <p style="padding: 0;">{% translate "This exporter will export the following fields: " %}</p> + {% if form.visible_fields|length >= 2 %} + <div> + <input type="checkbox" class="select-toggle" name="select-all-toggle" + onchange="onSelectToggleChange(event)" checked> + <label style="font-weight: bold;" for="select-all-toggle">{% translate "Select all" %} + </label> + </div> + {% endif %} {% endif %} {{ field.errors }} - + {% if not field.field.is_selectable_field %} {{ field.label_tag }} {% endif %} @@ -78,7 +88,9 @@ </fieldset> <div> - {{ form.non_field_errors }} + {% if form.non_field_errors %} + {{ form.non_field_errors }} + {% endif %} </div> <div class="submit-row"> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/templates/admin/import_export/import.html new/django_import_export-4.3.8/import_export/templates/admin/import_export/import.html --- old/django_import_export-4.3.7/import_export/templates/admin/import_export/import.html 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/templates/admin/import_export/import.html 2025-06-23 21:35:30.000000000 +0200 @@ -68,6 +68,8 @@ </fieldset> {% endblock %} + {{ form.non_field_errors }} + {% block form_submit_button %} <div class="submit-row"> <input type="submit" class="default" value="{% translate "Submit" %}"> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/import_export/widgets.py new/django_import_export-4.3.8/import_export/widgets.py --- old/django_import_export-4.3.7/import_export/widgets.py 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/import_export/widgets.py 2025-06-23 21:35:30.000000000 +0200 @@ -182,7 +182,6 @@ return force_str(val) def render(self, value, obj=None, **kwargs): - # FIXME - how are nulls exported to XLSX self._obj_deprecation_warning(obj) if self.coerce_to_string: return "" if value is None else force_str(value) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/pyproject.toml new/django_import_export-4.3.8/pyproject.toml --- old/django_import_export-4.3.7/pyproject.toml 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/pyproject.toml 2025-06-23 21:35:30.000000000 +0200 @@ -19,7 +19,6 @@ classifiers = [ "Framework :: Django", "Framework :: Django :: 4.2", - "Framework :: Django :: 5.0", "Framework :: Django :: 5.1", "Framework :: Django :: 5.2", "Intended Audience :: Developers", @@ -55,10 +54,11 @@ docs = [ "sphinx==8.1.3", "sphinx-rtd-theme==3.0.1", - "openpyxl==3.1.5" + "openpyxl==3.1.5", + "psycopg[binary]>=3.2.9", ] tests = [ - "psycopg2-binary==2.9.10", + "psycopg[binary]>=3.2.9", "mysqlclient==2.2.5", "chardet==5.2.0", "pytz==2024.2", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/tests/core/tests/admin_integration/test_export.py new/django_import_export-4.3.8/tests/core/tests/admin_integration/test_export.py --- old/django_import_export-4.3.7/tests/core/tests/admin_integration/test_export.py 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/tests/core/tests/admin_integration/test_export.py 2025-06-23 21:35:30.000000000 +0200 @@ -187,6 +187,19 @@ target_msg = "Some unknown error" self.assertIn(target_msg, response.content.decode()) + def test_get_export_FormError_occurrence(self): + # issue 2065 + data = { + "format": "0", + "resource": 1, + "booknameresource_id": False, + "booknameresource_name": False, + } + response = self._post_url_response(self.book_export_url, data) + target_msg = "Select at least 1 field" + # Validate the occurrence of the error message should be 1 + self.assertEqual(response.content.decode().count(target_msg), 1) + def test_export_second_resource(self): self._get_url_response( self.book_export_url, str_in_response="Export/Import only book names" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/tests/core/tests/admin_integration/test_import_errors.py new/django_import_export-4.3.8/tests/core/tests/admin_integration/test_import_errors.py --- old/django_import_export-4.3.7/tests/core/tests/admin_integration/test_import_errors.py 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/tests/core/tests/admin_integration/test_import_errors.py 2025-06-23 21:35:30.000000000 +0200 @@ -7,6 +7,7 @@ from core.tests.admin_integration.mixins import AdminTestMixin from django.contrib.admin.sites import AdminSite from django.contrib.auth.models import User +from django.core.exceptions import ValidationError from django.test import RequestFactory from django.test.testcases import TestCase from django.test.utils import override_settings @@ -46,6 +47,15 @@ ) self.assertFormError(response.context["form"], "import_file", target_msg) + def test_import_action_handles_NonFieldError(self): + # issue 2070 + with mock.patch("django.forms.Form.clean") as mock_clean: + mock_clean.side_effect = ValidationError("some non field error") + response = self._do_import_post(self.book_import_url, "books.csv") + self.assertEqual(response.status_code, 200) + target_msg = "some non field error" + self.assertIn(target_msg, response.content.decode()) + def test_import_action_handles_FieldError(self): # issue 1722 with mock.patch( @@ -139,6 +149,50 @@ ).format(1, 0, 0, 0, EBook._meta.verbose_name_plural), ) + def test_confirm_import_handles_non_field_error(self): + """Test if admin import handles errors gracefully when confirm_form is + has a non-field error. See #2070. + """ + Author.objects.create(id=11, name="Test Author") + + # GET the import form + response = self._get_url_response( + self.ebook_import_url, str_in_response='form action=""' + ) + self.assertTemplateUsed(response, self.admin_import_template_url) + # POST the import form + input_format = "0" + filename = os.path.join( + os.path.dirname(__file__), + os.path.pardir, + os.path.pardir, + "exports", + "books.csv", + ) + with open(filename, "rb") as fobj: + data = {"author": 11, "format": input_format, "import_file": fobj} + response = self._post_url_response(self.ebook_import_url, data) + + self.assertIn("result", response.context) + self.assertFalse(response.context["result"].has_errors()) + self.assertIn("confirm_form", response.context) + confirm_form = response.context["confirm_form"] + self.assertIsInstance( + confirm_form, + CustomBookAdmin(EBook, "ebook/import").get_confirm_form_class(None), + ) + + data = confirm_form.initial + self.assertEqual(data["original_file_name"], "books.csv") + + with mock.patch("django.forms.Form.clean") as mock_clean: + mock_clean.side_effect = ValidationError("some non field error") + response = self._post_url_response( + self.ebook_process_import_url, data, follow=True + ) + target_msg = "some non field error" + self.assertIn(target_msg, response.content.decode()) + def test_import_action_invalid_date(self): # test that a row with an invalid date redirects to errors page index = self._get_input_format_index("csv") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/tests/core/tests/test_resources/test_modelresource/test_resource_fields.py new/django_import_export-4.3.8/tests/core/tests/test_resources/test_modelresource/test_resource_fields.py --- old/django_import_export-4.3.7/tests/core/tests/test_resources/test_modelresource/test_resource_fields.py 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/tests/core/tests/test_resources/test_modelresource/test_resource_fields.py 2025-06-23 21:35:30.000000000 +0200 @@ -21,7 +21,6 @@ fields = ("id", "price") def setUp(self): - self.book = Book.objects.create(name="Moonraker", price=".99") self.resource = ModelResourceFieldDeclarations.MyBookResource() @@ -173,3 +172,75 @@ self.assertEqual("", self.book.author_email) data = self.resource.export() self.assertFalse("author_email" in data.dict[0]) + + +class ModelResourceUnusedFieldWarnings(TestCase): + """ + Model Resources should warn on ignored declared fields, but only if + they are declared on the current class. + + Ref: #2017 + """ + + class _BaseBookResource(resources.ModelResource): + name = fields.Field( + attribute="name", + ) + imported = fields.Field( + attribute="imported", + ) + price = fields.Field( + attribute="price", + ) + + class Meta: + model = Book + fields = ( + "name", + "imported", + "price", + ) + + def setUp(self): + # Enable warnings for this test + warnings.simplefilter("default") + + def test_no_warnings_defined_fields(self): + """ + A subclass that lists a subset of the parents defined fields + should receive no warnings. + """ + with warnings.catch_warnings(record=True) as w: + + class _Export1BookResource(self._BaseBookResource): + class Meta: + fields = ( + "name", + "imported", + ) + + # expect no warnings + self.assertEqual(len(w), 0) + + def test_declared_field_expect_warning(self): + """ + A class that defines a field, but doesn't list it in fields + should receive a warning with the name of the field and the + class name + """ + with warnings.catch_warnings(record=True) as w: + + class _Export2BookResource(self._BaseBookResource): + published = fields.Field(attribute="published") + published_time = fields.Field(attribute="published_time") + + class Meta: + fields = ("author_email", "imported", "published_time") + + self.assertEqual(len(w), 1) + self.assertIs(w[0].category, UserWarning) + self.assertIn( + "_Export2BookResource: ignoring field 'published' because not" + " declared in 'fields' whitelist", + str(w[0].message), + ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/tests/docker-compose.yml new/django_import_export-4.3.8/tests/docker-compose.yml --- old/django_import_export-4.3.7/tests/docker-compose.yml 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/tests/docker-compose.yml 2025-06-23 21:35:30.000000000 +0200 @@ -8,7 +8,7 @@ IMPORT_EXPORT_POSTGRESQL_USER: ${IMPORT_EXPORT_POSTGRESQL_USER} IMPORT_EXPORT_POSTGRESQL_PASSWORD: ${IMPORT_EXPORT_POSTGRESQL_PASSWORD} POSTGRES_PASSWORD: ${IMPORT_EXPORT_POSTGRESQL_PASSWORD} - image: postgres:13 + image: postgres:14 restart: "no" ports: - "${IMPORT_EXPORT_POSTGRESQL_PORT:-5432}:5432" @@ -16,7 +16,7 @@ - ./docker/db/init-postgres-db.sh/:/docker-entrypoint-initdb.d/init-postgres-db.sh - postgres-db-data:/var/lib/postgresql/data healthcheck: - test: ["CMD-SHELL", "sh -c 'pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}'"] + test: ["CMD-SHELL", "pg_isready -U \"${IMPORT_EXPORT_POSTGRESQL_USER}\" -d \"import_export\""] interval: 10s timeout: 3s retries: 3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/tests/settings.py new/django_import_export-4.3.8/tests/settings.py --- old/django_import_export-4.3.7/tests/settings.py 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/tests/settings.py 2025-06-23 21:35:30.000000000 +0200 @@ -10,6 +10,7 @@ "django.contrib.sessions", "django.contrib.messages", "django.contrib.sites", + "django.contrib.postgres", "import_export", "core", ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/django_import_export-4.3.7/tox.ini new/django_import_export-4.3.8/tox.ini --- old/django_import_export-4.3.7/tox.ini 2025-02-25 13:38:07.000000000 +0100 +++ new/django_import_export-4.3.8/tox.ini 2025-06-23 21:35:30.000000000 +0200 @@ -2,7 +2,7 @@ min_version = 4.0 envlist = py{39,310,311}-django{42} - py{310,311,312,313}-django{50,51,52} + py{310,311,312,313}-django{51,52} py{312,313}-djangomain py313-djangomain-tablibdev @@ -26,9 +26,8 @@ deps = tablibdev: -egit+https://github.com/jazzband/tablib.git@master\#egg=tablib django42: Django>=4.2,<5.0 - django50: Django>=5.0,<5.1 django51: Django>=5.1,<5.2 - django52: Django>=5.2a1,<5.3 + django52: Django>=5.2,<5.3 djangomain: https://github.com/django/django/archive/main.tar.gz .[tests]