Skip to content

Commit

Permalink
Closes #13415: Pass request context when rendering custom links in a …
Browse files Browse the repository at this point in the history
…table column
  • Loading branch information
jeremystretch committed Aug 24, 2023
1 parent ca5e698 commit 13d919f
Showing 1 changed file with 20 additions and 12 deletions.
32 changes: 20 additions & 12 deletions netbox/netbox/tables/columns.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

import django_tables2 as tables
from django.conf import settings
from django.contrib.auth.context_processors import auth
from django.contrib.auth.models import AnonymousUser
from django.db.models import DateField, DateTimeField
from django.template import Context, Template
Expand Down Expand Up @@ -510,25 +511,32 @@ def __init__(self, customlink, *args, **kwargs):

super().__init__(*args, **kwargs)

def render(self, record):
try:
rendered = self.customlink.render({
'object': record,
'obj': record, # TODO: Remove in NetBox v3.5
def _render_customlink(self, record, table):
context = {
'object': record,
'obj': record, # TODO: Remove in NetBox v3.5
'debug': settings.DEBUG,
}
if request := getattr(table, 'context', {}).get('request'):
# If the request is available, include it as context
context.update({
'request': request,
**auth(request),
})
if rendered:

return self.customlink.render(context)

def render(self, record, table, **kwargs):
try:
if rendered := self._render_customlink(record, table):
return mark_safe(f'<a href="{rendered["link"]}"{rendered["link_target"]}>{rendered["text"]}</a>')
except Exception as e:
return mark_safe(f'<span class="text-danger" title="{e}"><i class="mdi mdi-alert"></i> Error</span>')
return ''

def value(self, record):
def value(self, record, table, **kwargs):
try:
rendered = self.customlink.render({
'object': record,
'obj': record, # TODO: Remove in NetBox v3.5
})
if rendered:
if rendered := self._render_customlink(record, table):
return rendered['link']
except Exception:
pass
Expand Down

0 comments on commit 13d919f

Please sign in to comment.