Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-django-formtools for 
openSUSE:Factory checked in at 2023-01-07 17:19:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-django-formtools (Old)
 and      /work/SRC/openSUSE:Factory/.python-django-formtools.new.1563 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-django-formtools"

Sat Jan  7 17:19:38 2023 rev:9 rq:1056717 version:2.4

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-django-formtools/python-django-formtools.changes
  2022-01-07 12:48:09.431919450 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-django-formtools.new.1563/python-django-formtools.changes
        2023-01-07 17:22:59.303327885 +0100
@@ -1,0 +2,12 @@
+Fri Jan  6 22:01:38 UTC 2023 - Dirk Müller <dmuel...@suse.com>
+
+- update to 2.4:
+  * Updated translations from Transifex.
+  * Any kwarg passed to ``render_goto_step()`` is passed over to ``render``.
+  * ``WizardView`` is using ``get_form_list()`` instead of directly
+    accessing ``form_list`` (#168).
+  * Added Python 3.10 to test matrix.
+  * Dropped testing for Django 3.1.
+  * Confirmed support for Django 4.0 and 4.1.
+
+-------------------------------------------------------------------

Old:
----
  django-formtools-2.3.tar.gz

New:
----
  django-formtools-2.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-django-formtools.spec ++++++
--- /var/tmp/diff_new_pack.NF8h54/_old  2023-01-07 17:22:59.755330582 +0100
+++ /var/tmp/diff_new_pack.NF8h54/_new  2023-01-07 17:22:59.759330605 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-django-formtools
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
 %define skip_python2 1
 %define skip_python36 1
 Name:           python-django-formtools
-Version:        2.3
+Version:        2.4
 Release:        0
 Summary:        A set of high-level abstractions for Django forms
 License:        BSD-3-Clause

++++++ django-formtools-2.3.tar.gz -> django-formtools-2.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.3/.github/workflows/test.yml 
new/django-formtools-2.4/.github/workflows/test.yml
--- old/django-formtools-2.3/.github/workflows/test.yml 2021-04-19 
01:00:34.000000000 +0200
+++ new/django-formtools-2.4/.github/workflows/test.yml 2022-09-28 
20:33:04.000000000 +0200
@@ -9,29 +9,16 @@
       fail-fast: false
       max-parallel: 5
       matrix:
-        python-version: ['3.6', '3.7', '3.8', '3.9']
+        python-version: ['3.6', '3.7', '3.8', '3.9', '3.10']
 
     steps:
-    - uses: actions/checkout@v2
+    - uses: actions/checkout@v3
 
     - name: Set up Python ${{ matrix.python-version }}
-      uses: actions/setup-python@v2
+      uses: actions/setup-python@v4
       with:
         python-version: ${{ matrix.python-version }}
-
-    - name: Get pip cache dir
-      id: pip-cache
-      run: |
-        echo "::set-output name=dir::$(pip cache dir)"
-
-    - name: Cache
-      uses: actions/cache@v2
-      with:
-        path: ${{ steps.pip-cache.outputs.dir }}
-        key:
-          ${{ matrix.python-version }}-v1-${{ hashFiles('**/setup.py') }}-${{ 
hashFiles('**/tox.ini') }}
-        restore-keys: |
-          ${{ matrix.python-version }}-v1-
+        cache: pip
 
     - name: Install dependencies
       run: |
@@ -43,6 +30,6 @@
         tox -v
 
     - name: Upload coverage
-      uses: codecov/codecov-action@v1
+      uses: codecov/codecov-action@v3
       with:
         name: Python ${{ matrix.python-version }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.3/.pre-commit-config.yaml 
new/django-formtools-2.4/.pre-commit-config.yaml
--- old/django-formtools-2.3/.pre-commit-config.yaml    1970-01-01 
01:00:00.000000000 +0100
+++ new/django-formtools-2.4/.pre-commit-config.yaml    2022-09-28 
20:33:04.000000000 +0200
@@ -0,0 +1 @@
+repos: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.3/CODE_OF_CONDUCT.md 
new/django-formtools-2.4/CODE_OF_CONDUCT.md
--- old/django-formtools-2.3/CODE_OF_CONDUCT.md 1970-01-01 01:00:00.000000000 
+0100
+++ new/django-formtools-2.4/CODE_OF_CONDUCT.md 2022-09-28 20:33:04.000000000 
+0200
@@ -0,0 +1,46 @@
+# Code of Conduct
+
+As contributors and maintainers of the Jazzband projects, and in the interest 
of
+fostering an open and welcoming community, we pledge to respect all people who
+contribute through reporting issues, posting feature requests, updating 
documentation,
+submitting pull requests or patches, and other activities.
+
+We are committed to making participation in the Jazzband a harassment-free 
experience
+for everyone, regardless of the level of experience, gender, gender identity 
and
+expression, sexual orientation, disability, personal appearance, body size, 
race,
+ethnicity, age, religion, or nationality.
+
+Examples of unacceptable behavior by participants include:
+
+- The use of sexualized language or imagery
+- Personal attacks
+- Trolling or insulting/derogatory comments
+- Public or private harassment
+- Publishing other's private information, such as physical or electronic 
addresses,
+  without explicit permission
+- Other unethical or unprofessional conduct
+
+The Jazzband roadies have the right and responsibility to remove, edit, or 
reject
+comments, commits, code, wiki edits, issues, and other contributions that are 
not
+aligned to this Code of Conduct, or to ban temporarily or permanently any 
contributor
+for other behaviors that they deem inappropriate, threatening, offensive, or 
harmful.
+
+By adopting this Code of Conduct, the roadies commit themselves to fairly and
+consistently applying these principles to every aspect of managing the jazzband
+projects. Roadies who do not follow or enforce the Code of Conduct may be 
permanently
+removed from the Jazzband roadies.
+
+This code of conduct applies both within project spaces and in public spaces 
when an
+individual is representing the project or its community.
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be 
reported by
+contacting the roadies at `road...@jazzband.co`. All complaints will be 
reviewed and
+investigated and will result in a response that is deemed necessary and 
appropriate to
+the circumstances. Roadies are obligated to maintain confidentiality with 
regard to the
+reporter of an incident.
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage], 
version
+1.3.0, available at [https://contributor-covenant.org/version/1/3/0/][version]
+
+[homepage]: https://contributor-covenant.org
+[version]: https://contributor-covenant.org/version/1/3/0/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.3/Makefile 
new/django-formtools-2.4/Makefile
--- old/django-formtools-2.3/Makefile   2021-04-19 01:00:34.000000000 +0200
+++ new/django-formtools-2.4/Makefile   2022-09-28 20:33:04.000000000 +0200
@@ -5,13 +5,13 @@
        git clean -Xfd
 
 maketranslations:
-       cd formtools; django-admin.py makemessages -a -v2
+       cd formtools; django-admin makemessages -a -v2
 
 pulltranslations:
        tx pull -f -a --minimum-perc=1
 
 compiletranslations:
-       cd formtools; django-admin.py compilemessages
+       cd formtools; django-admin compilemessages
 
 translations: pulltranslations maketranslations compiletranslations
        @echo "Pulling, making and compiling translations"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.3/PKG-INFO 
new/django-formtools-2.4/PKG-INFO
--- old/django-formtools-2.3/PKG-INFO   2021-04-19 01:00:45.920318000 +0200
+++ new/django-formtools-2.4/PKG-INFO   2022-09-28 20:33:18.600195200 +0200
@@ -1,102 +1,19 @@
 Metadata-Version: 2.1
 Name: django-formtools
-Version: 2.3
+Version: 2.4
 Summary: A set of high-level abstractions for Django forms
 Home-page: https://django-formtools.readthedocs.io/en/latest/
 Author: Django Software Foundation
 Author-email: foundat...@djangoproject.com
 License: BSD
-Description: ================
-        django-formtools
-        ================
-        
-        .. image:: https://jazzband.co/static/img/badge.svg
-            :alt: Jazzband
-            :target: https://jazzband.co/
-        
-        .. image:: https://img.shields.io/pypi/v/django-formtools.svg
-            :alt: PyPI version
-            :target: https://pypi.org/project/django-formtools/
-        
-        .. image:: https://img.shields.io/pypi/pyversions/django-formtools.svg
-            :alt: Supported Python versions
-            :target: https://pypi.org/project/django-formtools/
-        
-        .. image:: 
https://github.com/jazzband/django-formtools/workflows/Test/badge.svg
-           :target: https://github.com/jazzband/django-formtools/actions
-           :alt: GitHub Actions
-        
-        .. image:: 
https://codecov.io/gh/jazzband/django-formtools/branch/master/graph/badge.svg
-           :target: https://codecov.io/gh/jazzband/django-formtools
-           :alt: Test Coverage
-        
-        Django's "formtools" is a set of high-level abstractions for Django 
forms.
-        Currently for form previews and multi-step forms.
-        
-        This code used to live in Django proper -- in 
``django.contrib.formtools``
-        -- but was separated into a standalone package in Django 1.8 to keep 
the
-        framework's core clean.
-        
-        For a full list of available formtools, see
-        https://django-formtools.readthedocs.io/
-        
-        django-formtools can also be found on and installed from the Python
-        Package Index: https://pypi.python.org/pypi/django-formtools
-        
-        To get more help:
-        
-        * Join the #django channel on irc.freenode.net. Lots of helpful people 
hang out
-          there. Read the archives at https://botbot.me/freenode/django/.
-        
-        * Join the django-users mailing list, or read the archives, at
-          https://groups.google.com/group/django-users.
-        
-        Contributing to django-formtools
-        --------------------------------
-        
-        See ``CONTRIBUTING.rst`` for information about contributing patches to
-        ``django-formtools``.
-        
-        Running tests is as simple as `installing Tox`__ and running it in the 
root
-        Git clone directory::
-        
-            $ git clone https://github.com/jazzband/django-formtools
-            [..]
-            $ cd django-formtools
-            $ tox
-            [..]
-              congratulations :)
-        
-        The previous command will run the tests in different combinations of 
Python
-        (if available) and Django versions. To see the full list of 
combinations use
-        the ``-l`` option::
-        
-            $ tox -l
-            ...
-            py38-django-AB
-            py38-django-master
-        
-        You can run each environment with the ``-e`` option::
-        
-            $ tox -e py38-django-AB  # runs the tests only on Python 3.5 and 
Django A.B.x
-        
-        Optionally you can also specify a country whose tests you want to run::
-        
-            $ COUNTRY=us tox
-        
-        And combine both options::
-        
-            $ COUNTRY=us tox -e py38-django-AB
-        
-        __ https://tox.readthedocs.io/en/latest/install.html
-        
-Platform: UNKNOWN
+Project-URL: Source, https://github.com/jazzband/django-formtools
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Environment :: Web Environment
 Classifier: Framework :: Django
 Classifier: Framework :: Django :: 2.2
-Classifier: Framework :: Django :: 3.1
 Classifier: Framework :: Django :: 3.2
+Classifier: Framework :: Django :: 4.0
+Classifier: Framework :: Django :: 4.1
 Classifier: Intended Audience :: Developers
 Classifier: License :: OSI Approved :: BSD License
 Classifier: Operating System :: OS Independent
@@ -107,6 +24,92 @@
 Classifier: Programming Language :: Python :: 3.7
 Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
 Classifier: Topic :: Internet :: WWW/HTTP
 Requires-Python: >=3.6
 Description-Content-Type: text/x-rst
+License-File: LICENSE
+
+================
+django-formtools
+================
+
+.. image:: https://jazzband.co/static/img/badge.svg
+    :alt: Jazzband
+    :target: https://jazzband.co/
+
+.. image:: https://img.shields.io/pypi/v/django-formtools.svg
+    :alt: PyPI version
+    :target: https://pypi.org/project/django-formtools/
+
+.. image:: https://img.shields.io/pypi/pyversions/django-formtools.svg
+    :alt: Supported Python versions
+    :target: https://pypi.org/project/django-formtools/
+
+.. image:: 
https://github.com/jazzband/django-formtools/workflows/Test/badge.svg
+   :target: https://github.com/jazzband/django-formtools/actions
+   :alt: GitHub Actions
+
+.. image:: 
https://codecov.io/gh/jazzband/django-formtools/branch/master/graph/badge.svg
+   :target: https://codecov.io/gh/jazzband/django-formtools
+   :alt: Test Coverage
+
+Django's "formtools" is a set of high-level abstractions for Django forms.
+Currently for form previews and multi-step forms.
+
+This code used to live in Django proper -- in ``django.contrib.formtools``
+-- but was separated into a standalone package in Django 1.8 to keep the
+framework's core clean.
+
+For a full list of available formtools, see
+https://django-formtools.readthedocs.io/
+
+django-formtools can also be found on and installed from the Python
+Package Index: https://pypi.python.org/pypi/django-formtools
+
+To get more help:
+
+* Join the #django channel on irc.freenode.net. Lots of helpful people hang out
+  there. Read the archives at https://botbot.me/freenode/django/.
+
+* Join the django-users mailing list, or read the archives, at
+  https://groups.google.com/group/django-users.
+
+Contributing to django-formtools
+--------------------------------
+
+See ``CONTRIBUTING.rst`` for information about contributing patches to
+``django-formtools``.
+
+Running tests is as simple as `installing Tox`__ and running it in the root
+Git clone directory::
+
+    $ git clone https://github.com/jazzband/django-formtools
+    [..]
+    $ cd django-formtools
+    $ tox
+    [..]
+      congratulations :)
+
+The previous command will run the tests in different combinations of Python
+(if available) and Django versions. To see the full list of combinations use
+the ``-l`` option::
+
+    $ tox -l
+    ...
+    py38-django-AB
+    py38-django-master
+
+You can run each environment with the ``-e`` option::
+
+    $ tox -e py38-django-AB  # runs the tests only on Python 3.5 and Django 
A.B.x
+
+Optionally you can also specify a country whose tests you want to run::
+
+    $ COUNTRY=us tox
+
+And combine both options::
+
+    $ COUNTRY=us tox -e py38-django-AB
+
+__ https://tox.readthedocs.io/en/latest/install.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.3/django_formtools.egg-info/PKG-INFO 
new/django-formtools-2.4/django_formtools.egg-info/PKG-INFO
--- old/django-formtools-2.3/django_formtools.egg-info/PKG-INFO 2021-04-19 
01:00:45.000000000 +0200
+++ new/django-formtools-2.4/django_formtools.egg-info/PKG-INFO 2022-09-28 
20:33:18.000000000 +0200
@@ -1,102 +1,19 @@
 Metadata-Version: 2.1
 Name: django-formtools
