- Update prepended and appended templates to respect hidden fields, thanks to Bojan Mihelac, see #GH-103.
- Added
InlineCheckboxesto bootstrap layout objects, for rendering checkboxes inline. BaseInputsubclasses, likeSubmitcan now have its value set to a context variable.- Rendering inputs added with
add_inputin bootstrap using the right templates, see #GH-95. - Improved formsets rendering docs thanks to Samuel Goldszmidt, see #GH-92.
- Added
TabandTabHolderlayout objects thanks to david-e, see #GH-91. - Fixed default bootstrap button default classes thanks to david-e, see #GH-90.
- Fixed some flaws in new testing structure by Markus Hametner.
- Added helper attribute
error_text_inlinethanks to Lee Semel for controlling how to render form errors, as a block or inline, see #GH-87. - Support
ModelMultipleChoiceFieldoncheckboxselectmultiple, see #GH-86. - Redoing testing structure a litte bit, to run uni_form and bootstrap tests separately. They share most of the code base, but templates pack are separate and we need to care both have the same quality assurance.
AppendedText,PrependedTextandAppendedPrependedTextwere not respectingform_show_errorshelper attribute, see #GH-77.- Added a version string to the app under root init, see #GH-76.
- Added
html5_requiredhelper attribute for rendering required fields using HTML5 required attribute within the input, see #GH-72. Thanks to Lloyd Philbrook. - Some docs typos and errors fixed, also a major upgrade to docs covering the new functionality.
- Adding a
utils.render_crispy_formfunction, that renders a form the crispy way in Python code. This might be useful with AJAX, testing or text generation/manipulation, see #GH-64. - Tiny cosmetic fix, that adds an space after a button, see #GH-62.
MultiFieldandFieldsetlayout objects can now have any kind of attribute defined, thanks to Lloyd Philbrook, see #GH-71.- Making
Fieldset,MultiField&HTMLcontents lazy translatable thanks to Rivo Laks, see #GH-69. - Fixing
radioselectchecked status when used for a FK in a ModelForm, see #GH-68. - Fixing
form.Metausage, using instancefieldsinstead of staticMetadefinition, so that it works when updating forms on the go, see #GH-59. - Added a low level manipulation API for layout and layout objects. Added a
LayoutObjectbase class that creates an interface. This allows to access nested fields easily and use list methods without know internals of the system. - Added a
|classesfilter that returns field's classes. - Now
FormHelpercan accept a form instance as an optional first argument, from which it can build a default layout. - Added an API for manipulating dynamic layouts and programmatic layout building.
- Added
UneditableFieldbootstrap layout object for uneditable fields. - Support for hiding fields using
Field('field_name', type="hidden"), see #GH-55. - Avoid template context pollution of variable
formafter using {% crispy %} tag, see #GH-54. - Added an
attrshelper attribute, for more flexible form attributes, see #GH-48. - New
AppendedPrependedTextlayout object thanks to Samuel Goldszmidt, see #GH-45. - Removal of some whitespace in crispy form's HTML generated, see #GH-42.
- New
MultiWidgetFieldlayout object by Michal Kuffa, see #GH-39.
- Multithread safety improvements for
BasicNode. - Security fix: Thread safety fixes to
CrispyFieldNodethanks to Paul Oswald. This avoids leaking information between requests in multithreaded WSGI servers. - Added css class
control-labeltoAppendedTextandPrependedTextlayout object's templates. {% crispy field %}tag can now pass attrs toMultiWidgetsubclasses by Michal Kuffa.attrsare set for sub-widgets. Alsoattrscan now be an iterable for passing different attributes to different sub-widgets. For example,this way MultiWidget's widgets get css classes set correctly.- Turning underscores into hyphens for
Fieldlayout objects. - Fix for
ChoiceFieldsusing non-string choices with radio buttons thanks to Rudy Mutter. See #GH-46, #GH-43 and #GH-35.
|crispyand|as_crispy_fieldfilters were not rendering errors. Thanks to @ximi for reporting it and submitting a patch. See issue #GH-28.- Fixing a test that was breaking when language was not English. Thanks to @gaftech, see #GH-30.
- Fixing
radioselect.htmlandcheckboxselectmultiple.htmltemplates. Thanks to Christopher Petrilli for submitting a patch forradioselect. See issue #GH-35. - HTML attributes can now be set in
BaseInputsubclasses likeButtonby @jamesmfriedman. See #GH-32. - Fix for dynamic crispy-forms with Meta classes by Jeroen Vloothuis. See #GH-37.
- Labels now use
id_for_labelinstead ofauto_idto avoid ids breaking on multiwidgets. by Daniel Izquierdo. See #GH-38. - Adding a flatatt custom function in
utils.pyfor flatting extra HTML attributes. - HTML attributes can now be set in
Divlayout object. - Adding tests for new functionality and bugs.
- input name attribute is no longer slugified if only one word is provided, respecting caps.
- Changes in bootstrap global error templates by David Bennett.
- Added class
control-labelto labels, for horizontal layout thanks to bitrut. - Using
{{ field.html_name }}instead of{{ field.name }}in field templates, so that they work with form prefixes (formwizard) by Patrick Toal. - Fixing error rendering in bootstrap AppendedText and PrependedText.
- Applying
field.css_classesin bootstrapfield.htmlinstead of widget classes. - Fixes for bootstrap simple checkbox input to be wrapped correctly.
- Fixing a critical bug in bootstrap templates, that was breaking
{% load crispy_forms_tags %}
- Fixing produced html by a checkbox field, closing label the right way and rendering checkbox in the right place.
- Passing full context to field rendering, to be consistent and having acess in
field.htmltemplate to helper attributes. - Custom helper attributes can now be set and will be part of templates context, this way you can define custom specific behavior.
- Adding @kennethlove bootstrap template pack into django-crispy-forms core.
- Adding
CRISPY_TEMPLATE_PACKsetting variable to easily switch between different template packs. Default template pack is now bootstrap. - Upgrading bootstrap templates, fixing some bugs and redoing the hierarchy.
- Upgrading tests for multiple template packs.
- Renaming
UNIFORM_FAIL_SILENTLYsetting variable toCRISPY_FAIL_SILENTLY, upgrading migration instructions. - Redoing bootstrap
field.htmltemplate to renderradioselectandcheckboxselectmultipleDjango widgets a la bootstrap. - Adding a
render_unmentioned_fieldshelper attribute, that renders all fields in a form, no matter what the layout is. Default isFalse. - Adding a
|css_classfilter that renders field classes in an elegant way. - Turning
|with_classfilter into{% crispy_field %}tag, so that parameters for rendering the field can be passed. - Adding a
help_text_inlinehelper attribute, that controls wether to render help texts in bootstrap with "help-inline" or "help-block". - Adding a
flat_attrsvariable to the context passed tofield.htmlto be able to do all kind of html attributes when rendering a field, usingFieldlayout object. - Adding a
templatekwarg toFieldlayout object that allows to override template used for rendering a field. - Adding a
bootstrap.pymodule that holds bootstrap specific layout objects, for higher bootstrap integration. - Adding a
AppendedText,PrependedTextandFormActionsbootstrap layout objects. First two based in polyvalentFieldlayout object.
- Using
baseinput.htmltemplate withinwhole_uni_form.html, to be DRY and consistent. BaseInputsubclasses likeSubmitcan now have ids set, ussingcss_id- Adding a simplified alternative syntax for
{% uni_form %}tag. We can now do{% uni_form form %}for rendering a form using a helper, instead of{% uni_form form form.helper %}, if theFormHelperattribute attached to the form is namedhelper. - Improving
rendered_fieldschecking performance. - Layouts are now rendered strictly. We don't render fields missed in the layout. If the form has a Meta class with
fieldsorexclude, then we follow Django standards. - Added
Fieldlayout object. You can wrap name fields within and set all kind of attributes easily or override widget template. - Fixed #GH-111 we were not rendering all the classes in
|with_classfilter - Moving django-uni-form to django-crispy-forms. Renaming tags, filters and modules. Updating tests and so on. Adding migration instructions.
- More work on simpler and easier docs.
- Adding
form_show_errorshelper attribute, that controls wether to render or notform.errors - Improving template hierarchy for more template code reusability.
You can read on how to use new features included in this version at: http://tothinkornottothink.com/post/10398684502/django-uni-form-0-9-0-is-out-security-fix
- Fixed a bug in
|with_classfilter so that it supportsshow_hidden_initial, see #GH-95 to not break. - Fixed a problem on Fieldset's legends internationalization. Thanks to Bojan Mihelac, see #GH-90.
- Fixed XSS bug thanks to Charlie Denton, see #GH-98. Errors cannot be rendered safe, because field's input can be part of the error message, that would mean XSS.
- Updating and improving docs, adding more use case examples.
- Split
helpers.pyfile intohelper.py,layout.pyandutils.py. Added a deprecation warning. - Improved testing coverage, specially for formsets and i18n.
- Improved rendering performance of
{% uni_form %}tag and|as_uni_formfilter avoiding reloading templates every time, see #GH-81. - Added support for Django
Form.error_css_classandForm.required_css_classcustom CSS classes, see #GH-87. - Moved template code in Layout objects into separate files in
uni_form/layoutdirectory. Layout objects templates can now be easily overriden, see #GH-37. form_stylecan now be used without having to set a helper Layout, see #GH-85.form_actionis not lowered anymore andform_actionis set to "" by default instead of "." thanks to Jianbo Guo, see #GH-84.Multifieldfield templatemultifield.htmlmarkup fixed, addinghelp_textsupport and removinglabelclassfrom labels.- Fixed testing suite, when run not using
DjangoTestSuiteRunnerprovided, thanks to Narsil #GH-82. - Removed test_project from the project.
- Improved
MultiFieldperformance avoiding instantiating BoundFields twice. - Fixed a bug in
MultiFieldthat raised an exception when internal fields had errors, because ofself.cssnot existing. - Added an extra optional parameter to
render_fieldcalledlayout_object, used for storing in it a list of bound fields. - Refactor all Layout objects to use templates and not having hardcoded HTML in the code, based on Jonas Obrist work. Resolves Issue #GH-37
- Added a Layout object called
Div.RowandColumnboth inherit fromDiv Layoutcan now be a child ofLayout, see issue #GH-76.
You can read on how to use new features included in this version at: http://tothinkornottothink.com/post/7339670508/new-kung-fu-in-django-uni-form-0-8-0
-
Elevated Miguel Araujo to project lead!
-
Added a forloop simulator for formset forms rendering.
-
ButtonHolderLayout object added for holdingHTMLand buttons:Submit,Reset,Button. -
Turned BaseInput inherited objects like:
Submit,Reset,HiddenandButtoninto Layout objects. -
Fixed a bug with
rendered_fieldswhen no fields where in the Layout. -
Fieldsetlegends are now templates full context aware. -
Based on @issackelly's and @johnthedebs's work a template called
betterformhas been added for supporting @carljm's form-utils BetterForms. -
FormHelpermethodget_attrhas been renamed toget_attributes -
uni_form_tagshas been split into two different files:uni_form_tagsanduni_form_filters. -
Removing i18n tags from the templates, as they are not necessary anymore.
-
Removed all the internationalized hardcoded text, in favor of template variables:
form_error_titleandformset_error_title, both can be set as helper's attributes. -
as_uni_errorsfilter can now render formset'snon_form_errorsuni-form way. -
Moved
{% uni_form_setup %}tag to use STATIC_URL instead of MEDIA_URL -
Added the possibility to specify a helper for formsets too.
-
Renamed media directory to static, to be compatible with Django 1.3 staticfiles.
-
Added a
form_styleFormHelper attribute for setting global style of a form: inline or default. -
Turning
HTMLinto a full context aware django template field, having access to the whole context of the template in which the form is rendered. -
Turning
LayoutandFieldsetfields attributes into lists, so that they can be changed dynamically. -
Changing formHints from paragraphs to divs, so ul or ol can be placed within.
-
Removing slugify filter from form ids, so they can be set as user's preferences.
-
Added CSS class 'asteriskField' for asterisks. Added CSS class 'fieldRequired' for required input labels.
-
UNIFORM_FAIL_SILENTLYvariable setting has been added for making django-uni-form log errors and fail silently, based on Adam Cupiał's work. -
Several bug fixes in
MultiField. -
Added unicode support for layout field names and improved error handling.
-
Refactored testing system and raised testing coverage.
-
Clean part of the code base and comments. All old CSRF code for supporting old versions of Django has been removed.
-
Refactored BasicNode for better readability and reducing lines of code.
-
Added formsets support based on Victor Nagy's (nagyv) and Antti Kaihola's (akahiola) work.
-
Bug fix in
{% uni_form %}tag that didn't work without a helper and it was meant to be optional. -
CSS classes can be set in Submit buttons.
-
Thanks to J. Javier Maestro (jjmaestro) now we can set ids and classes for
Fieldset,MultiField,RowandColumn. -
Thanks to Richard Marko (sorki) changed CSS class of PasswordInput widget.
-
Removing
Toggleclass as it wasn't being used anywhere. -
Moved
BaseInputto helpers and removedutil.pyfile. -
Removed
{% uni_form_jquery %}tag -
Removed
namifyfunction from tags, as It wasn't being used anywhere. -
Improved internal documentation
-
form methods generated by FormHelper are in lowercase (http://github.com/pydanny/django-uni-form/issues#issue/20)
-
Thanks to Nagy Viktor added form_tag attribute to FormHelper. Now you can use the uni_form tag without the leading and trailing form tags.
-
Thanks for Alison Rowland for giving django-uni-form sphinx docs
-
Incorporated uni-form 1.4 by Dragan Babic
-
Provide better adherence to uni-form specification of error messages
-
mirumee provided some great work for making FormHelper more subclassable.
-
django-uni-form 0.8 and higher lays out the HTML for the uni_form tag differently. The errorMsg div is now outside the fieldset as it should be.
-
Thanks to Casper S. Jensen django-uni-form now supports 1.2 style csrf_token.
-
csrf_token does not break earlier versions of Django. This will change when no version of django does not support csrf_token.
-
Thanks to j0hnsmith changed {{ error }} to {{ error|safe }} so that html (eg links) can be added to error messages.
-
Thanks to j0hnsmith changed {{ field.label }} to {{ field.label|safe }} so that html (eg links) can be added to field labels
-
Kudos to Stepan Rakhimov fixed an admin datetime issue.
-
Thanks to patrys (Patryk Zawadzki) FormHelper class is now easily subclass-able.
-
Sorki (Richard Marko) made it so things work better in direct_to_template.
- Removed a
from the layout module. - Changed templatetags/uni_form.py to templatetags/uni_form_tags.py. Yes, this breaks backwards compatibility but fixes a namespace problems in Django with naming a templatetag library after the parent application.
- Changed form_action attribute to accept not just named URLs but also any old URL.
- Added in uni_form_setup tag.
- Added tests
- Added several new contributors including Dragan Babic
- Added Danish language translation