Ejemplo n.º 1
0
    def render(self, obj):
        if self.attr == 'self':
            if not self.link:
                return obj.get_absolute_url()
            else:
                assert self.link
                if self.args:
                    p_args = [
                        helper.deep_getattribute(obj, arg) for arg in self.args
                    ]
                else:
                    p_args = None
                return reverse(self.link, args=p_args)

        if not self.link:
            return helper.deep_getattribute(obj, self.attr).get_absolute_url()

        assert self.link
        ref = helper.deep_getattribute(obj, self.attr)

        if self.args:
            p_args = [helper.deep_getattribute(ref, arg) for arg in self.args]
        else:
            p_args = None

        return '<a href=%s>%s</a>' % (reverse(self.link,
                                              args=p_args), self.text)
Ejemplo n.º 2
0
    def render(self, obj):
        field = obj._meta.get_field(self.attr)

        if isinstance(field, ForeignKey):
            meta = field.related_model._meta
            id = getattr(obj, field.attname)
            return '<a href="%s">%s</a>' % (reverse(
                admin_urlname(meta,
                              'change'), args=(id, )), conditional_escape(id))

        return self.default
Ejemplo n.º 3
0
    def render(self, obj):
        text = helper.call_or_get(obj, self.attr)
        p_params = {}
        for key in self.params.keys():
            p_params[key] = helper.call_or_get(obj, self.params[key])

        p_params.update(self.params_static)

        return '<a href="%s">%s</a>' % (reverse('admin:%s_%s_changelist' %
                                                (self.app, self.model)) + '?' +
                                        urlencode(p_params),
                                        conditional_escape(text))
Ejemplo n.º 4
0
    def easy_list_view(self, request, action):
        method_name = 'easy_view_%s' % action

        view = getattr(self, method_name, None)
        if view:
            return view(request)

        self.message_user(request, 'Easy view %s not founded' % method_name, messages.ERROR)

        redirect = reverse('admin:%s_%s_changelist' % self._get_info(),)

        return HttpResponseRedirect(redirect)
Ejemplo n.º 5
0
    def render(self, obj):
        text = helper.call_or_get(obj, self.attr)
        p_params = {}
        for key in self.params.keys():
            p_params[key] = helper.call_or_get(obj, self.params[key])

        p_params.update(self.params_static)

        return '<a href="%s">%s</a>' % (
            reverse('admin:%s_%s_changelist' % (self.app, self.model)) + '?' + urlencode(p_params),
            conditional_escape(text)
        )
Ejemplo n.º 6
0
    def render(self, obj):
        ref = helper.call_or_get(obj, self.attr, self.default)
        display = None
        if self.display:
            display = helper.call_or_get(obj, self.display, self.default)

        display = display or ref
        if isinstance(ref, Model):
            return '<a href="%s">%s</a>' % (reverse(
                admin_urlname(ref._meta, 'change'),
                args=(ref.pk, )), conditional_escape(display or ref))

        return self.default
Ejemplo n.º 7
0
    def easy_list_view(self, request, action):
        method_name = 'easy_view_%s' % action

        view = getattr(self, method_name, None)
        if view:
            return view(request)

        self.message_user(request, 'Easy view %s not founded' % method_name,
                          messages.ERROR)

        redirect = reverse('admin:%s_%s_changelist' % self._get_info(), )

        return HttpResponseRedirect(redirect)
Ejemplo n.º 8
0
    def render(self, obj):
        if self.attr == 'self':
            if not self.link:
                return obj.get_absolute_url()
            else:
                assert self.link
                if self.args:
                    p_args = [helper.deep_getattribute(obj, arg) for arg in self.args]
                else:
                    p_args = None
                return reverse(self.link, args=p_args)

        if not self.link:
            return helper.deep_getattribute(obj, self.attr).get_absolute_url()

        assert self.link
        ref = helper.deep_getattribute(obj, self.attr)

        if self.args:
            p_args = [helper.deep_getattribute(ref, arg) for arg in self.args]
        else:
            p_args = None

        return '<a href=%s>%s</a>' % (reverse(self.link, args=p_args), self.text)
Ejemplo n.º 9
0
    def render(self, obj):
        ref = helper.call_or_get(obj, self.attr, self.default)
        display = None
        if self.display:
            display = helper.call_or_get(obj, self.display, self.default)

        display = display or ref
        if isinstance(ref, Model):
            return '<a href="%s">%s</a>' % (
                reverse(
                    admin_urlname(ref._meta, 'change'),
                    args=(ref.pk,)
                ),
                conditional_escape(display or ref)
            )

        return self.default