def editable_attrs(context, obj): user = context.get('user') if obj and user and user.is_staff: if hasattr(obj, 'get_change_url'): change_url = obj.get_change_url() else: change_url = get_admin_change_url(obj) data = { 'type': obj.__class__.__name__.lower(), 'url': change_url, 'can_edit': PERMISSIONS.can_edit(user, obj) } return mark_safe(' data-fiber-data="%s"' % escape(json.dumps(data, sort_keys=True))) return ''
def get_editable_attrs(instance): data = { "url": get_admin_change_url(instance), } return "data-fiber-data='%s'" % simplejson.dumps(data)
def test_editable_attrs_with_user_for_staff(self): """Returns fiber-data attribute for user with staff user in context""" self.assertRendered( '{% load fiber_tags %}{% editable_attrs user %}', 'data-fiber-data="{"can_edit": true, "type": "user", "url": "%s"}"' % get_admin_change_url(self.staff), { 'user_obj': self.staff, 'user': self.staff })