From 9a1847b8f95ffa67d3ae1e80dcfd9f9b4a3a7ac9 Mon Sep 17 00:00:00 2001
From: dd
Date: Sun, 17 May 2015 12:28:40 +0300
Subject: [PATCH] add_placeholder
---
CHANGELOG.rst | 1 +
README.rst | 1 +
meringue/templatetags/forms_utils_new.py | 16 ++++++++++++++++
setup.py | 1 +
4 files changed, 19 insertions(+)
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,