prepare 0.9.3; change to numberinput widget for all number inputs; fixed issue with slider plugin missing labels if show endpoints as is set to labeled ticks; link to edit form entry added to edit form wizard entry view

This commit is contained in:
Artur Barseghyan 2016-10-24 23:09:35 +02:00
parent 50762bb18a
commit 33bc5a59b8
23 changed files with 60 additions and 89 deletions

View file

@ -15,6 +15,15 @@ are used for versioning (schema follows below):
0.3.4 to 0.4).
- All backwards incompatible changes are mentioned in this document.
0.9.3
-----
2016-10-24
- Change to `NumberInput` widget for all numbers.
- Fixed issue with `slider` plugin missing labels if `Show endpoints as` is
set to `Labeled ticks`.
- Link to edit form entry added to edit form wizard view.
0.9.2
-----
2016-10-24

View file

@ -204,7 +204,7 @@ for locale_dir in locale_dirs:
for f
in os.listdir(locale_dir)]
version = '0.9.2'
version = '0.9.3'
install_requires = []
# If certain version of Django is already installed, choose version agnostic

View file

@ -1,6 +1,6 @@
__title__ = 'django-fobi'
__version__ = '0.9.2'
__build__ = 0x000064
__version__ = '0.9.3'
__build__ = 0x000065
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
__copyright__ = '2014-2016 Artur Barseghyan'
__license__ = 'GPL 2.0/LGPL 2.1'

View file

