diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 070efc5..5ac7dfd 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -26,6 +26,7 @@ task list * настройки вроде DEBUG из админки * перезагрузка сервера из админки * put_js преобразовывать относительные пути +* тег add_attrs добавляющий всё чтопередано атрибутами тега --------------- diff --git a/README.rst b/README.rst index df7066b..c0cf886 100644 --- a/README.rst +++ b/README.rst @@ -11,3 +11,4 @@ requirements * Django >= 1.5.0 * pillow >= 2.0.0 +* beautifulsoup4 >= 4.3.2 diff --git a/meringue/templatetags/forms_utils_new.py b/meringue/templatetags/forms_utils_new.py index ab8e7a4..132d69c 100644 --- a/meringue/templatetags/forms_utils_new.py +++ b/meringue/templatetags/forms_utils_new.py @@ -3,6 +3,8 @@ import logging import re +from bs4 import BeautifulSoup + from django import forms from django import template from django.utils.safestring import mark_safe @@ -89,3 +91,17 @@ def field_render(boundfield): result = FieldRender(boundfield) return result.render() + + +register = template.Library() +@register.filter +def add_placeholder(field): + """ + Устанавливает placeholder равный значению label + """ + soup = BeautifulSoup(unicode(field), 'html.parser') + for tag in soup.children: + if tag.name != 'script': + tag['placeholder'] = field.label + return mark_safe(soup.renderContents()) + diff --git a/setup.py b/setup.py index f939fe1..ef896f8 100755 --- a/setup.py +++ b/setup.py @@ -22,6 +22,7 @@ install_requires = [ 'Django>=1.5.0', 'pillow>=2.0.0', + 'beautifulsoup4>=4.3.2', ], packages = find_packages(), include_package_data = True,