except BaseException, e:
return ''
else:
- return obj.body.get(field_name, '')
+ return Contact.pretty_print(obj.body.get(field_name, ''), for_html=True)
def __getattr__(self, name):
if name.startswith('admin_list_'):
# Create field getters for fields and attachments.
for k, v in instance.body.items():
- f = (lambda v: lambda self: v)(v)
+ f = (lambda v: lambda self: v)(Contact.pretty_print(v, for_html=True))
f.short_description = orig_fields[k].label if k in orig_fields else _(k)
setattr(self, "body__%s" % k, f)
# -*- coding: utf-8 -*-
+import yaml
from django.core.files.storage import FileSystemStorage
from django.db import models
from django.utils.translation import ugettext_lazy as _
form_tag = models.CharField(_('form'), max_length=32, db_index=True)
body = JSONField(_('body'))
+ @staticmethod
+ def pretty_print(value, for_html=False):
+ if type(value) in (tuple, list, dict):
+ value = yaml.safe_dump(value,
+ allow_unicode=True,
+ default_flow_style=False)
+ if for_html:
+ value = value.replace(" ", unichr(160))
+ return value
+
class Meta:
ordering = ('-created_at',)
verbose_name = _('submitted form')
-Wypełniono formularz {{ form_tag }} na stronie {{ site_name }}.
+{% load pretty_print from contact_tags %}Wypełniono formularz {{ form_tag }} na stronie {{ site_name }}.
http://{{ site_domain }}{% url 'admin:contact_contact_change' contact.pk %}
{% for k, v in contact.body.items %}
{{ k }}:
-{{ v }}
+{{ v|pretty_print }}
{% endfor %}
{% for attachment in contact.attachment_set.all %}
{{ attachment.tag }}:
--- /dev/null
+from django.template import Library
+from contact.models import Contact
+
+register = Library()
+
+@register.filter
+def pretty_print(value):
+ return Contact.pretty_print(value)
pysolr>=3,<4
sorl-thumbnail>=11,<12
+pyyaml