29 lines
965 B
Python
29 lines
965 B
Python
# Copyright (C) 2020 by Animath
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
from django import template
|
|
from django_tables2 import Table
|
|
from participation.models import Participation, Team, Tournament
|
|
from participation.tables import ParticipationTable, TeamTable, TournamentTable
|
|
|
|
from ..models import Registration
|
|
from ..tables import RegistrationTable
|
|
|
|
|
|
def search_table(results):
|
|
model_class = results[0].object.__class__
|
|
table_class = Table
|
|
if issubclass(model_class, Registration):
|
|
table_class = RegistrationTable
|
|
elif issubclass(model_class, Team):
|
|
table_class = TeamTable
|
|
elif issubclass(model_class, Participation):
|
|
table_class = ParticipationTable
|
|
elif issubclass(model_class, Tournament):
|
|
table_class = TournamentTable
|
|
return table_class([result.object for result in results], prefix=model_class._meta.model_name)
|
|
|
|
|
|
register = template.Library()
|
|
register.filter("search_table", search_table)
|