@ -60,16 +60,12 @@ class DateDropDownInputForm(forms.Form, BaseFormFieldPluginForm):
year_min = forms.IntegerField(
label=_("Minimum year value"),
required=False,
widget=NumberInput(
attrs={'class': theme.form_element_html_class}
)
widget=NumberInput(attrs={'class': theme.form_element_html_class})
)
year_max = forms.IntegerField(
label=_("Maximum year value"),
required=False,
widget=NumberInput(
attrs={'class': theme.form_element_html_class}
)
widget=NumberInput(attrs={'class': theme.form_element_html_class})
)
initial = forms.CharField(
label=_("Initial"),

View file

@ -5,6 +5,7 @@ from django.utils.translation import ugettext_lazy as _
from fobi.base import BaseFormFieldPluginForm, get_theme
from fobi.settings import DEFAULT_MAX_LENGTH
from fobi.widgets import NumberInput
__title__ = 'fobi.contrib.plugins.form_elements.email.forms'
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
@ -59,9 +60,7 @@ class EmailInputForm(forms.Form, BaseFormFieldPluginForm):
max_length = forms.IntegerField(
label=_("Max length"),
required=True,
widget=forms.widgets.TextInput(
attrs={'class': theme.form_element_html_class}
),
widget=NumberInput(attrs={'class': theme.form_element_html_class}),
initial=DEFAULT_MAX_LENGTH
)
required = forms.BooleanField(

View file

@ -3,6 +3,7 @@ from django.utils.translation import ugettext_lazy as _
from fobi.base import BaseFormFieldPluginForm, get_theme
from fobi.settings import DEFAULT_MAX_LENGTH
from fobi.widgets import NumberInput
__title__ = 'fobi.contrib.plugins.form_elements.fields.file.forms'
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
@ -56,9 +57,7 @@ class FileInputForm(forms.Form, BaseFormFieldPluginForm):
max_length = forms.IntegerField(
label=_("Max length"),
required=True,
widget=forms.widgets.TextInput(
attrs={'class': theme.form_element_html_class}
),
widget=NumberInput(attrs={'class': theme.form_element_html_class}),
initial=DEFAULT_MAX_LENGTH
)
required = forms.BooleanField(

View file

@ -3,6 +3,7 @@ from django.utils.translation import ugettext_lazy as _
from fobi.base import BaseFormFieldPluginForm, get_theme
from fobi.settings import DEFAULT_MAX_LENGTH
from fobi.widgets import NumberInput
__title__ = 'fobi.contrib.plugins.form_elements.fields.hidden.forms'
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
@ -48,9 +49,7 @@ class HiddenInputForm(forms.Form, BaseFormFieldPluginForm):
max_length = forms.IntegerField(
label=_("Max length"),
required=True,
widget=forms.widgets.TextInput(
attrs={'class': theme.form_element_html_class}
),
widget=NumberInput(attrs={'class': theme.form_element_html_class}),
initial=DEFAULT_MAX_LENGTH
)
required = forms.BooleanField(

View file

@ -3,19 +3,10 @@ from django.utils.translation import ugettext_lazy as _
from fobi.base import BaseFormFieldPluginForm, get_theme
from fobi.settings import DEFAULT_MAX_LENGTH
from fobi.widgets import NumberInput
from .constants import FORM_FIELD_TYPE_CHOICES
try:
from django.forms.widgets import NumberInput
except ImportError:
from django.forms.widgets import TextInput
class NumberInput(TextInput):
"""Number input."""
input_type = 'number'
__title__ = 'fobi.contrib.plugins.form_elements.fields.input.forms'
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
__copyright__ = '2014-2016 Artur Barseghyan'
@ -88,9 +79,7 @@ class InputForm(forms.Form, BaseFormFieldPluginForm):
max_length = forms.IntegerField(
label=_("Max length"),
required=True,
widget=forms.widgets.TextInput(
attrs={'class': theme.form_element_html_class}
),
widget=NumberInput(attrs={'class': theme.form_element_html_class}),
initial=DEFAULT_MAX_LENGTH
)
required = forms.BooleanField(
@ -182,9 +171,7 @@ class InputForm(forms.Form, BaseFormFieldPluginForm):
step_value = forms.IntegerField(
label=_("Step (HTML5 step)"),
required=False,
widget=NumberInput(
attrs={'class': theme.form_element_html_class}
)
widget=NumberInput(attrs={'class': theme.form_element_html_class})
)
type_value = forms.ChoiceField(
label=_("Type (HTML type)"),

View file

@ -51,9 +51,7 @@ class IntegerInputForm(forms.Form, BaseFormFieldPluginForm):
initial = forms.IntegerField(
label=_("Initial"),
required=False,
widget=NumberInput(
attrs={'class': theme.form_element_html_class}
)
widget=NumberInput(attrs={'class': theme.form_element_html_class})
)
min_value = forms.IntegerField(
label=_("Min value"),

View file

@ -4,6 +4,7 @@ from django.utils.translation import ugettext_lazy as _
from fobi.base import BaseFormFieldPluginForm, get_theme
from fobi.settings import DEFAULT_MAX_LENGTH
from fobi.widgets import NumberInput
__title__ = 'fobi.contrib.plugins.form_elements.fields.ip_address.forms'
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
@ -75,9 +76,7 @@ class IPAddressInputForm(forms.Form, BaseFormFieldPluginForm):
max_length = forms.IntegerField(
label=_("Max length"),
required=True,
widget=forms.widgets.TextInput(
attrs={'class': theme.form_element_html_class}
),
widget=NumberInput(attrs={'class': theme.form_element_html_class}),
initial=DEFAULT_MAX_LENGTH
)
required = forms.BooleanField(

View file

@ -3,6 +3,7 @@ from django.utils.translation import ugettext_lazy as _
from fobi.base import BaseFormFieldPluginForm, get_theme
from fobi.settings import DEFAULT_MAX_LENGTH
from fobi.widgets import NumberInput
__title__ = 'fobi.contrib.plugins.form_elements.fields.password.forms'
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
@ -57,9 +58,7 @@ class PasswordInputForm(forms.Form, BaseFormFieldPluginForm):
max_length = forms.IntegerField(
label=_("Max length"),
required=True,
widget=forms.widgets.TextInput(
attrs={'class': theme.form_element_html_class}
),
widget=NumberInput(attrs={'class': theme.form_element_html_class}),
initial=DEFAULT_MAX_LENGTH
)
required = forms.BooleanField(

View file

@ -46,18 +46,14 @@ class RangeSelectInputForm(forms.Form, BaseFormFieldPluginForm):
min_value = forms.IntegerField(
label=_("Min value"),
required=True,
widget=NumberInput(
attrs={'class': theme.form_element_html_class}
),
widget=NumberInput(attrs={'class': theme.form_element_html_class}),
min_value=MIN_VALUE,
max_value=MAX_VALUE
)
max_value = forms.IntegerField(
label=_("Max value"),
required=True,
widget=NumberInput(
attrs={'class': theme.form_element_html_class}
),
widget=NumberInput(attrs={'class': theme.form_element_html_class}),
min_value=MIN_VALUE,
max_value=MAX_VALUE
)
@ -65,9 +61,7 @@ class RangeSelectInputForm(forms.Form, BaseFormFieldPluginForm):
label=_("Step"),
required=True,
help_text=_("Step size"),
widget=NumberInput(
attrs={'class': theme.form_element_html_class}
),
widget=NumberInput(attrs={'class': theme.form_element_html_class}),
min_value=MIN_VALUE,
max_value=MAX_VALUE
)
@ -81,9 +75,7 @@ class RangeSelectInputForm(forms.Form, BaseFormFieldPluginForm):
initial = forms.IntegerField(
label=_("Initial"),
required=False,
widget=NumberInput(
attrs={'class': theme.form_element_html_class}
),
widget=NumberInput(attrs={'class': theme.form_element_html_class}),
min_value=MIN_VALUE,
max_value=MAX_VALUE,
initial=INITIAL

View file

@ -5,6 +5,7 @@ from django.utils.translation import ugettext_lazy as _
from fobi.base import BaseFormFieldPluginForm, get_theme
from fobi.settings import DEFAULT_MAX_LENGTH
from fobi.widgets import NumberInput
__title__ = 'fobi.contrib.plugins.form_elements.fields.regex.forms'
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
@ -77,9 +78,7 @@ class RegexInputForm(forms.Form, BaseFormFieldPluginForm):
max_length = forms.IntegerField(
label=_("Max length"),
required=True,
widget=forms.widgets.TextInput(
attrs={'class': theme.form_element_html_class}
),
widget=NumberInput(attrs={'class': theme.form_element_html_class}),
initial=DEFAULT_MAX_LENGTH
)
required = forms.BooleanField(

View file

@ -96,9 +96,7 @@ class SelectMultipleWithMaxInputForm(forms.Form, BaseFormFieldPluginForm):
max_choices = forms.IntegerField(
label=_("Max choices"),
required=False,
widget=NumberInput(
attrs={'class': theme.form_element_html_class}
)
widget=NumberInput(attrs={'class': theme.form_element_html_class})
)
def clean_initial(self):

View file

@ -1,3 +1,5 @@
from six import text_type
from django.forms.fields import ChoiceField
from django.forms.utils import flatatt
from django.utils.html import format_html
@ -88,11 +90,11 @@ class SliderInputPlugin(FormFieldPlugin):
label_start = self.data.label_start \
if self.data.label_start \
else min_value
else text_type(min_value)
label_end = self.data.label_end \
if self.data.label_end \
else max_value
else text_type(max_value)
widget_attrs.update({
'data-slider-ticks': "[{0}, {1}]".format(

View file

@ -66,9 +66,7 @@ class SliderInputForm(forms.Form, BaseFormFieldPluginForm):
initial = forms.IntegerField(
label=_("Initial"),
required=False,
widget=NumberInput(
attrs={'class': theme.form_element_html_class}
),
widget=NumberInput(attrs={'class': theme.form_element_html_class}),
min_value=MIN_VALUE,
max_value=MAX_VALUE,
initial=INITIAL
@ -76,18 +74,14 @@ class SliderInputForm(forms.Form, BaseFormFieldPluginForm):
min_value = forms.IntegerField(
label=_("Min value"),
required=True,
widget=NumberInput(
attrs={'class': theme.form_element_html_class}
),
widget=NumberInput(attrs={'class': theme.form_element_html_class}),
min_value=MIN_VALUE,
max_value=MAX_VALUE
)
max_value = forms.IntegerField(
label=_("Max value"),
required=True,
widget=NumberInput(
attrs={'class': theme.form_element_html_class}
),
widget=NumberInput(attrs={'class': theme.form_element_html_class}),
min_value=MIN_VALUE,
max_value=MAX_VALUE
)
@ -95,9 +89,7 @@ class SliderInputForm(forms.Form, BaseFormFieldPluginForm):
label=_("Step"),
required=True,
help_text=_("Step size"),
widget=NumberInput(
attrs={'class': theme.form_element_html_class}
),
widget=NumberInput(attrs={'class': theme.form_element_html_class}),
min_value=MIN_VALUE,
max_value=MAX_VALUE
)

View file

@ -3,6 +3,7 @@ from django.utils.translation import ugettext_lazy as _
from fobi.base import BaseFormFieldPluginForm, get_theme
from fobi.settings import DEFAULT_MAX_LENGTH
from fobi.widgets import NumberInput
__title__ = 'fobi.contrib.plugins.form_elements.fields.slug.forms'
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
@ -57,9 +58,7 @@ class SlugInputForm(forms.Form, BaseFormFieldPluginForm):
max_length = forms.IntegerField(
label=_("Max length"),
required=True,
widget=forms.widgets.TextInput(
attrs={'class': theme.form_element_html_class}
),
widget=NumberInput(attrs={'class': theme.form_element_html_class}),
initial=DEFAULT_MAX_LENGTH
)
required = forms.BooleanField(

View file

@ -3,6 +3,7 @@ from django.utils.translation import ugettext_lazy as _
from fobi.base import BaseFormFieldPluginForm, get_theme
from fobi.settings import DEFAULT_MAX_LENGTH
from fobi.widgets import NumberInput
__title__ = 'fobi.contrib.plugins.form_elements.fields.text.forms'
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
@ -57,9 +58,7 @@ class TextInputForm(forms.Form, BaseFormFieldPluginForm):
max_length = forms.IntegerField(
label=_("Max length"),
required=True,
widget=forms.widgets.TextInput(
attrs={'class': theme.form_element_html_class}
),
widget=NumberInput(attrs={'class': theme.form_element_html_class}),
initial=DEFAULT_MAX_LENGTH
)
required = forms.BooleanField(

View file

@ -3,6 +3,7 @@ from django.utils.translation import ugettext_lazy as _
from fobi.base import BaseFormFieldPluginForm, get_theme
from fobi.settings import DEFAULT_MAX_LENGTH
from fobi.widgets import NumberInput
__title__ = 'fobi.contrib.plugins.form_elements.fields.url.forms'
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
@ -57,9 +58,7 @@ class URLInputForm(forms.Form, BaseFormFieldPluginForm):
max_length = forms.IntegerField(
label=_("Max length"),
required=True,
widget=forms.widgets.TextInput(
attrs={'class': theme.form_element_html_class}
),
widget=NumberInput(attrs={'class': theme.form_element_html_class}),
initial=DEFAULT_MAX_LENGTH
)
required = forms.BooleanField(

View file

@ -2,6 +2,7 @@ from django import forms
from django.utils.translation import ugettext_lazy as _
from fobi.base import BaseFormFieldPluginForm, get_theme
# from fobi.widgets import NumberInput
__title__ = 'fobi.contrib.plugins.form_elements.security.captcha.forms'
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
@ -56,7 +57,7 @@ class CaptchaInputForm(forms.Form, BaseFormFieldPluginForm):
# max_length = forms.IntegerField(
# label=_("Max length"),
# required=True,
# widget=forms.widgets.TextInput(
# widget=NumberInput(
# attrs={'class': theme.form_element_html_class}
# ),
# initial=DEFAULT_MAX_LENGTH

View file

@ -3,6 +3,7 @@ from django.utils.translation import ugettext_lazy as _
from fobi.base import BaseFormFieldPluginForm, get_theme
from fobi.settings import DEFAULT_MAX_LENGTH
from fobi.widgets import NumberInput
__title__ = 'fobi.contrib.plugins.form_elements.security.honeypot.forms'
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
@ -57,9 +58,7 @@ class HoneypotInputForm(forms.Form, BaseFormFieldPluginForm):
max_length = forms.IntegerField(
label=_("Max length"),
required=True,
widget=forms.widgets.TextInput(
attrs={'class': theme.form_element_html_class}
),
widget=NumberInput(attrs={'class': theme.form_element_html_class}),
initial=DEFAULT_MAX_LENGTH
)
required = forms.BooleanField(

View file

@ -3,6 +3,7 @@ from django.utils.translation import ugettext_lazy as _
from fobi.base import BaseFormFieldPluginForm, get_theme
# from fobi.settings import DEFAULT_MAX_LENGTH
# from fobi.widgets import NumberInput
__title__ = 'fobi.contrib.plugins.form_elements.security.recaptcha.forms'
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
@ -57,7 +58,7 @@ class ReCaptchaInputForm(forms.Form, BaseFormFieldPluginForm):
# max_length = forms.IntegerField(
# label=_("Max length"),
# required=True,
# widget=forms.widgets.TextInput(
# widget=NumberInput(
# attrs={'class': theme.form_element_html_class}
# ),
# initial=DEFAULT_MAX_LENGTH

View file

@ -57,6 +57,11 @@
<span class="{{ fobi_theme.form_view_form_entry_option_class }}"></span> {% trans "View" %}
</a>
</li>
<li>
<a href="{% url 'fobi.edit_form_entry' form_wizard_form_entry.form_entry.pk %}">
<span class="{{ fobi_theme.form_edit_form_entry_option_class }}"></span> {% trans "Edit" %}
</a>
</li>
<li>
<a href="{% url 'fobi.delete_form_wizard_form_entry' form_wizard_form_entry.pk %}">
<span class="{{ fobi_theme.form_delete_form_entry_option_class }}"></span> {% trans "Delete" %}