-Version: 2.3
+Version: 2.4
 Summary: A set of high-level abstractions for Django forms
 Home-page: https://django-formtools.readthedocs.io/en/latest/
 Author: Django Software Foundation
 Author-email: foundat...@djangoproject.com
 License: BSD
-Description: ================
-        django-formtools
-        ================
-        
-        .. image:: https://jazzband.co/static/img/badge.svg
-            :alt: Jazzband
-            :target: https://jazzband.co/
-        
-        .. image:: https://img.shields.io/pypi/v/django-formtools.svg
-            :alt: PyPI version
-            :target: https://pypi.org/project/django-formtools/
-        
-        .. image:: https://img.shields.io/pypi/pyversions/django-formtools.svg
-            :alt: Supported Python versions
-            :target: https://pypi.org/project/django-formtools/
-        
-        .. image:: 
https://github.com/jazzband/django-formtools/workflows/Test/badge.svg
-           :target: https://github.com/jazzband/django-formtools/actions
-           :alt: GitHub Actions
-        
-        .. image:: 
https://codecov.io/gh/jazzband/django-formtools/branch/master/graph/badge.svg
-           :target: https://codecov.io/gh/jazzband/django-formtools
-           :alt: Test Coverage
-        
-        Django's "formtools" is a set of high-level abstractions for Django 
forms.
-        Currently for form previews and multi-step forms.
-        
-        This code used to live in Django proper -- in 
``django.contrib.formtools``
-        -- but was separated into a standalone package in Django 1.8 to keep 
the
-        framework's core clean.
-        
-        For a full list of available formtools, see
-        https://django-formtools.readthedocs.io/
-        
-        django-formtools can also be found on and installed from the Python
-        Package Index: https://pypi.python.org/pypi/django-formtools
-        
-        To get more help:
-        
-        * Join the #django channel on irc.freenode.net. Lots of helpful people 
hang out
-          there. Read the archives at https://botbot.me/freenode/django/.
-        
-        * Join the django-users mailing list, or read the archives, at
-          https://groups.google.com/group/django-users.
-        
-        Contributing to django-formtools
-        --------------------------------
-        
-        See ``CONTRIBUTING.rst`` for information about contributing patches to
-        ``django-formtools``.
-        
-        Running tests is as simple as `installing Tox`__ and running it in the 
root
-        Git clone directory::
-        
-            $ git clone https://github.com/jazzband/django-formtools
-            [..]
-            $ cd django-formtools
-            $ tox
-            [..]
-              congratulations :)
-        
-        The previous command will run the tests in different combinations of 
Python
-        (if available) and Django versions. To see the full list of 
combinations use
-        the ``-l`` option::
-        
-            $ tox -l
-            ...
-            py38-django-AB
-            py38-django-master
-        
-        You can run each environment with the ``-e`` option::
-        
-            $ tox -e py38-django-AB  # runs the tests only on Python 3.5 and 
Django A.B.x
-        
-        Optionally you can also specify a country whose tests you want to run::
-        
-            $ COUNTRY=us tox
-        
-        And combine both options::
-        
-            $ COUNTRY=us tox -e py38-django-AB
-        
-        __ https://tox.readthedocs.io/en/latest/install.html
-        
-Platform: UNKNOWN
+Project-URL: Source, https://github.com/jazzband/django-formtools
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Environment :: Web Environment
 Classifier: Framework :: Django
 Classifier: Framework :: Django :: 2.2
