from django.template.loader import render_to_string
from django.utils.translation import gettext as _

from django_tables2 import A, BooleanColumn, Column, LinkColumn, RelatedLinkColumn, Table


class CardTable(Table):
    """Table to list cards."""

    class Meta:
        attrs = {"class": "highlight"}

    person = RelatedLinkColumn()
    chip_number = LinkColumn("card", verbose_name=_("Chip number"), args=[A("pk")])
    current_status = Column(verbose_name=_("Current status"), accessor=A("pk"))
    valid_until = Column(verbose_name=_("Valid until"))
    deactivated = BooleanColumn(verbose_name=_("Deactivated"))
    actions = Column(verbose_name=_("Actions"), accessor=A("pk"))

    def render_current_status(self, value, record):
        return render_to_string(
            "kort/card/status.html",
            dict(
                card=record,
            ),
        )

    def render_actions(self, value, record):
        return render_to_string("kort/card/actions.html", dict(pk=value, card=record))