diff --git a/sapl/base/templatetags/common_tags.py b/sapl/base/templatetags/common_tags.py
index 419899632..0f274ab29 100644
--- a/sapl/base/templatetags/common_tags.py
+++ b/sapl/base/templatetags/common_tags.py
@@ -117,6 +117,23 @@ def str2intabs(value):
except:
return ''
+@register.filter
+def has_iframe(request):
+
+ iframe = request.session.get('iframe', False)
+ if not iframe and 'iframe' in request.GET:
+ ival = request.GET['iframe']
+ if ival and int(ival) == 1:
+ request.session['iframe'] = True
+ return True
+ elif 'iframe' in request.GET:
+ ival = request.GET['iframe']
+ if ival and int(ival) == 0:
+ del request.session['iframe']
+ return False
+
+ return iframe
+
@register.filter
def url(value):
@@ -151,3 +168,15 @@ def search_get_model(object):
return 'n'
return None
+
+
+@register.filter
+def urldetail_content_type(obj, value):
+ return '%s:%s_detail' % (
+ value._meta.app_config.name, obj.content_type.model)
+
+
+@register.filter
+def urldetail(obj):
+ return '%s:%s_detail' % (
+ obj._meta.app_config.name, obj._meta.model_name)
diff --git a/sapl/crispy_layout_mixin.py b/sapl/crispy_layout_mixin.py
index 369b6fe9e..29cd7849f 100644
--- a/sapl/crispy_layout_mixin.py
+++ b/sapl/crispy_layout_mixin.py
@@ -1,12 +1,13 @@
from math import ceil
-import rtyaml
from crispy_forms.bootstrap import FormActions
from crispy_forms.helper import FormHelper
from crispy_forms.layout import HTML, Div, Fieldset, Layout, Submit
from django import template
+from django.core.urlresolvers import reverse
from django.utils import formats
from django.utils.translation import ugettext as _
+import rtyaml
def heads_and_tails(list_of_lists):
@@ -77,29 +78,30 @@ def get_field_display(obj, fieldname):
else:
value = getattr(obj, fieldname)
- str_type = str(type(value))
+ str_type_from_value = str(type(value))
+ str_type_from_field = str(type(field))
if value is None:
display = ''
- elif 'date' in str_type:
+ elif 'date' in str_type_from_value:
display = formats.date_format(value, "SHORT_DATE_FORMAT")
- elif 'bool' in str(type(value)):
+ elif 'bool' in str_type_from_value:
display = _('Sim') if value else _('Não')
elif 'ImageFieldFile' in str(type(value)):
if value:
display = ''.format(value.url)
else:
display = ''
- elif 'FieldFile' in str(type(value)):
+ elif 'FieldFile' in str_type_from_value:
if value:
display = '{}'.format(
value.url,
value.name.split('/')[-1:][0])
else:
display = ''
- elif 'ManyRelatedManager' in str(type(value))\
- or 'RelatedManager' in str(type(value))\
- or 'GenericRelatedObjectManager' in str(type(value)):
+ elif 'ManyRelatedManager' in str_type_from_value\
+ or 'RelatedManager' in str_type_from_value\
+ or 'GenericRelatedObjectManager' in str_type_from_value:
display = '