-Classifier: Framework :: Django :: 3.1
 Classifier: Framework :: Django :: 3.2
+Classifier: Framework :: Django :: 4.0
+Classifier: Framework :: Django :: 4.1
 Classifier: Intended Audience :: Developers
 Classifier: License :: OSI Approved :: BSD License
 Classifier: Operating System :: OS Independent
@@ -107,6 +24,92 @@
 Classifier: Programming Language :: Python :: 3.7
 Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
 Classifier: Topic :: Internet :: WWW/HTTP
 Requires-Python: >=3.6
 Description-Content-Type: text/x-rst
+License-File: LICENSE
+
+================
+django-formtools
+================
+
+.. image:: https://jazzband.co/static/img/badge.svg
+    :alt: Jazzband
+    :target: https://jazzband.co/
+
+.. image:: https://img.shields.io/pypi/v/django-formtools.svg
+    :alt: PyPI version
+    :target: https://pypi.org/project/django-formtools/
+
+.. image:: https://img.shields.io/pypi/pyversions/django-formtools.svg
+    :alt: Supported Python versions
+    :target: https://pypi.org/project/django-formtools/
+
+.. image:: 
https://github.com/jazzband/django-formtools/workflows/Test/badge.svg
+   :target: https://github.com/jazzband/django-formtools/actions
+   :alt: GitHub Actions
+
+.. image:: 
https://codecov.io/gh/jazzband/django-formtools/branch/master/graph/badge.svg
+   :target: https://codecov.io/gh/jazzband/django-formtools
+   :alt: Test Coverage
+
+Django's "formtools" is a set of high-level abstractions for Django forms.
+Currently for form previews and multi-step forms.
+
+This code used to live in Django proper -- in ``django.contrib.formtools``
+-- but was separated into a standalone package in Django 1.8 to keep the
+framework's core clean.
+
+For a full list of available formtools, see
+https://django-formtools.readthedocs.io/
+
+django-formtools can also be found on and installed from the Python
+Package Index: https://pypi.python.org/pypi/django-formtools
+
+To get more help:
+
+* Join the #django channel on irc.freenode.net. Lots of helpful people hang out
+  there. Read the archives at https://botbot.me/freenode/django/.
+
+* Join the django-users mailing list, or read the archives, at
+  https://groups.google.com/group/django-users.
+
+Contributing to django-formtools
+--------------------------------
+
+See ``CONTRIBUTING.rst`` for information about contributing patches to
+``django-formtools``.
+
+Running tests is as simple as `installing Tox`__ and running it in the root
+Git clone directory::
+
+    $ git clone https://github.com/jazzband/django-formtools
+    [..]
+    $ cd django-formtools
+    $ tox
+    [..]
+      congratulations :)
+
+The previous command will run the tests in different combinations of Python
+(if available) and Django versions. To see the full list of combinations use
+the ``-l`` option::
+
+    $ tox -l
+    ...
+    py38-django-AB
+    py38-django-master
+
+You can run each environment with the ``-e`` option::
+
+    $ tox -e py38-django-AB  # runs the tests only on Python 3.5 and Django 
A.B.x
+
+Optionally you can also specify a country whose tests you want to run::
+
+    $ COUNTRY=us tox
+
+And combine both options::
+
+    $ COUNTRY=us tox -e py38-django-AB
+
+__ https://tox.readthedocs.io/en/latest/install.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.3/django_formtools.egg-info/SOURCES.txt 
new/django-formtools-2.4/django_formtools.egg-info/SOURCES.txt
--- old/django-formtools-2.3/django_formtools.egg-info/SOURCES.txt      
2021-04-19 01:00:45.000000000 +0200
+++ new/django-formtools-2.4/django_formtools.egg-info/SOURCES.txt      
2022-09-28 20:33:18.000000000 +0200
@@ -1,7 +1,9 @@
 .coveragerc
 .editorconfig
 .gitignore
+.pre-commit-config.yaml
 AUTHORS.rst
+CODE_OF_CONDUCT.md
 CONTRIBUTING.rst
 LICENSE
 MANIFEST.in
