Convert ActionsMenuItem to dataclass

This commit is contained in:
jeremystretch 2022-01-07 11:23:04 -05:00
parent 1024adca72
commit bff7400de4

View File

@ -1,4 +1,6 @@
from collections import namedtuple
from dataclasses import dataclass
from typing import Optional
import django_tables2 as tables
from django.conf import settings
@ -90,16 +92,20 @@ class TemplateColumn(tables.TemplateColumn):
return ret
ActionsMenuItem = namedtuple('ActionsMenuItem', ['title', 'icon', 'permission'])
@dataclass
class ActionsItem:
title: str
icon: str
permission: Optional[str] = None
class ActionsColumn(tables.Column):
attrs = {'td': {'class': 'text-end noprint'}}
empty_values = ()
_actions = {
'edit': ActionsMenuItem('Edit', 'pencil', 'change'),
'delete': ActionsMenuItem('Delete', 'trash-can-outline', 'delete'),
'changelog': ActionsMenuItem('Changelog', 'history', None),
'edit': ActionsItem('Edit', 'pencil', 'change'),
'delete': ActionsItem('Delete', 'trash-can-outline', 'delete'),
'changelog': ActionsItem('Changelog', 'history'),
}
def __init__(self, *args, actions=('edit', 'delete', 'changelog'), **kwargs):