Fix #7118: Make custom field URLs clickable in tables

This commit is contained in:
Julian Fölsch 2021-09-20 13:21:02 +02:00
parent 713e79c1a9
commit 183b998788
No known key found for this signature in database
GPG Key ID: B1A76130EF9E88E1

View File

@ -11,6 +11,7 @@ from django_tables2 import RequestConfig
from django_tables2.data import TableQuerysetData
from django_tables2.utils import Accessor
from extras.choices import CustomFieldTypeChoices
from extras.models import CustomField
from .utils import content_type_name
from .paginator import EnhancedPaginator, get_paginate_count
@ -344,12 +345,16 @@ class CustomFieldColumn(tables.Column):
"""
Display custom fields in the appropriate format.
"""
def __init__(self, customfield, *args, **kwargs):
self.customfield = customfield
kwargs['accessor'] = Accessor(f'custom_field_data__{customfield.name}')
if 'verbose_name' not in kwargs:
kwargs['verbose_name'] = customfield.label or customfield.name
linkify = bool(customfield.type == CustomFieldTypeChoices.TYPE_URL)
kwargs.setdefault('linkify', linkify)
super().__init__(*args, **kwargs)
def render(self, value):