@@ -112,6 +114,8 @@
 formtools/locale/ka/LC_MESSAGES/django.po
 formtools/locale/ko/LC_MESSAGES/django.mo
 formtools/locale/ko/LC_MESSAGES/django.po
+formtools/locale/ky/LC_MESSAGES/django.mo
+formtools/locale/ky/LC_MESSAGES/django.po
 formtools/locale/lt/LC_MESSAGES/django.mo
 formtools/locale/lt/LC_MESSAGES/django.po
 formtools/locale/lv/LC_MESSAGES/django.mo
@@ -122,6 +126,8 @@
 formtools/locale/ml/LC_MESSAGES/django.po
 formtools/locale/mn/LC_MESSAGES/django.mo
 formtools/locale/mn/LC_MESSAGES/django.po
+formtools/locale/ms/LC_MESSAGES/django.mo
+formtools/locale/ms/LC_MESSAGES/django.po
 formtools/locale/nb/LC_MESSAGES/django.mo
 formtools/locale/nb/LC_MESSAGES/django.po
 formtools/locale/ne/LC_MESSAGES/django.mo
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.3/docs/changelog.rst 
new/django-formtools-2.4/docs/changelog.rst
--- old/django-formtools-2.3/docs/changelog.rst 2021-04-19 01:00:34.000000000 
+0200
+++ new/django-formtools-2.4/docs/changelog.rst 2022-09-28 20:33:04.000000000 
+0200
@@ -3,6 +3,22 @@
 
 This page details the changes in the various ``django-formtools`` releases.
 
