From 9883db6fa28ec854cc569e2286620a16279bf804 Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Sun, 25 Jan 2015 12:00:30 +0100 Subject: [PATCH] implement new module gvawebcore to provide common code - add gvawebcore.forms.PasswordModelFormMixin - add generated documentation - add german translation --- docs/code.rst | 1 + docs/code/gvawebcore.rst | 11 +++++ gnuviechadmin/gvawebcore/__init__.py | 5 +++ gnuviechadmin/gvawebcore/forms.py | 43 +++++++++++++++++++ .../locale/de/LC_MESSAGES/django.po | 32 ++++++++++++++ 5 files changed, 92 insertions(+) create mode 100644 docs/code/gvawebcore.rst create mode 100644 gnuviechadmin/gvawebcore/__init__.py create mode 100644 gnuviechadmin/gvawebcore/forms.py create mode 100644 gnuviechadmin/gvawebcore/locale/de/LC_MESSAGES/django.po diff --git a/docs/code.rst b/docs/code.rst index adc9570..e334f04 100644 --- a/docs/code.rst +++ b/docs/code.rst @@ -15,6 +15,7 @@ Common code .. toctree:: code/gvacommon + code/gvawebcore Celery task stubs diff --git a/docs/code/gvawebcore.rst b/docs/code/gvawebcore.rst new file mode 100644 index 0000000..7fdd1b0 --- /dev/null +++ b/docs/code/gvawebcore.rst @@ -0,0 +1,11 @@ +:py:mod:`gvawebcore` +==================== + +.. automodule:: gvawebcore + + +:py:mod:`forms ` +---------------------------------- + +.. automodule:: gvawebcore.forms + :members: diff --git a/gnuviechadmin/gvawebcore/__init__.py b/gnuviechadmin/gvawebcore/__init__.py new file mode 100644 index 0000000..21b9749 --- /dev/null +++ b/gnuviechadmin/gvawebcore/__init__.py @@ -0,0 +1,5 @@ +""" +This is a collection of modules that can be used by multiple gnuviechadmin +apps. + +""" diff --git a/gnuviechadmin/gvawebcore/forms.py b/gnuviechadmin/gvawebcore/forms.py new file mode 100644 index 0000000..7a72d83 --- /dev/null +++ b/gnuviechadmin/gvawebcore/forms.py @@ -0,0 +1,43 @@ +""" +This module defines form classes that can be extended by other gnuviechadmin +apps' forms. + +""" +from __future__ import absolute_import, unicode_literals + +from django import forms +from django.utils.translation import ugettext_lazy as _ + + +PASSWORD_MISMATCH_ERROR = _("Passwords don't match") +""" +Error message for non matching passwords. +""" + + +class PasswordModelFormMixin(forms.Form): + """ + A form for entering a password in two password fields. The form checks + whether both fields contain the same string. + + """ + password1 = forms.CharField( + label=_('Password'), widget=forms.PasswordInput, + ) + password2 = forms.CharField( + label=_('Password (again)'), widget=forms.PasswordInput, + ) + + def clean_password2(self): + """ + Check that the two password entries match. + + :return: the validated password + :rtype: str or None + + """ + password1 = self.cleaned_data.get('password1') + password2 = self.cleaned_data.get('password2') + if password1 and password2 and password1 != password2: + raise forms.ValidationError(PASSWORD_MISMATCH_ERROR) + return password2 diff --git a/gnuviechadmin/gvawebcore/locale/de/LC_MESSAGES/django.po b/gnuviechadmin/gvawebcore/locale/de/LC_MESSAGES/django.po new file mode 100644 index 0000000..e460e21 --- /dev/null +++ b/gnuviechadmin/gvawebcore/locale/de/LC_MESSAGES/django.po @@ -0,0 +1,32 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: gvawebcore\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-01-25 11:49+0100\n" +"PO-Revision-Date: 2015-01-25 11:49+0100\n" +"Last-Translator: Jan Dittberner \n" +"Language-Team: Jan Dittberner \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" +"X-Generator: Poedit 1.6.10\n" +"X-Poedit-SourceCharset: UTF-8\n" + +#: forms.py:12 +msgid "Passwords don't match" +msgstr "Passwörter stimmen nicht überein" + +#: forms.py:25 +msgid "Password" +msgstr "Passwort: " + +#: forms.py:28 +msgid "Password (again)" +msgstr "Passwortwiederholung"