pax_global_header00006660000000000000000000000064135722335130014516gustar00rootroot0000000000000052 comment=bffb403ceaca78563548dd01d1103373f12c80ac django-formtools-2.2/000077500000000000000000000000001357223351300146455ustar00rootroot00000000000000django-formtools-2.2/.coveragerc000066400000000000000000000001071357223351300167640ustar00rootroot00000000000000[run] source = formtools branch = 1 [report] omit = formtools/*tests* django-formtools-2.2/.editorconfig000066400000000000000000000003121357223351300173160ustar00rootroot00000000000000# http://editorconfig.org root = true [*] indent_style = space indent_size = 4 insert_final_newline = true trim_trailing_whitespace = true end_of_line = lf charset = utf-8 [*.bat] end_of_line = crlf django-formtools-2.2/.gitignore000066400000000000000000000001171357223351300166340ustar00rootroot00000000000000*.pyc .*.swp MANIFEST build dist *.egg-info docs/_build .tox/ *.egg/ .coverage django-formtools-2.2/.travis.yml000066400000000000000000000023151357223351300167570ustar00rootroot00000000000000language: python env: global: - PIP_WHEEL_DIR=$HOME/.wheels - PIP_FIND_LINKS=file://$HOME/.wheels matrix: include: - python: 3.4 env: TOXENV=py34-django-111 - python: 3.4 env: TOXENV=py34-django-20 - python: 3.5 env: TOXENV=py35-django-111 - python: 3.5 env: TOXENV=py35-django-20 - python: 3.5 env: TOXENV=py35-django-21 - python: 3.5 env: TOXENV=py35-django-22 - python: 3.6 env: TOXENV=py36-django-111 - python: 3.6 env: TOXENV=py36-django-20 - python: 3.6 env: TOXENV=py36-django-21 - python: 3.6 env: TOXENV=py36-django-22 - python: 3.6 env: TOXENV=py36-django-30 - python: 3.6 env: TOXENV=py36-django-master - python: 3.7 env: TOXENV=py37-django-111 - python: 3.7 env: TOXENV=py37-django-20 - python: 3.7 env: TOXENV=py37-django-21 - python: 3.7 env: TOXENV=py37-django-22 - python: 3.7 env: TOXENV=py37-django-30 - python: 3.7 env: TOXENV=py37-django-master install: - mkdir -p $PIP_WHEEL_DIR - pip wheel -r tests/requirements.txt tox coveralls - pip install coveralls tox script: - tox after_success: - coveralls django-formtools-2.2/.tx/000077500000000000000000000000001357223351300153565ustar00rootroot00000000000000django-formtools-2.2/.tx/config000066400000000000000000000004001357223351300165400ustar00rootroot00000000000000[main] host = https://www.transifex.com lang_map = sr@latin:sr_Latn, zh_CN:zh_Hans, zh_TW:zh_Hant [django-formtools.main] file_filter = formtools/locale//LC_MESSAGES/django.po source_file = formtools/locale/en/LC_MESSAGES/django.po source_lang = en django-formtools-2.2/AUTHORS.rst000066400000000000000000000014631357223351300165300ustar00rootroot00000000000000Authors ======= * Adam Haney * Adrian Holovaty * Alasdair Nicol * Alex Gaynor * Andrew Godwin * Anubhav Joshi * Areski Belaid * Aymeric Augustin * Berker Peksag * Bouke Haarsma * Carl Meyer * Christopher Medrela * Claude Paroz * Curtis Maloney * Erik Romijn * Florian Apolloner * Gary Wilson Jr * Gordon Pendleton * Greg Chapple * Hiroki Kiyohara * Honza Král * Ian Clelland * Ian Lee * Ilya Baryshev * Jacob Kaplan-Moss * James Jenkins * Jannis Leidel * Jason Myers * Julian Wachholz * Julien Phalip * Justin Bronn * Karen Tracey * Kathryn Killebrew * Katie Sandford * Kent Hauser * Loic Bistuer * Luke Plant * Malcolm Tredinnick * Maurycy Pietrzak * Preston Holmes * Preston Timmons * Ramiro Morales * Rodolfo Carvalho * Russell Keith-Magee * Simon Charette * Stephan Jaekel * Tim Graham * Trey Hunner * Vishal Lal django-formtools-2.2/CONTRIBUTING.rst000066400000000000000000000005221357223351300173050ustar00rootroot00000000000000.. image:: https://jazzband.co/static/img/jazzband.svg :target: https://jazzband.co/ :alt: Jazzband This is a `Jazzband `_ project. By contributing you agree to abide by the `Contributor Code of Conduct `_ and follow the `guidelines `_. django-formtools-2.2/LICENSE000066400000000000000000000030321357223351300156500ustar00rootroot00000000000000Copyright (c) Django Software Foundation and individual contributors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of django-formtools nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. django-formtools-2.2/MANIFEST.in000066400000000000000000000003241357223351300164020ustar00rootroot00000000000000include LICENSE include AUTHORS.rst include README.rst include CONTRIBUTING.rst include tox.ini include .coveragerc recursive-include formtools/locale *.po *.mo recursive-include docs * recursive-include tests * django-formtools-2.2/Makefile000066400000000000000000000012371357223351300163100ustar00rootroot00000000000000export DJANGO_SETTINGS_MODULE = tests.settings export PYTHONPATH := $(shell pwd) clean: git clean -Xfd maketranslations: cd formtools; django-admin.py makemessages -a -v2 pulltranslations: tx pull -f -a --minimum-perc=1 compiletranslations: cd formtools; django-admin.py compilemessages translations: pulltranslations maketranslations compiletranslations @echo "Pulling, making and compiling translations" docs: $(MAKE) -C docs clean html test: @flake8 @isort --recursive --check-only --diff formtools tests @ coverage run `which django-admin.py` test tests @coverage report .PHONY: clean docs test maketranslations pulltranslations compiletranslations django-formtools-2.2/README.rst000066400000000000000000000050661357223351300163430ustar00rootroot00000000000000================ 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://img.shields.io/travis/jazzband/django-formtools/master.svg :alt: TravisCI Build Status :target: https://travis-ci.org/jazzband/django-formtools .. image:: https://img.shields.io/coveralls/jazzband/django-formtools/master.svg :alt: Coveralls Test Coverage :target: https://coveralls.io/r/jazzband/django-formtools?branch=master 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 ... py35-django-AB py35-django-master You can run each environment with the ``-e`` option:: $ tox -e py35-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 py35-django-AB __ https://tox.readthedocs.io/en/latest/install.html django-formtools-2.2/docs/000077500000000000000000000000001357223351300155755ustar00rootroot00000000000000django-formtools-2.2/docs/Makefile000066400000000000000000000152221357223351300172370ustar00rootroot00000000000000# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = BUILDDIR = _build # User-friendly check for sphinx-build ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) endif # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . # the i18n builder cannot share the environment and doctrees with the others I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " singlehtml to make a single large HTML file" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " devhelp to make HTML files and a Devhelp project" @echo " epub to make an epub" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " latexpdf to make LaTeX files and run them through pdflatex" @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" @echo " text to make text files" @echo " man to make manual pages" @echo " texinfo to make Texinfo files" @echo " info to make Texinfo files and run them through makeinfo" @echo " gettext to make PO message catalogs" @echo " changes to make an overview of all changed/added/deprecated items" @echo " xml to make Docutils-native XML files" @echo " pseudoxml to make pseudoxml-XML files for display purposes" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" clean: rm -rf $(BUILDDIR)/* html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." singlehtml: $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml @echo @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/django-formtools.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/django-formtools.qhc" devhelp: $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp @echo @echo "Build finished." @echo "To view the help file:" @echo "# mkdir -p $$HOME/.local/share/devhelp/django-formtools" @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/django-formtools" @echo "# devhelp" epub: $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub @echo @echo "Build finished. The epub file is in $(BUILDDIR)/epub." latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make' in that directory to run these through (pdf)latex" \ "(use \`make latexpdf' here to do that automatically)." latexpdf: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through pdflatex..." $(MAKE) -C $(BUILDDIR)/latex all-pdf @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." latexpdfja: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through platex and dvipdfmx..." $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." text: $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text @echo @echo "Build finished. The text files are in $(BUILDDIR)/text." man: $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man @echo @echo "Build finished. The manual pages are in $(BUILDDIR)/man." texinfo: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." @echo "Run \`make' in that directory to run these through makeinfo" \ "(use \`make info' here to do that automatically)." info: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo "Running Texinfo files through makeinfo..." make -C $(BUILDDIR)/texinfo info @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." gettext: $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale @echo @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." xml: $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml @echo @echo "Build finished. The XML files are in $(BUILDDIR)/xml." pseudoxml: $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml @echo @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." django-formtools-2.2/docs/changelog.rst000066400000000000000000000033451357223351300202630ustar00rootroot00000000000000Changelog ========= This page details the changes in the various ``django-formtools`` releases. 2.2 (2019-12-05) ---------------- - Dropped testing for Django 1.8, 1.9, 1.10. - Dropped support for Python 2. - Added support for Django 2.1, 2.2, 3.0, and Python 3.7. - Updated translations from Transifex. 2.1 (2017-10-04) ---------------- - Added testing for Django 1.11 (no code changes were required). - Added support for Django 2.0. - Dropped testing for Python 3.3 (now end-of-life) on Django 1.8. 2.0 (2017-01-07) ---------------- - Added the ``request`` parameter to :meth:`FormPreview.parse_params() `. - Added support for Django 1.10. - Dropped support for Django 1.7 and Python 3.2 on Django 1.8. 1.0 (2015-03-25) ---------------- - Added the ``request`` parameter to :meth:`WizardView.get_prefix() `. This was originally reported and fixed in the main Django repository: https://code.djangoproject.com/ticket/19981 - A :doc:`form wizard ` using the :class:`~formtools.wizard.views.CookieWizardView` will now ignore an invalid cookie, and the wizard will restart from the first step. An invalid cookie can occur in cases of intentional manipulation, but also after a secret key change. Previously, this would raise ``WizardViewCookieModified``, a ``SuspiciousOperation``, causing an exception for any user with an invalid cookie upon every request to the wizard, until the cookie is removed. This was originally reported and fixed in the main Django repository: https://code.djangoproject.com/ticket/22638 - Added missing form element to default wizard form template ``formtools/wizard/wizard_form.html``. django-formtools-2.2/docs/conf.py000066400000000000000000000247121357223351300171020ustar00rootroot00000000000000# django-formtools documentation build configuration file, created by # sphinx-quickstart on Mon Oct 6 21:51:30 2014. # # This file is execfile()d with the current directory set to its containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import os import sys os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tests.settings') # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.insert(0, os.path.abspath('extensions')) sys.path.insert(0, os.path.abspath('..')) # -- General configuration ----------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. # needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.ifconfig', 'sphinx.ext.viewcode', 'settings'] # Add any paths that contain templates here, relative to this directory. # templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. # source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # General information about the project. project = 'django-formtools' copyright = '2014, Django Software Foundation and individual contributors' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. try: from formtools import __version__ # The short X.Y version. version = '.'.join(__version__.split('.')[:2]) # The full version, including alpha/beta/rc tags. release = __version__ except ImportError: version = release = 'dev' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: # today = '' # Else, today_fmt is used as the format for a strftime call. # today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = ['_build'] # The reST default role (used for this markup: `text`) to use for all documents. # default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. # add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). # add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. # show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. # modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. # keep_warnings = False # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. html_theme = 'default' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. # html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. # html_theme_path = ['_theme'] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". # html_title = None # A shorter title for the navigation bar. Default is the same as html_title. # html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. # html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. # html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". # html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. # html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. # html_use_smartypants = True # Custom sidebar templates, maps document names to template names. # html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. # html_additional_pages = {} # If false, no module index is generated. # html_domain_indices = True # If false, no index is generated. # html_use_index = True # If true, the index is split into individual pages for each letter. # html_split_index = False # If true, links to the reST sources are added to the pages. # html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. # html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. # html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. # html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). # html_file_suffix = None # Output file base name for HTML help builder. htmlhelp_basename = 'django-formtoolsdoc' # -- Options for LaTeX output -------------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). # 'papersize': 'letterpaper', # The font size ('10pt', '11pt' or '12pt'). # 'pointsize': '10pt', # Additional stuff for the LaTeX preamble. # 'preamble': '', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ ('index', 'django-formtools.tex', 'django-formtools Documentation', 'Django Software Foundation and individual contributors', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. # latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. # latex_use_parts = False # If true, show page references after internal links. # latex_show_pagerefs = False # If true, show URL addresses after external links. # latex_show_urls = False # Documents to append as an appendix to all manuals. # latex_appendices = [] # If false, no module index is generated. # latex_domain_indices = True # -- Options for manual page output -------------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ ('index', 'django-formtools', 'django-formtools Documentation', ['Django Software Foundation and individual contributors'], 1) ] # If true, show URL addresses after external links. # man_show_urls = False # -- Options for Texinfo output ------------------------------------------------ # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ ('index', 'django-formtools', 'django-formtools Documentation', 'Django Software Foundation and individual contributors', 'django-formtools', 'One line description of project.', 'Miscellaneous'), ] # Documents to append as an appendix to all manuals. # texinfo_appendices = [] # If false, no module index is generated. # texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. # texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. # texinfo_no_detailmenu = False # -- Options for Epub output --------------------------------------------------- # Bibliographic Dublin Core info. epub_title = 'django-formtools' epub_author = 'Django Software Foundation and individual contributors' epub_publisher = 'Django Software Foundation and individual contributors' epub_copyright = '2014, Django Software Foundation and individual contributors' # The language of the text. It defaults to the language option # or en if the language is not set. # epub_language = '' # The scheme of the identifier. Typical schemes are ISBN or URL. # epub_scheme = '' # The unique identifier of the text. This can be a ISBN number # or the project homepage. # epub_identifier = '' # A unique identification for the text. # epub_uid = '' # A tuple containing the cover image and cover page html template filenames. # epub_cover = () # A sequence of (type, uri, title) tuples for the guide element of content.opf. # epub_guide = () # HTML files that should be inserted before the pages created by sphinx. # The format is a list of tuples containing the path and title. # epub_pre_files = [] # HTML files shat should be inserted after the pages created by sphinx. # The format is a list of tuples containing the path and title. # epub_post_files = [] # A list of files that should not be packed into the epub file. # epub_exclude_files = [] # The depth of the table of contents in toc.ncx. # epub_tocdepth = 3 # Allow duplicate toc entries. # epub_tocdup = True # Fix unsupported image types using the PIL. # epub_fix_images = False # Scale large images. # epub_max_image_width = 0 # If 'no', URL addresses will not be shown. # epub_show_urls = 'inline' # If false, no index is generated. # epub_use_index = True # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { 'http://docs.python.org/': None, 'django': ('http://docs.djangoproject.com/en/dev/', 'http://docs.djangoproject.com/en/dev/_objects/'), } django-formtools-2.2/docs/extensions/000077500000000000000000000000001357223351300177745ustar00rootroot00000000000000django-formtools-2.2/docs/extensions/__init__.py000066400000000000000000000000001357223351300220730ustar00rootroot00000000000000django-formtools-2.2/docs/extensions/settings.py000066400000000000000000000002311357223351300222020ustar00rootroot00000000000000def setup(app): app.add_crossref_type( directivename="setting", rolename="setting", indextemplate="pair: %s; setting", ) django-formtools-2.2/docs/index.rst000066400000000000000000000054261357223351300174450ustar00rootroot00000000000000==================== The "form tools" app ==================== .. module:: formtools :synopsis: A set of high-level abstractions for Django forms (:mod:`django.forms`).. django-formtools is a collection of assorted utilities that are useful for specific form use cases. Currently there are two tools: a helper for form previews and a form wizard view. .. toctree:: preview wizard changelog Installation ============ To install django-formtools use your favorite packaging tool, e.g.pip:: pip install django-formtools Or download the source distribution from PyPI_ at https://pypi.python.org/pypi/django-formtools, decompress the file and run ``python setup.py install`` in the unpacked directory. Then add ``'formtools'`` to your :setting:`INSTALLED_APPS` setting:: INSTALLED_APPS = ( # ... 'formtools', ) .. note:: Adding ``'formtools'`` to your ``INSTALLED_APPS`` setting is required for translations and templates to work. Using django-formtools without adding it to your ``INSTALLED_APPS`` setting is not recommended. .. _PyPI: https://pypi.python.org/ Internationalization ==================== Formtools has its own catalog of translations, in the directory ``formtools/locale``, and it's not loaded automatically like Django's general catalog in ``django/conf/locale``. If you want formtools's texts to be translated, like the templates, you must include :mod:`formtools` in the :setting:`INSTALLED_APPS` setting, so the internationalization system can find the catalog, as explained in :ref:`django:how-django-discovers-translations`. Releases ======== New releases of django-formtools should always be compatible with the latest stable release of Django. If a new version of Django contains backwards incompatible changes that affect formtools, a new release of formtools will be issued shortly after the release of the new Django version. Version numbers follow the appropriate Python standards, e.g. PEPs 386_ and 440_. .. _386: http://www.python.org/dev/peps/pep-0386/ .. _440: http://www.python.org/dev/peps/pep-0440/ How to migrate ============== If you've used the old ``django.contrib.formtools`` package follow these two easy steps to update your code: 1. Install the third-party ``django-formtools`` package. 2. Change your app's import statements to reference the new packages. For example, change this:: from django.contrib.formtools.wizard.views import WizardView ...to this:: from formtools.wizard.views import WizardView The code in the new package is the same (it was copied directly from Django), so you don't have to worry about backwards compatibility in terms of functionality. Only the imports have changed. Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` django-formtools-2.2/docs/make.bat000066400000000000000000000151011357223351300172000ustar00rootroot00000000000000@ECHO OFF REM Command file for Sphinx documentation if "%SPHINXBUILD%" == "" ( set SPHINXBUILD=sphinx-build ) set BUILDDIR=_build set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . set I18NSPHINXOPTS=%SPHINXOPTS% . if NOT "%PAPER%" == "" ( set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% ) if "%1" == "" goto help if "%1" == "help" ( :help echo.Please use `make ^` where ^ is one of echo. html to make standalone HTML files echo. dirhtml to make HTML files named index.html in directories echo. singlehtml to make a single large HTML file echo. pickle to make pickle files echo. json to make JSON files echo. htmlhelp to make HTML files and a HTML help project echo. qthelp to make HTML files and a qthelp project echo. devhelp to make HTML files and a Devhelp project echo. epub to make an epub echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter echo. text to make text files echo. man to make manual pages echo. texinfo to make Texinfo files echo. gettext to make PO message catalogs echo. changes to make an overview over all changed/added/deprecated items echo. xml to make Docutils-native XML files echo. pseudoxml to make pseudoxml-XML files for display purposes echo. linkcheck to check all external links for integrity echo. doctest to run all doctests embedded in the documentation if enabled goto end ) if "%1" == "clean" ( for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i del /q /s %BUILDDIR%\* goto end ) %SPHINXBUILD% 2> nul if errorlevel 9009 ( echo. echo.The 'sphinx-build' command was not found. Make sure you have Sphinx echo.installed, then set the SPHINXBUILD environment variable to point echo.to the full path of the 'sphinx-build' executable. Alternatively you echo.may add the Sphinx directory to PATH. echo. echo.If you don't have Sphinx installed, grab it from echo.http://sphinx-doc.org/ exit /b 1 ) if "%1" == "html" ( %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/html. goto end ) if "%1" == "dirhtml" ( %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. goto end ) if "%1" == "singlehtml" ( %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. goto end ) if "%1" == "pickle" ( %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can process the pickle files. goto end ) if "%1" == "json" ( %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can process the JSON files. goto end ) if "%1" == "htmlhelp" ( %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can run HTML Help Workshop with the ^ .hhp project file in %BUILDDIR%/htmlhelp. goto end ) if "%1" == "qthelp" ( %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can run "qcollectiongenerator" with the ^ .qhcp project file in %BUILDDIR%/qthelp, like this: echo.^> qcollectiongenerator %BUILDDIR%\qthelp\django-formtools.qhcp echo.To view the help file: echo.^> assistant -collectionFile %BUILDDIR%\qthelp\django-formtools.ghc goto end ) if "%1" == "devhelp" ( %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp if errorlevel 1 exit /b 1 echo. echo.Build finished. goto end ) if "%1" == "epub" ( %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub if errorlevel 1 exit /b 1 echo. echo.Build finished. The epub file is in %BUILDDIR%/epub. goto end ) if "%1" == "latex" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex if errorlevel 1 exit /b 1 echo. echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. goto end ) if "%1" == "latexpdf" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex cd %BUILDDIR%/latex make all-pdf cd %BUILDDIR%/.. echo. echo.Build finished; the PDF files are in %BUILDDIR%/latex. goto end ) if "%1" == "latexpdfja" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex cd %BUILDDIR%/latex make all-pdf-ja cd %BUILDDIR%/.. echo. echo.Build finished; the PDF files are in %BUILDDIR%/latex. goto end ) if "%1" == "text" ( %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text if errorlevel 1 exit /b 1 echo. echo.Build finished. The text files are in %BUILDDIR%/text. goto end ) if "%1" == "man" ( %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man if errorlevel 1 exit /b 1 echo. echo.Build finished. The manual pages are in %BUILDDIR%/man. goto end ) if "%1" == "texinfo" ( %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo if errorlevel 1 exit /b 1 echo. echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. goto end ) if "%1" == "gettext" ( %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale if errorlevel 1 exit /b 1 echo. echo.Build finished. The message catalogs are in %BUILDDIR%/locale. goto end ) if "%1" == "changes" ( %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes if errorlevel 1 exit /b 1 echo. echo.The overview file is in %BUILDDIR%/changes. goto end ) if "%1" == "linkcheck" ( %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck if errorlevel 1 exit /b 1 echo. echo.Link check complete; look for any errors in the above output ^ or in %BUILDDIR%/linkcheck/output.txt. goto end ) if "%1" == "doctest" ( %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest if errorlevel 1 exit /b 1 echo. echo.Testing of doctests in the sources finished, look at the ^ results in %BUILDDIR%/doctest/output.txt. goto end ) if "%1" == "xml" ( %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml if errorlevel 1 exit /b 1 echo. echo.Build finished. The XML files are in %BUILDDIR%/xml. goto end ) if "%1" == "pseudoxml" ( %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml if errorlevel 1 exit /b 1 echo. echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml. goto end ) :end django-formtools-2.2/docs/preview.rst000066400000000000000000000104621357223351300200130ustar00rootroot00000000000000============ Form preview ============ .. module:: formtools.preview :synopsis: Displays an HTML form, forces a preview, then does something with the submission. Django comes with an optional "form preview" application that helps automate the following workflow: "Display an HTML form, force a preview, then do something with the submission." To force a preview of a form submission, all you have to do is write a short Python class. Overview ========= Given a :class:`~django.forms.Form` subclass that you define, this application takes care of the following workflow: 1. Displays the form as HTML on a Web page. 2. Validates the form data when it's submitted via POST. a. If it's valid, displays a preview page. b. If it's not valid, redisplays the form with error messages. 3. When the "confirmation" form is submitted from the preview page, calls a hook that you define -- a :meth:`~FormPreview.done()` method that gets passed the valid data. The framework enforces the required preview by passing a shared-secret hash to the preview page via hidden form fields. If somebody tweaks the form parameters on the preview page, the form submission will fail the hash-comparison test. How to use ``FormPreview`` ========================== 1. Point Django at the default FormPreview templates. There are two ways to do this: * Add ``'formtools'`` to your :setting:`INSTALLED_APPS` setting. This will work if your :setting:`TEMPLATES` setting includes the ``app_directories`` template loader (which is the case by default). See the :ref:`template loader docs ` for more. * Otherwise, determine the full filesystem path to the :file:`formtools/templates` directory and add that directory to your :setting:`DIRS ` option in the :setting:`TEMPLATES` setting. 2. Create a :class:`~FormPreview` subclass that overrides the ``done()`` method:: from django.http import HttpResponseRedirect from formtools.preview import FormPreview from myapp.models import SomeModel class SomeModelFormPreview(FormPreview): def done(self, request, cleaned_data): # Do something with the cleaned_data, then redirect # to a "success" page. return HttpResponseRedirect('/form/success') This method takes an :class:`~django.http.HttpRequest` object and a dictionary of the form data after it has been validated and cleaned. It should return an :class:`~django.http.HttpResponseRedirect` that is the end result of the form being submitted. 3. Change your URLconf to point to an instance of your :class:`~FormPreview` subclass:: from django import forms from myapp.forms import SomeModelForm from myapp.preview import SomeModelFormPreview ...and add the following line to the appropriate model in your URLconf:: url(r'^post/$', SomeModelFormPreview(SomeModelForm)), where ``SomeModelForm`` is a Form or ModelForm class for the model. 4. Run the Django server and visit :file:`/post/` in your browser. ``FormPreview`` classes ======================= .. class:: FormPreview A :class:`~FormPreview` class is a simple Python class that represents the preview workflow. :class:`~FormPreview` classes must subclass ``FormPreview`` and override the ``done()`` method. They can live anywhere in your codebase. ``FormPreview`` templates ========================= .. attribute:: FormPreview.form_template .. attribute:: FormPreview.preview_template By default, the form is rendered via the template :file:`formtools/form.html`, and the preview page is rendered via the template :file:`formtools/preview.html`. These values can be overridden for a particular form preview by setting :attr:`~FormPreview.preview_template` and :attr:`~FormPreview.form_template` attributes on the FormPreview subclass. See :file:`formtools/templates` for the default templates. Required methods ================ .. automethod:: FormPreview.done Optional methods ================ .. automethod:: FormPreview.get_auto_id .. automethod:: FormPreview.get_initial .. automethod:: FormPreview.get_context .. automethod:: FormPreview.parse_params .. automethod:: FormPreview.process_preview .. automethod:: FormPreview.security_hash .. automethod:: FormPreview.failed_hash django-formtools-2.2/docs/requirements.txt000066400000000000000000000000071357223351300210560ustar00rootroot00000000000000Django django-formtools-2.2/docs/wizard.rst000066400000000000000000000702531357223351300176360ustar00rootroot00000000000000=========== Form wizard =========== .. module:: formtools.wizard.views :synopsis: Splits forms across multiple Web pages. The form wizard application splits :mod:`forms ` across multiple Web pages. It maintains state in one of the backends so that the full server-side processing can be delayed until the submission of the final form. You might want to use this if you have a lengthy form that would be too unwieldy for display on a single page. The first page might ask the user for core information, the second page might ask for less important information, etc. The term "wizard", in this context, is `explained on Wikipedia`_. .. _explained on Wikipedia: http://en.wikipedia.org/wiki/Wizard_%28software%29 How it works ============ Here's the basic workflow for how a user would use a wizard: 1. The user visits the first page of the wizard, fills in the form and submits it. 2. The server validates the data. If it's invalid, the form is displayed again, with error messages. If it's valid, the server saves the current state of the wizard in the backend and redirects to the next step. 3. Step 1 and 2 repeat, for every subsequent form in the wizard. 4. Once the user has submitted all the forms and all the data has been validated, the wizard processes the data -- saving it to the database, sending an email, or whatever the application needs to do. Usage ===== This application handles as much machinery for you as possible. Generally, you just have to do these things: 1. Define a number of :class:`~django.forms.Form` classes -- one per wizard page. 2. Create a :class:`WizardView` subclass that specifies what to do once all of your forms have been submitted and validated. This also lets you override some of the wizard's behavior. 3. Create some templates that render the forms. You can define a single, generic template to handle every one of the forms, or you can define a specific template for each form. 4. Add ``formtools`` to your :setting:`INSTALLED_APPS` list in your settings file. 5. Point your URLconf at your :class:`WizardView` :meth:`~WizardView.as_view` method. Defining ``Form`` classes ------------------------- The first step in creating a form wizard is to create the :class:`~django.forms.Form` classes. These should be standard :class:`django.forms.Form` classes, covered in the :mod:`forms documentation `. These classes can live anywhere in your codebase, but convention is to put them in a file called :file:`forms.py` in your application. For example, let's write a "contact form" wizard, where the first page's form collects the sender's email address and subject, and the second page collects the message itself. Here's what the :file:`forms.py` might look like:: from django import forms class ContactForm1(forms.Form): subject = forms.CharField(max_length=100) sender = forms.EmailField() class ContactForm2(forms.Form): message = forms.CharField(widget=forms.Textarea) .. note:: In order to use :class:`~django.forms.FileField` in any form, see the section :ref:`Handling files ` below to learn more about what to do. Creating a ``WizardView`` subclass ---------------------------------- .. class:: SessionWizardView .. class:: CookieWizardView The next step is to create a :class:`formtools.wizard.views.WizardView` subclass. You can also use the :class:`SessionWizardView` or :class:`CookieWizardView` classes which preselect the backend used for storing information during execution of the wizard (as their names indicate, server-side sessions and browser cookies respectively). .. note:: To use the :class:`SessionWizardView` follow the instructions in the :mod:`sessions documentation ` on how to enable sessions. We will use the :class:`SessionWizardView` in all examples but is completely fine to use the :class:`CookieWizardView` instead. As with your :class:`~django.forms.Form` classes, this :class:`WizardView` class can live anywhere in your codebase, but convention is to put it in :file:`views.py`. The only requirement on this subclass is that it implement a :meth:`~WizardView.done()` method. .. method:: WizardView.done(form_list, form_dict, **kwargs) This method specifies what should happen when the data for *every* form is submitted and validated. This method is passed a list and dictionary of validated :class:`~django.forms.Form` instances. In this simplistic example, rather than performing any database operation, the method simply renders a template of the validated data:: from django.shortcuts import render from formtools.wizard.views import SessionWizardView class ContactWizard(SessionWizardView): def done(self, form_list, **kwargs): return render(self.request, 'done.html', { 'form_data': [form.cleaned_data for form in form_list], }) Note that this method will be called via ``POST``, so it really ought to be a good Web citizen and redirect after processing the data. Here's another example:: from django.http import HttpResponseRedirect from formtools.wizard.views import SessionWizardView class ContactWizard(SessionWizardView): def done(self, form_list, **kwargs): do_something_with_the_form_data(form_list) return HttpResponseRedirect('/page-to-redirect-to-when-done/') In addition to ``form_list``, the :meth:`~WizardView.done` method is passed a ``form_dict``, which allows you to access the wizard's forms based on their step names. This is especially useful when using :class:`NamedUrlWizardView`, for example:: def done(self, form_list, form_dict, **kwargs): user = form_dict['user'].save() credit_card = form_dict['credit_card'].save() # ... .. versionchanged:: 1.7 Previously, the ``form_dict`` argument wasn't passed to the ``done`` method. See the section :ref:`Advanced WizardView methods ` below to learn about more :class:`WizardView` hooks. Creating templates for the forms -------------------------------- Next, you'll need to create a template that renders the wizard's forms. By default, every form uses a template called :file:`formtools/wizard/wizard_form.html`. You can change this template name by overriding either the :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` attribute or the :meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names()` method, which are documented in the :class:`~django.views.generic.base.TemplateResponseMixin` documentation. The latter one allows you to use a different template for each form (:ref:`see the example below `). This template expects a ``wizard`` object that has various items attached to it: * ``form`` -- The :class:`~django.forms.Form` or :class:`~django.forms.formsets.BaseFormSet` instance for the current step (either empty or with errors). * ``steps`` -- A helper object to access the various steps related data: * ``step0`` -- The current step (zero-based). * ``step1`` -- The current step (one-based). * ``count`` -- The total number of steps. * ``first`` -- The first step. * ``last`` -- The last step. * ``current`` -- The current (or first) step. * ``next`` -- The next step. * ``prev`` -- The previous step. * ``index`` -- The index of the current step. * ``all`` -- A list of all steps of the wizard. You can supply additional context variables by using the :meth:`~WizardView.get_context_data` method of your :class:`WizardView` subclass. Here's a full example template: .. code-block:: html+django {% extends "base.html" %} {% load i18n %} {% block head %} {{ wizard.form.media }} {% endblock %} {% block content %}

Step {{ wizard.steps.step1 }} of {{ wizard.steps.count }}

{% csrf_token %} {{ wizard.management_form }} {% if wizard.form.forms %} {{ wizard.form.management_form }} {% for form in wizard.form.forms %} {{ form }} {% endfor %} {% else %} {{ wizard.form }} {% endif %}
{% if wizard.steps.prev %} {% endif %}
{% endblock %} .. note:: Note that ``{{ wizard.management_form }}`` **must be used** for the wizard to work properly. .. _wizard-urlconf: Hooking the wizard into a URLconf --------------------------------- .. method:: WizardView.as_view() Finally, we need to specify which forms to use in the wizard, and then deploy the new :class:`WizardView` object at a URL in the ``urls.py``. The wizard's ``as_view()`` method takes a list of your :class:`~django.forms.Form` classes as an argument during instantiation:: from django.conf.urls import url from myapp.forms import ContactForm1, ContactForm2 from myapp.views import ContactWizard urlpatterns = [ url(r'^contact/$', ContactWizard.as_view([ContactForm1, ContactForm2])), ] You can also pass the form list as a class attribute named ``form_list``:: class ContactWizard(WizardView): form_list = [ContactForm1, ContactForm2] .. _wizard-template-for-each-form: Using a different template for each form ---------------------------------------- As mentioned above, you may specify a different template for each form. Consider an example using a form wizard to implement a multi-step checkout process for an online store. In the first step, the user specifies a billing and shipping address. In the second step, the user chooses payment type. If they chose to pay by credit card, they will enter credit card information in the next step. In the final step, they will confirm the purchase. Here's what the view code might look like:: from django.http import HttpResponseRedirect from formtools.wizard.views import SessionWizardView FORMS = [("address", myapp.forms.AddressForm), ("paytype", myapp.forms.PaymentChoiceForm), ("cc", myapp.forms.CreditCardForm), ("confirmation", myapp.forms.OrderForm)] TEMPLATES = {"address": "checkout/billingaddress.html", "paytype": "checkout/paymentmethod.html", "cc": "checkout/creditcard.html", "confirmation": "checkout/confirmation.html"} def pay_by_credit_card(wizard): """Return true if user opts to pay by credit card""" # Get cleaned data from payment step cleaned_data = wizard.get_cleaned_data_for_step('paytype') or {'method': 'none'} # Return true if the user selected credit card return cleaned_data['method'] == 'cc' class OrderWizard(SessionWizardView): def get_template_names(self): return [TEMPLATES[self.steps.current]] def done(self, form_list, **kwargs): do_something_with_the_form_data(form_list) return HttpResponseRedirect('/page-to-redirect-to-when-done/') ... The ``urls.py`` file would contain something like:: urlpatterns = [ url(r'^checkout/$', OrderWizard.as_view(FORMS, condition_dict={'cc': pay_by_credit_card})), ] The ``condition_dict`` can be passed as attribute for the ``as_view()`` method or as a class attribute named ``condition_dict``:: class OrderWizard(WizardView): condition_dict = {'cc': pay_by_credit_card} Note that the ``OrderWizard`` object is initialized with a list of pairs. The first element in the pair is a string that corresponds to the name of the step and the second is the form class. In this example, the :meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names()` method returns a list containing a single template, which is selected based on the name of the current step. .. _wizardview-advanced-methods: Advanced ``WizardView`` methods =============================== .. class:: WizardView Aside from the :meth:`~done()` method, :class:`WizardView` offers a few advanced method hooks that let you customize how your wizard works. Some of these methods take an argument ``step``, which is a zero-based counter as string representing the current step of the wizard. (E.g., the first form is ``'0'`` and the second form is ``'1'``) .. method:: WizardView.get_form_prefix(step=None, form=None) Returns the prefix which will be used when calling the form for the given step. ``step`` contains the step name, ``form`` the form class which will be called with the returned prefix. If no ``step`` is given, it will be determined automatically. By default, this simply uses the step itself and the ``form`` parameter is not used. For more, see the :ref:`form prefix documentation `. .. method:: WizardView.get_form_initial(step) Returns a dictionary which will be passed as the :attr:`~django.forms.Form.initial` argument when instantiating the Form instance for step ``step``. If no initial data was provided while initializing the form wizard, an empty dictionary should be returned. The default implementation:: def get_form_initial(self, step): return self.initial_dict.get(step, {}) .. method:: WizardView.get_form_kwargs(step) Returns a dictionary which will be used as the keyword arguments when instantiating the form instance on given ``step``. The default implementation:: def get_form_kwargs(self, step): return {} .. method:: WizardView.get_form_instance(step) This method will be called only if a :class:`~django.forms.ModelForm` is used as the form for step ``step``. Returns an :class:`~django.db.models.Model` object which will be passed as the ``instance`` argument when instantiating the ``ModelForm`` for step ``step``. If no instance object was provided while initializing the form wizard, ``None`` will be returned. The default implementation:: def get_form_instance(self, step): return self.instance_dict.get(step, None) .. method:: WizardView.get_context_data(form, **kwargs) Returns the template context for a step. You can overwrite this method to add more data for all or some steps. This method returns a dictionary containing the rendered form step. The default template context variables are: * Any extra data the storage backend has stored * ``wizard`` -- a dictionary representation of the wizard instance with the following key/values: * ``form`` -- :class:`~django.forms.Form` or :class:`~django.forms.formsets.BaseFormSet` instance for the current step * ``steps`` -- A helper object to access the various steps related data * ``management_form`` -- all the management data for the current step Example to add extra variables for a specific step:: def get_context_data(self, form, **kwargs): context = super().get_context_data(form=form, **kwargs) if self.steps.current == 'my_step_name': context.update({'another_var': True}) return context .. method:: WizardView.get_prefix(request, *args, **kwargs) This method returns a prefix for use by the storage backends. Backends use the prefix as a mechanism to allow data to be stored separately for each wizard. This allows wizards to store their data in a single backend without overwriting each other. You can change this method to make the wizard data prefix more unique to, e.g. have multiple instances of one wizard in one session. Default implementation:: def get_prefix(self, request, *args, **kwargs): # use the lowercase underscore version of the class name return normalize_name(self.__class__.__name__) .. versionchanged:: 1.0 The ``request`` parameter was added. .. method:: WizardView.get_form(step=None, data=None, files=None) This method constructs the form for a given ``step``. If no ``step`` is defined, the current step will be determined automatically. If you override ``get_form``, however, you will need to set ``step`` yourself using ``self.steps.current`` as in the example below. The method gets three arguments: * ``step`` -- The step for which the form instance should be generated. * ``data`` -- Gets passed to the form's data argument * ``files`` -- Gets passed to the form's files argument You can override this method to add extra arguments to the form instance. Example code to add a user attribute to the form on step 2:: def get_form(self, step=None, data=None, files=None): form = super().get_form(step, data, files) # determine the step if not given if step is None: step = self.steps.current if step == '1': form.user = self.request.user return form .. method:: WizardView.process_step(form) Hook for modifying the wizard's internal state, given a fully validated :class:`~django.forms.Form` object. The Form is guaranteed to have clean, valid data. This method gives you a way to post-process the form data before the data gets stored within the storage backend. By default it just returns the ``form.data`` dictionary. You should not manipulate the data here but you can use it to do some extra work if needed (e.g. set storage extra data). Note that this method is called every time a page is rendered for *all* submitted steps. The default implementation:: def process_step(self, form): return self.get_form_step_data(form) .. method:: WizardView.process_step_files(form) This method gives you a way to post-process the form files before the files gets stored within the storage backend. By default it just returns the ``form.files`` dictionary. You should not manipulate the data here but you can use it to do some extra work if needed (e.g. set storage extra data). Default implementation:: def process_step_files(self, form): return self.get_form_step_files(form) .. method:: WizardView.render_goto_step(step, goto_step, **kwargs) This method is called when the step should be changed to something else than the next step. By default, this method just stores the requested step ``goto_step`` in the storage and then renders the new step. If you want to store the entered data of the current step before rendering the next step, you can overwrite this method. .. method:: WizardView.render_revalidation_failure(step, form, **kwargs) When the wizard thinks all steps have passed it revalidates all forms with the data from the backend storage. If any of the forms don't validate correctly, this method gets called. This method expects two arguments, ``step`` and ``form``. The default implementation resets the current step to the first failing form and redirects the user to the invalid form. Default implementation:: def render_revalidation_failure(self, step, form, **kwargs): self.storage.current_step = step return self.render(form, **kwargs) .. method:: WizardView.get_form_step_data(form) This method fetches the data from the ``form`` Form instance and returns the dictionary. You can use this method to manipulate the values before the data gets stored in the storage backend. Default implementation:: def get_form_step_data(self, form): return form.data .. method:: WizardView.get_form_step_files(form) This method returns the form files. You can use this method to manipulate the files before the data gets stored in the storage backend. Default implementation:: def get_form_step_files(self, form): return form.files .. method:: WizardView.render(form, **kwargs) This method gets called after the GET or POST request has been handled. You can hook in this method to, e.g. change the type of HTTP response. Default implementation:: def render(self, form=None, **kwargs): form = form or self.get_form() context = self.get_context_data(form=form, **kwargs) return self.render_to_response(context) .. method:: WizardView.get_cleaned_data_for_step(step) This method returns the cleaned data for a given ``step``. Before returning the cleaned data, the stored values are revalidated through the form. If the data doesn't validate, ``None`` will be returned. .. method:: WizardView.get_all_cleaned_data() This method returns a merged dictionary of all form steps' ``cleaned_data`` dictionaries. If a step contains a ``FormSet``, the key will be prefixed with ``formset-`` and contain a list of the formset's ``cleaned_data`` dictionaries. Note that if two or more steps have a field with the same name, the value for that field from the latest step will overwrite the value from any earlier steps. Providing initial data for the forms ==================================== .. attribute:: WizardView.initial_dict Initial data for a wizard's :class:`~django.forms.Form` objects can be provided using the optional :attr:`~WizardView.initial_dict` keyword argument. This argument should be a dictionary mapping the steps to dictionaries containing the initial data for each step. The dictionary of initial data will be passed along to the constructor of the step's :class:`~django.forms.Form`:: >>> from myapp.forms import ContactForm1, ContactForm2 >>> from myapp.views import ContactWizard >>> initial = { ... '0': {'subject': 'Hello', 'sender': 'user@example.com'}, ... '1': {'message': 'Hi there!'} ... } >>> # This example is illustrative only and isn't meant to be run in >>> # the shell since it requires an HttpRequest to pass to the view. >>> wiz = ContactWizard.as_view([ContactForm1, ContactForm2], initial_dict=initial)(request) >>> form1 = wiz.get_form('0') >>> form2 = wiz.get_form('1') >>> form1.initial {'sender': 'user@example.com', 'subject': 'Hello'} >>> form2.initial {'message': 'Hi there!'} The ``initial_dict`` can also take a list of dictionaries for a specific step if the step is a ``FormSet``. The ``initial_dict`` can also be added as a class attribute named ``initial_dict`` to avoid having the initial data in the ``urls.py``. .. _wizard-files: Handling files ============== .. attribute:: WizardView.file_storage To handle :class:`~django.forms.FileField` within any step form of the wizard, you have to add a ``file_storage`` to your :class:`WizardView` subclass. This storage will temporarily store the uploaded files for the wizard. The ``file_storage`` attribute should be a :class:`~django.core.files.storage.Storage` subclass. Django provides a built-in storage class (see :ref:`the built-in filesystem storage class `):: from django.conf import settings from django.core.files.storage import FileSystemStorage class CustomWizardView(WizardView): ... file_storage = FileSystemStorage(location=os.path.join(settings.MEDIA_ROOT, 'photos')) .. warning:: Please remember to take care of removing old temporary files, as the :class:`WizardView` will only remove these files if the wizard finishes correctly. Conditionally view/skip specific steps ====================================== .. attribute:: WizardView.condition_dict The :meth:`~WizardView.as_view` method accepts a ``condition_dict`` argument. You can pass a dictionary of boolean values or callables. The key should match the steps names (e.g. '0', '1'). If the value of a specific step is callable it will be called with the :class:`WizardView` instance as the only argument. If the return value is true, the step's form will be used. This example provides a contact form including a condition. The condition is used to show a message form only if a checkbox in the first step was checked. The steps are defined in a ``forms.py`` file:: from django import forms class ContactForm1(forms.Form): subject = forms.CharField(max_length=100) sender = forms.EmailField() leave_message = forms.BooleanField(required=False) class ContactForm2(forms.Form): message = forms.CharField(widget=forms.Textarea) We define our wizard in a ``views.py``:: from django.shortcuts import render from formtools.wizard.views import SessionWizardView def show_message_form_condition(wizard): # try to get the cleaned data of step 1 cleaned_data = wizard.get_cleaned_data_for_step('0') or {} # check if the field ``leave_message`` was checked. return cleaned_data.get('leave_message', True) class ContactWizard(SessionWizardView): def done(self, form_list, **kwargs): return render(self.request, 'done.html', { 'form_data': [form.cleaned_data for form in form_list], }) We need to add the ``ContactWizard`` to our ``urls.py`` file:: from django.conf.urls import url from myapp.forms import ContactForm1, ContactForm2 from myapp.views import ContactWizard, show_message_form_condition contact_forms = [ContactForm1, ContactForm2] urlpatterns = [ url(r'^contact/$', ContactWizard.as_view(contact_forms, condition_dict={'1': show_message_form_condition} )), ] As you can see, we defined a ``show_message_form_condition`` next to our :class:`WizardView` subclass and added a ``condition_dict`` argument to the :meth:`~WizardView.as_view` method. The key refers to the second wizard step (because of the zero based step index). How to work with ModelForm and ModelFormSet =========================================== .. attribute:: WizardView.instance_dict WizardView supports :mod:`ModelForms ` and :ref:`ModelFormSets `. Additionally to :attr:`~WizardView.initial_dict`, the :meth:`~WizardView.as_view` method takes an ``instance_dict`` argument that should contain model instances for steps based on ``ModelForm`` and querysets for steps based on ``ModelFormSet``. Usage of ``NamedUrlWizardView`` =============================== .. class:: NamedUrlWizardView .. class:: NamedUrlSessionWizardView .. class:: NamedUrlCookieWizardView ``NamedUrlWizardView`` is a :class:`WizardView` subclass which adds named-urls support to the wizard. This allows you to have separate URLs for every step. You can also use the :class:`NamedUrlSessionWizardView` or :class:`NamedUrlCookieWizardView` classes which preselect the backend used for storing information (Django sessions and browser cookies respectively). To use the named URLs, you should not only use the :class:`NamedUrlWizardView` instead of :class:`WizardView`, but you will also have to change your ``urls.py``. The :meth:`~WizardView.as_view` method takes two additional arguments: * a required ``url_name`` -- the name of the url (as provided in the ``urls.py``) * an optional ``done_step_name`` -- the name of the done step, to be used in the URL This is an example of a ``urls.py`` for a contact wizard with two steps, step 1 named ``contactdata`` and step 2 named ``leavemessage``:: from django.conf.urls import url from myapp.forms import ContactForm1, ContactForm2 from myapp.views import ContactWizard named_contact_forms = ( ('contactdata', ContactForm1), ('leavemessage', ContactForm2), ) contact_wizard = ContactWizard.as_view(named_contact_forms, url_name='contact_step', done_step_name='finished') urlpatterns = [ url(r'^contact/(?P.+)/$', contact_wizard, name='contact_step'), url(r'^contact/$', contact_wizard, name='contact'), ] Advanced ``NamedUrlWizardView`` methods ======================================= .. method:: NamedUrlWizardView.get_step_url(step) This method returns the URL for a specific step. Default implementation:: def get_step_url(self, step): return reverse(self.url_name, kwargs={'step': step}) django-formtools-2.2/formtools/000077500000000000000000000000001357223351300166715ustar00rootroot00000000000000django-formtools-2.2/formtools/__init__.py000066400000000000000000000001131357223351300207750ustar00rootroot00000000000000__version__ = '2.2' default_app_config = 'formtools.apps.FormToolsConfig' django-formtools-2.2/formtools/apps.py000066400000000000000000000002671357223351300202130ustar00rootroot00000000000000from django.apps import AppConfig from django.utils.translation import gettext_lazy as _ class FormToolsConfig(AppConfig): name = 'formtools' verbose_name = _("Form Tools") django-formtools-2.2/formtools/locale/000077500000000000000000000000001357223351300201305ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/af/000077500000000000000000000000001357223351300205165ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/af/LC_MESSAGES/000077500000000000000000000000001357223351300223035ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/af/LC_MESSAGES/django.mo000066400000000000000000000021461357223351300241050ustar00rootroot00000000000000 |  !4,a#r  {4!%> F R^   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2019-06-09 17:52+0000 Last-Translator: F Wolff Language-Team: Afrikaans (http://www.transifex.com/django/django-formtools/language/af/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: af Plural-Forms: nplurals=2; plural=(n != 1); VormgereeedsksapData van ManagementForm ontbreek of is mee gepeuter.Of redigeer dit weerKorrigeer asb. die volgende fouteVoorskouVoorskou van indieningSekuriteitshutswaarde: %(hash_value)sDien ineerste stapvorige stapdien indjango-formtools-2.2/formtools/locale/af/LC_MESSAGES/django.po000066400000000000000000000033511357223351300241070ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # F Wolff , 2019 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: 2019-06-09 17:52+0000\n" "Last-Translator: F Wolff \n" "Language-Team: Afrikaans (http://www.transifex.com/django/django-formtools/language/af/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: af\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:7 msgid "Form Tools" msgstr "Vormgereeedsksap" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Korrigeer asb. die volgende foute" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Dien in" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Voorskou" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Voorskou van indiening" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Sekuriteitshutswaarde: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Of redigeer dit weer" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "eerste stap" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "vorige stap" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "dien in" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "Data van ManagementForm ontbreek of is mee gepeuter." django-formtools-2.2/formtools/locale/ar/000077500000000000000000000000001357223351300205325ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ar/LC_MESSAGES/000077500000000000000000000000001357223351300223175ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ar/LC_MESSAGES/django.mo000066400000000000000000000016441357223351300241230ustar00rootroot00000000000000L | 4 D eForm ToolsManagementForm data is missing or has been tampered.first stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-05 20:41+0000 Last-Translator: Jannis Leidel Language-Team: Arabic (http://www.transifex.com/projects/p/django-formtools/language/ar/) Language: ar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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; أدوات النموذجبيانات ManagementForm مفقودة أو تم العبث بهاالخطوة الأولىالخطوة السابقةأرسلdjango-formtools-2.2/formtools/locale/ar/LC_MESSAGES/django.po000066400000000000000000000034231357223351300241230ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Bashar Al-Abdulhadi, 2014 # Eyad Toma , 2013 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 \n" "Language-Team: Arabic (http://www.transifex.com/projects/p/django-formtools/" "language/ar/)\n" "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" #: 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 "" #: 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 "بيانات ManagementForm مفقودة أو تم العبث بها" django-formtools-2.2/formtools/locale/ast/000077500000000000000000000000001357223351300207175ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ast/LC_MESSAGES/000077500000000000000000000000001357223351300225045ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ast/LC_MESSAGES/django.mo000066400000000000000000000011021357223351300242750ustar00rootroot000000000000004L` a lv ( 4first stepprev stepProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-06 19:31+0000 Last-Translator: Jannis Leidel Language-Team: Asturian (http://www.transifex.com/projects/p/django-formtools/language/ast/) Language: ast MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); primer pasupasu postrerudjango-formtools-2.2/formtools/locale/ast/LC_MESSAGES/django.po000066400000000000000000000030451357223351300243100ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Ḷḷumex03 , 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: 2014-10-06 19:31+0000\n" "Last-Translator: Jannis Leidel \n" "Language-Team: Asturian (http://www.transifex.com/projects/p/django-" "formtools/language/ast/)\n" "Language: ast\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" #: 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 "" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "primer pasu" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "pasu postreru" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "" django-formtools-2.2/formtools/locale/az/000077500000000000000000000000001357223351300205425ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/az/LC_MESSAGES/000077500000000000000000000000001357223351300223275ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/az/LC_MESSAGES/django.mo000066400000000000000000000022261357223351300241300ustar00rootroot00000000000000 |  !4,a#r  z7, #&=dm|   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2018-09-09 13:50+0000 Last-Translator: Emin Mastizada Language-Team: Azerbaijani (http://www.transifex.com/django/django-formtools/language/az/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: az Plural-Forms: nplurals=2; plural=(n != 1); Forma AlətləriManagementForm məlumatları əksik və ya zədəlidir.Və ya təkrar redaktə edinLütfən aşağıdakı xətaları düzəldinÖn baxışGöndərəcəklərinizə ön baxınTəhlükəsizlik heşi: %(hash_value)sGöndərbirinci addıməvvəlki addımgöndərdjango-formtools-2.2/formtools/locale/az/LC_MESSAGES/django.po000066400000000000000000000034261357223351300241360ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Emin Mastizada , 2018 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: 2018-09-09 13:50+0000\n" "Last-Translator: Emin Mastizada \n" "Language-Team: Azerbaijani (http://www.transifex.com/django/django-formtools/language/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: az\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:7 msgid "Form Tools" msgstr "Forma Alətləri" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Lütfən aşağıdakı xətaları düzəldin" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Göndər" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Ön baxış" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Göndərəcəklərinizə ön baxın" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Təhlükəsizlik heşi: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Və ya təkrar redaktə edin" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "birinci addım" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "əvvəlki addım" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "göndər" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "ManagementForm məlumatları əksik və ya zədəlidir." django-formtools-2.2/formtools/locale/be/000077500000000000000000000000001357223351300205165ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/be/LC_MESSAGES/000077500000000000000000000000001357223351300223035ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/be/LC_MESSAGES/django.mo000066400000000000000000000013061357223351300241020ustar00rootroot00000000000000<\p q | first stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-06 19:31+0000 Last-Translator: Jannis Leidel Language-Team: Belarusian (http://www.transifex.com/projects/p/django-formtools/language/be/) Language: be MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); першы крокпапярэдні крокпадацьdjango-formtools-2.2/formtools/locale/be/LC_MESSAGES/django.po000066400000000000000000000031541357223351300241100ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: 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 \n" "Language-Team: Belarusian (http://www.transifex.com/projects/p/django-" "formtools/language/be/)\n" "Language: be\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\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 "" #: 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 "" django-formtools-2.2/formtools/locale/bg/000077500000000000000000000000001357223351300205205ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/bg/LC_MESSAGES/000077500000000000000000000000001357223351300223055ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/bg/LC_MESSAGES/django.mo000066400000000000000000000021361357223351300241060ustar00rootroot00000000000000 l # 19Q X cmt%/E:u)1 3 Q  Form ToolsOr edit it againPlease correct the following errorsPreviewPreview your submissionSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2015-02-12 07:22+0000 Last-Translator: Todor Lubenov Language-Team: Bulgarian (http://www.transifex.com/projects/p/django-formtools/language/bg/) Language: bg MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Инструмент ФормиИли го редактирате отновоМоля, поправете следните грешкиПредварителен прегледПрегледайте представянетоПодайтепърва стъпкапредишна стъпказапазиdjango-formtools-2.2/formtools/locale/bg/LC_MESSAGES/django.po000066400000000000000000000036571357223351300241220ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Georgi Kostadinov , 2012 # Lyuboslav Petrov , 2014 # Todor Lubenov , 2011,2015 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: 2015-02-12 07:22+0000\n" "Last-Translator: Todor Lubenov \n" "Language-Team: Bulgarian (http://www.transifex.com/projects/p/django-" "formtools/language/bg/)\n" "Language: bg\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" #: 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 "" #: 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 "" django-formtools-2.2/formtools/locale/br/000077500000000000000000000000001357223351300205335ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/br/LC_MESSAGES/000077500000000000000000000000001357223351300223205ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/br/LC_MESSAGES/django.mo000066400000000000000000000026071357223351300241240ustar00rootroot00000000000000 |  !4,a#r  2# )%>dh w   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2018-10-20 01:55+0000 Last-Translator: Irriep Nala Novram Language-Team: Breton (http://www.transifex.com/django/django-formtools/language/br/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: br Plural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4); Ostilhoù furmRoadennoù furm-meradur a vank pe a zo bet falset.Pe aozit anezhañ adarreReizhit ar fazioù da heul mar plijRakweletRakwelet ho kasadennBouc'haladur surentez: %(hash_value)sKaspazenn gentañpazenn gentkasdjango-formtools-2.2/formtools/locale/br/LC_MESSAGES/django.po000066400000000000000000000040661357223351300241300ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Fulup , 2012 # Irriep Nala Novram , 2018 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: 2018-10-20 01:55+0000\n" "Last-Translator: Irriep Nala Novram \n" "Language-Team: Breton (http://www.transifex.com/django/django-formtools/language/br/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: br\n" "Plural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\n" #: apps.py:7 msgid "Form Tools" msgstr "Ostilhoù furm" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Reizhit ar fazioù da heul mar plij" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Kas" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Rakwelet" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Rakwelet ho kasadenn" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Bouc'haladur surentez: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Pe aozit anezhañ adarre" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "pazenn gentañ" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "pazenn gent" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "kas" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "Roadennoù furm-meradur a vank pe a zo bet falset." django-formtools-2.2/formtools/locale/ca/000077500000000000000000000000001357223351300205135ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ca/LC_MESSAGES/000077500000000000000000000000001357223351300223005ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ca/LC_MESSAGES/django.mo000066400000000000000000000022331357223351300240770ustar00rootroot00000000000000 |  !4,a#r  0 -&Nu |    Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2015-03-09 10:42+0000 Last-Translator: Roger Pons Language-Team: Catalan (http://www.transifex.com/projects/p/django-formtools/language/ca/) Language: ca MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Eines de FormulariFalten dades de ManagementForm o s'ha manipulat.O torneu-lo a editarCorregiu els següents errorsPrevisualitzacióPrevisualitzeu la vostra tramesaClau hash de seguretat: %(hash_value)sEnviarprimer paspas anteriorenviardjango-formtools-2.2/formtools/locale/ca/LC_MESSAGES/django.po000066400000000000000000000035241357223351300241060ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Carles Barrobés , 2012,2014 # Jannis Leidel , 2011 # Roger Pons , 2015 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: 2015-03-09 10:42+0000\n" "Last-Translator: Roger Pons \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/django-formtools/" "language/ca/)\n" "Language: ca\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" #: apps.py:7 msgid "Form Tools" msgstr "Eines de Formulari" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Corregiu els següents errors" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Enviar" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Previsualització" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Previsualitzeu la vostra tramesa" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Clau hash de seguretat: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "O torneu-lo a editar" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "primer pas" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "pas anterior" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "enviar" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "Falten dades de ManagementForm o s'ha manipulat." django-formtools-2.2/formtools/locale/cs/000077500000000000000000000000001357223351300205355ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/cs/LC_MESSAGES/000077500000000000000000000000001357223351300223225ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/cs/LC_MESSAGES/django.mo000066400000000000000000000022771357223351300241310ustar00rootroot00000000000000 |  !4,a#r  9+HP$m    Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-17 07:10+0000 Last-Translator: Vláďa Macek Language-Team: Czech (http://www.transifex.com/projects/p/django-formtools/language/cs/) Language: cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2; Nástroje pro formulářeData objektu ManagementForm chybí nebo byla pozměněna.Případně znovu upravitOpravte následující chybyNáhledNáhled údajů k odesláníBezpečnostní otisk: %(hash_value)sOdeslatprvní krokpředchozí krokodeslatdjango-formtools-2.2/formtools/locale/cs/LC_MESSAGES/django.po000066400000000000000000000035041357223351300241260ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Jannis Leidel , 2011 # Vláďa Macek , 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: 2014-10-17 07:10+0000\n" "Last-Translator: Vláďa Macek \n" "Language-Team: Czech (http://www.transifex.com/projects/p/django-formtools/" "language/cs/)\n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: apps.py:7 msgid "Form Tools" msgstr "Nástroje pro formuláře" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Opravte následující chyby" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Odeslat" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Náhled" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Náhled údajů k odeslání" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Bezpečnostní otisk: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Případně znovu upravit" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "první krok" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "předchozí krok" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "odeslat" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "Data objektu ManagementForm chybí nebo byla pozměněna." django-formtools-2.2/formtools/locale/cy/000077500000000000000000000000001357223351300205435ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/cy/LC_MESSAGES/000077500000000000000000000000001357223351300223305ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/cy/LC_MESSAGES/django.mo000066400000000000000000000015251357223351300241320ustar00rootroot00000000000000L | 4 B 3 >LForm ToolsManagementForm data is missing or has been tampered.first stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-05 20:41+0000 Last-Translator: Jannis Leidel Language-Team: Welsh (http://www.transifex.com/projects/p/django-formtools/language/cy/) Language: cy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3; Offer FfurflenniMae data ManagementForm ar goll neu mae rhywun wedi ymyrryd ynddo.cam cyntafcam blaenorolcyflwynodjango-formtools-2.2/formtools/locale/cy/LC_MESSAGES/django.po000066400000000000000000000032651357223351300241400ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Maredudd ap Gwyndaf , 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: 2014-10-05 20:41+0000\n" "Last-Translator: Jannis Leidel \n" "Language-Team: Welsh (http://www.transifex.com/projects/p/django-formtools/" "language/cy/)\n" "Language: cy\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != " "11) ? 2 : 3;\n" #: apps.py:7 msgid "Form Tools" msgstr "Offer Ffurflenni" #: 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 "" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "cam cyntaf" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "cam blaenorol" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "cyflwyno" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "Mae data ManagementForm ar goll neu mae rhywun wedi ymyrryd ynddo." django-formtools-2.2/formtools/locale/da/000077500000000000000000000000001357223351300205145ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/da/LC_MESSAGES/000077500000000000000000000000001357223351300223015ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/da/LC_MESSAGES/django.mo000066400000000000000000000021521357223351300241000ustar00rootroot00000000000000 |  !4,a#r  }u8 "BGVe   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2019-07-05 20:06+0000 Last-Translator: Erik Wognsen Language-Team: Danish (http://www.transifex.com/django/django-formtools/language/da/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: da Plural-Forms: nplurals=2; plural=(n != 1); FormularværktøjerManagementForm-data mangler eller er blevet manipuleret.Eller rediger den igenRet venligst de følgende fejlForhåndsvisForhåndsvis din indsendelseSikkerheds-hash: %(hash_value)sSendførste skridtforrige skridtsenddjango-formtools-2.2/formtools/locale/da/LC_MESSAGES/django.po000066400000000000000000000035101357223351300241020ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Christian Joergensen , 2012 # Erik Wognsen , 2019 # Jannis Leidel , 2011 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: 2019-07-05 20:06+0000\n" "Last-Translator: Erik Wognsen \n" "Language-Team: Danish (http://www.transifex.com/django/django-formtools/language/da/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:7 msgid "Form Tools" msgstr "Formularværktøjer" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Ret venligst de følgende fejl" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Send" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Forhåndsvis" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Forhåndsvis din indsendelse" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Sikkerheds-hash: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Eller rediger den igen" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "første skridt" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "forrige skridt" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "send" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "ManagementForm-data mangler eller er blevet manipuleret." django-formtools-2.2/formtools/locale/de/000077500000000000000000000000001357223351300205205ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/de/LC_MESSAGES/000077500000000000000000000000001357223351300223055ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/de/LC_MESSAGES/django.mo000066400000000000000000000022251357223351300241050ustar00rootroot00000000000000 |  !4,a#r  4!"+?_hw    Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-06 19:50+0000 Last-Translator: Jannis Leidel Language-Team: German (http://www.transifex.com/projects/p/django-formtools/language/de/) Language: de MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Formular-ToolsManagementForm-Daten fehlen oder wurden manipuliert.Oder erneut bearbeitenBitte folgende Fehler korrigierenVorschauVorschau einblendenSicherheitswert: %(hash_value)sAbsendenErster SchrittVorheriger SchrittAbschickendjango-formtools-2.2/formtools/locale/de/LC_MESSAGES/django.po000066400000000000000000000034451357223351300241150ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # André Hagenbruch, 2012 # Jannis Leidel , 2011,2014 # Jannis Vajen, 2013 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:50+0000\n" "Last-Translator: Jannis Leidel \n" "Language-Team: German (http://www.transifex.com/projects/p/django-formtools/" "language/de/)\n" "Language: de\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" #: apps.py:7 msgid "Form Tools" msgstr "Formular-Tools" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Bitte folgende Fehler korrigieren" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Absenden" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Vorschau" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Vorschau einblenden" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Sicherheitswert: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Oder erneut bearbeiten" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "Erster Schritt" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "Vorheriger Schritt" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "Abschicken" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "ManagementForm-Daten fehlen oder wurden manipuliert." django-formtools-2.2/formtools/locale/el/000077500000000000000000000000001357223351300205305ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/el/LC_MESSAGES/000077500000000000000000000000001357223351300223155ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/el/LC_MESSAGES/django.mo000066400000000000000000000024511357223351300241160ustar00rootroot00000000000000 |  !4,a#r  x[-Pp-   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2017-09-23 20:16+0000 Last-Translator: Pãnoș Language-Team: Greek (http://www.transifex.com/django/django-formtools/language/el/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: el Plural-Forms: nplurals=2; plural=(n != 1); Eργαλεία ΦόρμαςTα δεδομένα της ManagementForm λείπουν ή έχουν αλλοιωθεί.Ή επεξεργαστείτε το ξανάΠαρακαλούμε διορθώστε τα ακόλουθα σφάλματαΠροεπισκόπησηΔείτε την καταχώρηση σαςSecurity hash: %(hash_value)sΥποβολήπρώτο βήμαπροηγούμενο βήμαυποβολήdjango-formtools-2.2/formtools/locale/el/LC_MESSAGES/django.po000066400000000000000000000040061357223351300241170ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Nick Mavrakis , 2016 # Pãnoș , 2014 # Pãnoș , 2016 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-23 20:16+0000\n" "Last-Translator: Pãnoș \n" "Language-Team: Greek (http://www.transifex.com/django/django-formtools/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:7 msgid "Form Tools" msgstr "Eργαλεία Φόρμας" #: 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 "Security hash: %(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 "Tα δεδομένα της ManagementForm λείπουν ή έχουν αλλοιωθεί." django-formtools-2.2/formtools/locale/en/000077500000000000000000000000001357223351300205325ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/en/LC_MESSAGES/000077500000000000000000000000001357223351300223175ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/en/LC_MESSAGES/django.mo000066400000000000000000000005441357223351300241210ustar00rootroot00000000000000$,8*9Project-Id-Version: Django Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2010-05-13 15:35+0200 Last-Translator: Django team Language-Team: English Language: en MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit django-formtools-2.2/formtools/locale/en/LC_MESSAGES/django.po000066400000000000000000000025101357223351300241170ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-03-25 09:31-0500\n" "PO-Revision-Date: 2010-05-13 15:35+0200\n" "Last-Translator: Django team\n" "Language-Team: English \n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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 "" #: 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 "" django-formtools-2.2/formtools/locale/en_GB/000077500000000000000000000000001357223351300211025ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/en_GB/LC_MESSAGES/000077500000000000000000000000001357223351300226675ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/en_GB/LC_MESSAGES/django.mo000066400000000000000000000011571357223351300244720ustar00rootroot00000000000000<\p q | S ^hfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-06 19:31+0000 Last-Translator: Jannis Leidel Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/django-formtools/language/en_GB/) Language: en_GB MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); first stepprev stepsubmitdjango-formtools-2.2/formtools/locale/en_GB/LC_MESSAGES/django.po000066400000000000000000000031521357223351300244720ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Jannis Leidel , 2011 # jon_atkinson , 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-06 19:31+0000\n" "Last-Translator: Jannis Leidel \n" "Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/" "django-formtools/language/en_GB/)\n" "Language: en_GB\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" #: 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 "" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "first step" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "prev step" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "submit" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "" django-formtools-2.2/formtools/locale/eo/000077500000000000000000000000001357223351300205335ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/eo/LC_MESSAGES/000077500000000000000000000000001357223351300223205ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/eo/LC_MESSAGES/django.mo000066400000000000000000000014131357223351300241160ustar00rootroot00000000000000T 4  4  Form ToolsManagementForm data is missing or has been tampered.Submitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2017-09-20 12:01+0000 Last-Translator: Nikolay Korotkiy Language-Team: Esperanto (http://www.transifex.com/django/django-formtools/language/eo/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: eo Plural-Forms: nplurals=2; plural=(n != 1); Formularaj ilojManagementForm datumojn mankas aŭ estis difektitaj.Sendiunua paŝoantaŭa paŝosendidjango-formtools-2.2/formtools/locale/eo/LC_MESSAGES/django.po000066400000000000000000000033301357223351300241210ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Adamo Mesha , 2012 # Baptiste Darthenay , 2011 # Nikolay Korotkiy , 2017 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: Nikolay Korotkiy \n" "Language-Team: Esperanto (http://www.transifex.com/django/django-formtools/language/eo/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: eo\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:7 msgid "Form Tools" msgstr "Formularaj iloj" #: 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 "Sendi" #: 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 "" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "unua paŝo" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "antaŭa paŝo" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "sendi" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "ManagementForm datumojn mankas aŭ estis difektitaj." django-formtools-2.2/formtools/locale/es/000077500000000000000000000000001357223351300205375ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/es/LC_MESSAGES/000077500000000000000000000000001357223351300223245ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/es/LC_MESSAGES/django.mo000066400000000000000000000022661357223351300241310ustar00rootroot00000000000000 |  !4,a#r  ;) > K!l     Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-11-16 06:30+0000 Last-Translator: juanda097 Language-Team: Spanish (http://www.transifex.com/projects/p/django-formtools/language/es/) Language: es MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Herramientas de formularioLos datos del ManagementForm faltan o han sido estropeados.O editarlo de nuevoPor favor, corrija los siguientes erroresVista previaVista previa de su presentaciónHash de seguridad: %(hash_value)sEnviarprimer pasopaso anteriorenviardjango-formtools-2.2/formtools/locale/es/LC_MESSAGES/django.po000066400000000000000000000035661357223351300241400ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Ernesto Avilés Vázquez , 2014 # Jannis Leidel , 2011 # juanda097 , 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: 2014-11-16 06:30+0000\n" "Last-Translator: juanda097 \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/django-formtools/" "language/es/)\n" "Language: es\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" #: apps.py:7 msgid "Form Tools" msgstr "Herramientas de formulario" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Por favor, corrija los siguientes errores" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Enviar" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Vista previa" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Vista previa de su presentación" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Hash de seguridad: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "O editarlo de nuevo" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "primer paso" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "paso anterior" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "enviar" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "Los datos del ManagementForm faltan o han sido estropeados." django-formtools-2.2/formtools/locale/es_AR/000077500000000000000000000000001357223351300211215ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/es_AR/LC_MESSAGES/000077500000000000000000000000001357223351300227065ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/es_AR/LC_MESSAGES/django.mo000066400000000000000000000022511357223351300245050ustar00rootroot00000000000000 |  !4,a#r  wN(  /2P     Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2017-09-23 20:16+0000 Last-Translator: Ramiro Morales Language-Team: Spanish (Argentina) (http://www.transifex.com/django/django-formtools/language/es_AR/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: es_AR Plural-Forms: nplurals=2; plural=(n != 1); Herramientas de formulariosLos datos correspondientes al ManagementForm no existen o han sido modificadosO modificar otra vezPor favor corrija los siguientes erroresPre-visualizarPrevisualizar lo que va a enviarSuma de verificación de seguridad: %(hash_value)sEnviarprimer pasopaso previoenviardjango-formtools-2.2/formtools/locale/es_AR/LC_MESSAGES/django.po000066400000000000000000000035031357223351300245110ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Jannis Leidel , 2011 # Ramiro Morales, 2015 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-23 20:16+0000\n" "Last-Translator: Ramiro Morales\n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/django/django-formtools/language/es_AR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: es_AR\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:7 msgid "Form Tools" msgstr "Herramientas de formularios" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Por favor corrija los siguientes errores" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Enviar" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Pre-visualizar" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Previsualizar lo que va a enviar" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Suma de verificación de seguridad: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "O modificar otra vez" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "primer paso" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "paso previo" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "enviar" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "Los datos correspondientes al ManagementForm no existen o han sido modificados" django-formtools-2.2/formtools/locale/es_MX/000077500000000000000000000000001357223351300211435ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/es_MX/LC_MESSAGES/000077500000000000000000000000001357223351300227305ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/es_MX/LC_MESSAGES/django.mo000066400000000000000000000011541357223351300245300ustar00rootroot00000000000000<\p q | K Wefirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-06 19:31+0000 Last-Translator: Jannis Leidel Language-Team: Spanish (Mexico) (http://www.transifex.com/projects/p/django-formtools/language/es_MX/) Language: es_MX MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); primer pasopaso anteriorenviardjango-formtools-2.2/formtools/locale/es_MX/LC_MESSAGES/django.po000066400000000000000000000030171357223351300245330ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: 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 \n" "Language-Team: Spanish (Mexico) (http://www.transifex.com/projects/p/django-" "formtools/language/es_MX/)\n" "Language: es_MX\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" #: 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 "" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "primer paso" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "paso anterior" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "enviar" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "" django-formtools-2.2/formtools/locale/et/000077500000000000000000000000001357223351300205405ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/et/LC_MESSAGES/000077500000000000000000000000001357223351300223255ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/et/LC_MESSAGES/django.mo000066400000000000000000000016511357223351300241270ustar00rootroot00000000000000 d 4!#2V ^ isz5L^~   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2017-09-20 12:01+0000 Last-Translator: Martin Pajuste Language-Team: Estonian (http://www.transifex.com/django/django-formtools/language/et/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: et Plural-Forms: nplurals=2; plural=(n != 1); Vormi TööriistadManagementForm andmed puuduvad või neid on muudetud.Või muuda uuestiPalun parandage järgnevad veadEelvaadeesimene sammeelmine sammkinnitadjango-formtools-2.2/formtools/locale/et/LC_MESSAGES/django.po000066400000000000000000000034731357223351300241360ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Janno Liivak , 2013 # Martin Pajuste , 2015-2016 # Martin Pajuste , 2017 # Marti Raudsepp , 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 \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" "Content-Transfer-Encoding: 8bit\n" "Language: et\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:7 msgid "Form Tools" msgstr "Vormi Tööriistad" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Palun parandage järgnevad vead" #: 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 "Eelvaade" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Või muuda uuesti" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "esimene samm" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "eelmine samm" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "kinnita" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "ManagementForm andmed puuduvad või neid on muudetud." django-formtools-2.2/formtools/locale/eu/000077500000000000000000000000001357223351300205415ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/eu/LC_MESSAGES/000077500000000000000000000000001357223351300223265ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/eu/LC_MESSAGES/django.mo000066400000000000000000000021661357223351300241320ustar00rootroot00000000000000 |  !4,a#r  <!  +L S`o   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2017-11-16 10:58+0000 Last-Translator: Urtzi Odriozola Language-Team: Basque (http://www.transifex.com/django/django-formtools/language/eu/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: eu Plural-Forms: nplurals=2; plural=(n != 1); Formulario tresnakManagementForm datuak falta dira edo manipulatuak izan dira.Edo editatu berrizMesedez zuzendu ondorengo akatsakAurreikusiAurreikusi zure bidalketaSegurtasun hasha: %(hash_value)sBidalilehen pausuaaurreko pausuabidalidjango-formtools-2.2/formtools/locale/eu/LC_MESSAGES/django.po000066400000000000000000000034021357223351300241270ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Urtzi Odriozola , 2017 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-11-16 10:58+0000\n" "Last-Translator: Urtzi Odriozola \n" "Language-Team: Basque (http://www.transifex.com/django/django-formtools/language/eu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:7 msgid "Form Tools" msgstr "Formulario tresnak" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Mesedez zuzendu ondorengo akatsak" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Bidali" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Aurreikusi" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Aurreikusi zure bidalketa" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Segurtasun hasha: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Edo editatu berriz" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "lehen pausua" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "aurreko pausua" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "bidali" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "ManagementForm datuak falta dira edo manipulatuak izan dira." django-formtools-2.2/formtools/locale/fa/000077500000000000000000000000001357223351300205165ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/fa/LC_MESSAGES/000077500000000000000000000000001357223351300223035ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/fa/LC_MESSAGES/django.mo000066400000000000000000000023001357223351300240750ustar00rootroot00000000000000 |  !4,a#r  kcYw%5- <0]       Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2017-09-20 12:01+0000 Last-Translator: Pouya Abbassi Language-Team: Persian (http://www.transifex.com/django/django-formtools/language/fa/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: fa Plural-Forms: nplurals=2; plural=(n > 1); ابزار فورماطلاعات فورم مدیریت ناقص بوده یا دستکاری شده است.یا مجددا ویرایش کنیدلطفا خطاهای زیر را اصلاح کنیدبازنگریبازنگری ارسال شمادرهم‌سازی امنیتی: %(hash_value)sارسالگام اولگام قبلارسالdjango-formtools-2.2/formtools/locale/fa/LC_MESSAGES/django.po000066400000000000000000000036531357223351300241140ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Ali Nikneshan , 2012 # Jannis Leidel , 2011 # Pouya Abbassi, 2016 # Reza Mohammadi , 2013 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: Pouya Abbassi\n" "Language-Team: Persian (http://www.transifex.com/django/django-formtools/language/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\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 "اطلاعات فورم مدیریت ناقص بوده یا دستکاری شده است." django-formtools-2.2/formtools/locale/fi/000077500000000000000000000000001357223351300205265ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/fi/LC_MESSAGES/000077500000000000000000000000001357223351300223135ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/fi/LC_MESSAGES/django.mo000066400000000000000000000011501357223351300241070ustar00rootroot00000000000000<\p q |<O_first stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-05 20:41+0000 Last-Translator: Jannis Leidel Language-Team: Finnish (http://www.transifex.com/projects/p/django-formtools/language/fi/) Language: fi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); ensimmäinen vaiheedellinen vaihelähetädjango-formtools-2.2/formtools/locale/fi/LC_MESSAGES/django.po000066400000000000000000000031451357223351300241200ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Jannis Leidel , 2011 # 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 \n" "Language-Team: Finnish (http://www.transifex.com/projects/p/django-formtools/" "language/fi/)\n" "Language: fi\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" #: 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 "" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "ensimmäinen vaihe" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "edellinen vaihe" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "lähetä" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "" django-formtools-2.2/formtools/locale/fr/000077500000000000000000000000001357223351300205375ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/fr/LC_MESSAGES/000077500000000000000000000000001357223351300223245ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/fr/LC_MESSAGES/django.mo000066400000000000000000000023421357223351300241240ustar00rootroot00000000000000 |  !4,a#r  S'-Ud&    Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-30 10:01+0000 Last-Translator: gustavi Language-Team: French (http://www.transifex.com/projects/p/django-formtools/language/fr/) Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); Outils de formulairesLes données du formulaire ManagementForm sont manquantes ou ont été manipulées.Ou éditer cela à nouveauMerci de corriger les erreurs suivantesPrévisualiserPrévisualiser votre soumissionHachage de sécurité : %(hash_value)sEnvoyerpremière étapeétape précédentesoumettredjango-formtools-2.2/formtools/locale/fr/LC_MESSAGES/django.po000066400000000000000000000036351357223351300241350ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # gustavi , 2014 # Claude Paroz , 2011 # Jannis Leidel , 2011 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-30 10:01+0000\n" "Last-Translator: gustavi \n" "Language-Team: French (http://www.transifex.com/projects/p/django-formtools/" "language/fr/)\n" "Language: fr\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" #: apps.py:7 msgid "Form Tools" msgstr "Outils de formulaires" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Merci de corriger les erreurs suivantes" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Envoyer" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Prévisualiser" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Prévisualiser votre soumission" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Hachage de sécurité : %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Ou éditer cela à nouveau" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "première étape" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "étape précédente" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "soumettre" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "" "Les données du formulaire ManagementForm sont manquantes ou ont été " "manipulées." django-formtools-2.2/formtools/locale/ga/000077500000000000000000000000001357223351300205175ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ga/LC_MESSAGES/000077500000000000000000000000001357223351300223045ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ga/LC_MESSAGES/django.mo000066400000000000000000000012221357223351300241000ustar00rootroot00000000000000<\p q | `nfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-05 20:41+0000 Last-Translator: Jannis Leidel Language-Team: Irish (http://www.transifex.com/projects/p/django-formtools/language/ga/) Language: ga MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4); chéad chéimchéim roimhe seochur faoi bhráiddjango-formtools-2.2/formtools/locale/ga/LC_MESSAGES/django.po000066400000000000000000000032221357223351300241050ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Jannis Leidel , 2011 # Michael Thornhill , 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 \n" "Language-Team: Irish (http://www.transifex.com/projects/p/django-formtools/" "language/ga/)\n" "Language: ga\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : " "4);\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 "" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "chéad chéim" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "chéim roimhe seo" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "chur faoi bhráid" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "" django-formtools-2.2/formtools/locale/gd/000077500000000000000000000000001357223351300205225ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/gd/LC_MESSAGES/000077500000000000000000000000001357223351300223075ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/gd/LC_MESSAGES/django.mo000066400000000000000000000022721357223351300241110ustar00rootroot00000000000000 |  !4,a#r  @, <F#`     Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2017-09-22 17:55+0000 Last-Translator: GunChleoc Language-Team: Gaelic, Scottish (http://www.transifex.com/django/django-formtools/language/gd/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: gd Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3; Innealan foirmeTha dàta an fhoirm stiùiridh a dhìth no chaidh beantainn ris.No deasaich a-rithist eFeuch an cuir thu na mearachdan seo gu ceartRo-sheallRo-sheall na sgrìobh thuHais tèarainteachd: %(hash_value)sCuir a-nulla' chiad cheuman ceum roimhecuir a-nulldjango-formtools-2.2/formtools/locale/gd/LC_MESSAGES/django.po000066400000000000000000000034441357223351300241160ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # GunChleoc, 2016 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-22 17:55+0000\n" "Last-Translator: GunChleoc\n" "Language-Team: Gaelic, Scottish (http://www.transifex.com/django/django-formtools/language/gd/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: gd\n" "Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\n" #: apps.py:7 msgid "Form Tools" msgstr "Innealan foirme" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Feuch an cuir thu na mearachdan seo gu ceart" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Cuir a-null" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Ro-sheall" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Ro-sheall na sgrìobh thu" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Hais tèarainteachd: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "No deasaich a-rithist e" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "a' chiad cheum" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "an ceum roimhe" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "cuir a-null" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "Tha dàta an fhoirm stiùiridh a dhìth no chaidh beantainn ris." django-formtools-2.2/formtools/locale/gl/000077500000000000000000000000001357223351300205325ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/gl/LC_MESSAGES/000077500000000000000000000000001357223351300223175ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/gl/LC_MESSAGES/django.mo000066400000000000000000000011401357223351300241120ustar00rootroot00000000000000<\p q | = KYfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-06 19:18+0000 Last-Translator: Jannis Leidel Language-Team: Galician (http://www.transifex.com/projects/p/django-formtools/language/gl/) Language: gl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); primeiro pasopaso anteriorenviardjango-formtools-2.2/formtools/locale/gl/LC_MESSAGES/django.po000066400000000000000000000031141357223351300241200ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # fasouto , 2011 # fonso , 2013 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:18+0000\n" "Last-Translator: Jannis Leidel \n" "Language-Team: Galician (http://www.transifex.com/projects/p/django-" "formtools/language/gl/)\n" "Language: gl\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" #: 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 "" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "primeiro paso" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "paso anterior" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "enviar" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "" django-formtools-2.2/formtools/locale/he/000077500000000000000000000000001357223351300205245ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/he/LC_MESSAGES/000077500000000000000000000000001357223351300223115ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/he/LC_MESSAGES/django.mo000066400000000000000000000023251357223351300241120ustar00rootroot00000000000000 |  !4,a#r  :,5/M%}   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2015-03-24 08:21+0000 Last-Translator: Meir Kriheli Language-Team: Hebrew (http://www.transifex.com/projects/p/django-formtools/language/he/) Language: he MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); כלי טופסמידע ManagementForm חסר או התעסקו איתו.או עריכתו שובנא לתקן את השגיאות הבאותתצוגה מקדימהסקירת הטופס המיועד לשליחהגיבוב אבטחה: %(hash_value)sשלחצעד ראשוןצעד אחרוןשלחdjango-formtools-2.2/formtools/locale/he/LC_MESSAGES/django.po000066400000000000000000000036071357223351300241210ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Alex Gaynor , 2012 # Jannis Leidel , 2011 # Meir Kriheli , 2015 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: 2015-03-24 08:21+0000\n" "Last-Translator: Meir Kriheli \n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/django-formtools/" "language/he/)\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" #: 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 "מידע ManagementForm חסר או התעסקו איתו." django-formtools-2.2/formtools/locale/hi/000077500000000000000000000000001357223351300205305ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/hi/LC_MESSAGES/000077500000000000000000000000001357223351300223155ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/hi/LC_MESSAGES/django.mo000066400000000000000000000012171357223351300241150ustar00rootroot00000000000000<\p q |:Q#kfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-06 19:31+0000 Last-Translator: Jannis Leidel Language-Team: Hindi (http://www.transifex.com/projects/p/django-formtools/language/hi/) Language: hi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); पहला कदमपिछला कदमप्रस्तुत करे django-formtools-2.2/formtools/locale/hi/LC_MESSAGES/django.po000066400000000000000000000032301357223351300241150ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Chandan kumar , 2012 # Sandeep Satavlekar , 2011 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 \n" "Language-Team: Hindi (http://www.transifex.com/projects/p/django-formtools/" "language/hi/)\n" "Language: hi\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" #: 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 "" #: 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 "" django-formtools-2.2/formtools/locale/hr/000077500000000000000000000000001357223351300205415ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/hr/LC_MESSAGES/000077500000000000000000000000001357223351300223265ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/hr/LC_MESSAGES/django.mo000066400000000000000000000012511357223351300241240ustar00rootroot00000000000000<\p q | first stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-06 19:31+0000 Last-Translator: Jannis Leidel Language-Team: Croatian (http://www.transifex.com/projects/p/django-formtools/language/hr/) Language: hr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2; prvi korakprethodni korakpošaljidjango-formtools-2.2/formtools/locale/hr/LC_MESSAGES/django.po000066400000000000000000000033321357223351300241310ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # berislavlopac , 2012 # Dimitris Glezos , 2012 # Jannis Leidel , 2011 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 \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/django-" "formtools/language/hr/)\n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\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 "" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "prvi korak" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "prethodni korak" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "pošalji" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "" django-formtools-2.2/formtools/locale/hu/000077500000000000000000000000001357223351300205445ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/hu/LC_MESSAGES/000077500000000000000000000000001357223351300223315ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/hu/LC_MESSAGES/django.mo000066400000000000000000000021401357223351300241250ustar00rootroot00000000000000 |  !4,a#r  |t3&  @IOW   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2017-09-20 12:01+0000 Last-Translator: András Veres-Szentkirályi Language-Team: Hungarian (http://www.transifex.com/django/django-formtools/language/hu/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: hu Plural-Forms: nplurals=2; plural=(n != 1); Űrlap eszközökManagementForm adatok hiányoznak vagy belenyúltakVagy módosítsa alábbKérem javítsa a következő hibákatElőnézetBeküldésre váró adatokBiztonsági hash: %(hash_value)sKüldéselsőelőzőküldésdjango-formtools-2.2/formtools/locale/hu/LC_MESSAGES/django.po000066400000000000000000000034361357223351300241410ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # András Veres-Szentkirályi, 2017 # Attila Nagy <>, 2012 # Jannis Leidel , 2011 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: András Veres-Szentkirályi\n" "Language-Team: Hungarian (http://www.transifex.com/django/django-formtools/language/hu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:7 msgid "Form Tools" msgstr "Űrlap eszközök" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Kérem javítsa a következő hibákat" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Küldés" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Előnézet" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Beküldésre váró adatok" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Biztonsági hash: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Vagy módosítsa alább" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "első" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "előző" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "küldés" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "ManagementForm adatok hiányoznak vagy belenyúltak" django-formtools-2.2/formtools/locale/ia/000077500000000000000000000000001357223351300205215ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ia/LC_MESSAGES/000077500000000000000000000000001357223351300223065ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ia/LC_MESSAGES/django.mo000066400000000000000000000011431357223351300241040ustar00rootroot00000000000000<\p q | @ L Yfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-06 19:18+0000 Last-Translator: Jannis Leidel Language-Team: Interlingua (http://www.transifex.com/projects/p/django-formtools/language/ia/) Language: ia MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); prime passoprevie passosubmitterdjango-formtools-2.2/formtools/locale/ia/LC_MESSAGES/django.po000066400000000000000000000030651357223351300241140ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Martijn Dekker , 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-06 19:18+0000\n" "Last-Translator: Jannis Leidel \n" "Language-Team: Interlingua (http://www.transifex.com/projects/p/django-" "formtools/language/ia/)\n" "Language: ia\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" #: 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 "" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "prime passo" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "previe passo" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "submitter" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "" django-formtools-2.2/formtools/locale/id/000077500000000000000000000000001357223351300205245ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/id/LC_MESSAGES/000077500000000000000000000000001357223351300223115ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/id/LC_MESSAGES/django.mo000066400000000000000000000021251357223351300241100ustar00rootroot00000000000000 |  !4,a#r  um-# !$+;N   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2019-02-28 07:18+0000 Last-Translator: sage Language-Team: Indonesian (http://www.transifex.com/django/django-formtools/language/id/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: id Plural-Forms: nplurals=1; plural=0; Alat-alat FormulirData ManagementForm hilang atau telah diubah.Atau sunting lagiSilahkan perbaiki kesalahan berikutPratinjauPratinjau pengajuanCampuran keamanan: %(hash_value)sAjukanlangkah pertamalangkah sebelumnyaajukandjango-formtools-2.2/formtools/locale/id/LC_MESSAGES/django.po000066400000000000000000000034521357223351300241170ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Fery Setiawan , 2015-2016 # rodin , 2013 # sage , 2019 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: 2019-02-28 07:18+0000\n" "Last-Translator: sage \n" "Language-Team: Indonesian (http://www.transifex.com/django/django-formtools/language/id/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:7 msgid "Form Tools" msgstr "Alat-alat Formulir" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Silahkan perbaiki kesalahan berikut" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Ajukan" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Pratinjau" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Pratinjau pengajuan" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Campuran keamanan: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Atau sunting lagi" #: 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 "ajukan" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "Data ManagementForm hilang atau telah diubah." django-formtools-2.2/formtools/locale/io/000077500000000000000000000000001357223351300205375ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/io/LC_MESSAGES/000077500000000000000000000000001357223351300223245ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/io/LC_MESSAGES/django.mo000066400000000000000000000011251357223351300241220ustar00rootroot00000000000000<\p q | 8 DNfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-05 20:27+0000 Last-Translator: Jannis Leidel Language-Team: Ido (http://www.transifex.com/projects/p/django-formtools/language/io/) Language: io MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); unesma pazoanta pazosendardjango-formtools-2.2/formtools/locale/io/LC_MESSAGES/django.po000066400000000000000000000030601357223351300241250ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Viko Bartero , 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: 2014-10-05 20:27+0000\n" "Last-Translator: Jannis Leidel \n" "Language-Team: Ido (http://www.transifex.com/projects/p/django-formtools/" "language/io/)\n" "Language: io\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" #: 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 "" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "unesma pazo" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "anta pazo" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "sendar" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "" django-formtools-2.2/formtools/locale/is/000077500000000000000000000000001357223351300205435ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/is/LC_MESSAGES/000077500000000000000000000000001357223351300223305ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/is/LC_MESSAGES/django.mo000066400000000000000000000016641357223351300241360ustar00rootroot00000000000000 d 4#'KS Z eov;L"e   ManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2019-01-18 16:01+0000 Last-Translator: Thordur Sigurdsson Language-Team: Icelandic (http://www.transifex.com/django/django-formtools/language/is/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: is Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11); Gögn fyrir ManagementForm vantar eða hefur verið breytt.Eða breyta þessu afturVinsamlegast leiðréttu villurnarSkoðaSendafyrsta skreffyrra skrefSendadjango-formtools-2.2/formtools/locale/is/LC_MESSAGES/django.po000066400000000000000000000034261357223351300241370ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Hafsteinn Einarsson , 2012 # Jannis Leidel , 2011 # Thordur Sigurdsson , 2019 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: 2019-01-18 16:01+0000\n" "Last-Translator: Thordur Sigurdsson \n" "Language-Team: Icelandic (http://www.transifex.com/django/django-formtools/language/is/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: is\n" "Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n" #: apps.py:7 msgid "Form Tools" msgstr "" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Vinsamlegast leiðréttu villurnar" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Senda" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Skoða" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Eða breyta þessu aftur" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "fyrsta skref" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "fyrra skref" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "Senda" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "Gögn fyrir ManagementForm vantar eða hefur verið breytt." django-formtools-2.2/formtools/locale/it/000077500000000000000000000000001357223351300205445ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/it/LC_MESSAGES/000077500000000000000000000000001357223351300223315ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/it/LC_MESSAGES/django.mo000066400000000000000000000022241357223351300241300ustar00rootroot00000000000000 |  !4,a#r   D  (2Jh q}   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-06 13:45+0000 Last-Translator: Claudio B. Language-Team: Italian (http://www.transifex.com/projects/p/django-formtools/language/it/) Language: it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Form ToolsI dati del ManagementForm sono mancanti oppure sono stati manomessi.O continua le modificheCorreggi i seguenti erroriAnteprimaAnteprima presentazioneSecurity hash: %(hash_value)sConfermaprimo passopasso precedenteinviadjango-formtools-2.2/formtools/locale/it/LC_MESSAGES/django.po000066400000000000000000000037031357223351300241360ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Claudio B. , 2014 # Flavio Curella , 2013 # Jannis Leidel , 2011 # Marco Bonetti, 2014 # Nicola Larosa , 2011 # Stefano Brentegani , 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: 2014-10-06 13:45+0000\n" "Last-Translator: Claudio B. \n" "Language-Team: Italian (http://www.transifex.com/projects/p/django-formtools/" "language/it/)\n" "Language: it\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" #: apps.py:7 msgid "Form Tools" msgstr "Form Tools" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Correggi i seguenti errori" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Conferma" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Anteprima" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Anteprima presentazione" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Security hash: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "O continua le modifiche" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "primo passo" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "passo precedente" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "invia" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "I dati del ManagementForm sono mancanti oppure sono stati manomessi." django-formtools-2.2/formtools/locale/ja/000077500000000000000000000000001357223351300205225ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ja/LC_MESSAGES/000077500000000000000000000000001357223351300223075ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ja/LC_MESSAGES/django.mo000066400000000000000000000022531357223351300241100ustar00rootroot00000000000000 |  !4,a#r  skM-,.Et{   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2017-09-20 12:01+0000 Last-Translator: xiu1 Language-Team: Japanese (http://www.transifex.com/django/django-formtools/language/ja/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: ja Plural-Forms: nplurals=1; plural=0; フォームツールManagementFormデータが見つからないか、改竄されています。または、もう一度編集下記のエラーを修正してくださいプレビュー投稿のプレビューセキュリティハッシュ: %(hash_value)s送信最初のステップ前のステップ送信django-formtools-2.2/formtools/locale/ja/LC_MESSAGES/django.po000066400000000000000000000035211357223351300241120ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # xiu1 , 2015 # Jannis Leidel , 2011 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: xiu1 \n" "Language-Team: Japanese (http://www.transifex.com/django/django-formtools/language/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ja\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 "ManagementFormデータが見つからないか、改竄されています。" django-formtools-2.2/formtools/locale/ka/000077500000000000000000000000001357223351300205235ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ka/LC_MESSAGES/000077500000000000000000000000001357223351300223105ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ka/LC_MESSAGES/django.mo000066400000000000000000000012221357223351300241040ustar00rootroot00000000000000<\p q |%6\yfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-06 19:31+0000 Last-Translator: Jannis Leidel Language-Team: Georgian (http://www.transifex.com/projects/p/django-formtools/language/ka/) Language: ka MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; პირველი ეტაპიწინა ეტაპიგაგზავნაdjango-formtools-2.2/formtools/locale/ka/LC_MESSAGES/django.po000066400000000000000000000032111357223351300241070ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # André Bouatchidzé , 2013 # Jannis Leidel , 2011 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 \n" "Language-Team: Georgian (http://www.transifex.com/projects/p/django-" "formtools/language/ka/)\n" "Language: ka\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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 "" #: 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 "" django-formtools-2.2/formtools/locale/ko/000077500000000000000000000000001357223351300205415ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ko/LC_MESSAGES/000077500000000000000000000000001357223351300223265ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ko/LC_MESSAGES/django.mo000066400000000000000000000021451357223351300241270ustar00rootroot00000000000000 |  !4,a#r  } u7+ 8? P^   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2017-09-20 12:01+0000 Last-Translator: Kyoung Up, Jung Language-Team: Korean (http://www.transifex.com/django/django-formtools/language/ko/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: ko Plural-Forms: nplurals=1; plural=0; 폼 도구관리폼 데이터가 없거나 변조되었습니다.또는 다시 수정다음과 같은 오류들을 고치세요.미리보기제출 미리보기보안 해시: %(hash_value)s제출첫번째 단계이전 단계제출django-formtools-2.2/formtools/locale/ko/LC_MESSAGES/django.po000066400000000000000000000035471357223351300241410ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Ian Y. Choi , 2016 # Le Tartuffe , 2014 # Kyoung Up, Jung , 2016 # Yeonsu Bak , 2015 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: Kyoung Up, Jung \n" "Language-Team: Korean (http://www.transifex.com/django/django-formtools/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ko\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 "관리폼 데이터가 없거나 변조되었습니다." django-formtools-2.2/formtools/locale/lt/000077500000000000000000000000001357223351300205475ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/lt/LC_MESSAGES/000077500000000000000000000000001357223351300223345ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/lt/LC_MESSAGES/django.mo000066400000000000000000000023551357223351300241400ustar00rootroot00000000000000 |  !4,a#r  5.&H o}    Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2015-03-21 14:02+0000 Last-Translator: Matas Dailyda Language-Team: Lithuanian (http://www.transifex.com/projects/p/django-formtools/language/lt/) Language: lt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2); Formų įrankiaiManagementForm duomenys nerasti, arba buvo sugadinti.Arba redaguoti dar kartąPrašome ištaisyti sekančias klaidasPeržiūrėtiPeržiūrėti pateikimąApsaugumo raktas: %(hash_value)sPateiktipirmas žingsnispraeitas žingsnispateiktidjango-formtools-2.2/formtools/locale/lt/LC_MESSAGES/django.po000066400000000000000000000035561357223351300241470ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # lauris , 2011 # Matas Dailyda , 2015 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: 2015-03-21 14:02+0000\n" "Last-Translator: Matas Dailyda \n" "Language-Team: Lithuanian (http://www.transifex.com/projects/p/django-" "formtools/language/lt/)\n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" "%100<10 || n%100>=20) ? 1 : 2);\n" #: apps.py:7 msgid "Form Tools" msgstr "Formų įrankiai" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Prašome ištaisyti sekančias klaidas" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Pateikti" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Peržiūrėti" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Peržiūrėti pateikimą" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Apsaugumo raktas: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Arba redaguoti dar kartą" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "pirmas žingsnis" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "praeitas žingsnis" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "pateikti" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "ManagementForm duomenys nerasti, arba buvo sugadinti." django-formtools-2.2/formtools/locale/lv/000077500000000000000000000000001357223351300205515ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/lv/LC_MESSAGES/000077500000000000000000000000001357223351300223365ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/lv/LC_MESSAGES/django.mo000066400000000000000000000022531357223351300241370ustar00rootroot00000000000000 |  !4,a#r   7% "2Uu ~   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2017-09-20 12:01+0000 Last-Translator: Māris Nartišs Language-Team: Latvian (http://www.transifex.com/django/django-formtools/language/lv/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: lv Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2); Formu rīkiManagementForm dati iztrūkst vai arī tie ir mainīti.Vai rediģējiet atkalLūdzu izlabojiet sekojošas kļūdasPriekšskatījumsPriekšskatīt pirms iesniegšanasDrošības hash: %(hash_value)sIesniegtpirmais solisiepriekšējais solisiesniegtdjango-formtools-2.2/formtools/locale/lv/LC_MESSAGES/django.po000066400000000000000000000034611357223351300241440ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Māris Nartišs , 2016 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: Māris Nartišs \n" "Language-Team: Latvian (http://www.transifex.com/django/django-formtools/language/lv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: lv\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" #: apps.py:7 msgid "Form Tools" msgstr "Formu rīki" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Lūdzu izlabojiet sekojošas kļūdas" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Iesniegt" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Priekšskatījums" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Priekšskatīt pirms iesniegšanas" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Drošības hash: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Vai rediģējiet atkal" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "pirmais solis" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "iepriekšējais solis" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "iesniegt" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "ManagementForm dati iztrūkst vai arī tie ir mainīti." django-formtools-2.2/formtools/locale/mk/000077500000000000000000000000001357223351300205375ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/mk/LC_MESSAGES/000077500000000000000000000000001357223351300223245ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/mk/LC_MESSAGES/django.mo000066400000000000000000000021411357223351300241210ustar00rootroot00000000000000\ 4 # > ISZ2eO&G$6 TForm ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2015-02-01 17:32+0000 Last-Translator: Vasil Vangelovski Language-Team: Macedonian (http://www.transifex.com/projects/p/django-formtools/language/mk/) Language: mk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1; Алатки за формиНедостасуваат податоци од ManagementForm или некој ги менувалИли уредете повторноВе молиме поправете ги следниве грешкипрв чекорпретходен чекорготовоdjango-formtools-2.2/formtools/locale/mk/LC_MESSAGES/django.po000066400000000000000000000037041357223351300241320ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Jannis Leidel , 2011 # Vasil Vangelovski , 2015 # Vasil Vangelovski , 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: 2015-02-01 17:32+0000\n" "Last-Translator: Vasil Vangelovski \n" "Language-Team: Macedonian (http://www.transifex.com/projects/p/django-" "formtools/language/mk/)\n" "Language: mk\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 % 10 == 1 && n % 100 != 11) ? 0 : 1;\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 "" #: 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 "Недостасуваат податоци од ManagementForm или некој ги менувал" django-formtools-2.2/formtools/locale/ml/000077500000000000000000000000001357223351300205405ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ml/LC_MESSAGES/000077500000000000000000000000001357223351300223255ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ml/LC_MESSAGES/django.mo000066400000000000000000000032631357223351300241300ustar00rootroot00000000000000 |  !4,a#r  yPrR\kA$ /;L*   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2019-03-04 08:53+0000 Last-Translator: Hrishikesh Language-Team: Malayalam (http://www.transifex.com/django/django-formtools/language/ml/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: ml Plural-Forms: nplurals=2; plural=(n != 1); ഫോം ടൂളുകൾManagementForm ഡാറ്റ ലഭ്യമല്ലാതിരിക്കുകയോ അതിൽ തിരിമറി നടത്തപ്പെടുകയോ ചെയ്തിരിക്കുന്നു.അല്ലെങ്കിൽ വീണ്ടും തിരുത്തുകദയവായി താഴെക്കൊടുത്തിരിക്കുന്ന തെറ്റുകൾ തിരുത്തുക.പ്രിവ്യൂനിങ്ങൾ സമർപ്പിച്ചതിന്റെ പ്രിവ്യൂസെക്യൂരിറ്റി ഹാഷ്: %(hash_value)sസമർപ്പിക്കുകആദ്യ ഘട്ടംതൊട്ടു മുമ്പിലെ ഘട്ടംസമര്‍പ്പിക്കുകdjango-formtools-2.2/formtools/locale/ml/LC_MESSAGES/django.po000066400000000000000000000046151357223351300241350ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Hrishikesh , 2019 # Jannis Leidel , 2011 # Rajeesh Nair , 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: 2019-03-04 08:53+0000\n" "Last-Translator: Hrishikesh \n" "Language-Team: Malayalam (http://www.transifex.com/django/django-formtools/language/ml/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ml\n" "Plural-Forms: nplurals=2; plural=(n != 1);\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 "ManagementForm ഡാറ്റ ലഭ്യമല്ലാതിരിക്കുകയോ അതിൽ തിരിമറി നടത്തപ്പെടുകയോ ചെയ്തിരിക്കുന്നു." django-formtools-2.2/formtools/locale/mn/000077500000000000000000000000001357223351300205425ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/mn/LC_MESSAGES/000077500000000000000000000000001357223351300223275ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/mn/LC_MESSAGES/django.mo000066400000000000000000000024711357223351300241320ustar00rootroot00000000000000 |  !4,a#r  q/-4] 7  ,   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-11-28 08:00+0000 Last-Translator: Zorig Language-Team: Mongolian (http://www.transifex.com/projects/p/django-formtools/language/mn/) Language: mn MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Форм хэрэгсэлУдирдах Формын мэдээлэл алга болсон эсвэл хориглогдсон байнаЭсвэл дахин засварлана ууДараах алдаануудыг засна уу.ХянахИлгээлтыг хянахХамгаалалтын нууцлал: %(hash_value)sИлгээхэхний алхамөмнөх алхамилгээхdjango-formtools-2.2/formtools/locale/mn/LC_MESSAGES/django.po000066400000000000000000000037611357223351300241400ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Jacara , 2011 # Zorig , 2014 # Анхбаяр Анхаа , 2011 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-28 08:00+0000\n" "Last-Translator: Zorig \n" "Language-Team: Mongolian (http://www.transifex.com/projects/p/django-" "formtools/language/mn/)\n" "Language: mn\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" #: 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 "Удирдах Формын мэдээлэл алга болсон эсвэл хориглогдсон байна" django-formtools-2.2/formtools/locale/nb/000077500000000000000000000000001357223351300205275ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/nb/LC_MESSAGES/000077500000000000000000000000001357223351300223145ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/nb/LC_MESSAGES/django.mo000066400000000000000000000022151357223351300241130ustar00rootroot00000000000000 |  !4,a#r  3!+Gg m z   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-12-02 11:05+0000 Last-Translator: Jon Language-Team: Norwegian Bokmål (http://www.transifex.com/projects/p/django-formtools/language/nb/) Language: nb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Skjema-verktøyManagementForm-data mangler eller har blitt endret.Eller endre igjenVennligst korriger følgende feilForhåndsvisningForhåndsvis din innsendingSikkerhets-hash: %(hash_value)sLagreførste stegforrige steglagredjango-formtools-2.2/formtools/locale/nb/LC_MESSAGES/django.po000066400000000000000000000035201357223351300241160ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Jannis Leidel , 2011 # jensadne , 2014 # Jon , 2014 # Jon , 2012-2013 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-12-02 11:05+0000\n" "Last-Translator: Jon \n" "Language-Team: Norwegian Bokmål (http://www.transifex.com/projects/p/django-" "formtools/language/nb/)\n" "Language: nb\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" #: apps.py:7 msgid "Form Tools" msgstr "Skjema-verktøy" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Vennligst korriger følgende feil" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Lagre" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Forhåndsvisning" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Forhåndsvis din innsending" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Sikkerhets-hash: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Eller endre igjen" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "første steg" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "forrige steg" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "lagre" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "ManagementForm-data mangler eller har blitt endret." django-formtools-2.2/formtools/locale/ne/000077500000000000000000000000001357223351300205325ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ne/LC_MESSAGES/000077500000000000000000000000001357223351300223175ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ne/LC_MESSAGES/django.mo000066400000000000000000000012311357223351300241130ustar00rootroot00000000000000<\p q |;!V xfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-06 19:19+0000 Last-Translator: Jannis Leidel Language-Team: Nepali (http://www.transifex.com/projects/p/django-formtools/language/ne/) Language: ne MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); प्रथम चाल अघिल्लो चाल जम्मा गर्नु django-formtools-2.2/formtools/locale/ne/LC_MESSAGES/django.po000066400000000000000000000031621357223351300241230ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Paras Nath Chaudhary , 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-06 19:19+0000\n" "Last-Translator: Jannis Leidel \n" "Language-Team: Nepali (http://www.transifex.com/projects/p/django-formtools/" "language/ne/)\n" "Language: ne\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" #: 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 "" #: 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 "" django-formtools-2.2/formtools/locale/nl/000077500000000000000000000000001357223351300205415ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/nl/LC_MESSAGES/000077500000000000000000000000001357223351300223265ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/nl/LC_MESSAGES/django.mo000066400000000000000000000022021357223351300241210ustar00rootroot00000000000000 |  !4,a#r  5 # 5 V ` l x   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2017-09-20 12:01+0000 Last-Translator: Evelijn Saaltink Language-Team: Dutch (http://www.transifex.com/django/django-formtools/language/nl/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: nl Plural-Forms: nplurals=2; plural=(n != 1); Hulpmiddelen voor formulierenGegevens van ManagementForm missen of zijn aangetast.Of wijzig het opnieuwHerstel de fouten hieronderVoorbeeldToon een voorbeeld van je inzendingBeveiligingshash: %(hash_value)sVerstureneerste stapvorige stapverzendendjango-formtools-2.2/formtools/locale/nl/LC_MESSAGES/django.po000066400000000000000000000036161357223351300241360ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Bouke Haarsma , 2013 # Evelijn Saaltink , 2016 # Jannis Leidel , 2011 # Jeffrey Gelens , 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: 2017-09-20 12:01+0000\n" "Last-Translator: Evelijn Saaltink \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" "Content-Transfer-Encoding: 8bit\n" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:7 msgid "Form Tools" msgstr "Hulpmiddelen voor formulieren" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Herstel de fouten hieronder" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Versturen" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Voorbeeld" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Toon een voorbeeld van je inzending" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Beveiligingshash: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Of wijzig het opnieuw" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "eerste stap" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "vorige stap" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "verzenden" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "Gegevens van ManagementForm missen of zijn aangetast." django-formtools-2.2/formtools/locale/nn/000077500000000000000000000000001357223351300205435ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/nn/LC_MESSAGES/000077500000000000000000000000001357223351300223305ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/nn/LC_MESSAGES/django.mo000066400000000000000000000011441357223351300241270ustar00rootroot00000000000000<\p q | F R^first stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-06 19:19+0000 Last-Translator: Jannis Leidel Language-Team: Norwegian Nynorsk (http://www.transifex.com/projects/p/django-formtools/language/nn/) Language: nn MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); fyrste stegførre steglagredjango-formtools-2.2/formtools/locale/nn/LC_MESSAGES/django.po000066400000000000000000000031311357223351300241300ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Jannis Leidel , 2011 # velmont , 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-06 19:19+0000\n" "Last-Translator: Jannis Leidel \n" "Language-Team: Norwegian Nynorsk (http://www.transifex.com/projects/p/django-" "formtools/language/nn/)\n" "Language: nn\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" #: 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 "" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "fyrste steg" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "førre steg" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "lagre" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "" django-formtools-2.2/formtools/locale/os/000077500000000000000000000000001357223351300205515ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/os/LC_MESSAGES/000077500000000000000000000000001357223351300223365ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/os/LC_MESSAGES/django.mo000066400000000000000000000012061357223351300241340ustar00rootroot00000000000000<\p q |<Xwfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-06 19:31+0000 Last-Translator: Jannis Leidel Language-Team: Ossetic (http://www.transifex.com/projects/p/django-formtools/language/os/) Language: os MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); фыццаг къахцӕфай размӕ къахцӕфарвитынdjango-formtools-2.2/formtools/locale/os/LC_MESSAGES/django.po000066400000000000000000000031251357223351300241410ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Soslan Khubulov , 2013 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 \n" "Language-Team: Ossetic (http://www.transifex.com/projects/p/django-formtools/" "language/os/)\n" "Language: os\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" #: 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 "" #: 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 "" django-formtools-2.2/formtools/locale/pa/000077500000000000000000000000001357223351300205305ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/pa/LC_MESSAGES/000077500000000000000000000000001357223351300223155ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/pa/LC_MESSAGES/django.mo000066400000000000000000000012071357223351300241140ustar00rootroot00000000000000<\p q |F` zfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-06 19:31+0000 Last-Translator: Jannis Leidel Language-Team: Panjabi (Punjabi) (http://www.transifex.com/projects/p/django-formtools/language/pa/) Language: pa MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); ਪਹਿਲਾਂ ਪਗਪਿਛਲਾ ਪਗ਼ਭੇਜੋdjango-formtools-2.2/formtools/locale/pa/LC_MESSAGES/django.po000066400000000000000000000031231357223351300241160ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # A S Alam , 2013 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 \n" "Language-Team: Panjabi (Punjabi) (http://www.transifex.com/projects/p/django-" "formtools/language/pa/)\n" "Language: pa\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" #: 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 "" #: 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 "" django-formtools-2.2/formtools/locale/pl/000077500000000000000000000000001357223351300205435ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/pl/LC_MESSAGES/000077500000000000000000000000001357223351300223305ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/pl/LC_MESSAGES/django.mo000066400000000000000000000024111357223351300241250ustar00rootroot00000000000000 |  !4,a#r  5S'j$    Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2017-09-23 20:16+0000 Last-Translator: m_aciek Language-Team: Polish (http://www.transifex.com/django/django-formtools/language/pl/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: pl Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3); Narzędzia formularzyBrakuje danych ManagementForm lub zostały naruszone.Lub edytuj je ponownieProszę poprawić następujące błędyPodglądPrzejrzyj swoje zgłoszenieHash bezpieczeństwa: %(hash_value)sWyślijpierwszy krokpoprzedni krokwyślijdjango-formtools-2.2/formtools/locale/pl/LC_MESSAGES/django.po000066400000000000000000000041261357223351300241350ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Adam Stachowicz , 2015 # Adrian Antończyk , 2015 # angularcircle, 2012 # Jannis Leidel , 2011 # Janusz Harkot , 2014 # m_aciek , 2016-2017 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-23 20:16+0000\n" "Last-Translator: m_aciek \n" "Language-Team: Polish (http://www.transifex.com/django/django-formtools/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pl\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" #: apps.py:7 msgid "Form Tools" msgstr "Narzędzia formularzy" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Proszę poprawić następujące błędy" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Wyślij" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Podgląd" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Przejrzyj swoje zgłoszenie" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Hash bezpieczeństwa: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Lub edytuj je ponownie" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "pierwszy krok" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "poprzedni krok" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "wyślij" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "Brakuje danych ManagementForm lub zostały naruszone." django-formtools-2.2/formtools/locale/pt/000077500000000000000000000000001357223351300205535ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/pt/LC_MESSAGES/000077500000000000000000000000001357223351300223405ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/pt/LC_MESSAGES/django.mo000066400000000000000000000014731357223351300241440ustar00rootroot00000000000000L | 4 @#2Form ToolsManagementForm data is missing or has been tampered.first stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-06 19:31+0000 Last-Translator: Jannis Leidel Language-Team: Portuguese (http://www.transifex.com/projects/p/django-formtools/language/pt/) Language: pt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Ferramentas de FormuláriosOs dados do ManagementForm estão em falta ou foram adulterados.primeiro passopasso anteriorsubmeterdjango-formtools-2.2/formtools/locale/pt/LC_MESSAGES/django.po000066400000000000000000000032641357223351300241470ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Jannis Leidel , 2011 # Raúl Pedro Fernandes Santos, 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: 2014-10-06 19:31+0000\n" "Last-Translator: Jannis Leidel \n" "Language-Team: Portuguese (http://www.transifex.com/projects/p/django-" "formtools/language/pt/)\n" "Language: pt\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" #: apps.py:7 msgid "Form Tools" msgstr "Ferramentas de Formulários" #: 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 "" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "primeiro passo" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "passo anterior" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "submeter" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "Os dados do ManagementForm estão em falta ou foram adulterados." django-formtools-2.2/formtools/locale/pt_BR/000077500000000000000000000000001357223351300211365ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/pt_BR/LC_MESSAGES/000077500000000000000000000000001357223351300227235ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/pt_BR/LC_MESSAGES/django.mo000066400000000000000000000023331357223351300245230ustar00rootroot00000000000000 |  !4,a#r  G'%>dt"   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2015-02-08 03:40+0000 Last-Translator: Fábio C. Barrionuevo da Luz Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/django-formtools/language/pt_BR/) Language: pt_BR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); Ferramentas de FormulárioOs dados do ManagementForm não foram encontrados ou foram adulterados.Ou editá-la novamentePor favor, corrija os seguintes errosPré-visualizarPré-visualizar o envioHash de segurança: %(hash_value)sEnviarprimeiro passopasso anteriorenviardjango-formtools-2.2/formtools/locale/pt_BR/LC_MESSAGES/django.po000066400000000000000000000037741357223351300245400ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Allisson Azevedo , 2014 # Elyézer Rezende , 2013 # Fábio C. Barrionuevo da Luz , 2015 # Guilherme Gondim , 2012 # Jannis Leidel , 2011 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: 2015-02-08 03:40+0000\n" "Last-Translator: Fábio C. Barrionuevo da Luz \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/" "django-formtools/language/pt_BR/)\n" "Language: pt_BR\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" #: apps.py:7 msgid "Form Tools" msgstr "Ferramentas de Formulário" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Por favor, corrija os seguintes erros" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Enviar" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Pré-visualizar" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Pré-visualizar o envio" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Hash de segurança: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Ou editá-la novamente" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "primeiro passo" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "passo anterior" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "enviar" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "Os dados do ManagementForm não foram encontrados ou foram adulterados." django-formtools-2.2/formtools/locale/ro/000077500000000000000000000000001357223351300205505ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ro/LC_MESSAGES/000077500000000000000000000000001357223351300223355ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ro/LC_MESSAGES/django.mo000066400000000000000000000022431357223351300241350ustar00rootroot00000000000000 |  !4,a#r  :' (4"Tw     Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2018-04-26 12:11+0000 Last-Translator: Bogdan Mateescu Language-Team: Romanian (http://www.transifex.com/django/django-formtools/language/ro/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: ro Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1)); Unelte pentru FormulareDatele din ManagementForm lipsesc sau au fost falsificate.Sau modifică în continuareTe rog să corectezi următoarele eroriVizualizareVizualizează datele completateHash de securitate: %(hash_value)sTrimiteprimul paspasul anteriorconfirmădjango-formtools-2.2/formtools/locale/ro/LC_MESSAGES/django.po000066400000000000000000000036401357223351300241420ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Bogdan Mateescu, 2018 # Denis Darii , 2014 # mihneasim , 2013 # Razvan Stefanescu , 2015 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: 2018-04-26 12:11+0000\n" "Last-Translator: Bogdan Mateescu\n" "Language-Team: Romanian (http://www.transifex.com/django/django-formtools/language/ro/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ro\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" #: apps.py:7 msgid "Form Tools" msgstr "Unelte pentru Formulare" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Te rog să corectezi următoarele erori" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Trimite" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Vizualizare" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Vizualizează datele completate" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Hash de securitate: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Sau modifică în continuare" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "primul pas" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "pasul anterior" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "confirmă" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "Datele din ManagementForm lipsesc sau au fost falsificate." django-formtools-2.2/formtools/locale/ru/000077500000000000000000000000001357223351300205565ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ru/LC_MESSAGES/000077500000000000000000000000001357223351300223435ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/ru/LC_MESSAGES/django.mo000066400000000000000000000027471357223351300241540ustar00rootroot00000000000000 |  !4,a#r  T5dH/M/a   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-11-02 05:30+0000 Last-Translator: Mingun Language-Team: Russian (http://www.transifex.com/projects/p/django-formtools/language/ru/) Language: ru MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); Инструменты формДанные ManagementForm отсутствуют или были искажены.Или отредактируйте его сноваПожалуйста, исправьте следующие ошибкиПредварительный просмотрПредварительный просмотр ваших измененийХэш безопасности: %(hash_value)sОтправитьпервый шагпредыдущий шаготправитьdjango-formtools-2.2/formtools/locale/ru/LC_MESSAGES/django.po000066400000000000000000000042421357223351300241470ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Mingun , 2014 # Eugene MechanisM , 2012 # Jannis Leidel , 2011 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-02 05:30+0000\n" "Last-Translator: Mingun \n" "Language-Team: Russian (http://www.transifex.com/projects/p/django-formtools/" "language/ru/)\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\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 "Данные ManagementForm отсутствуют или были искажены." django-formtools-2.2/formtools/locale/sk/000077500000000000000000000000001357223351300205455ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/sk/LC_MESSAGES/000077500000000000000000000000001357223351300223325ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/sk/LC_MESSAGES/django.mo000066400000000000000000000012001357223351300241220ustar00rootroot00000000000000<\p q | Vawfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-06 19:31+0000 Last-Translator: Jannis Leidel Language-Team: Slovak (http://www.transifex.com/projects/p/django-formtools/language/sk/) Language: sk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2; prvý krokpredchádzajúci krokodoslaťdjango-formtools-2.2/formtools/locale/sk/LC_MESSAGES/django.po000066400000000000000000000032421357223351300241350ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Jannis Leidel , 2011 # Juraj Bubniak , 2013 # Marian Andre , 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-06 19:31+0000\n" "Last-Translator: Jannis Leidel \n" "Language-Team: Slovak (http://www.transifex.com/projects/p/django-formtools/" "language/sk/)\n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\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 "" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "prvý krok" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "predchádzajúci krok" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "odoslať" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "" django-formtools-2.2/formtools/locale/sl/000077500000000000000000000000001357223351300205465ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/sl/LC_MESSAGES/000077500000000000000000000000001357223351300223335ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/sl/LC_MESSAGES/django.mo000066400000000000000000000012251357223351300241320ustar00rootroot00000000000000<\p q | r}first stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-06 19:31+0000 Last-Translator: Jannis Leidel Language-Team: Slovenian (http://www.transifex.com/projects/p/django-formtools/language/sl/) Language: sl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3); prvi korakpredhodni korakpošljidjango-formtools-2.2/formtools/locale/sl/LC_MESSAGES/django.po000066400000000000000000000032151357223351300241360ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Jannis Leidel , 2011 # zejn , 2012-2013 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 \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/django-" "formtools/language/sl/)\n" "Language: sl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" "%100==4 ? 2 : 3);\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 "" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "prvi korak" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "predhodni korak" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "pošlji" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "" django-formtools-2.2/formtools/locale/sq/000077500000000000000000000000001357223351300205535ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/sq/LC_MESSAGES/000077500000000000000000000000001357223351300223405ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/sq/LC_MESSAGES/django.mo000066400000000000000000000022731357223351300241430ustar00rootroot00000000000000 |  !4,a#r  E" ;Gd      Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-12-16 14:41+0000 Last-Translator: Besnik Language-Team: Albanian (http://www.transifex.com/projects/p/django-formtools/language/sq/) Language: sq MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Mjete FormularëshTë dhënat ManagementForm mungojnë ose mbi to është vënë dorë.Ose përpunojeni sërishJu lutemi, ndreqni gabimet vijueseParashiheniParashihni parashtrimin tuajHash sigurie: %(hash_value)sParashtrojenihapi i parëhapi i mëparshëmparashtrojedjango-formtools-2.2/formtools/locale/sq/LC_MESSAGES/django.po000066400000000000000000000034261357223351300241470ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Besnik , 2011 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-12-16 14:41+0000\n" "Last-Translator: Besnik \n" "Language-Team: Albanian (http://www.transifex.com/projects/p/django-" "formtools/language/sq/)\n" "Language: sq\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" #: apps.py:7 msgid "Form Tools" msgstr "Mjete Formularësh" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Ju lutemi, ndreqni gabimet vijuese" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Parashtrojeni" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Parashiheni" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Parashihni parashtrimin tuaj" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Hash sigurie: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Ose përpunojeni sërish" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "hapi i parë" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "hapi i mëparshëm" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "parashtroje" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "Të dhënat ManagementForm mungojnë ose mbi to është vënë dorë." django-formtools-2.2/formtools/locale/sr/000077500000000000000000000000001357223351300205545ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/sr/LC_MESSAGES/000077500000000000000000000000001357223351300223415ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/sr/LC_MESSAGES/django.mo000066400000000000000000000025161357223351300241440ustar00rootroot00000000000000 |  !4,a#r  $]%K0q / # A   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2018-12-02 21:27+0000 Last-Translator: Branko Kokanovic Language-Team: Serbian (http://www.transifex.com/django/django-formtools/language/sr/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: sr Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); Алатке за формулареManagementForm подаци недостају или су неправилно мењани.Или га измените опетИсправите наведене грешкеПрегледПреглед пре слањаБезбедоносни хеш: %(hash_value)sПошаљипрви коракпретходни коракпошаљиdjango-formtools-2.2/formtools/locale/sr/LC_MESSAGES/django.po000066400000000000000000000040521357223351300241440ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Branko Kokanovic , 2018 # Jannis Leidel , 2011 # Janos Guljas , 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: 2018-12-02 21:27+0000\n" "Last-Translator: Branko Kokanovic \n" "Language-Team: Serbian (http://www.transifex.com/django/django-formtools/language/sr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sr\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\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 "ManagementForm подаци недостају или су неправилно мењани." django-formtools-2.2/formtools/locale/sr_Latn/000077500000000000000000000000001357223351300215325ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/sr_Latn/LC_MESSAGES/000077500000000000000000000000001357223351300233175ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/sr_Latn/LC_MESSAGES/django.mo000066400000000000000000000012751357223351300251230ustar00rootroot00000000000000<\p q |  first stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-06 19:31+0000 Last-Translator: Jannis Leidel Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/django-formtools/language/sr@latin/) Language: sr@latin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); prvi korakprethodni korakpostavidjango-formtools-2.2/formtools/locale/sr_Latn/LC_MESSAGES/django.po000066400000000000000000000032671357223351300251310ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Jannis Leidel , 2011 # Janos Guljas , 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-06 19:31+0000\n" "Last-Translator: Jannis Leidel \n" "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/django-" "formtools/language/sr@latin/)\n" "Language: sr@latin\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\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 "" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "prvi korak" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "prethodni korak" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "postavi" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "" django-formtools-2.2/formtools/locale/sv/000077500000000000000000000000001357223351300205605ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/sv/LC_MESSAGES/000077500000000000000000000000001357223351300223455ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/sv/LC_MESSAGES/django.mo000066400000000000000000000022161357223351300241450ustar00rootroot00000000000000 |  !4,a#r  .#!A`gv   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2015-02-28 13:22+0000 Last-Translator: Jonathan Lindén Language-Team: Swedish (http://www.transifex.com/projects/p/django-formtools/language/sv/) Language: sv MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); FormulärverktygManagementForm-data saknas eller har ändrats.Eller redigera det igenVar vänlig korrigera följande felFörhandsgranskaFörhandsgranska ditt formulärSäkerhetshash: %(hash_value)sSkickaförsta stegetföregående stegsparadjango-formtools-2.2/formtools/locale/sv/LC_MESSAGES/django.po000066400000000000000000000035351357223351300241550ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Andreas Pelme , 2012 # Jannis Leidel , 2011 # Jonathan Lindén, 2015 # Thomas Lundqvist , 2013 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: 2015-02-28 13:22+0000\n" "Last-Translator: Jonathan Lindén\n" "Language-Team: Swedish (http://www.transifex.com/projects/p/django-formtools/" "language/sv/)\n" "Language: sv\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" #: apps.py:7 msgid "Form Tools" msgstr "Formulärverktyg" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Var vänlig korrigera följande fel" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Skicka" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Förhandsgranska" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Förhandsgranska ditt formulär" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Säkerhetshash: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Eller redigera det igen" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "första steget" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "föregående steg" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "spara" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "ManagementForm-data saknas eller har ändrats." django-formtools-2.2/formtools/locale/sw/000077500000000000000000000000001357223351300205615ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/sw/LC_MESSAGES/000077500000000000000000000000001357223351300223465ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/sw/LC_MESSAGES/django.mo000066400000000000000000000022251357223351300241460ustar00rootroot00000000000000 |  !4,a#r   @$'#= ak{    Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2015-01-12 14:22+0000 Last-Translator: Emil Language-Team: Swahili (http://www.transifex.com/projects/p/django-formtools/language/sw/) Language: sw MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Zana za fomuKuna data za 'ManagementForm' zimekosekana au zimechakachuliwa. Au hariri tenaTafadhali sahihisha makosa yafuatayoUhakikiHakiki wasilisho lakoMsimbo wa kiusalama: %(hash_value)sWasilishahatua ya kwanzahatua iliyopitawasilishadjango-formtools-2.2/formtools/locale/sw/LC_MESSAGES/django.po000066400000000000000000000033501357223351300241510ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Emil , 2015 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: 2015-01-12 14:22+0000\n" "Last-Translator: Emil \n" "Language-Team: Swahili (http://www.transifex.com/projects/p/django-formtools/" "language/sw/)\n" "Language: sw\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" #: apps.py:7 msgid "Form Tools" msgstr "Zana za fomu" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Tafadhali sahihisha makosa yafuatayo" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Wasilisha" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Uhakiki" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Hakiki wasilisho lako" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Msimbo wa kiusalama: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Au hariri tena" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "hatua ya kwanza" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "hatua iliyopita" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "wasilisha" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "Kuna data za 'ManagementForm' zimekosekana au zimechakachuliwa. " django-formtools-2.2/formtools/locale/th/000077500000000000000000000000001357223351300205435ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/th/LC_MESSAGES/000077500000000000000000000000001357223351300223305ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/th/LC_MESSAGES/django.mo000066400000000000000000000013031357223351300241240ustar00rootroot00000000000000Dl /H6g$Previewfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2017-09-20 12:01+0000 Last-Translator: Piyapong Thanatrakul Language-Team: Thai (http://www.transifex.com/django/django-formtools/language/th/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: th Plural-Forms: nplurals=1; plural=0; ตัวอย่างขั้นตอนแรกขั้นตอนก่อนหน้านี้ดำเนินการส่งdjango-formtools-2.2/formtools/locale/th/LC_MESSAGES/django.po000066400000000000000000000033761357223351300241430ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Jannis Leidel , 2011 # Piyapong Thanatrakul , 2015 # Vichai Vongvorakul , 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: 2017-09-20 12:01+0000\n" "Last-Translator: Piyapong Thanatrakul \n" "Language-Team: Thai (http://www.transifex.com/django/django-formtools/language/th/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: th\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 "" #: 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 "" django-formtools-2.2/formtools/locale/tr/000077500000000000000000000000001357223351300205555ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/tr/LC_MESSAGES/000077500000000000000000000000001357223351300223425ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/tr/LC_MESSAGES/django.mo000066400000000000000000000022271357223351300241440ustar00rootroot00000000000000 |  !4,a#r  0('/%Io w    Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-06 19:19+0000 Last-Translator: Jannis Leidel Language-Team: Turkish (http://www.transifex.com/projects/p/django-formtools/language/tr/) Language: tr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); Form AraçlarıManagementForm verisi eksik ya da kurcalanmış.Veya tekrar düzenleyinLütfen aşağıdaki hataları düzeltinÖnizleGönderiminizi önizleyinGüvenlik adreslemesi: %(hash_value)sGönderilk adımönceki adımgönderdjango-formtools-2.2/formtools/locale/tr/LC_MESSAGES/django.po000066400000000000000000000035071357223351300241510ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Burak Yavuz, 2014 # Burak Yavuz, 2014 # Jannis Leidel , 2011 # Murat Çorlu , 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-06 19:19+0000\n" "Last-Translator: Jannis Leidel \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/django-formtools/" "language/tr/)\n" "Language: tr\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" #: apps.py:7 msgid "Form Tools" msgstr "Form Araçları" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Lütfen aşağıdaki hataları düzeltin" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Gönder" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Önizle" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Gönderiminizi önizleyin" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Güvenlik adreslemesi: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Veya tekrar düzenleyin" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "ilk adım" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "önceki adım" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "gönder" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "ManagementForm verisi eksik ya da kurcalanmış." django-formtools-2.2/formtools/locale/uk/000077500000000000000000000000001357223351300205475ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/uk/LC_MESSAGES/000077500000000000000000000000001357223351300223345ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/uk/LC_MESSAGES/django.mo000066400000000000000000000030101357223351300241250ustar00rootroot00000000000000 |  !4,a#r  M!ENg,E%)4O%   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2017-09-20 12:01+0000 Last-Translator: Zoriana Zaiats Language-Team: Ukrainian (http://www.transifex.com/django/django-formtools/language/uk/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: uk Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3); Інструменти формиДані ManagementForm відсутні або були спотворені.Або відредагувати зновуБудь ласка, виправте наступні помилкиПопередній переглядПопередній перегляд поданняХеш безпеки: %(hash_value)sВідправитиперший крокпопередній кроквідправитиdjango-formtools-2.2/formtools/locale/uk/LC_MESSAGES/django.po000066400000000000000000000044031357223351300241370ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Jannis Leidel , 2011 # Max V. Stotsky , 2014 # Sergey Lysach , 2012 # Zoriana Zaiats, 2016 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: Zoriana Zaiats\n" "Language-Team: Ukrainian (http://www.transifex.com/django/django-formtools/language/uk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: uk\n" "Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\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 "Дані ManagementForm відсутні або були спотворені." django-formtools-2.2/formtools/locale/vi/000077500000000000000000000000001357223351300205465ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/vi/LC_MESSAGES/000077500000000000000000000000001357223351300223335ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/vi/LC_MESSAGES/django.mo000066400000000000000000000021551357223351300241350ustar00rootroot00000000000000 |  !4,a#r  x p<{# %(H N \g   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2017-09-23 20:16+0000 Last-Translator: Tran Van Language-Team: Vietnamese (http://www.transifex.com/django/django-formtools/language/vi/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: vi Plural-Forms: nplurals=1; plural=0; Form ToolsDữ liệu trong Form bị thiếu hoặc bị giả mạo.Hoặc biên tập lạiHãy sửa các lỗi dưới đâyXem trướcXem trước bình luận của bạnMã bảo mật: %(hash_value)sGửiBước mộtQuay lạigửidjango-formtools-2.2/formtools/locale/vi/LC_MESSAGES/django.po000066400000000000000000000033531357223351300241410ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Tran Van , 2016 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-23 20:16+0000\n" "Last-Translator: Tran Van \n" "Language-Team: Vietnamese (http://www.transifex.com/django/django-formtools/language/vi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: vi\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:7 msgid "Form Tools" msgstr "Form Tools" #: templates/formtools/form.html:6 msgid "Please correct the following errors" msgstr "Hãy sửa các lỗi dưới đây" #: templates/formtools/form.html:6 templates/formtools/preview.html:24 msgid "Submit" msgstr "Gửi" #: templates/formtools/form.html:13 templates/formtools/preview.html:34 msgid "Preview" msgstr "Xem trước" #: templates/formtools/preview.html:6 msgid "Preview your submission" msgstr "Xem trước bình luận của bạn" #: templates/formtools/preview.html:17 #, python-format msgid "Security hash: %(hash_value)s" msgstr "Mã bảo mật: %(hash_value)s" #: templates/formtools/preview.html:27 msgid "Or edit it again" msgstr "Hoặc biên tập lại" #: templates/formtools/wizard/wizard_form.html:16 msgid "first step" msgstr "Bước một" #: templates/formtools/wizard/wizard_form.html:17 msgid "prev step" msgstr "Quay lại" #: templates/formtools/wizard/wizard_form.html:19 msgid "submit" msgstr "gửi" #: wizard/views.py:276 msgid "ManagementForm data is missing or has been tampered." msgstr "Dữ liệu trong Form bị thiếu hoặc bị giả mạo." django-formtools-2.2/formtools/locale/zh_CN/000077500000000000000000000000001357223351300211315ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/zh_CN/LC_MESSAGES/000077500000000000000000000000001357223351300227165ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/zh_CN/LC_MESSAGES/django.mo000066400000000000000000000020661357223351300245210ustar00rootroot00000000000000 |  !4,a#r   |*  %/   Form ToolsManagementForm data is missing or has been tampered.Or edit it againPlease correct the following errorsPreviewPreview your submissionSecurity hash: %(hash_value)sSubmitfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: PO-Revision-Date: 2017-09-20 12:01+0000 Last-Translator: pylemon Language-Team: Chinese (China) (http://www.transifex.com/django/django-formtools/language/zh_CN/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: zh_CN Plural-Forms: nplurals=1; plural=0; 表单工具ManagementForm 数据丢失或已被篡改或再次编辑请更正下列错误。预览预览你的提交安全散列: %(hash_value)s提交第一步上一步提交django-formtools-2.2/formtools/locale/zh_CN/LC_MESSAGES/django.po000066400000000000000000000034611357223351300245240ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Jannis Leidel , 2011 # Ronald White , 2014 # pylemon , 2015 # ced773123cfad7b4e8b79ca80f736af9, 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: 2017-09-20 12:01+0000\n" "Last-Translator: pylemon \n" "Language-Team: Chinese (China) (http://www.transifex.com/django/django-formtools/language/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: zh_CN\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 "ManagementForm 数据丢失或已被篡改" django-formtools-2.2/formtools/locale/zh_Hans/000077500000000000000000000000001357223351300215225ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/zh_Hans/LC_MESSAGES/000077500000000000000000000000001357223351300233075ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/zh_Hans/LC_MESSAGES/django.mo000066400000000000000000000011751357223351300251120ustar00rootroot00000000000000Dl  U b lvForm Toolsfirst stepprev stepsubmitProject-Id-Version: django Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-09-04 10:32+0000 Last-Translator: ouyanghongyu Language-Team: Chinese (China) (http://www.transifex.com/projects/p/django/language/zh_CN/) Language: zh_CN MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; 表单工具第一步上一步提交django-formtools-2.2/formtools/locale/zh_Hans/LC_MESSAGES/django.po000066400000000000000000000032371357223351300251160ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # Jannis Leidel , 2011 # ouyanghongyu , 2014 # Ziang Song , 2012 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-03-25 09:31-0500\n" "PO-Revision-Date: 2014-09-04 10:32+0000\n" "Last-Translator: ouyanghongyu \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/django/" "language/zh_CN/)\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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 #, fuzzy #| msgid "submit" 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 "" #: 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 "" django-formtools-2.2/formtools/locale/zh_Hant/000077500000000000000000000000001357223351300215235ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/zh_Hant/LC_MESSAGES/000077500000000000000000000000001357223351300233105ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/zh_Hant/LC_MESSAGES/django.mo000066400000000000000000000011131357223351300251030ustar00rootroot00000000000000<\p q | 0 :Dfirst stepprev stepsubmitProject-Id-Version: django Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-05-20 09:43+0000 Last-Translator: Jannis Leidel Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/django/language/zh_TW/) Language: zh_TW MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; 第一步下一步送出django-formtools-2.2/formtools/locale/zh_Hant/LC_MESSAGES/django.po000066400000000000000000000031261357223351300251140ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # ilay , 2012 # Jannis Leidel , 2011 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-03-25 09:31-0500\n" "PO-Revision-Date: 2014-05-20 09:43+0000\n" "Last-Translator: Jannis Leidel \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/django/" "language/zh_TW/)\n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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 #, fuzzy #| msgid "submit" 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 "" #: 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 "" django-formtools-2.2/formtools/locale/zh_TW/000077500000000000000000000000001357223351300211635ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/zh_TW/LC_MESSAGES/000077500000000000000000000000001357223351300227505ustar00rootroot00000000000000django-formtools-2.2/formtools/locale/zh_TW/LC_MESSAGES/django.mo000066400000000000000000000011371357223351300245510ustar00rootroot00000000000000<\p q | D NXfirst stepprev stepsubmitProject-Id-Version: django-formtools Report-Msgid-Bugs-To: POT-Creation-Date: 2015-03-25 09:31-0500 PO-Revision-Date: 2014-10-06 19:17+0000 Last-Translator: Jannis Leidel Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/django-formtools/language/zh_TW/) Language: zh_TW MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; 第一步下一步送出django-formtools-2.2/formtools/locale/zh_TW/LC_MESSAGES/django.po000066400000000000000000000031111357223351300245460ustar00rootroot00000000000000# This file is distributed under the same license as the Django package. # # Translators: # ilay , 2012 # Jannis Leidel , 2011 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:17+0000\n" "Last-Translator: Jannis Leidel \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/django-" "formtools/language/zh_TW/)\n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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 "" #: 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 "" django-formtools-2.2/formtools/models.py000066400000000000000000000001471357223351300205300ustar00rootroot00000000000000# This file is required to pretend formtools has models. # Otherwise test models cannot be registered. django-formtools-2.2/formtools/preview.py000066400000000000000000000136721357223351300207350ustar00rootroot00000000000000""" Formtools Preview application. """ from django.http import Http404 from django.shortcuts import render from django.utils.crypto import constant_time_compare from .utils import form_hmac AUTO_ID = 'formtools_%s' # Each form here uses this as its auto_id parameter. class FormPreview: preview_template = 'formtools/preview.html' form_template = 'formtools/form.html' # METHODS SUBCLASSES SHOULDN'T OVERRIDE ################################### def __init__(self, form): # form should be a Form class, not an instance. self.form, self.state = form, {} def __call__(self, request, *args, **kwargs): stage = { '1': 'preview', '2': 'post', }.get(request.POST.get(self.unused_name('stage')), 'preview') self.parse_params(request, *args, **kwargs) try: method = getattr(self, stage + '_' + request.method.lower()) except AttributeError: raise Http404 return method(request) def unused_name(self, name): """ Given a first-choice name, adds an underscore to the name until it reaches a name that isn't claimed by any field in the form. This is calculated rather than being hard-coded so that no field names are off-limits for use in the form. """ while 1: try: self.form.base_fields[name] except KeyError: break # This field name isn't being used by the form. name += '_' return name def preview_get(self, request): "Displays the form" f = self.form(auto_id=self.get_auto_id(), initial=self.get_initial(request)) return render(request, self.form_template, self.get_context(request, f)) def preview_post(self, request): """ Validates the POST data. If valid, displays the preview page. Else, redisplays form. """ f = self.form(request.POST, auto_id=self.get_auto_id()) context = self.get_context(request, f) if f.is_valid(): self.process_preview(request, f, context) context['hash_field'] = self.unused_name('hash') context['hash_value'] = self.security_hash(request, f) return render(request, self.preview_template, context) else: return render(request, self.form_template, context) def _check_security_hash(self, token, request, form): expected = self.security_hash(request, form) return constant_time_compare(token, expected) def post_post(self, request): """ Validates the POST data. If valid, calls done(). Else, redisplays form. """ form = self.form(request.POST, auto_id=self.get_auto_id()) if form.is_valid(): if not self._check_security_hash( request.POST.get(self.unused_name('hash'), ''), request, form): return self.failed_hash(request) # Security hash failed. return self.done(request, form.cleaned_data) else: return render(request, self.form_template, self.get_context(request, form)) # METHODS SUBCLASSES MIGHT OVERRIDE IF APPROPRIATE ######################## def get_auto_id(self): """ Hook to override the ``auto_id`` kwarg for the form. Needed when rendering two form previews in the same template. """ return AUTO_ID def get_initial(self, request): """ Takes a request argument and returns a dictionary to pass to the form's ``initial`` kwarg when the form is being created from an HTTP get. """ return {} def get_context(self, request, form): "Context for template rendering." return { 'form': form, 'stage_field': self.unused_name('stage'), 'state': self.state, } def parse_params(self, request, *args, **kwargs): """ Given captured args and kwargs from the URLconf, saves something in self.state and/or raises :class:`~django.http.Http404` if necessary. For example, this URLconf captures a user_id variable:: path('contact//', MyFormPreview(MyForm)), In this case, the kwargs variable in parse_params would be ``{'user_id': 32}`` for a request to ``'/contact/32/'``. You can use that ``user_id`` to make sure it's a valid user and/or save it for later, for use in :meth:`~formtools.preview.FormPreview.done()`. """ pass def process_preview(self, request, form, context): """ Given a validated form, performs any extra processing before displaying the preview page, and saves any extra data in context. By default, this method is empty. It is called after the form is validated, but before the context is modified with hash information and rendered. """ pass def security_hash(self, request, form): """ Calculates the security hash for the given :class:`~django.http.HttpRequest` and :class:`~django.forms.Form` instances. Subclasses may want to take into account request-specific information, such as the IP address. """ return form_hmac(form) def failed_hash(self, request): """ Returns an :class:`~django.http.HttpResponse` in the case of an invalid security hash. """ return self.preview_post(request) # METHODS SUBCLASSES MUST OVERRIDE ######################################## def done(self, request, cleaned_data): """ Does something with the ``cleaned_data`` data and then needs to return an :class:`~django.http.HttpResponseRedirect`, e.g. to a success page. """ raise NotImplementedError('You must define a done() method on your ' '%s subclass.' % self.__class__.__name__) django-formtools-2.2/formtools/templates/000077500000000000000000000000001357223351300206675ustar00rootroot00000000000000django-formtools-2.2/formtools/templates/formtools/000077500000000000000000000000001357223351300227135ustar00rootroot00000000000000django-formtools-2.2/formtools/templates/formtools/form.html000066400000000000000000000006351357223351300245500ustar00rootroot00000000000000{% extends "base.html" %} {% load i18n %} {% block content %} {% if form.errors %}

{% trans "Please correct the following errors" %}

{% else %}

{% trans "Submit" %}

{% endif %}
{% csrf_token %} {{ form }}

{% endblock %} django-formtools-2.2/formtools/templates/formtools/preview.html000066400000000000000000000015511357223351300252640ustar00rootroot00000000000000{% extends "base.html" %} {% load i18n %} {% block content %}

{% trans "Preview your submission" %}

{% for field in form %} {% endfor %}
{{ field.label }}: {{ field.data }}

{% blocktrans %}Security hash: {{ hash_value }}{% endblocktrans %}

{% csrf_token %} {% for field in form %}{{ field.as_hidden }} {% endfor %}

{% trans "Or edit it again" %}

{% csrf_token %} {{ form }}

{% endblock %} django-formtools-2.2/formtools/templates/formtools/wizard/000077500000000000000000000000001357223351300242135ustar00rootroot00000000000000django-formtools-2.2/formtools/templates/formtools/wizard/wizard_form.html000066400000000000000000000012401357223351300274210ustar00rootroot00000000000000{% load i18n %}
{% csrf_token %} {{ wizard.form.media }} {{ wizard.management_form }} {% if wizard.form.forms %} {{ wizard.form.management_form }} {% for form in wizard.form.forms %} {{ form.as_p }} {% endfor %} {% else %} {{ wizard.form.as_p }} {% endif %} {% if wizard.steps.prev %} {% endif %}
django-formtools-2.2/formtools/utils.py000066400000000000000000000014011357223351300203770ustar00rootroot00000000000000import pickle from django.utils.crypto import salted_hmac def form_hmac(form): """ Calculates a security hash for the given Form instance. """ data = [] for bf in form: # Get the value from the form data. If the form allows empty or hasn't # changed then don't call clean() to avoid trigger validation errors. if form.empty_permitted and not form.has_changed(): value = bf.data or '' else: value = bf.field.clean(bf.data) or '' if isinstance(value, str): value = value.strip() data.append((bf.name, value)) pickled = pickle.dumps(data, pickle.HIGHEST_PROTOCOL) key_salt = 'django.contrib.formtools' return salted_hmac(key_salt, pickled).hexdigest() django-formtools-2.2/formtools/wizard/000077500000000000000000000000001357223351300201715ustar00rootroot00000000000000django-formtools-2.2/formtools/wizard/__init__.py000066400000000000000000000000001357223351300222700ustar00rootroot00000000000000django-formtools-2.2/formtools/wizard/forms.py000066400000000000000000000003231357223351300216670ustar00rootroot00000000000000from django import forms class ManagementForm(forms.Form): """ ``ManagementForm`` is used to keep track of the current wizard step. """ current_step = forms.CharField(widget=forms.HiddenInput) django-formtools-2.2/formtools/wizard/storage/000077500000000000000000000000001357223351300216355ustar00rootroot00000000000000django-formtools-2.2/formtools/wizard/storage/__init__.py000066400000000000000000000007271357223351300237540ustar00rootroot00000000000000from django.utils.module_loading import import_string from .base import BaseStorage from .exceptions import MissingStorage, NoFileStorageConfigured __all__ = [ "BaseStorage", "MissingStorage", "NoFileStorageConfigured", "get_storage", ] def get_storage(path, *args, **kwargs): try: storage_class = import_string(path) except ImportError as e: raise MissingStorage('Error loading storage: %s' % e) return storage_class(*args, **kwargs) django-formtools-2.2/formtools/wizard/storage/base.py000066400000000000000000000116061357223351300231250ustar00rootroot00000000000000from django.core.files.uploadedfile import UploadedFile from django.utils.datastructures import MultiValueDict from .exceptions import NoFileStorageConfigured class BaseStorage: step_key = 'step' step_data_key = 'step_data' step_files_key = 'step_files' extra_data_key = 'extra_data' def __init__(self, prefix, request=None, file_storage=None): self.prefix = 'wizard_%s' % prefix self.request = request self.file_storage = file_storage self._files = {} self._tmp_files = [] def init_data(self): self.data = { self.step_key: None, self.step_data_key: {}, self.step_files_key: {}, self.extra_data_key: {}, } def reset(self): # Store unused temporary file names in order to delete them # at the end of the response cycle through a callback attached in # `update_response`. wizard_files = self.data[self.step_files_key] for step_files in wizard_files.values(): for step_file in step_files.values(): self._tmp_files.append(step_file['tmp_name']) self.init_data() def _get_current_step(self): return self.data[self.step_key] def _set_current_step(self, step): self.data[self.step_key] = step @property def current_step(self): return self._get_current_step() @current_step.setter def current_step(self, value): return self._set_current_step(value) def _get_extra_data(self): return self.data[self.extra_data_key] def _set_extra_data(self, extra_data): self.data[self.extra_data_key] = extra_data @property def extra_data(self): return self._get_extra_data() @extra_data.setter def extra_data(self, value): return self._set_extra_data(value) def get_step_data(self, step): # When reading the serialized data, upconvert it to a MultiValueDict, # some serializers (json) don't preserve the type of the object. values = self.data[self.step_data_key].get(step, None) if values is not None: values = MultiValueDict(values) return values def set_step_data(self, step, cleaned_data): # If the value is a MultiValueDict, convert it to a regular dict of the # underlying contents. Some serializers call the public API on it (as # opposed to the underlying dict methods), in which case the content # can be truncated (__getitem__ returns only the first item). if isinstance(cleaned_data, MultiValueDict): cleaned_data = dict(cleaned_data.lists()) self.data[self.step_data_key][step] = cleaned_data @property def current_step_data(self): return self.get_step_data(self.current_step) def get_step_files(self, step): wizard_files = self.data[self.step_files_key].get(step, {}) if wizard_files and not self.file_storage: raise NoFileStorageConfigured( "You need to define 'file_storage' in your " "wizard view in order to handle file uploads.") files = {} for field, field_dict in wizard_files.items(): field_dict = field_dict.copy() tmp_name = field_dict.pop('tmp_name') if (step, field) not in self._files: self._files[(step, field)] = UploadedFile( file=self.file_storage.open(tmp_name), **field_dict) files[field] = self._files[(step, field)] return files or None def set_step_files(self, step, files): if files and not self.file_storage: raise NoFileStorageConfigured( "You need to define 'file_storage' in your " "wizard view in order to handle file uploads.") if step not in self.data[self.step_files_key]: self.data[self.step_files_key][step] = {} for field, field_file in (files or {}).items(): tmp_filename = self.file_storage.save(field_file.name, field_file) file_dict = { 'tmp_name': tmp_filename, 'name': field_file.name, 'content_type': field_file.content_type, 'size': field_file.size, 'charset': field_file.charset } self.data[self.step_files_key][step][field] = file_dict @property def current_step_files(self): return self.get_step_files(self.current_step) def update_response(self, response): def post_render_callback(response): for file in self._files.values(): if not file.closed: file.close() for tmp_file in self._tmp_files: self.file_storage.delete(tmp_file) if hasattr(response, 'render'): response.add_post_render_callback(post_render_callback) else: post_render_callback(response) django-formtools-2.2/formtools/wizard/storage/cookie.py000066400000000000000000000014461357223351300234650ustar00rootroot00000000000000import json from .base import BaseStorage class CookieStorage(BaseStorage): encoder = json.JSONEncoder(separators=(',', ':')) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.data = self.load_data() if self.data is None: self.init_data() def load_data(self): data = self.request.get_signed_cookie(self.prefix, default=None) if data is None: return None return json.loads(data, cls=json.JSONDecoder) def update_response(self, response): super().update_response(response) if self.data: response.set_signed_cookie(self.prefix, self.encoder.encode(self.data)) else: response.delete_cookie(self.prefix) django-formtools-2.2/formtools/wizard/storage/exceptions.py000066400000000000000000000002571357223351300243740ustar00rootroot00000000000000from django.core.exceptions import ImproperlyConfigured class MissingStorage(ImproperlyConfigured): pass class NoFileStorageConfigured(ImproperlyConfigured): pass django-formtools-2.2/formtools/wizard/storage/session.py000066400000000000000000000010131357223351300236650ustar00rootroot00000000000000from .base import BaseStorage class SessionStorage(BaseStorage): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) if self.prefix not in self.request.session: self.init_data() def _get_data(self): self.request.session.modified = True return self.request.session[self.prefix] def _set_data(self, value): self.request.session[self.prefix] = value self.request.session.modified = True data = property(_get_data, _set_data) django-formtools-2.2/formtools/wizard/views.py000066400000000000000000000703131357223351300217040ustar00rootroot00000000000000import re from collections import OrderedDict from django import forms from django.core.exceptions import SuspiciousOperation from django.forms import formsets from django.shortcuts import redirect from django.urls import reverse from django.utils.decorators import classonlymethod from django.utils.translation import gettext as _ from django.views.generic import TemplateView from .forms import ManagementForm from .storage import get_storage from .storage.exceptions import NoFileStorageConfigured def normalize_name(name): """ Converts camel-case style names into underscore separated words. Example:: >>> normalize_name('oneTwoThree') 'one_two_three' >>> normalize_name('FourFiveSix') 'four_five_six' """ new = re.sub('(((?<=[a-z])[A-Z])|([A-Z](?![A-Z]|$)))', '_\\1', name) return new.lower().strip('_') class StepsHelper: def __init__(self, wizard): self._wizard = wizard def __dir__(self): return self.all def __len__(self): return self.count def __repr__(self): return '' % (self._wizard, self.all) @property def all(self): "Returns the names of all steps/forms." return list(self._wizard.get_form_list()) @property def count(self): "Returns the total number of steps/forms in this the wizard." return len(self.all) @property def current(self): """ Returns the current step. If no current step is stored in the storage backend, the first step will be returned. """ return self._wizard.storage.current_step or self.first @property def first(self): "Returns the name of the first step." return self.all[0] @property def last(self): "Returns the name of the last step." return self.all[-1] @property def next(self): "Returns the next step." return self._wizard.get_next_step() @property def prev(self): "Returns the previous step." return self._wizard.get_prev_step() @property def index(self): "Returns the index for the current step." return self._wizard.get_step_index() @property def step0(self): return int(self.index) @property def step1(self): return int(self.index) + 1 class WizardView(TemplateView): """ The WizardView is used to create multi-page forms and handles all the storage and validation stuff. The wizard is based on Django's generic class based views. """ storage_name = None form_list = None initial_dict = None instance_dict = None condition_dict = None template_name = 'formtools/wizard/wizard_form.html' def __repr__(self): return '<%s: forms: %s>' % (self.__class__.__name__, self.form_list) @classonlymethod def as_view(cls, *args, **kwargs): """ This method is used within urls.py to create unique wizardview instances for every request. We need to override this method because we add some kwargs which are needed to make the wizardview usable. """ initkwargs = cls.get_initkwargs(*args, **kwargs) return super().as_view(**initkwargs) @classmethod def get_initkwargs(cls, form_list=None, initial_dict=None, instance_dict=None, condition_dict=None, *args, **kwargs): """ Creates a dict with all needed parameters for the form wizard instances * `form_list` - is a list of forms. The list entries can be single form classes or tuples of (`step_name`, `form_class`). If you pass a list of forms, the wizardview will convert the class list to (`zero_based_counter`, `form_class`). This is needed to access the form for a specific step. * `initial_dict` - contains a dictionary of initial data dictionaries. The key should be equal to the `step_name` in the `form_list` (or the str of the zero based counter - if no step_names added in the `form_list`) * `instance_dict` - contains a dictionary whose values are model instances if the step is based on a ``ModelForm`` and querysets if the step is based on a ``ModelFormSet``. The key should be equal to the `step_name` in the `form_list`. Same rules as for `initial_dict` apply. * `condition_dict` - contains a dictionary of boolean values or callables. If the value of for a specific `step_name` is callable it will be called with the wizardview instance as the only argument. If the return value is true, the step's form will be used. """ kwargs.update({ 'initial_dict': ( initial_dict or kwargs.pop('initial_dict', getattr(cls, 'initial_dict', None)) or {} ), 'instance_dict': ( instance_dict or kwargs.pop('instance_dict', getattr(cls, 'instance_dict', None)) or {} ), 'condition_dict': ( condition_dict or kwargs.pop('condition_dict', getattr(cls, 'condition_dict', None)) or {} ) }) form_list = form_list or kwargs.pop('form_list', getattr(cls, 'form_list', None)) or [] computed_form_list = OrderedDict() assert len(form_list) > 0, 'at least one form is needed' # walk through the passed form list for i, form in enumerate(form_list): if isinstance(form, (list, tuple)): # if the element is a tuple, add the tuple to the new created # sorted dictionary. computed_form_list[str(form[0])] = form[1] else: # if not, add the form with a zero based counter as unicode computed_form_list[str(i)] = form # walk through the new created list of forms for form in computed_form_list.values(): if issubclass(form, formsets.BaseFormSet): # if the element is based on BaseFormSet (FormSet/ModelFormSet) # we need to override the form variable. form = form.form # check if any form contains a FileField, if yes, we need a # file_storage added to the wizardview (by subclassing). for field in form.base_fields.values(): if (isinstance(field, forms.FileField) and not hasattr(cls, 'file_storage')): raise NoFileStorageConfigured( "You need to define 'file_storage' in your " "wizard view in order to handle file uploads." ) # build the kwargs for the wizardview instances kwargs['form_list'] = computed_form_list return kwargs def get_prefix(self, request, *args, **kwargs): # TODO: Add some kind of unique id to prefix return normalize_name(self.__class__.__name__) def get_form_list(self): """ This method returns a form_list based on the initial form list but checks if there is a condition method/value in the condition_list. If an entry exists in the condition list, it will call/read the value and respect the result. (True means add the form, False means ignore the form) The form_list is always generated on the fly because condition methods could use data from other (maybe previous forms). """ form_list = OrderedDict() for form_key, form_class in self.form_list.items(): # try to fetch the value from condition list, by default, the form # gets passed to the new list. condition = self.condition_dict.get(form_key, True) if callable(condition): # call the value if needed, passes the current instance. condition = condition(self) if condition: form_list[form_key] = form_class return form_list def dispatch(self, request, *args, **kwargs): """ This method gets called by the routing engine. The first argument is `request` which contains a `HttpRequest` instance. The request is stored in `self.request` for later use. The storage instance is stored in `self.storage`. After processing the request using the `dispatch` method, the response gets updated by the storage engine (for example add cookies). """ # add the storage engine to the current wizardview instance self.prefix = self.get_prefix(request, *args, **kwargs) self.storage = get_storage( self.storage_name, self.prefix, request, getattr(self, 'file_storage', None), ) self.steps = StepsHelper(self) response = super().dispatch(request, *args, **kwargs) # update the response (e.g. adding cookies) self.storage.update_response(response) return response def get(self, request, *args, **kwargs): """ This method handles GET requests. If a GET request reaches this point, the wizard assumes that the user just starts at the first step or wants to restart the process. The data of the wizard will be resetted before rendering the first step """ self.storage.reset() # reset the current step to the first step. self.storage.current_step = self.steps.first return self.render(self.get_form()) def post(self, *args, **kwargs): """ This method handles POST requests. The wizard will render either the current step (if form validation wasn't successful), the next step (if the current step was stored successful) or the done view (if no more steps are available) """ # Look for a wizard_goto_step element in the posted data which # contains a valid step name. If one was found, render the requested # form. (This makes stepping back a lot easier). wizard_goto_step = self.request.POST.get('wizard_goto_step', None) if wizard_goto_step and wizard_goto_step in self.get_form_list(): return self.render_goto_step(wizard_goto_step) # Check if form was refreshed management_form = ManagementForm(self.request.POST, prefix=self.prefix) if not management_form.is_valid(): raise SuspiciousOperation(_('ManagementForm data is missing or has been tampered.')) form_current_step = management_form.cleaned_data['current_step'] if (form_current_step != self.steps.current and self.storage.current_step is not None): # form refreshed, change current step self.storage.current_step = form_current_step # get the form for the current step form = self.get_form(data=self.request.POST, files=self.request.FILES) # and try to validate if form.is_valid(): # if the form is valid, store the cleaned data and files. self.storage.set_step_data(self.steps.current, self.process_step(form)) self.storage.set_step_files(self.steps.current, self.process_step_files(form)) # check if the current step is the last step if self.steps.current == self.steps.last: # no more steps, render done view return self.render_done(form, **kwargs) else: # proceed to the next step return self.render_next_step(form) return self.render(form) def render_next_step(self, form, **kwargs): """ This method gets called when the next step/form should be rendered. `form` contains the last/current form. """ # get the form instance based on the data from the storage backend # (if available). next_step = self.steps.next new_form = self.get_form( next_step, data=self.storage.get_step_data(next_step), files=self.storage.get_step_files(next_step), ) # change the stored current step self.storage.current_step = next_step return self.render(new_form, **kwargs) def render_goto_step(self, goto_step, **kwargs): """ This method gets called when the current step has to be changed. `goto_step` contains the requested step to go to. """ self.storage.current_step = goto_step 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) def render_done(self, form, **kwargs): """ This method gets called when all forms passed. The method should also re-validate all steps to prevent manipulation. If any form fails to validate, `render_revalidation_failure` should get called. If everything is fine call `done`. """ final_forms = OrderedDict() # walk through the form list and try to validate the data again. for form_key in self.get_form_list(): form_obj = self.get_form( step=form_key, data=self.storage.get_step_data(form_key), files=self.storage.get_step_files(form_key) ) if not form_obj.is_valid(): return self.render_revalidation_failure(form_key, form_obj, **kwargs) final_forms[form_key] = form_obj # render the done view and reset the wizard before returning the # response. This is needed to prevent from rendering done with the # same data twice. done_response = self.done(final_forms.values(), form_dict=final_forms, **kwargs) self.storage.reset() return done_response def get_form_prefix(self, step=None, form=None): """ Returns the prefix which will be used when calling the actual form for the given step. `step` contains the step-name, `form` the form which will be called with the returned prefix. If no step is given, the form_prefix will determine the current step automatically. """ if step is None: step = self.steps.current return str(step) def get_form_initial(self, step): """ Returns a dictionary which will be passed to the form for `step` as `initial`. If no initial data was provided while initializing the form wizard, an empty dictionary will be returned. """ return self.initial_dict.get(step, {}) def get_form_instance(self, step): """ Returns an object which will be passed to the form for `step` as `instance`. If no instance object was provided while initializing the form wizard, None will be returned. """ return self.instance_dict.get(step, None) def get_form_kwargs(self, step=None): """ Returns the keyword arguments for instantiating the form (or formset) on the given step. """ return {} def get_form(self, step=None, data=None, files=None): """ Constructs the form for a given `step`. If no `step` is defined, the current step will be determined automatically. The form will be initialized using the `data` argument to prefill the new form. If needed, instance or queryset (for `ModelForm` or `ModelFormSet`) will be added too. """ if step is None: step = self.steps.current form_class = self.form_list[step] # prepare the kwargs for the form instance. kwargs = self.get_form_kwargs(step) kwargs.update({ 'data': data, 'files': files, 'prefix': self.get_form_prefix(step, form_class), 'initial': self.get_form_initial(step), }) if issubclass(form_class, (forms.ModelForm, forms.models.BaseInlineFormSet)): # If the form is based on ModelForm or InlineFormSet, # add instance if available and not previously set. kwargs.setdefault('instance', self.get_form_instance(step)) elif issubclass(form_class, forms.models.BaseModelFormSet): # If the form is based on ModelFormSet, add queryset if available # and not previous set. kwargs.setdefault('queryset', self.get_form_instance(step)) return form_class(**kwargs) def process_step(self, form): """ This method is used to postprocess the form data. By default, it returns the raw `form.data` dictionary. """ return self.get_form_step_data(form) def process_step_files(self, form): """ This method is used to postprocess the form files. By default, it returns the raw `form.files` dictionary. """ return self.get_form_step_files(form) def render_revalidation_failure(self, step, form, **kwargs): """ Gets called when a form doesn't validate when rendering the done view. By default, it changes the current step to failing forms step and renders the form. """ self.storage.current_step = step return self.render(form, **kwargs) def get_form_step_data(self, form): """ Is used to return the raw form data. You may use this method to manipulate the data. """ return form.data def get_form_step_files(self, form): """ Is used to return the raw form files. You may use this method to manipulate the data. """ return form.files def get_all_cleaned_data(self): """ Returns a merged dictionary of all step cleaned_data dictionaries. If a step contains a `FormSet`, the key will be prefixed with 'formset-' and contain a list of the formset cleaned_data dictionaries. """ cleaned_data = {} for form_key in self.get_form_list(): form_obj = self.get_form( step=form_key, data=self.storage.get_step_data(form_key), files=self.storage.get_step_files(form_key) ) if form_obj.is_valid(): if isinstance(form_obj.cleaned_data, (tuple, list)): cleaned_data.update({ 'formset-%s' % form_key: form_obj.cleaned_data }) else: cleaned_data.update(form_obj.cleaned_data) return cleaned_data def get_cleaned_data_for_step(self, step): """ Returns the cleaned data for a given `step`. Before returning the cleaned data, the stored values are revalidated through the form. If the data doesn't validate, None will be returned. """ if step in self.form_list: form_obj = self.get_form( step=step, data=self.storage.get_step_data(step), files=self.storage.get_step_files(step), ) if form_obj.is_valid(): return form_obj.cleaned_data return None def get_next_step(self, step=None): """ Returns the next step after the given `step`. If no more steps are available, None will be returned. If the `step` argument is None, the current step will be determined automatically. If the `step` is not in the current list of steps, the first step will be returned. """ if step is None: step = self.steps.current form_list = self.get_form_list() keys = list(form_list.keys()) if step not in keys: return self.steps.first key = keys.index(step) + 1 if len(keys) > key: return keys[key] return None def get_prev_step(self, step=None): """ Returns the previous step before the given `step`. If there are no steps available, None will be returned. If the `step` argument is None, the current step will be determined automatically. If the `step` is not in the current list of steps, None will be returned. """ if step is None: step = self.steps.current form_list = self.get_form_list() keys = list(form_list.keys()) if step not in keys: return None key = keys.index(step) - 1 if key >= 0: return keys[key] return None def get_step_index(self, step=None): """ Returns the index for the given `step` name. If no step is given, the current step will be used to get the index. If the current step is not in the current list of steps, None will be returned. """ if step is None: step = self.steps.current keys = list(self.get_form_list().keys()) if step in keys: return keys.index(step) return None def get_context_data(self, form, **kwargs): """ Returns the template context for a step. You can overwrite this method to add more data for all or some steps. This method returns a dictionary containing the rendered form step. Available template context variables are: * all extra data stored in the storage backend * `wizard` - a dictionary representation of the wizard instance Example:: class MyWizard(WizardView): def get_context_data(self, form, **kwargs): context = super().get_context_data(form=form, **kwargs) if self.steps.current == 'my_step_name': context.update({'another_var': True}) return context """ context = super().get_context_data(form=form, **kwargs) context.update(self.storage.extra_data) context['wizard'] = { 'form': form, 'steps': self.steps, 'management_form': ManagementForm(prefix=self.prefix, initial={ 'current_step': self.steps.current, }), } return context def render(self, form=None, **kwargs): """ Returns a ``HttpResponse`` containing all needed context data. """ form = form or self.get_form() context = self.get_context_data(form=form, **kwargs) return self.render_to_response(context) def done(self, form_list, **kwargs): """ This method must be overridden by a subclass to process to form data after processing all steps. """ raise NotImplementedError( "Your %s class has not defined a done() method, which is required." % self.__class__.__name__ ) class SessionWizardView(WizardView): """ A WizardView with pre-configured SessionStorage backend. """ storage_name = 'formtools.wizard.storage.session.SessionStorage' class CookieWizardView(WizardView): """ A WizardView with pre-configured CookieStorage backend. """ storage_name = 'formtools.wizard.storage.cookie.CookieStorage' class NamedUrlWizardView(WizardView): """ A WizardView with URL named steps support. """ url_name = None done_step_name = None @classmethod def get_initkwargs(cls, *args, **kwargs): """ We require a url_name to reverse URLs later. Additionally users can pass a done_step_name to change the URL name of the "done" view. """ assert 'url_name' in kwargs, 'URL name is needed to resolve correct wizard URLs' extra_kwargs = { 'done_step_name': kwargs.pop('done_step_name', 'done'), 'url_name': kwargs.pop('url_name'), } initkwargs = super().get_initkwargs(*args, **kwargs) initkwargs.update(extra_kwargs) assert initkwargs['done_step_name'] not in initkwargs['form_list'], \ 'step name "%s" is reserved for "done" view' % initkwargs['done_step_name'] return initkwargs def get_step_url(self, step): return reverse(self.url_name, kwargs={'step': step}) def get(self, *args, **kwargs): """ This renders the form or, if needed, does the http redirects. """ step_url = kwargs.get('step', None) if step_url is None: if 'reset' in self.request.GET: self.storage.reset() self.storage.current_step = self.steps.first if self.request.GET: query_string = "?%s" % self.request.GET.urlencode() else: query_string = "" return redirect(self.get_step_url(self.steps.current) + query_string) # is the current step the "done" name/view? elif step_url == self.done_step_name: last_step = self.steps.last form = self.get_form( step=last_step, data=self.storage.get_step_data(last_step), files=self.storage.get_step_files(last_step), ) return self.render_done(form, **kwargs) # is the url step name not equal to the step in the storage? # if yes, change the step in the storage (if name exists) elif step_url == self.steps.current: # URL step name and storage step name are equal, render! form = self.get_form( data=self.storage.current_step_data, files=self.storage.current_step_files, ) return self.render(form, **kwargs) elif step_url in self.get_form_list(): self.storage.current_step = step_url return self.render( self.get_form( data=self.storage.current_step_data, files=self.storage.current_step_files, ), **kwargs ) # invalid step name, reset to first and redirect. else: self.storage.current_step = self.steps.first return redirect(self.get_step_url(self.steps.first)) def post(self, *args, **kwargs): """ Do a redirect if user presses the prev. step button. The rest of this is super'd from WizardView. """ wizard_goto_step = self.request.POST.get('wizard_goto_step', None) if wizard_goto_step and wizard_goto_step in self.get_form_list(): return self.render_goto_step(wizard_goto_step) return super().post(*args, **kwargs) def get_context_data(self, form, **kwargs): """ NamedUrlWizardView provides the url_name of this wizard in the context dict `wizard`. """ context = super().get_context_data(form=form, **kwargs) context['wizard']['url_name'] = self.url_name return context def render_next_step(self, form, **kwargs): """ When using the NamedUrlWizardView, we have to redirect to update the browser's URL to match the shown step. """ next_step = self.get_next_step() self.storage.current_step = next_step return redirect(self.get_step_url(next_step)) def render_goto_step(self, goto_step, **kwargs): """ This method gets called when the current step has to be changed. `goto_step` contains the requested step to go to. """ self.storage.current_step = goto_step return redirect(self.get_step_url(goto_step)) def render_revalidation_failure(self, failed_step, form, **kwargs): """ When a step fails, we have to redirect the user to the first failing step. """ self.storage.current_step = failed_step return redirect(self.get_step_url(failed_step)) def render_done(self, form, **kwargs): """ When rendering the done view, we have to redirect first (if the URL name doesn't fit). """ if kwargs.get('step', None) != self.done_step_name: return redirect(self.get_step_url(self.done_step_name)) return super().render_done(form, **kwargs) class NamedUrlSessionWizardView(NamedUrlWizardView): """ A NamedUrlWizardView with pre-configured SessionStorage backend. """ storage_name = 'formtools.wizard.storage.session.SessionStorage' class NamedUrlCookieWizardView(NamedUrlWizardView): """ A NamedUrlFormWizard with pre-configured CookieStorageBackend. """ storage_name = 'formtools.wizard.storage.cookie.CookieStorage' django-formtools-2.2/setup.cfg000066400000000000000000000004211357223351300164630ustar00rootroot00000000000000[flake8] max-line-length = 119 [isort] combine_as_imports = true default_section = THIRDPARTY include_trailing_comma = true known_first_party = formtools line_length = 79 multi_line_output = 5 not_skip = __init__.py [metadata] license-file = LICENSE [wheel] universal=1 django-formtools-2.2/setup.py000066400000000000000000000126521357223351300163650ustar00rootroot00000000000000import codecs import os import re import sys from distutils.util import convert_path from fnmatch import fnmatchcase from setuptools import find_packages, setup def read(*parts): filename = os.path.join(os.path.dirname(__file__), *parts) with codecs.open(filename, encoding='utf-8') as fp: return fp.read() def find_version(*file_paths): version_file = read(*file_paths) version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", version_file, re.M) if version_match: return version_match.group(1) raise RuntimeError("Unable to find version string.") # Provided as an attribute, so you can append to these instead # of replicating them: standard_exclude = ('*.py', '*.pyc', '*$py.class', '*~', '.*', '*.bak') standard_exclude_directories = ('.*', 'CVS', '_darcs', './build', './dist', 'EGG-INFO', '*.egg-info') # (c) 2005 Ian Bicking and contributors; written for Paste (http://pythonpaste.org) # Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php # Note: you may want to copy this into your setup.py file verbatim, as # you can't import this from another package, when you don't know if # that package is installed yet. def find_package_data(where='.', package='', exclude=standard_exclude, exclude_directories=standard_exclude_directories, only_in_packages=True, show_ignored=False): """ Return a dictionary suitable for use in ``package_data`` in a distutils ``setup.py`` file. The dictionary looks like:: {'package': [files]} Where ``files`` is a list of all the files in that package that don't match anything in ``exclude``. If ``only_in_packages`` is true, then top-level directories that are not packages won't be included (but directories under packages will). Directories matching any pattern in ``exclude_directories`` will be ignored; by default directories with leading ``.``, ``CVS``, and ``_darcs`` will be ignored. If ``show_ignored`` is true, then all the files that aren't included in package data are shown on stderr (for debugging purposes). Note patterns use wildcards, or can be exact paths (including leading ``./``), and all searching is case-insensitive. """ out = {} stack = [(convert_path(where), '', package, only_in_packages)] while stack: where, prefix, package, only_in_packages = stack.pop(0) for name in os.listdir(where): fn = os.path.join(where, name) if os.path.isdir(fn): bad_name = False for pattern in exclude_directories: if (fnmatchcase(name, pattern) or fn.lower() == pattern.lower()): bad_name = True if show_ignored: print("Directory %s ignored by pattern %s" % (fn, pattern), file=sys.stderr) break if bad_name: continue if (os.path.isfile(os.path.join(fn, '__init__.py')) and not prefix): if not package: new_package = name else: new_package = package + '.' + name stack.append((fn, '', new_package, False)) else: stack.append((fn, prefix + name + '/', package, only_in_packages)) elif package or not only_in_packages: # is a file bad_name = False for pattern in exclude: if (fnmatchcase(name, pattern) or fn.lower() == pattern.lower()): bad_name = True if show_ignored: print("File %s ignored by pattern %s" % (fn, pattern), file=sys.stderr) break if bad_name: continue out.setdefault(package, []).append(prefix + name) return out setup( name="django-formtools", version=find_version("formtools", "__init__.py"), url='https://django-formtools.readthedocs.io/en/latest/', license='BSD', description="A set of high-level abstractions for Django forms", long_description=read('README.rst'), author='Django Software Foundation', author_email='foundation@djangoproject.com', packages=find_packages(exclude=['tests', 'tests.*']), package_data=find_package_data(), install_requires=['Django>=1.11'], classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Web Environment', 'Framework :: Django', 'Framework :: Django :: 1.11', 'Framework :: Django :: 2.0', 'Framework :: Django :: 2.1', 'Framework :: Django :: 2.2', 'Framework :: Django :: 3.0', 'Intended Audience :: Developers', 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Topic :: Internet :: WWW/HTTP', ], zip_safe=False, ) django-formtools-2.2/tests/000077500000000000000000000000001357223351300160075ustar00rootroot00000000000000django-formtools-2.2/tests/__init__.py000066400000000000000000000000001357223351300201060ustar00rootroot00000000000000django-formtools-2.2/tests/forms.py000066400000000000000000000006501357223351300175100ustar00rootroot00000000000000from django import forms class TestForm(forms.Form): field1 = forms.CharField() field1_ = forms.CharField() bool1 = forms.BooleanField(required=False) date1 = forms.DateField(required=False) class HashTestForm(forms.Form): name = forms.CharField() bio = forms.CharField() class HashTestBlankForm(forms.Form): name = forms.CharField(required=False) bio = forms.CharField(required=False) django-formtools-2.2/tests/requirements.txt000066400000000000000000000000351357223351300212710ustar00rootroot00000000000000coverage==3.7.1 flake8 isort django-formtools-2.2/tests/settings.py000066400000000000000000000015351357223351300202250ustar00rootroot00000000000000DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': '/tmp/django-formtools-tests.db', } } INSTALLED_APPS = [ 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'formtools', 'tests.wizard.wizardtests', ] SECRET_KEY = 'spam-spam-spam-spam' CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'LOCATION': 'spam-and-eggs' } } MIDDLEWARE = [ 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', ] SITE_ID = 1 TEMPLATES = [{ 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'APP_DIRS': True, }] MEDIA_ROOT = 'media' STATIC_ROOT = 'static' django-formtools-2.2/tests/templates/000077500000000000000000000000001357223351300200055ustar00rootroot00000000000000django-formtools-2.2/tests/templates/404.html000066400000000000000000000000131357223351300211740ustar00rootroot00000000000000Not found. django-formtools-2.2/tests/templates/base.html000066400000000000000000000000431357223351300216020ustar00rootroot00000000000000{% block content %} {% endblock %} django-formtools-2.2/tests/templates/forms/000077500000000000000000000000001357223351300211335ustar00rootroot00000000000000django-formtools-2.2/tests/templates/forms/wizard.html000066400000000000000000000004521357223351300233220ustar00rootroot00000000000000

Step {{ step }} of {{ step_count }}

{{ form }}
{{ previous_fields|safe }}
django-formtools-2.2/tests/tests.py000066400000000000000000000170041357223351300175250ustar00rootroot00000000000000import datetime import os import unittest import warnings from django import http from django.test import TestCase, override_settings from formtools import preview, utils from .forms import HashTestBlankForm, HashTestForm, TestForm success_string = "Done was called!" success_string_encoded = success_string.encode() class TestFormPreview(preview.FormPreview): def parse_params(self, request, *args, **kwargs): self.state['user'] = request.user def get_context(self, request, form): context = super().get_context(request, form) context.update({'custom_context': True}) return context def get_initial(self, request): return {'field1': 'Works!'} def done(self, request, cleaned_data): return http.HttpResponse(success_string) @override_settings( TEMPLATES=[{ 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(os.path.dirname(__file__), 'templates')], 'APP_DIRS': True, }], ROOT_URLCONF='tests.urls', ) class PreviewTests(TestCase): def setUp(self): super().setUp() # Create a FormPreview instance to share between tests self.preview = preview.FormPreview(TestForm) input_template = '' self.input = input_template % (self.preview.unused_name('stage'), "%d") self.test_data = {'field1': 'foo', 'field1_': 'asdf'} def test_parse_params_takes_request_object(self): """ FormPreview.parse_params takes a request object as the first argument. """ response = self.client.get('/preview/') state = response.context['state'] self.assertIsNotNone(state.get('user') is not None) def test_unused_name(self): """ Verifies name mangling to get uniue field name. """ self.assertEqual(self.preview.unused_name('field1'), 'field1__') def test_form_get(self): """ Test formtools.preview form retrieval. Use the client library to see if we can successfully retrieve the form (mostly testing the setup ROOT_URLCONF process). Verify that an additional hidden input field is created to manage the stage. """ response = self.client.get('/preview/') stage = self.input % 1 self.assertContains(response, stage, 1) self.assertEqual(response.context['custom_context'], True) self.assertEqual(response.context['form'].initial, {'field1': 'Works!'}) def test_form_preview(self): """ Test formtools.preview form preview rendering. Use the client library to POST to the form to see if a preview is returned. If we do get a form back check that the hidden value is correctly managing the state of the form. """ # Pass strings for form submittal and add stage variable to # show we previously saw first stage of the form. self.test_data.update({'stage': 1, 'date1': datetime.date(2006, 10, 25)}) response = self.client.post('/preview/', self.test_data) # Check to confirm stage is set to 2 in output form. stage = self.input % 2 self.assertContains(response, stage, 1) def test_form_submit(self): """ Test formtools.preview form submittal. Use the client library to POST to the form with stage set to 3 to see if our forms done() method is called. Check first without the security hash, verify failure, retry with security hash and verify success. """ # Pass strings for form submittal and add stage variable to # show we previously saw first stage of the form. self.test_data.update({'stage': 2, 'date1': datetime.date(2006, 10, 25)}) response = self.client.post('/preview/', self.test_data) self.assertNotEqual(response.content, success_string_encoded) hash = self.preview.security_hash(None, TestForm(self.test_data)) self.test_data.update({'hash': hash}) response = self.client.post('/preview/', self.test_data) self.assertEqual(response.content, success_string_encoded) def test_bool_submit(self): """ Test formtools.preview form submittal when form contains: BooleanField(required=False) Ticket: #6209 - When an unchecked BooleanField is previewed, the preview form's hash would be computed with no value for ``bool1``. However, when the preview form is rendered, the unchecked hidden BooleanField would be rendered with the string value 'False'. So when the preview form is resubmitted, the hash would be computed with the value 'False' for ``bool1``. We need to make sure the hashes are the same in both cases. """ self.test_data.update({'stage': 2}) hash = self.preview.security_hash(None, TestForm(self.test_data)) self.test_data.update({'hash': hash, 'bool1': 'False'}) with warnings.catch_warnings(record=True): response = self.client.post('/preview/', self.test_data) self.assertEqual(response.content, success_string_encoded) def test_form_submit_good_hash(self): """ Test formtools.preview form submittal, using a correct hash """ # Pass strings for form submittal and add stage variable to # show we previously saw first stage of the form. self.test_data.update({'stage': 2}) response = self.client.post('/preview/', self.test_data) self.assertNotEqual(response.content, success_string_encoded) hash = utils.form_hmac(TestForm(self.test_data)) self.test_data.update({'hash': hash}) response = self.client.post('/preview/', self.test_data) self.assertEqual(response.content, success_string_encoded) def test_form_submit_bad_hash(self): """ Test formtools.preview form submittal does not proceed if the hash is incorrect. """ # Pass strings for form submittal and add stage variable to # show we previously saw first stage of the form. self.test_data.update({'stage': 2}) response = self.client.post('/preview/', self.test_data) self.assertEqual(response.status_code, 200) self.assertNotEqual(response.content, success_string_encoded) hash = utils.form_hmac(TestForm(self.test_data)) + "bad" self.test_data.update({'hash': hash}) response = self.client.post('/previewpreview/', self.test_data) self.assertNotEqual(response.content, success_string_encoded) class FormHmacTests(unittest.TestCase): def test_textfield_hash(self): """ Regression test for #10034: the hash generation function should ignore leading/trailing whitespace so as to be friendly to broken browsers that submit it (usually in textareas). """ f1 = HashTestForm({'name': 'joe', 'bio': 'Speaking español.'}) f2 = HashTestForm({'name': ' joe', 'bio': 'Speaking español. '}) hash1 = utils.form_hmac(f1) hash2 = utils.form_hmac(f2) self.assertEqual(hash1, hash2) def test_empty_permitted(self): """ Regression test for #10643: the security hash should allow forms with empty_permitted = True, or forms where data has not changed. """ f1 = HashTestBlankForm({}) f2 = HashTestForm({}, empty_permitted=True, use_required_attribute=False) hash1 = utils.form_hmac(f1) hash2 = utils.form_hmac(f2) self.assertEqual(hash1, hash2) django-formtools-2.2/tests/urls.py000066400000000000000000000003771357223351300173550ustar00rootroot00000000000000""" This is a URLconf to be loaded by tests.py. Add any URLs needed for tests only. """ from django.conf.urls import url from .forms import TestForm from .tests import TestFormPreview urlpatterns = [ url(r'^preview/', TestFormPreview(TestForm)), ] django-formtools-2.2/tests/wizard/000077500000000000000000000000001357223351300173075ustar00rootroot00000000000000django-formtools-2.2/tests/wizard/__init__.py000066400000000000000000000000001357223351300214060ustar00rootroot00000000000000django-formtools-2.2/tests/wizard/namedwizardtests/000077500000000000000000000000001357223351300226775ustar00rootroot00000000000000django-formtools-2.2/tests/wizard/namedwizardtests/__init__.py000066400000000000000000000000001357223351300247760ustar00rootroot00000000000000django-formtools-2.2/tests/wizard/namedwizardtests/forms.py000066400000000000000000000032631357223351300244030ustar00rootroot00000000000000import os import tempfile from django import forms from django.contrib.auth.models import User from django.core.files.storage import FileSystemStorage from django.forms.formsets import formset_factory from django.http import HttpResponse from django.template import Context, Template from formtools.wizard.views import NamedUrlWizardView temp_storage_location = tempfile.mkdtemp(dir=os.environ.get('DJANGO_TEST_TEMP_DIR')) temp_storage = FileSystemStorage(location=temp_storage_location) class Page1(forms.Form): name = forms.CharField(max_length=100) user = forms.ModelChoiceField(queryset=User.objects.all()) thirsty = forms.NullBooleanField() class Page2(forms.Form): address1 = forms.CharField(max_length=100) address2 = forms.CharField(max_length=100) file1 = forms.FileField() class Page3(forms.Form): random_crap = forms.CharField(max_length=100) Page4 = formset_factory(Page3, extra=2) class ContactWizard(NamedUrlWizardView): file_storage = temp_storage def done(self, form_list, **kwargs): c = Context({ 'form_list': [x.cleaned_data for x in form_list], 'form_dict': kwargs.get('form_dict'), 'all_cleaned_data': self.get_all_cleaned_data() }) for form in self.form_list.keys(): c[form] = self.get_cleaned_data_for_step(form) c['this_will_fail'] = self.get_cleaned_data_for_step('this_will_fail') return HttpResponse(Template('').render(c)) class SessionContactWizard(ContactWizard): storage_name = 'formtools.wizard.storage.session.SessionStorage' class CookieContactWizard(ContactWizard): storage_name = 'formtools.wizard.storage.cookie.CookieStorage' django-formtools-2.2/tests/wizard/namedwizardtests/tests.py000066400000000000000000000375631357223351300244310ustar00rootroot00000000000000import copy from django.contrib.auth.models import User from django.http import QueryDict from django.test import TestCase, override_settings from django.urls import reverse from formtools.wizard.views import ( NamedUrlCookieWizardView, NamedUrlSessionWizardView, ) from ..test_forms import Step1, Step2, get_request from .forms import temp_storage UPLOADED_FILE_NAME = 'tests.py' class NamedWizardTests: def setUp(self): self.testuser, created = User.objects.get_or_create(username='testuser1') # Get new step data, since we modify it during the tests. self.wizard_step_data = copy.deepcopy(self.wizard_step_data) self.wizard_step_data[0]['form1-user'] = self.testuser.pk def tearDown(self): # Ensure that there are no files in the storage which could lead to false # results in the next tests. Deleting the whole storage dir is not really # an option since the storage is defined on the module level and can't be # easily reinitialized. (FIXME: The tests here should use the view classes # directly instead of the test client, then the storage issues would go # away too.) for file in temp_storage.listdir('')[1]: temp_storage.delete(file) def test_initial_call(self): response = self.client.get(reverse('%s_start' % self.wizard_urlname)) self.assertEqual(response.status_code, 302) response = self.client.get(response.url) self.assertEqual(response.status_code, 200) wizard = response.context['wizard'] self.assertEqual(wizard['steps'].current, 'form1') self.assertEqual(wizard['steps'].step0, 0) self.assertEqual(wizard['steps'].step1, 1) self.assertEqual(wizard['steps'].last, 'form4') self.assertEqual(wizard['steps'].prev, None) self.assertEqual(wizard['steps'].next, 'form2') self.assertEqual(wizard['steps'].count, 4) self.assertEqual(wizard['url_name'], self.wizard_urlname) def test_initial_call_with_params(self): get_params = {'getvar1': 'getval1', 'getvar2': 'getval2'} response = self.client.get(reverse('%s_start' % self.wizard_urlname), get_params) self.assertEqual(response.status_code, 302) # Test for proper redirect GET parameters location = response.url self.assertNotEqual(location.find('?'), -1) querydict = QueryDict(location[location.find('?') + 1:]) self.assertEqual(dict(querydict.items()), get_params) def test_form_post_error(self): response = self.client.post( reverse(self.wizard_urlname, kwargs={'step': 'form1'}), self.wizard_step_1_data) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form1') self.assertEqual(response.context['wizard']['form'].errors, {'name': ['This field is required.'], 'user': ['This field is required.']}) def test_form_post_success(self): response = self.client.post( reverse(self.wizard_urlname, kwargs={'step': 'form1'}), self.wizard_step_data[0]) response = self.client.get(response.url) self.assertEqual(response.status_code, 200) wizard = response.context['wizard'] self.assertEqual(wizard['steps'].current, 'form2') self.assertEqual(wizard['steps'].step0, 1) self.assertEqual(wizard['steps'].prev, 'form1') self.assertEqual(wizard['steps'].next, 'form3') def test_form_stepback(self): response = self.client.get( reverse(self.wizard_urlname, kwargs={'step': 'form1'})) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form1') response = self.client.post( reverse(self.wizard_urlname, kwargs={'step': 'form1'}), self.wizard_step_data[0]) response = self.client.get(response.url) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form2') response = self.client.post( reverse(self.wizard_urlname, kwargs={ 'step': response.context['wizard']['steps'].current }), {'wizard_goto_step': response.context['wizard']['steps'].prev}) response = self.client.get(response.url) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form1') def test_form_jump(self): response = self.client.get( reverse(self.wizard_urlname, kwargs={'step': 'form1'})) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form1') response = self.client.get( reverse(self.wizard_urlname, kwargs={'step': 'form3'})) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form3') def test_form_finish(self): response = self.client.get( reverse(self.wizard_urlname, kwargs={'step': 'form1'})) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form1') response = self.client.post( reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), self.wizard_step_data[0]) response = self.client.get(response.url) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form2') post_data = self.wizard_step_data[1] with open(__file__, 'rb') as post_file: post_data['form2-file1'] = post_file response = self.client.post( reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), post_data) response = self.client.get(response.url) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form3') # Check that the file got uploaded properly. with open(__file__, 'rb') as f, temp_storage.open(UPLOADED_FILE_NAME) as f2: self.assertEqual(f.read(), f2.read()) response = self.client.post( reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), self.wizard_step_data[2]) response = self.client.get(response.url) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form4') response = self.client.post( reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), self.wizard_step_data[3]) response = self.client.get(response.url) self.assertEqual(response.status_code, 200) # After the wizard is done no files should exist anymore. self.assertFalse(temp_storage.exists(UPLOADED_FILE_NAME)) all_data = response.context['form_list'] del all_data[1]['file1'] self.assertEqual(all_data, [ {'name': 'Pony', 'thirsty': True, 'user': self.testuser}, {'address1': '123 Main St', 'address2': 'Djangoland'}, {'random_crap': 'blah blah'}, [{'random_crap': 'blah blah'}, {'random_crap': 'blah blah'}]]) def test_cleaned_data(self): response = self.client.get( reverse(self.wizard_urlname, kwargs={'step': 'form1'})) self.assertEqual(response.status_code, 200) response = self.client.post( reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), self.wizard_step_data[0]) response = self.client.get(response.url) self.assertEqual(response.status_code, 200) post_data = self.wizard_step_data[1] with open(__file__, 'rb') as post_file: post_data['form2-file1'] = post_file response = self.client.post( reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), post_data) response = self.client.get(response.url) self.assertEqual(response.status_code, 200) self.assertTrue(temp_storage.exists(UPLOADED_FILE_NAME)) step2_url = reverse(self.wizard_urlname, kwargs={'step': 'form2'}) response = self.client.get(step2_url) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form2') with open(__file__, 'rb') as f, temp_storage.open(UPLOADED_FILE_NAME) as f2: self.assertEqual(f.read(), f2.read()) response = self.client.post( reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), self.wizard_step_data[2]) response = self.client.get(response.url) self.assertEqual(response.status_code, 200) response = self.client.post( reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), self.wizard_step_data[3]) response = self.client.get(response.url) self.assertEqual(response.status_code, 200) all_data = response.context['all_cleaned_data'] self.assertEqual(all_data['file1'].name, UPLOADED_FILE_NAME) self.assertTrue(all_data['file1'].closed) self.assertFalse(temp_storage.exists(UPLOADED_FILE_NAME)) del all_data['file1'] self.assertEqual( all_data, {'name': 'Pony', 'thirsty': True, 'user': self.testuser, 'address1': '123 Main St', 'address2': 'Djangoland', 'random_crap': 'blah blah', 'formset-form4': [ {'random_crap': 'blah blah'}, {'random_crap': 'blah blah'} ]}) form_dict = response.context['form_dict'] self.assertIn('form1', form_dict.keys()) self.assertIn('form2', form_dict.keys()) self.assertEqual(form_dict['form1'].cleaned_data, response.context['form_list'][0]) def test_manipulated_data(self): response = self.client.get( reverse(self.wizard_urlname, kwargs={'step': 'form1'})) self.assertEqual(response.status_code, 200) response = self.client.post( reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), self.wizard_step_data[0]) response = self.client.get(response.url) self.assertEqual(response.status_code, 200) post_data = self.wizard_step_data[1] with open(__file__, 'rb') as post_file: post_data['form2-file1'] = post_file response = self.client.post( reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), post_data) response = self.client.get(response.url) self.assertEqual(response.status_code, 200) response = self.client.post( reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), self.wizard_step_data[2]) loc = response.url response = self.client.get(loc) self.assertEqual(response.status_code, 200, loc) self.client.cookies.pop('sessionid', None) self.client.cookies.pop('wizard_cookie_contact_wizard', None) response = self.client.post( reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), self.wizard_step_data[3]) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form1') def test_form_reset(self): response = self.client.post( reverse(self.wizard_urlname, kwargs={'step': 'form1'}), self.wizard_step_data[0]) response = self.client.get(response.url) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form2') response = self.client.get( '%s?reset=1' % reverse('%s_start' % self.wizard_urlname)) self.assertEqual(response.status_code, 302) response = self.client.get(response.url) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form1') @override_settings(ROOT_URLCONF='tests.wizard.namedwizardtests.urls') class NamedSessionWizardTests(NamedWizardTests, TestCase): wizard_urlname = 'nwiz_session' wizard_step_1_data = { 'session_contact_wizard-current_step': 'form1', } wizard_step_data = ( { 'form1-name': 'Pony', 'form1-thirsty': '2', 'session_contact_wizard-current_step': 'form1', }, { 'form2-address1': '123 Main St', 'form2-address2': 'Djangoland', 'session_contact_wizard-current_step': 'form2', }, { 'form3-random_crap': 'blah blah', 'session_contact_wizard-current_step': 'form3', }, { 'form4-INITIAL_FORMS': '0', 'form4-TOTAL_FORMS': '2', 'form4-MAX_NUM_FORMS': '0', 'form4-0-random_crap': 'blah blah', 'form4-1-random_crap': 'blah blah', 'session_contact_wizard-current_step': 'form4', } ) @override_settings(ROOT_URLCONF='tests.wizard.namedwizardtests.urls') class NamedCookieWizardTests(NamedWizardTests, TestCase): wizard_urlname = 'nwiz_cookie' wizard_step_1_data = { 'cookie_contact_wizard-current_step': 'form1', } wizard_step_data = ( { 'form1-name': 'Pony', 'form1-thirsty': '2', 'cookie_contact_wizard-current_step': 'form1', }, { 'form2-address1': '123 Main St', 'form2-address2': 'Djangoland', 'cookie_contact_wizard-current_step': 'form2', }, { 'form3-random_crap': 'blah blah', 'cookie_contact_wizard-current_step': 'form3', }, { 'form4-INITIAL_FORMS': '0', 'form4-TOTAL_FORMS': '2', 'form4-MAX_NUM_FORMS': '0', 'form4-0-random_crap': 'blah blah', 'form4-1-random_crap': 'blah blah', 'cookie_contact_wizard-current_step': 'form4', } ) class NamedFormTests: def test_revalidation(self): request = get_request() testform = self.formwizard_class.as_view( [('start', Step1), ('step2', Step2)], url_name=self.wizard_urlname) response, instance = testform(request, step='done') instance.render_done(None) self.assertEqual(instance.storage.current_step, 'start') class TestNamedUrlSessionWizardView(NamedUrlSessionWizardView): def dispatch(self, request, *args, **kwargs): response = super().dispatch(request, *args, **kwargs) return response, self class TestNamedUrlCookieWizardView(NamedUrlCookieWizardView): def dispatch(self, request, *args, **kwargs): response = super().dispatch(request, *args, **kwargs) return response, self @override_settings(ROOT_URLCONF='tests.wizard.namedwizardtests.urls') class NamedSessionFormTests(NamedFormTests, TestCase): formwizard_class = TestNamedUrlSessionWizardView wizard_urlname = 'nwiz_session' @override_settings(ROOT_URLCONF='tests.wizard.namedwizardtests.urls') class NamedCookieFormTests(NamedFormTests, TestCase): formwizard_class = TestNamedUrlCookieWizardView wizard_urlname = 'nwiz_cookie' django-formtools-2.2/tests/wizard/namedwizardtests/urls.py000066400000000000000000000017121357223351300242370ustar00rootroot00000000000000from django.conf.urls import url from .forms import ( CookieContactWizard, Page1, Page2, Page3, Page4, SessionContactWizard, ) def get_named_session_wizard(): return SessionContactWizard.as_view( [('form1', Page1), ('form2', Page2), ('form3', Page3), ('form4', Page4)], url_name='nwiz_session', done_step_name='nwiz_session_done' ) def get_named_cookie_wizard(): return CookieContactWizard.as_view( [('form1', Page1), ('form2', Page2), ('form3', Page3), ('form4', Page4)], url_name='nwiz_cookie', done_step_name='nwiz_cookie_done' ) urlpatterns = [ url(r'^nwiz_session/(?P.+)/$', get_named_session_wizard(), name='nwiz_session'), url(r'^nwiz_session/$', get_named_session_wizard(), name='nwiz_session_start'), url(r'^nwiz_cookie/(?P.+)/$', get_named_cookie_wizard(), name='nwiz_cookie'), url(r'^nwiz_cookie/$', get_named_cookie_wizard(), name='nwiz_cookie_start'), ] django-formtools-2.2/tests/wizard/storage.py000066400000000000000000000071141357223351300213300ustar00rootroot00000000000000import os import tempfile from datetime import datetime from importlib import import_module from django.conf import settings from django.contrib.auth.models import User from django.core.files.storage import FileSystemStorage from django.core.files.uploadedfile import SimpleUploadedFile from django.http import HttpRequest, HttpResponse temp_storage_location = tempfile.mkdtemp(dir=os.environ.get('DJANGO_TEST_TEMP_DIR')) temp_storage = FileSystemStorage(location=temp_storage_location) def get_request(): request = HttpRequest() engine = import_module(settings.SESSION_ENGINE) request.session = engine.SessionStore(None) return request class TestStorage: def setUp(self): self.testuser, created = User.objects.get_or_create(username='testuser1') def test_current_step(self): request = get_request() storage = self.get_storage()('wizard1', request, None) my_step = 2 self.assertEqual(storage.current_step, None) storage.current_step = my_step self.assertEqual(storage.current_step, my_step) storage.reset() self.assertEqual(storage.current_step, None) storage.current_step = my_step storage2 = self.get_storage()('wizard2', request, None) self.assertEqual(storage2.current_step, None) def test_step_data(self): request = get_request() storage = self.get_storage()('wizard1', request, None) step1 = 'start' step_data1 = {'field1': 'data1', 'field2': 'data2', 'field3': datetime.now(), 'field4': self.testuser} self.assertEqual(storage.get_step_data(step1), None) storage.set_step_data(step1, step_data1) self.assertEqual(storage.get_step_data(step1), step_data1) storage.reset() self.assertEqual(storage.get_step_data(step1), None) storage.set_step_data(step1, step_data1) storage2 = self.get_storage()('wizard2', request, None) self.assertEqual(storage2.get_step_data(step1), None) def test_extra_context(self): request = get_request() storage = self.get_storage()('wizard1', request, None) extra_context = {'key1': 'data1', 'key2': 'data2', 'key3': datetime.now(), 'key4': self.testuser} self.assertEqual(storage.extra_data, {}) storage.extra_data = extra_context self.assertEqual(storage.extra_data, extra_context) storage.reset() self.assertEqual(storage.extra_data, {}) storage.extra_data = extra_context storage2 = self.get_storage()('wizard2', request, None) self.assertEqual(storage2.extra_data, {}) def test_extra_context_key_persistence(self): request = get_request() storage = self.get_storage()('wizard1', request, None) self.assertFalse('test' in storage.extra_data) storage.extra_data['test'] = True self.assertTrue('test' in storage.extra_data) def test_reset_deletes_tmp_files(self): request = get_request() storage = self.get_storage()('wizard1', request, temp_storage) step = 'start' file_ = SimpleUploadedFile('file.txt', b'content') storage.set_step_files(step, {'file': file_}) with storage.get_step_files(step)['file'] as file: tmp_name = file.name self.assertTrue(storage.file_storage.exists(tmp_name)) storage.reset() storage.update_response(HttpResponse()) self.assertFalse(storage.file_storage.exists(tmp_name)) django-formtools-2.2/tests/wizard/test_basestorage.py000066400000000000000000000011011357223351300232100ustar00rootroot00000000000000from django.test import TestCase from formtools.wizard.storage.base import BaseStorage class TestBaseStorage(TestCase): def test_subclass_can_override_get_current_step(self): class MyStorage(BaseStorage): def _get_current_step(self): return 'foo' self.assertEqual(MyStorage('/').current_step, 'foo') def test_subclass_can_override_get_extra_data(self): class MyStorage(BaseStorage): def _get_extra_data(self): return 'foo' self.assertEqual(MyStorage('/').extra_data, 'foo') django-formtools-2.2/tests/wizard/test_cookiestorage.py000066400000000000000000000031501357223351300235550ustar00rootroot00000000000000from django.core import signing from django.http import HttpResponse from django.test import TestCase from formtools.wizard.storage.cookie import CookieStorage from .storage import TestStorage, get_request class TestCookieStorage(TestStorage, TestCase): def get_storage(self): return CookieStorage def test_manipulated_cookie(self): request = get_request() storage = self.get_storage()('wizard1', request, None) cookie_signer = signing.get_cookie_signer(storage.prefix) storage.request.COOKIES[storage.prefix] = cookie_signer.sign( storage.encoder.encode({'key1': 'value1'}) ) self.assertEqual(storage.load_data(), {'key1': 'value1'}) storage.request.COOKIES[storage.prefix] = 'i_am_manipulated' self.assertIsNone(storage.load_data()) def test_reset_cookie(self): request = get_request() storage = self.get_storage()('wizard1', request, None) storage.data = {'key1': 'value1'} response = HttpResponse() storage.update_response(response) cookie_signer = signing.get_cookie_signer(storage.prefix) signed_cookie_data = cookie_signer.sign(storage.encoder.encode(storage.data)) self.assertEqual(response.cookies[storage.prefix].value, signed_cookie_data) storage.init_data() storage.update_response(response) unsigned_cookie_data = cookie_signer.unsign(response.cookies[storage.prefix].value) self.assertJSONEqual( unsigned_cookie_data, {"step_files": {}, "step": None, "extra_data": {}, "step_data": {}} ) django-formtools-2.2/tests/wizard/test_forms.py000066400000000000000000000217741357223351300220610ustar00rootroot00000000000000from importlib import import_module from django import forms, http from django.conf import settings from django.contrib.auth.models import User from django.db import models from django.template.response import TemplateResponse from django.test import TestCase from formtools.wizard.views import ( CookieWizardView, SessionWizardView, WizardView, ) class DummyRequest(http.HttpRequest): def __init__(self, POST=None): super().__init__() self.method = "POST" if POST else "GET" if POST is not None: self.POST.update(POST) self.session = {} self._dont_enforce_csrf_checks = True def get_request(*args, **kwargs): request = DummyRequest(*args, **kwargs) engine = import_module(settings.SESSION_ENGINE) request.session = engine.SessionStore(None) return request class Step1(forms.Form): name = forms.CharField() class Step2(forms.Form): name = forms.CharField() class Step3(forms.Form): data = forms.CharField() class CustomKwargsStep1(Step1): def __init__(self, test=None, *args, **kwargs): self.test = test super().__init__(*args, **kwargs) class TestModel(models.Model): name = models.CharField(max_length=100) class Meta: app_label = 'formtools' class TestModelForm(forms.ModelForm): class Meta: model = TestModel fields = '__all__' TestModelFormSet = forms.models.modelformset_factory(TestModel, form=TestModelForm, extra=2, fields='__all__') class TestWizard(WizardView): storage_name = 'formtools.wizard.storage.session.SessionStorage' def dispatch(self, request, *args, **kwargs): response = super().dispatch(request, *args, **kwargs) return response, self def get_form_kwargs(self, step, *args, **kwargs): kwargs = super().get_form_kwargs(step, *args, **kwargs) if step == 'kwargs_test': kwargs['test'] = True return kwargs class TestWizardWithInitAttrs(TestWizard): form_list = [Step1, Step2] condition_dict = {'step2': True} initial_dict = {'start': {'name': 'value1'}} instance_dict = {'start': User()} class FormTests(TestCase): def test_form_init(self): testform = TestWizard.get_initkwargs([Step1, Step2]) self.assertEqual(testform['form_list'], {'0': Step1, '1': Step2}) testform = TestWizard.get_initkwargs([('start', Step1), ('step2', Step2)]) self.assertEqual(testform['form_list'], {'start': Step1, 'step2': Step2}) testform = TestWizard.get_initkwargs([Step1, Step2, ('finish', Step3)]) self.assertEqual(testform['form_list'], {'0': Step1, '1': Step2, 'finish': Step3}) testform = TestWizardWithInitAttrs.get_initkwargs() self.assertEqual(testform['form_list'], {'0': Step1, '1': Step2}) def test_first_step(self): request = get_request() testform = TestWizard.as_view([Step1, Step2]) response, instance = testform(request) self.assertEqual(instance.steps.current, '0') testform = TestWizard.as_view([('start', Step1), ('step2', Step2)]) response, instance = testform(request) self.assertEqual(instance.steps.current, 'start') def test_persistence(self): testform = TestWizard.as_view([('start', Step1), ('step2', Step2)]) request = get_request({'test_wizard-current_step': 'start', 'name': 'data1'}) response, instance = testform(request) self.assertEqual(instance.steps.current, 'start') instance.storage.current_step = 'step2' testform2 = TestWizard.as_view([('start', Step1), ('step2', Step2)]) request.POST = {'test_wizard-current_step': 'step2'} response, instance = testform2(request) self.assertEqual(instance.steps.current, 'step2') def test_form_condition(self): request = get_request() testform = TestWizard.as_view( [('start', Step1), ('step2', Step2), ('step3', Step3)], condition_dict={'step2': True} ) response, instance = testform(request) self.assertEqual(instance.get_next_step(), 'step2') testform = TestWizard.as_view( [('start', Step1), ('step2', Step2), ('step3', Step3)], condition_dict={'step2': False} ) response, instance = testform(request) self.assertEqual(instance.get_next_step(), 'step3') testform = TestWizardWithInitAttrs.as_view( [('start', Step1), ('step2', Step2), ('step3', Step3)] ) response, instance = testform(request) self.assertEqual(instance.get_next_step(), 'step2') def test_form_condition_unstable(self): request = get_request() testform = TestWizard.as_view( [('start', Step1), ('step2', Step2), ('step3', Step3)], condition_dict={'step2': True} ) response, instance = testform(request) self.assertEqual(instance.get_step_index('step2'), 1) self.assertEqual(instance.get_next_step('step2'), 'step3') instance.condition_dict['step2'] = False self.assertEqual(instance.get_step_index('step2'), None) self.assertEqual(instance.get_next_step('step2'), 'start') def test_form_kwargs(self): request = get_request() testform = TestWizard.as_view([ ('start', Step1), ('kwargs_test', CustomKwargsStep1), ]) response, instance = testform(request) self.assertEqual(instance.get_form_kwargs('start'), {}) self.assertEqual(instance.get_form_kwargs('kwargs_test'), {'test': True}) self.assertEqual(instance.get_form('kwargs_test').test, True) def test_form_prefix(self): request = get_request() testform = TestWizard.as_view([('start', Step1), ('step2', Step2)]) response, instance = testform(request) self.assertEqual(instance.get_form_prefix(), 'start') self.assertEqual(instance.get_form_prefix('another'), 'another') def test_form_initial(self): request = get_request() testform = TestWizard.as_view( [('start', Step1), ('step2', Step2)], initial_dict={'start': {'name': 'value1'}} ) response, instance = testform(request) self.assertEqual(instance.get_form_initial('start'), {'name': 'value1'}) self.assertEqual(instance.get_form_initial('step2'), {}) testform = TestWizardWithInitAttrs.as_view( [('start', Step1), ('step2', Step2)] ) response, instance = testform(request) self.assertEqual(instance.get_form_initial('start'), {'name': 'value1'}) self.assertEqual(instance.get_form_initial('step2'), {}) def test_form_instance(self): request = get_request() the_instance = TestModel() testform = TestWizard.as_view( [('start', TestModelForm), ('step2', Step2)], instance_dict={'start': the_instance} ) response, instance = testform(request) self.assertEqual(instance.get_form_instance('start'), the_instance) self.assertIsNone(instance.get_form_instance('non_exist_instance')) testform = TestWizardWithInitAttrs.as_view([('start', TestModelForm), ('step2', Step2)]) response, instance = testform(request) self.assertEqual( instance.get_form_instance('start'), TestWizardWithInitAttrs.instance_dict['start'] ) def test_formset_instance(self): request = get_request() the_instance1, created = TestModel.objects.get_or_create(name='test object 1') the_instance2, created = TestModel.objects.get_or_create(name='test object 2') testform = TestWizard.as_view( [('start', TestModelFormSet), ('step2', Step2)], instance_dict={'start': TestModel.objects.filter(name='test object 1')} ) response, instance = testform(request) self.assertEqual(list(instance.get_form_instance('start')), [the_instance1]) self.assertEqual(instance.get_form_instance('non_exist_instance'), None) self.assertEqual(instance.get_form().initial_form_count(), 1) def test_done(self): request = get_request() testform = TestWizard.as_view([('start', Step1), ('step2', Step2)]) response, instance = testform(request) self.assertRaises(NotImplementedError, instance.done, None) def test_revalidation(self): request = get_request() testform = TestWizard.as_view([('start', Step1), ('step2', Step2)]) response, instance = testform(request) instance.render_done(None) self.assertEqual(instance.storage.current_step, 'start') class SessionFormTests(TestCase): def test_init(self): request = get_request() testform = SessionWizardView.as_view([('start', Step1)]) self.assertIsInstance(testform(request), TemplateResponse) class CookieFormTests(TestCase): def test_init(self): request = get_request() testform = CookieWizardView.as_view([('start', Step1)]) self.assertIsInstance(testform(request), TemplateResponse) django-formtools-2.2/tests/wizard/test_loadstorage.py000066400000000000000000000012461357223351300232270ustar00rootroot00000000000000from django.test import TestCase from formtools.wizard.storage import MissingStorage, get_storage from formtools.wizard.storage.base import BaseStorage class TestLoadStorage(TestCase): def test_load_storage(self): self.assertIsInstance( get_storage('formtools.wizard.storage.base.BaseStorage', 'wizard1'), BaseStorage ) def test_missing_storage(self): with self.assertRaises(MissingStorage): get_storage('formtools.wizard.storage.idontexist.IDontExistStorage', 'wizard1') with self.assertRaises(MissingStorage): get_storage('formtools.wizard.storage.base.IDontExistStorage', 'wizard1') django-formtools-2.2/tests/wizard/test_sessionstorage.py000066400000000000000000000003541357223351300237720ustar00rootroot00000000000000from django.test import TestCase from formtools.wizard.storage.session import SessionStorage from .storage import TestStorage class TestSessionStorage(TestStorage, TestCase): def get_storage(self): return SessionStorage django-formtools-2.2/tests/wizard/wizardtests/000077500000000000000000000000001357223351300216725ustar00rootroot00000000000000django-formtools-2.2/tests/wizard/wizardtests/__init__.py000066400000000000000000000000001357223351300237710ustar00rootroot00000000000000django-formtools-2.2/tests/wizard/wizardtests/forms.py000066400000000000000000000040661357223351300234000ustar00rootroot00000000000000import os import tempfile from django import forms from django.contrib.auth.models import User from django.core.files.storage import FileSystemStorage from django.forms.formsets import formset_factory from django.forms.models import modelformset_factory from django.http import HttpResponse from django.template import Context, Template from formtools.wizard.views import WizardView temp_storage_location = tempfile.mkdtemp(dir=os.environ.get('DJANGO_TEST_TEMP_DIR')) temp_storage = FileSystemStorage(location=temp_storage_location) class Page1(forms.Form): name = forms.CharField(max_length=100) user = forms.ModelChoiceField(queryset=User.objects.all()) thirsty = forms.NullBooleanField() class Page2(forms.Form): address1 = forms.CharField(max_length=100) address2 = forms.CharField(max_length=100) file1 = forms.FileField() class Page3(forms.Form): random_crap = forms.CharField(max_length=100) Page4 = formset_factory(Page3, extra=2) class ContactWizard(WizardView): file_storage = temp_storage def done(self, form_list, **kwargs): c = Context({ 'form_list': [x.cleaned_data for x in form_list], 'all_cleaned_data': self.get_all_cleaned_data(), }) for form in self.form_list.keys(): c[form] = self.get_cleaned_data_for_step(form) c['this_will_fail'] = self.get_cleaned_data_for_step('this_will_fail') return HttpResponse(Template('').render(c)) def get_context_data(self, form, **kwargs): context = super().get_context_data(form, **kwargs) if self.storage.current_step == 'form2': context.update({'another_var': True}) return context class UserForm(forms.ModelForm): class Meta: model = User fields = ('username', 'email') UserFormSet = modelformset_factory(User, form=UserForm) class SessionContactWizard(ContactWizard): storage_name = 'formtools.wizard.storage.session.SessionStorage' class CookieContactWizard(ContactWizard): storage_name = 'formtools.wizard.storage.cookie.CookieStorage' django-formtools-2.2/tests/wizard/wizardtests/models.py000066400000000000000000000006561357223351300235360ustar00rootroot00000000000000from django.db import models class Poet(models.Model): name = models.CharField(max_length=100) class Meta: app_label = 'formtools' def __str__(self): return self.name class Poem(models.Model): poet = models.ForeignKey(Poet, on_delete=models.CASCADE) name = models.CharField(max_length=100) class Meta: app_label = 'formtools' def __str__(self): return self.name django-formtools-2.2/tests/wizard/wizardtests/templates/000077500000000000000000000000001357223351300236705ustar00rootroot00000000000000django-formtools-2.2/tests/wizard/wizardtests/templates/other_wizard_form.html000066400000000000000000000000621357223351300303000ustar00rootroot00000000000000{% extends "formtools/wizard/wizard_form.html" %} django-formtools-2.2/tests/wizard/wizardtests/tests.py000066400000000000000000000453571357223351300234240ustar00rootroot00000000000000import copy from django import forms from django.contrib.auth.models import User from django.test import TestCase, override_settings from django.test.client import RequestFactory from formtools.wizard.views import CookieWizardView from .forms import temp_storage from .models import Poem, Poet UPLOADED_FILE_NAME = 'tests.py' class UserForm(forms.ModelForm): class Meta: model = User fields = '__all__' UserFormSet = forms.models.modelformset_factory(User, form=UserForm, extra=2) PoemFormSet = forms.models.inlineformset_factory(Poet, Poem, fields="__all__") class WizardTests: def setUp(self): self.testuser, created = User.objects.get_or_create(username='testuser1') # Get new step data, since we modify it during the tests. self.wizard_step_data = copy.deepcopy(self.wizard_step_data) self.wizard_step_data[0]['form1-user'] = self.testuser.pk def tearDown(self): # Ensure that there are no files in the storage which could lead to false # results in the next tests. Deleting the whole storage dir is not really # an option since the storage is defined on the module level and can't be # easily reinitialized. (FIXME: The tests here should use the view classes # directly instead of the test client, then the storage issues would go # away too.) for file in temp_storage.listdir('')[1]: temp_storage.delete(file) def test_initial_call(self): response = self.client.get(self.wizard_url) wizard = response.context['wizard'] self.assertEqual(response.status_code, 200) self.assertEqual(wizard['steps'].current, 'form1') self.assertEqual(wizard['steps'].step0, 0) self.assertEqual(wizard['steps'].step1, 1) self.assertEqual(wizard['steps'].last, 'form4') self.assertEqual(wizard['steps'].prev, None) self.assertEqual(wizard['steps'].next, 'form2') self.assertEqual(wizard['steps'].count, 4) def test_form_post_error(self): response = self.client.post(self.wizard_url, self.wizard_step_1_data) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form1') self.assertEqual(response.context['wizard']['form'].errors, {'name': ['This field is required.'], 'user': ['This field is required.']}) def test_form_post_mgmt_data_missing(self): wizard_step_data = self.wizard_step_data[0].copy() # remove management data for key in list(wizard_step_data.keys()): if "current_step" in key: del wizard_step_data[key] response = self.client.post(self.wizard_url, wizard_step_data) # view should return HTTP 400 Bad Request self.assertEqual(response.status_code, 400) def test_form_post_success(self): response = self.client.post(self.wizard_url, self.wizard_step_data[0]) wizard = response.context['wizard'] self.assertEqual(response.status_code, 200) self.assertEqual(wizard['steps'].current, 'form2') self.assertEqual(wizard['steps'].step0, 1) self.assertEqual(wizard['steps'].prev, 'form1') self.assertEqual(wizard['steps'].next, 'form3') def test_form_stepback(self): response = self.client.get(self.wizard_url) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form1') response = self.client.post(self.wizard_url, self.wizard_step_data[0]) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form2') response = self.client.post(self.wizard_url, { 'wizard_goto_step': response.context['wizard']['steps'].prev}) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form1') def test_template_context(self): response = self.client.get(self.wizard_url) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form1') self.assertEqual(response.context.get('another_var', None), None) response = self.client.post(self.wizard_url, self.wizard_step_data[0]) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form2') self.assertEqual(response.context.get('another_var', None), True) # ticket #19025: `form` should be included in context form = response.context_data['wizard']['form'] self.assertEqual(response.context_data['form'], form) def test_form_finish(self): response = self.client.get(self.wizard_url) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form1') response = self.client.post(self.wizard_url, self.wizard_step_data[0]) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form2') post_data = self.wizard_step_data[1] with open(__file__, 'rb') as post_file: post_data['form2-file1'] = post_file response = self.client.post(self.wizard_url, post_data) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form3') # Check that the file got uploaded properly. with open(__file__, 'rb') as f, temp_storage.open(UPLOADED_FILE_NAME) as f2: self.assertEqual(f.read(), f2.read()) response = self.client.post(self.wizard_url, self.wizard_step_data[2]) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form4') response = self.client.post(self.wizard_url, self.wizard_step_data[3]) self.assertEqual(response.status_code, 200) # After the wizard is done no files should exist anymore. self.assertFalse(temp_storage.exists(UPLOADED_FILE_NAME)) all_data = response.context['form_list'] del all_data[1]['file1'] self.assertEqual(all_data, [ {'name': 'Pony', 'thirsty': True, 'user': self.testuser}, {'address1': '123 Main St', 'address2': 'Djangoland'}, {'random_crap': 'blah blah'}, [{'random_crap': 'blah blah'}, {'random_crap': 'blah blah'}]]) def test_cleaned_data(self): response = self.client.get(self.wizard_url) self.assertEqual(response.status_code, 200) response = self.client.post(self.wizard_url, self.wizard_step_data[0]) self.assertEqual(response.status_code, 200) post_data = self.wizard_step_data[1] with open(__file__, 'rb') as post_file: post_data['form2-file1'] = post_file response = self.client.post(self.wizard_url, post_data) self.assertEqual(response.status_code, 200) self.assertTrue(temp_storage.exists(UPLOADED_FILE_NAME)) response = self.client.post(self.wizard_url, self.wizard_step_data[2]) self.assertEqual(response.status_code, 200) response = self.client.post(self.wizard_url, self.wizard_step_data[3]) self.assertEqual(response.status_code, 200) all_data = response.context['all_cleaned_data'] self.assertEqual(all_data['file1'].name, UPLOADED_FILE_NAME) self.assertTrue(all_data['file1'].closed) self.assertFalse(temp_storage.exists(UPLOADED_FILE_NAME)) del all_data['file1'] self.assertEqual(all_data, { 'name': 'Pony', 'thirsty': True, 'user': self.testuser, 'address1': '123 Main St', 'address2': 'Djangoland', 'random_crap': 'blah blah', 'formset-form4': [ {'random_crap': 'blah blah'}, {'random_crap': 'blah blah'}]}) def test_manipulated_data(self): response = self.client.get(self.wizard_url) self.assertEqual(response.status_code, 200) response = self.client.post(self.wizard_url, self.wizard_step_data[0]) self.assertEqual(response.status_code, 200) post_data = self.wizard_step_data[1] with open(__file__, 'rb') as post_file: post_data['form2-file1'] = post_file response = self.client.post(self.wizard_url, post_data) self.assertEqual(response.status_code, 200) response = self.client.post(self.wizard_url, self.wizard_step_data[2]) self.assertEqual(response.status_code, 200) self.client.cookies.pop('sessionid', None) self.client.cookies.pop('wizard_cookie_contact_wizard', None) response = self.client.post(self.wizard_url, self.wizard_step_data[3]) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form1') def test_form_refresh(self): response = self.client.get(self.wizard_url) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form1') response = self.client.post(self.wizard_url, self.wizard_step_data[0]) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form2') response = self.client.post(self.wizard_url, self.wizard_step_data[0]) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form2') post_data = self.wizard_step_data[1] with open(__file__, 'rb') as post_file: post_data['form2-file1'] = post_file response = self.client.post(self.wizard_url, post_data) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form3') response = self.client.post(self.wizard_url, self.wizard_step_data[2]) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form4') response = self.client.post(self.wizard_url, self.wizard_step_data[0]) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form2') response = self.client.post(self.wizard_url, self.wizard_step_data[3]) self.assertEqual(response.status_code, 200) @override_settings(ROOT_URLCONF='tests.wizard.wizardtests.urls') class SessionWizardTests(WizardTests, TestCase): wizard_url = '/wiz_session/' wizard_step_1_data = { 'session_contact_wizard-current_step': 'form1', } wizard_step_data = ( { 'form1-name': 'Pony', 'form1-thirsty': '2', 'session_contact_wizard-current_step': 'form1', }, { 'form2-address1': '123 Main St', 'form2-address2': 'Djangoland', 'session_contact_wizard-current_step': 'form2', }, { 'form3-random_crap': 'blah blah', 'session_contact_wizard-current_step': 'form3', }, { 'form4-INITIAL_FORMS': '0', 'form4-TOTAL_FORMS': '2', 'form4-MAX_NUM_FORMS': '0', 'form4-0-random_crap': 'blah blah', 'form4-1-random_crap': 'blah blah', 'session_contact_wizard-current_step': 'form4', } ) @override_settings(ROOT_URLCONF='tests.wizard.wizardtests.urls') class CookieWizardTests(WizardTests, TestCase): wizard_url = '/wiz_cookie/' wizard_step_1_data = { 'cookie_contact_wizard-current_step': 'form1', } wizard_step_data = ( { 'form1-name': 'Pony', 'form1-thirsty': '2', 'cookie_contact_wizard-current_step': 'form1', }, { 'form2-address1': '123 Main St', 'form2-address2': 'Djangoland', 'cookie_contact_wizard-current_step': 'form2', }, { 'form3-random_crap': 'blah blah', 'cookie_contact_wizard-current_step': 'form3', }, { 'form4-INITIAL_FORMS': '0', 'form4-TOTAL_FORMS': '2', 'form4-MAX_NUM_FORMS': '0', 'form4-0-random_crap': 'blah blah', 'form4-1-random_crap': 'blah blah', 'cookie_contact_wizard-current_step': 'form4', } ) @override_settings(ROOT_URLCONF='tests.wizard.wizardtests.urls') class WizardTestKwargs(TestCase): wizard_url = '/wiz_other_template/' wizard_step_1_data = { 'cookie_contact_wizard-current_step': 'form1', } wizard_step_data = ( { 'form1-name': 'Pony', 'form1-thirsty': '2', 'cookie_contact_wizard-current_step': 'form1', }, { 'form2-address1': '123 Main St', 'form2-address2': 'Djangoland', 'cookie_contact_wizard-current_step': 'form2', }, { 'form3-random_crap': 'blah blah', 'cookie_contact_wizard-current_step': 'form3', }, { 'form4-INITIAL_FORMS': '0', 'form4-TOTAL_FORMS': '2', 'form4-MAX_NUM_FORMS': '0', 'form4-0-random_crap': 'blah blah', 'form4-1-random_crap': 'blah blah', 'cookie_contact_wizard-current_step': 'form4', } ) def setUp(self): self.testuser, created = User.objects.get_or_create(username='testuser1') self.wizard_step_data[0]['form1-user'] = self.testuser.pk def test_template(self): response = self.client.get(self.wizard_url) self.assertTemplateUsed(response, 'other_wizard_form.html') class WizardTestGenericViewInterface(TestCase): def test_get_context_data_inheritance(self): class TestWizard(CookieWizardView): """ A subclass that implements ``get_context_data`` using the standard protocol for generic views (accept only **kwargs). See ticket #17148. """ def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['test_key'] = 'test_value' return context factory = RequestFactory() view = TestWizard.as_view([forms.Form]) response = view(factory.get('/')) self.assertEqual(response.context_data['test_key'], 'test_value') def test_get_context_data_with_mixin(self): class AnotherMixin: def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['another_key'] = 'another_value' return context class TestWizard(AnotherMixin, CookieWizardView): """ A subclass that implements ``get_context_data`` using the standard protocol for generic views (accept only **kwargs). See ticket #17148. """ def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['test_key'] = 'test_value' return context factory = RequestFactory() view = TestWizard.as_view([forms.Form]) response = view(factory.get('/')) self.assertEqual(response.context_data['test_key'], 'test_value') self.assertEqual(response.context_data['another_key'], 'another_value') class WizardTestPrefix(TestCase): def test_get_prefix(self): class TestWizard(CookieWizardView): def get_prefix(self, request, *args, **kwargs): return 'sample_prefix' factory = RequestFactory() view = TestWizard.as_view([forms.Form]) response = view(factory.get('/')) prefix = response.context_data['wizard']['management_form'].prefix self.assertEqual(prefix, 'sample_prefix') def test_get_prefix_using_request_object(self): class TestWizard(CookieWizardView): def get_prefix(self, request, *args, **kwargs): return request.prefix_value factory = RequestFactory() view = TestWizard.as_view([forms.Form]) request = factory.get('/') request.prefix_value = 'text_prefix' response = view(request) prefix = response.context_data['wizard']['management_form'].prefix self.assertEqual(prefix, 'text_prefix') class WizardFormKwargsOverrideTests(TestCase): def setUp(self): super().setUp() self.rf = RequestFactory() # Create two users so we can filter by is_staff when handing our # wizard a queryset keyword argument. self.normal_user = User.objects.create(username='test1', email='normal@example.com') self.staff_user = User.objects.create(username='test2', email='staff@example.com', is_staff=True) def test_instance_is_maintained(self): self.assertEqual(2, User.objects.count()) queryset = User.objects.get(pk=self.staff_user.pk) class InstanceOverrideWizard(CookieWizardView): def get_form_kwargs(self, step): return {'instance': queryset} view = InstanceOverrideWizard.as_view([UserForm]) response = view(self.rf.get('/')) form = response.context_data['wizard']['form'] self.assertNotEqual(form.instance.pk, None) self.assertEqual(form.instance.pk, self.staff_user.pk) self.assertEqual('staff@example.com', form.initial.get('email', None)) def test_queryset_is_maintained(self): queryset = User.objects.filter(pk=self.staff_user.pk) class QuerySetOverrideWizard(CookieWizardView): def get_form_kwargs(self, step): return {'queryset': queryset} view = QuerySetOverrideWizard.as_view([UserFormSet]) response = view(self.rf.get('/')) formset = response.context_data['wizard']['form'] self.assertNotEqual(formset.queryset, None) self.assertEqual(formset.initial_form_count(), 1) self.assertEqual(['staff@example.com'], list(formset.queryset.values_list('email', flat=True))) class WizardInlineFormSetTests(TestCase): def setUp(self): self.rf = RequestFactory() self.poet = Poet.objects.create(name='test') self.poem = self.poet.poem_set.create(name='test poem') def test_set_instance(self): # Regression test for #21259 poet = self.poet class InlineFormSetWizard(CookieWizardView): instance = None def get_form_instance(self, step): if self.instance is None: self.instance = poet return self.instance view = InlineFormSetWizard.as_view([PoemFormSet]) response = view(self.rf.get('/')) formset = response.context_data['wizard']['form'] self.assertEqual(formset.instance, self.poet) django-formtools-2.2/tests/wizard/wizardtests/urls.py000066400000000000000000000013031357223351300232260ustar00rootroot00000000000000from django.conf.urls import url from .forms import ( CookieContactWizard, Page1, Page2, Page3, Page4, SessionContactWizard, ) urlpatterns = [ url(r'^wiz_session/$', SessionContactWizard.as_view( [('form1', Page1), ('form2', Page2), ('form3', Page3), ('form4', Page4)])), url(r'^wiz_cookie/$', CookieContactWizard.as_view( [('form1', Page1), ('form2', Page2), ('form3', Page3), ('form4', Page4)])), url(r'^wiz_other_template/$', CookieContactWizard.as_view( [('form1', Page1), ('form2', Page2), ('form3', Page3), ('form4', Page4)], template_name='other_wizard_form.html')), ] django-formtools-2.2/tox.ini000066400000000000000000000011551357223351300161620ustar00rootroot00000000000000[tox] args_are_paths = false envlist = py34-django-{111,20} {py35,py36,py37}-django-{111,20,21,22} {py36,py37}-django-{30,master} [testenv] basepython = py34: python3.4 py35: python3.5 py36: python3.6 py37: python3.7 usedevelop = true whitelist_externals = make commands = make test pip_pre = true deps = django-111: Django>=1.11a1,<2.0 django-20: Django>=2.0a1,<2.1 django-21: Django>=2.1a1,<2.2 django-22: Django>=2.2a1,<3.0 django-30: Django>=3.0a1,<3.1 django-master: https://github.com/django/django/archive/master.tar.gz -r{toxinidir}/tests/requirements.txt