+2.4 (2022-09-28)
+----------------
+
+- Updated translations from Transifex.
+
+- Any kwarg passed to ``render_goto_step()`` is passed over to ``render``.
+
+- ``WizardView`` is using ``get_form_list()`` instead of directly accessing
+  ``form_list`` (#168).
+
+- Added Python 3.10 to test matrix.
+
+- Dropped testing for Django 3.1.
+
+- Confirmed support for Django 4.0 and 4.1.
+
 2.3 (2021-04-18)
 ----------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.3/docs/wizard.rst 
new/django-formtools-2.4/docs/wizard.rst
--- old/django-formtools-2.3/docs/wizard.rst    2021-04-19 01:00:34.000000000 
+0200
+++ new/django-formtools-2.4/docs/wizard.rst    2022-09-28 20:33:04.000000000 
+0200
@@ -219,7 +219,7 @@
     {% if wizard.form.forms %}
         {{ wizard.form.management_form }}
         {% for form in wizard.form.forms %}
-            {{ form }}
+            {{ form.as_table }}
         {% endfor %}
     {% else %}
         {{ wizard.form }}
Binary files old/django-formtools-2.3/formtools/locale/ar/LC_MESSAGES/django.mo 
and new/django-formtools-2.4/formtools/locale/ar/LC_MESSAGES/django.mo differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.3/formtools/locale/ar/LC_MESSAGES/django.po 
new/django-formtools-2.4/formtools/locale/ar/LC_MESSAGES/django.po
--- old/django-formtools-2.3/formtools/locale/ar/LC_MESSAGES/django.po  
2021-04-19 01:00:34.000000000 +0200
+++ new/django-formtools-2.4/formtools/locale/ar/LC_MESSAGES/django.po  
2022-09-28 20:33:04.000000000 +0200
@@ -3,21 +3,20 @@
 # Translators:
 # Bashar Al-Abdulhadi, 2014
 # Eyad Toma <d.eya...@gmail.com>, 2013
+# Omar Lajam, 2020
 msgid ""
 msgstr ""
 "Project-Id-Version: django-formtools\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2015-03-25 09:31-0500\n"
-"PO-Revision-Date: 2014-10-05 20:41+0000\n"
-"Last-Translator: Jannis Leidel <jan...@leidel.info>\n"
-"Language-Team: Arabic (http://www.transifex.com/projects/p/django-formtools/";
-"language/ar/)\n"
-"Language: ar\n"
+"PO-Revision-Date: 2020-10-05 20:14+0000\n"
+"Last-Translator: Omar Lajam, 2020\n"
+"Language-Team: Arabic 
(http://www.transifex.com/django/django-formtools/language/ar/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
-"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
+"Language: ar\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && 
n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
 
 #: apps.py:7
 msgid "Form Tools"
@@ -25,28 +24,28 @@
 
 #: templates/formtools/form.html:6
 msgid "Please correct the following errors"
-msgstr ""
+msgstr "قم بتصحيح الأخطاء التالية"
 
 #: templates/formtools/form.html:6 templates/formtools/preview.html:24
 msgid "Submit"
-msgstr ""
+msgstr "إرسال"
 
 #: templates/formtools/form.html:13 templates/formtools/preview.html:34
 msgid "Preview"
-msgstr ""
+msgstr "معاينة"
 
 #: templates/formtools/preview.html:6
 msgid "Preview your submission"
-msgstr ""
+msgstr "معاينة ما أرسلت"
 
 #: templates/formtools/preview.html:17
 #, python-format
 msgid "Security hash: %(hash_value)s"
-msgstr ""
+msgstr "شفرة الأمان: %(hash_value)s"
 
 #: templates/formtools/preview.html:27
 msgid "Or edit it again"
-msgstr ""
+msgstr "أو عدّل مجدداً"
 
 #: templates/formtools/wizard/wizard_form.html:16
 msgid "first step"
Binary files old/django-formtools-2.3/formtools/locale/es/LC_MESSAGES/django.mo 
and new/django-formtools-2.4/formtools/locale/es/LC_MESSAGES/django.mo differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.3/formtools/locale/es/LC_MESSAGES/django.po 
new/django-formtools-2.4/formtools/locale/es/LC_MESSAGES/django.po
--- old/django-formtools-2.3/formtools/locale/es/LC_MESSAGES/django.po  
2021-04-19 01:00:34.000000000 +0200
+++ new/django-formtools-2.4/formtools/locale/es/LC_MESSAGES/django.po  
2022-09-28 20:33:04.000000000 +0200
@@ -1,19 +1,18 @@
 # This file is distributed under the same license as the Django package.
 #
 # Translators:
-# Ernesto Avilés Vázquez <whipp...@gmail.com>, 2014
+# e4db27214f7e7544f2022c647b585925_bb0e321, 2014
 # Jannis Leidel <jan...@leidel.info>, 2011
-# juanda097 <juanda...@openmailbox.org>, 2014
+# Juan Jaramillo <juanda...@protonmail.ch>, 2014
+# Uriel Medina <urimeba...@gmail.com>, 2021
 msgid ""
 msgstr ""
 "Project-Id-Version: django-formtools\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2015-03-25 09:31-0500\n"
-"PO-Revision-Date: 2014-11-16 06:30+0000\n"
-"Last-Translator: juanda097 <juanda...@openmailbox.org>\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/django-formtools/";
-"language/es/)\n"
-"Language: es\n"
+"PO-Revision-Date: 2021-10-05 20:14+0000\n"
+"Last-Translator: Uriel Medina <urimeba...@gmail.com>, 2021\n"
+"Language-Team: Spanish 
(http://www.transifex.com/django/django-formtools/language/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -37,7 +36,7 @@
 
 #: templates/formtools/preview.html:6
 msgid "Preview your submission"
-msgstr "Vista previa de su presentación"
+msgstr "Vista previa de su envío"
 
 #: templates/formtools/preview.html:17
 #, python-format
Binary files 
old/django-formtools-2.3/formtools/locale/es_MX/LC_MESSAGES/django.mo and 
new/django-formtools-2.4/formtools/locale/es_MX/LC_MESSAGES/django.mo differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.3/formtools/locale/es_MX/LC_MESSAGES/django.po 
new/django-formtools-2.4/formtools/locale/es_MX/LC_MESSAGES/django.po
--- old/django-formtools-2.3/formtools/locale/es_MX/LC_MESSAGES/django.po       
2021-04-19 01:00:34.000000000 +0200
+++ new/django-formtools-2.4/formtools/locale/es_MX/LC_MESSAGES/django.po       
2022-09-28 20:33:04.000000000 +0200
@@ -1,16 +1,15 @@
 # This file is distributed under the same license as the Django package.
 #
 # Translators:
+# Gustavo López Hernández, 2022
 msgid ""
 msgstr ""
 "Project-Id-Version: django-formtools\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2015-03-25 09:31-0500\n"
-"PO-Revision-Date: 2014-10-06 19:31+0000\n"
-"Last-Translator: Jannis Leidel <jan...@leidel.info>\n"
-"Language-Team: Spanish (Mexico) (http://www.transifex.com/projects/p/django-";
-"formtools/language/es_MX/)\n"
-"Language: es_MX\n"
+"PO-Revision-Date: 2022-06-05 20:14+0000\n"
+"Last-Translator: Gustavo López Hernández, 2022\n"
+"Language-Team: Spanish (Mexico) 
(http://www.transifex.com/django/django-formtools/language/es_MX/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -18,32 +17,32 @@
 
 #: apps.py:7
 msgid "Form Tools"
-msgstr ""
+msgstr "Herramientas de formulario"
 
 #: templates/formtools/form.html:6
 msgid "Please correct the following errors"
-msgstr ""
+msgstr "Por favor corrija los siguientes errores"
 
 #: templates/formtools/form.html:6 templates/formtools/preview.html:24
 msgid "Submit"
-msgstr ""
+msgstr "Enviar"
 
 #: templates/formtools/form.html:13 templates/formtools/preview.html:34
 msgid "Preview"
-msgstr ""
+msgstr "Vista previa"
 
 #: templates/formtools/preview.html:6
 msgid "Preview your submission"
-msgstr ""
+msgstr "Vista previa de su envío"
 
 #: templates/formtools/preview.html:17
 #, python-format
 msgid "Security hash: %(hash_value)s"
-msgstr ""
+msgstr "Hash de seguridad: %(hash_value)s"
 
 #: templates/formtools/preview.html:27
 msgid "Or edit it again"
-msgstr ""
+msgstr "O editarlo de nuevo"
 
 #: templates/formtools/wizard/wizard_form.html:16
 msgid "first step"
@@ -59,4 +58,4 @@
 
 #: wizard/views.py:276
 msgid "ManagementForm data is missing or has been tampered."
-msgstr ""
+msgstr "Los datos de ManagementForm no existen o han sido modificados."
Binary files old/django-formtools-2.3/formtools/locale/et/LC_MESSAGES/django.mo 
and new/django-formtools-2.4/formtools/locale/et/LC_MESSAGES/django.mo differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.3/formtools/locale/et/LC_MESSAGES/django.po 
new/django-formtools-2.4/formtools/locale/et/LC_MESSAGES/django.po
--- old/django-formtools-2.3/formtools/locale/et/LC_MESSAGES/django.po  
2021-04-19 01:00:34.000000000 +0200
+++ new/django-formtools-2.4/formtools/locale/et/LC_MESSAGES/django.po  
2022-09-28 20:33:04.000000000 +0200
@@ -2,16 +2,16 @@
 # 
 # Translators:
 # Janno Liivak <janno...@gmail.com>, 2013
-# Martin Pajuste <martinpaju...@gmail.com>, 2015-2016
-# Martin Pajuste <martinpaju...@gmail.com>, 2017
+# Martin <martinpaju...@gmail.com>, 2015-2016
+# Martin <martinpaju...@gmail.com>, 2017
 # Marti Raudsepp <ma...@juffo.org>, 2014
 msgid ""
 msgstr ""
 "Project-Id-Version: django-formtools\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2015-03-25 09:31-0500\n"
-"PO-Revision-Date: 2017-09-20 12:01+0000\n"
-"Last-Translator: Martin Pajuste <martinpaju...@gmail.com>\n"
+"PO-Revision-Date: 2017-10-05 20:14+0000\n"
+"Last-Translator: Martin <martinpaju...@gmail.com>, 2017\n"
 "Language-Team: Estonian 
(http://www.transifex.com/django/django-formtools/language/et/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -29,7 +29,7 @@
 
 #: templates/formtools/form.html:6 templates/formtools/preview.html:24
 msgid "Submit"
-msgstr ""
+msgstr "Esita"
 
 #: templates/formtools/form.html:13 templates/formtools/preview.html:34
 msgid "Preview"
@@ -37,12 +37,12 @@
 
 #: templates/formtools/preview.html:6
 msgid "Preview your submission"
-msgstr ""
+msgstr "Esitamise eelvaade"
 
 #: templates/formtools/preview.html:17
 #, python-format
 msgid "Security hash: %(hash_value)s"
-msgstr ""
+msgstr "Turvalisuse räsi: %(hash_value)s"
 
 #: templates/formtools/preview.html:27
 msgid "Or edit it again"
Binary files old/django-formtools-2.3/formtools/locale/fi/LC_MESSAGES/django.mo 
and new/django-formtools-2.4/formtools/locale/fi/LC_MESSAGES/django.mo differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.3/formtools/locale/fi/LC_MESSAGES/django.po 
new/django-formtools-2.4/formtools/locale/fi/LC_MESSAGES/django.po
--- old/django-formtools-2.3/formtools/locale/fi/LC_MESSAGES/django.po  
2021-04-19 01:00:34.000000000 +0200
+++ new/django-formtools-2.4/formtools/locale/fi/LC_MESSAGES/django.po  
2022-09-28 20:33:04.000000000 +0200
@@ -1,51 +1,52 @@
 # This file is distributed under the same license as the Django package.
 #
 # Translators:
+# Aarni Koskela, 2020
 # Jannis Leidel <jan...@leidel.info>, 2011
-# Klaus Dahlén <klaus.dah...@gmail.com>, 2012
+# Jiri Grönroos <jiri.gronr...@iki.fi>, 2021
+# Klaus Dahlén, 2012
 msgid ""
 msgstr ""
 "Project-Id-Version: django-formtools\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2015-03-25 09:31-0500\n"
-"PO-Revision-Date: 2014-10-05 20:41+0000\n"
-"Last-Translator: Jannis Leidel <jan...@leidel.info>\n"
-"Language-Team: Finnish (http://www.transifex.com/projects/p/django-formtools/";
-"language/fi/)\n"
-"Language: fi\n"
+"PO-Revision-Date: 2021-10-05 20:14+0000\n"
+"Last-Translator: Jiri Grönroos <jiri.gronr...@iki.fi>, 2021\n"
+"Language-Team: Finnish 
(http://www.transifex.com/django/django-formtools/language/fi/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: fi\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: apps.py:7
 msgid "Form Tools"
-msgstr ""
+msgstr "Lomaketyökalut"
 
 #: templates/formtools/form.html:6
 msgid "Please correct the following errors"
-msgstr ""
+msgstr "Korjaa seuraavat virheet"
 
 #: templates/formtools/form.html:6 templates/formtools/preview.html:24
 msgid "Submit"
-msgstr ""
+msgstr "Lähetä"
 
 #: templates/formtools/form.html:13 templates/formtools/preview.html:34
 msgid "Preview"
-msgstr ""
+msgstr "Esikatsele"
 
 #: templates/formtools/preview.html:6
 msgid "Preview your submission"
-msgstr ""
+msgstr "Esikatsele lähetystä"
 
 #: templates/formtools/preview.html:17
 #, python-format
 msgid "Security hash: %(hash_value)s"
-msgstr ""
+msgstr "Turvallisuusarvo: %(hash_value)s"
 
 #: templates/formtools/preview.html:27
 msgid "Or edit it again"
-msgstr ""
+msgstr "Tai muokkaa jälleen"
 
 #: templates/formtools/wizard/wizard_form.html:16
 msgid "first step"
@@ -61,4 +62,4 @@
 
 #: wizard/views.py:276
 msgid "ManagementForm data is missing or has been tampered."
-msgstr ""
+msgstr "ManagementForm-tiedot puuttuvat tai niitä on muutettu."
Binary files old/django-formtools-2.3/formtools/locale/ky/LC_MESSAGES/django.mo 
and new/django-formtools-2.4/formtools/locale/ky/LC_MESSAGES/django.mo differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.3/formtools/locale/ky/LC_MESSAGES/django.po 
new/django-formtools-2.4/formtools/locale/ky/LC_MESSAGES/django.po
--- old/django-formtools-2.3/formtools/locale/ky/LC_MESSAGES/django.po  
1970-01-01 01:00:00.000000000 +0100
+++ new/django-formtools-2.4/formtools/locale/ky/LC_MESSAGES/django.po  
2022-09-28 20:33:04.000000000 +0200
@@ -0,0 +1,62 @@
+# This file is distributed under the same license as the Django package.
+# 
+# Translators:
+# Soyuzbek orozbek uulu <soyuzbek196...@gmail.com>, 2020
+msgid ""
+msgstr ""
+"Project-Id-Version: django-formtools\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-03-25 09:31-0500\n"
+"PO-Revision-Date: 2014-10-05 20:14+0000\n"
+"Last-Translator: Soyuzbek orozbek uulu <soyuzbek196...@gmail.com>, 2020\n"
+"Language-Team: Kyrgyz 
(http://www.transifex.com/django/django-formtools/language/ky/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ky\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: apps.py:7
+msgid "Form Tools"
+msgstr "Форм куралдары"
+
+#: templates/formtools/form.html:6
+msgid "Please correct the following errors"
+msgstr "Сураныч, төмөндө каталарды оңдоңуз"
+
+#: templates/formtools/form.html:6 templates/formtools/preview.html:24
+msgid "Submit"
+msgstr "Жөнөтүү"
+
+#: templates/formtools/form.html:13 templates/formtools/preview.html:34
+msgid "Preview"
+msgstr "Алдын ала көрүү"
+
+#: templates/formtools/preview.html:6
+msgid "Preview your submission"
+msgstr "Сиздин жөнөтүүнү алдын ала көрүү"
+
+#: templates/formtools/preview.html:17
+#, python-format
+msgid "Security hash: %(hash_value)s"
+msgstr "Коопсуздук хэши: %(hash_value)s"
+
+#: templates/formtools/preview.html:27
+msgid "Or edit it again"
+msgstr "Же муну кайра өзгөртүңүз"
+
+#: templates/formtools/wizard/wizard_form.html:16
+msgid "first step"
+msgstr "биринчи кадам"
+
+#: templates/formtools/wizard/wizard_form.html:17
+msgid "prev step"
+msgstr "мурдагы кадам"
+
+#: templates/formtools/wizard/wizard_form.html:19
+msgid "submit"
+msgstr "жөнөтүү"
+
+#: wizard/views.py:276
+msgid "ManagementForm data is missing or has been tampered."
+msgstr "БашкарууФорм берилиши унутулган же 
бузулган"
Binary files old/django-formtools-2.3/formtools/locale/ms/LC_MESSAGES/django.mo 
and new/django-formtools-2.4/formtools/locale/ms/LC_MESSAGES/django.mo differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.3/formtools/locale/ms/LC_MESSAGES/django.po 
new/django-formtools-2.4/formtools/locale/ms/LC_MESSAGES/django.po
--- old/django-formtools-2.3/formtools/locale/ms/LC_MESSAGES/django.po  
1970-01-01 01:00:00.000000000 +0100
+++ new/django-formtools-2.4/formtools/locale/ms/LC_MESSAGES/django.po  
2022-09-28 20:33:04.000000000 +0200
@@ -0,0 +1,62 @@
+# This file is distributed under the same license as the Django package.
+# 
+# Translators:
+# Jafry Hisham, 2021
+msgid ""
+msgstr ""
+"Project-Id-Version: django-formtools\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-03-25 09:31-0500\n"
+"PO-Revision-Date: 2014-10-05 20:14+0000\n"
+"Last-Translator: Jafry Hisham, 2021\n"
+"Language-Team: Malay 
(http://www.transifex.com/django/django-formtools/language/ms/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ms\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: apps.py:7
+msgid "Form Tools"
+msgstr "Alat-alat borang"
+
+#: templates/formtools/form.html:6
+msgid "Please correct the following errors"
+msgstr "Sila betulkan ralat-ralat berikut"
+
+#: templates/formtools/form.html:6 templates/formtools/preview.html:24
+msgid "Submit"
+msgstr "Hantar"
+
+#: templates/formtools/form.html:13 templates/formtools/preview.html:34
+msgid "Preview"
+msgstr "Pratonton"
+
+#: templates/formtools/preview.html:6
+msgid "Preview your submission"
+msgstr "Pratonton penyerahan anda"
+
+#: templates/formtools/preview.html:17
+#, python-format
+msgid "Security hash: %(hash_value)s"
+msgstr "Hash keselamatan: %(hash_value)s"
+
+#: templates/formtools/preview.html:27
+msgid "Or edit it again"
+msgstr "Atau edit semula"
+
+#: templates/formtools/wizard/wizard_form.html:16
+msgid "first step"
+msgstr "langkah pertama"
+
+#: templates/formtools/wizard/wizard_form.html:17
+msgid "prev step"
+msgstr "langkah sebelumnya"
+
+#: templates/formtools/wizard/wizard_form.html:19
+msgid "submit"
+msgstr "hantar"
+
+#: wizard/views.py:276
+msgid "ManagementForm data is missing or has been tampered."
+msgstr "Data ManagementForm hilang atau telah diusik."
Binary files old/django-formtools-2.3/formtools/locale/nl/LC_MESSAGES/django.mo 
and new/django-formtools-2.4/formtools/locale/nl/LC_MESSAGES/django.mo differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.3/formtools/locale/nl/LC_MESSAGES/django.po 
new/django-formtools-2.4/formtools/locale/nl/LC_MESSAGES/django.po
--- old/django-formtools-2.3/formtools/locale/nl/LC_MESSAGES/django.po  
2021-04-19 01:00:34.000000000 +0200
+++ new/django-formtools-2.4/formtools/locale/nl/LC_MESSAGES/django.po  
2022-09-28 20:33:04.000000000 +0200
@@ -4,14 +4,15 @@
 # Bouke Haarsma <bo...@haarsma.eu>, 2013
 # Evelijn Saaltink <evelijnsaalt...@gmail.com>, 2016
 # Jannis Leidel <jan...@leidel.info>, 2011
-# Jeffrey Gelens <jeff...@noppo.pro>, 2012
+# 6a27f10aef159701c7a5ff07f0fb0a78_05545ed 
<bc5d401a7ecd9343dd5afac265ed8ab3_4845>, 2012
+# Tonnes <tonnes...@gmail.com>, 2022
 msgid ""
 msgstr ""
 "Project-Id-Version: django-formtools\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2015-03-25 09:31-0500\n"
-"PO-Revision-Date: 2017-09-20 12:01+0000\n"
-"Last-Translator: Evelijn Saaltink <evelijnsaalt...@gmail.com>\n"
+"PO-Revision-Date: 2022-06-05 20:14+0000\n"
+"Last-Translator: Tonnes <tonnes...@gmail.com>, 2022\n"
 "Language-Team: Dutch 
(http://www.transifex.com/django/django-formtools/language/nl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -37,7 +38,7 @@
 
 #: templates/formtools/preview.html:6
 msgid "Preview your submission"
-msgstr "Toon een voorbeeld van je inzending"
+msgstr "Voorbeeld van uw inzending tonen"
 
 #: templates/formtools/preview.html:17
 #, python-format
@@ -46,7 +47,7 @@
 
 #: templates/formtools/preview.html:27
 msgid "Or edit it again"
-msgstr "Of wijzig het opnieuw"
+msgstr "Of bewerk het opnieuw"
 
 #: templates/formtools/wizard/wizard_form.html:16
 msgid "first step"
@@ -62,4 +63,4 @@
 
 #: wizard/views.py:276
 msgid "ManagementForm data is missing or has been tampered."
-msgstr "Gegevens van ManagementForm missen of zijn aangetast."
+msgstr "Gegevens van ManagementForm ontbreken of zijn aangetast."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.3/formtools/preview.py 
new/django-formtools-2.4/formtools/preview.py
--- old/django-formtools-2.3/formtools/preview.py       2021-04-19 
01:00:34.000000000 +0200
+++ new/django-formtools-2.4/formtools/preview.py       2022-09-28 
20:33:04.000000000 +0200
@@ -59,7 +59,9 @@
         Validates the POST data. If valid, displays the preview page.
         Else, redisplays form.
         """
-        f = self.form(request.POST, auto_id=self.get_auto_id())
+        # Even if files are not supported in preview, we still initialize files
+        # to give a chance to process_preview to access files content.
+        f = self.form(data=request.POST, files=request.FILES, 
auto_id=self.get_auto_id())
         context = self.get_context(request, f)
         if f.is_valid():
             self.process_preview(request, f, context)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.3/formtools/templates/formtools/form.html 
new/django-formtools-2.4/formtools/templates/formtools/form.html
--- old/django-formtools-2.3/formtools/templates/formtools/form.html    
2021-04-19 01:00:34.000000000 +0200
+++ new/django-formtools-2.4/formtools/templates/formtools/form.html    
2022-09-28 20:33:04.000000000 +0200
@@ -7,7 +7,7 @@
 
 <form action="" method="post">{% csrf_token %}
 <table>
-{{ form }}
+{{ form.as_table }}
 </table>
 <input type="hidden" name="{{ stage_field }}" value="1" />
 <p><input type="submit" value="{% trans "Preview" %}" /></p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.3/formtools/templates/formtools/preview.html 
new/django-formtools-2.4/formtools/templates/formtools/preview.html
--- old/django-formtools-2.3/formtools/templates/formtools/preview.html 
2021-04-19 01:00:34.000000000 +0200
+++ new/django-formtools-2.4/formtools/templates/formtools/preview.html 
2022-09-28 20:33:04.000000000 +0200
@@ -28,7 +28,7 @@
 
 <form action="" method="post">{% csrf_token %}
 <table>
-{{ form }}
+{{ form.as_table }}
 </table>
 <input type="hidden" name="{{ stage_field }}" value="1" />
 <p><input type="submit" value="{% trans "Preview" %}" /></p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.3/formtools/utils.py 
new/django-formtools-2.4/formtools/utils.py
--- old/django-formtools-2.3/formtools/utils.py 2021-04-19 01:00:34.000000000 
+0200
+++ new/django-formtools-2.4/formtools/utils.py 2022-09-28 20:33:04.000000000 
+0200
@@ -1,5 +1,6 @@
 import pickle
 
+from django.core.files.uploadedfile import TemporaryUploadedFile
 from django.utils.crypto import salted_hmac
 
 
@@ -17,6 +18,8 @@
             value = bf.field.clean(bf.data) or ''
         if isinstance(value, str):
             value = value.strip()
+        elif isinstance(value, TemporaryUploadedFile):
+            value = value.read()
         data.append((bf.name, value))
 
     pickled = pickle.dumps(data, pickle.HIGHEST_PROTOCOL)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.3/formtools/wizard/forms.py 
new/django-formtools-2.4/formtools/wizard/forms.py
--- old/django-formtools-2.3/formtools/wizard/forms.py  2021-04-19 
01:00:34.000000000 +0200
+++ new/django-formtools-2.4/formtools/wizard/forms.py  2022-09-28 
20:33:04.000000000 +0200
@@ -5,4 +5,5 @@
     """
     ``ManagementForm`` is used to keep track of the current wizard step.
     """
+    template_name = "django/forms/p.html"  # Remove when Django 5.0 is minimal 
version.
     current_step = forms.CharField(widget=forms.HiddenInput)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.3/formtools/wizard/views.py 
new/django-formtools-2.4/formtools/wizard/views.py
--- old/django-formtools-2.3/formtools/wizard/views.py  2021-04-19 
01:00:34.000000000 +0200
+++ new/django-formtools-2.4/formtools/wizard/views.py  2022-09-28 
20:33:04.000000000 +0200
@@ -331,7 +331,7 @@
         form = self.get_form(
             data=self.storage.get_step_data(self.steps.current),
             files=self.storage.get_step_files(self.steps.current))
-        return self.render(form)
+        return self.render(form, **kwargs)
 
     def render_done(self, form, **kwargs):
         """
@@ -406,7 +406,7 @@
         """
         if step is None:
             step = self.steps.current
-        form_class = self.form_list[step]
+        form_class = self.get_form_list()[step]
         # prepare the kwargs for the form instance.
         kwargs = self.get_form_kwargs(step)
         kwargs.update({
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.3/setup.py 
new/django-formtools-2.4/setup.py
--- old/django-formtools-2.3/setup.py   2021-04-19 01:00:34.000000000 +0200
+++ new/django-formtools-2.4/setup.py   2022-09-28 20:33:04.000000000 +0200
@@ -13,6 +13,9 @@
     use_scm_version={"version_scheme": "post-release", "local_scheme": 
"dirty-tag"},
     setup_requires=["setuptools_scm"],
     url="https://django-formtools.readthedocs.io/en/latest/";,
+    project_urls={
+        "Source": 'https://github.com/jazzband/django-formtools',
+    },
     license="BSD",
     description="A set of high-level abstractions for Django forms",
     long_description=read("README.rst"),
@@ -28,8 +31,9 @@
         "Environment :: Web Environment",
         "Framework :: Django",
         "Framework :: Django :: 2.2",
-        "Framework :: Django :: 3.1",
         "Framework :: Django :: 3.2",
+        "Framework :: Django :: 4.0",
+        "Framework :: Django :: 4.1",
         "Intended Audience :: Developers",
         "License :: OSI Approved :: BSD License",
         "Operating System :: OS Independent",
@@ -40,6 +44,7 @@
         "Programming Language :: Python :: 3.7",
         "Programming Language :: Python :: 3.8",
         "Programming Language :: Python :: 3.9",
+        "Programming Language :: Python :: 3.10",
         "Topic :: Internet :: WWW/HTTP",
     ],
     zip_safe=False,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.3/tests/forms.py 
new/django-formtools-2.4/tests/forms.py
--- old/django-formtools-2.3/tests/forms.py     2021-04-19 01:00:34.000000000 
+0200
+++ new/django-formtools-2.4/tests/forms.py     2022-09-28 20:33:04.000000000 
+0200
@@ -16,3 +16,8 @@
 class HashTestBlankForm(forms.Form):
     name = forms.CharField(required=False)
     bio = forms.CharField(required=False)
+
+
+class HashTestFormWithFile(forms.Form):
+    name = forms.CharField()
+    attachment = forms.FileField(required=False)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-formtools-2.3/tests/templates/forms/wizard.html 
new/django-formtools-2.4/tests/templates/forms/wizard.html
--- old/django-formtools-2.3/tests/templates/forms/wizard.html  2021-04-19 
01:00:34.000000000 +0200
+++ new/django-formtools-2.4/tests/templates/forms/wizard.html  2022-09-28 
20:33:04.000000000 +0200
@@ -3,7 +3,7 @@
     <p>Step {{ step }} of {{ step_count }}</p>
     <form action="." method="post">
     <table>
-    {{ form }}
+    {{ form.as_table }}
     </table>
     <input type="hidden" name="{{ step_field }}" value="{{ step0 }}" />
     {{ previous_fields|safe }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.3/tests/tests.py 
new/django-formtools-2.4/tests/tests.py
--- old/django-formtools-2.3/tests/tests.py     2021-04-19 01:00:34.000000000 
+0200
+++ new/django-formtools-2.4/tests/tests.py     2022-09-28 20:33:04.000000000 
+0200
@@ -2,13 +2,19 @@
 import os
 import unittest
 import warnings
+from io import StringIO
 
 from django import http
+from django.core.files.uploadedfile import (
+    InMemoryUploadedFile, TemporaryUploadedFile,
+)
 from django.test import TestCase, override_settings
 
 from formtools import preview, utils
 
-from .forms import HashTestBlankForm, HashTestForm, TestForm
+from .forms import (
+    HashTestBlankForm, HashTestForm, HashTestFormWithFile, TestForm,
+)
 
 success_string = "Done was called!"
 success_string_encoded = success_string.encode()
@@ -191,3 +197,20 @@
         hash1 = utils.form_hmac(f1)
         hash2 = utils.form_hmac(f2)
         self.assertEqual(hash1, hash2)
+
+    def test_hash_with_file(self):
+        with InMemoryUploadedFile(StringIO('1'), '', 'test', 'text/plain', 1, 
'utf8') as some_file:
+            f1 = HashTestFormWithFile({'name': 'joe'})
+            f2 = HashTestFormWithFile({'name': 'joe'}, files={'attachment': 
some_file})
+            hash1 = utils.form_hmac(f1)
+            hash2 = utils.form_hmac(f2)
+        self.assertNotEqual(hash1, hash2)
+
+        with TemporaryUploadedFile('test', 'text/plain', 1, 'utf8') as 
some_file:
+            some_file.write(b'1')
+            some_file.seek(0)
+            f1 = HashTestFormWithFile({'name': 'joe'})
+            f2 = HashTestFormWithFile({'name': 'joe'}, files={'attachment': 
some_file})
+            hash1 = utils.form_hmac(f1)
+            hash2 = utils.form_hmac(f2)
+        self.assertNotEqual(hash1, hash2)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.3/tests/wizard/test_forms.py 
new/django-formtools-2.4/tests/wizard/test_forms.py
--- old/django-formtools-2.3/tests/wizard/test_forms.py 2021-04-19 
01:00:34.000000000 +0200
+++ new/django-formtools-2.4/tests/wizard/test_forms.py 2022-09-28 
20:33:04.000000000 +0200
@@ -91,6 +91,14 @@
         return http.HttpResponse("All good")
 
 
+class TestWizardWithCustomGetFormList(TestWizard):
+
+    form_list = [Step1]
+
+    def get_form_list(self):
+        return {'start': Step1, 'step2': Step2}
+
+
 class FormTests(TestCase):
     def test_form_init(self):
         testform = TestWizard.get_initkwargs([Step1, Step2])
@@ -236,6 +244,14 @@
         response, instance = testform(request)
         self.assertRaises(NotImplementedError, instance.done, None)
 
+    def test_goto_step_kwargs(self):
+        """Any extra kwarg given to render_goto_step is added to response 
context."""
+        request = get_request()
+        testform = TestWizard.as_view([('start', Step1), ('step2', Step2)])
+        _, instance = testform(request)
+        response = instance.render_goto_step('start', context_var='Foo')
+        self.assertIn('context_var', response.context_data.keys())
+
     def test_revalidation(self):
         request = get_request()
         testform = TestWizard.as_view([('start', Step1), ('step2', Step2)])
@@ -249,6 +265,25 @@
         response, instance = testform(request)
         self.assertEqual(response.status_code, 200)
 
+    def test_get_form_list_default(self):
+        request = get_request()
+        testform = TestWizard.as_view([('start', Step1)])
+        response, instance = testform(request)
+
+        form_list = instance.get_form_list()
+        self.assertEqual(form_list, {'start': Step1})
+        with self.assertRaises(KeyError):
+            instance.get_form('step2')
+
+    def test_get_form_list_custom(self):
+        request = get_request()
+        testform = TestWizardWithCustomGetFormList.as_view([('start', Step1)])
+        response, instance = testform(request)
+
+        form_list = instance.get_form_list()
+        self.assertEqual(form_list, {'start': Step1, 'step2': Step2})
+        self.assertIsInstance(instance.get_form('step2'), Step2)
+
 
 class SessionFormTests(TestCase):
     def test_init(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-formtools-2.3/tox.ini 
new/django-formtools-2.4/tox.ini
--- old/django-formtools-2.3/tox.ini    2021-04-19 01:00:34.000000000 +0200
+++ new/django-formtools-2.4/tox.ini    2022-09-28 20:33:04.000000000 +0200
@@ -1,8 +1,9 @@
 [tox]
 args_are_paths = false
 envlist =
-    py{36,37,38,39}-django{22,31,32}
-    py{38,39}-djangomain
+    py{36,37,38,39}-django22
+    py{36,37,38,39,310}-django32
+    py{38,39,310}-django{40,41,main}
 
 [testenv]
 usedevelop = true
@@ -11,8 +12,9 @@
 pip_pre = true
 deps =
     django22: Django>=2.2,<3.0
-    django31: Django>=3.1,<3.2
     django32: Django>=3.2,<4.0
+    django40: Django>=4.0,<4.1
+    django41: Django>=4.1,<4.2
     djangomain: https://github.com/django/django/archive/main.tar.gz
     -r{toxinidir}/tests/requirements.txt
 ignore_outcome =
@@ -26,3 +28,4 @@
     3.7: py37
     3.8: py38
     3.9: py39
+    3.10: py310

Reply via email to