from django.template.loader import render_to_string from django.utils.translation import gettext_lazy as _ import django_tables2 as tables from django_tables2.utils import A class ExtraMarkTable(tables.Table): class Meta: attrs = {"class": "highlight"} name = tables.LinkColumn("edit_extra_mark", args=[A("id")]) short_name = tables.Column() edit = tables.LinkColumn( "edit_extra_mark", args=[A("id")], text=_("Edit"), attrs={"a": {"class": "btn-flat waves-effect waves-orange orange-text"}}, ) delete = tables.LinkColumn( "delete_extra_mark", args=[A("id")], text=_("Delete"), attrs={"a": {"class": "btn-flat waves-effect waves-red red-text"}}, ) class ExcuseTypeTable(tables.Table): class Meta: attrs = {"class": "highlight"} name = tables.LinkColumn("edit_excuse_type", args=[A("id")]) short_name = tables.Column() edit = tables.LinkColumn( "edit_excuse_type", args=[A("id")], text=_("Edit"), attrs={"a": {"class": "btn-flat waves-effect waves-orange orange-text"}}, ) delete = tables.LinkColumn( "delete_excuse_type", args=[A("id")], text=_("Delete"), attrs={"a": {"class": "btn-flat waves-effect waves-red red-text"}}, ) def before_render(self, request): if not request.user.has_perm("alsijil.edit_excusetype"): self.columns.hide("edit") if not request.user.has_perm("alsijil.delete_excusetype"): self.columns.hide("delete") class GroupRoleTable(tables.Table): class Meta: attrs = {"class": "highlight"} name = tables.LinkColumn("edit_excuse_type", args=[A("id")]) edit = tables.LinkColumn( "edit_group_role", args=[A("id")], text=_("Edit"), attrs={"a": {"class": "btn-flat waves-effect waves-orange orange-text"}}, ) delete = tables.LinkColumn( "delete_group_role", args=[A("id")], text=_("Delete"), attrs={"a": {"class": "btn-flat waves-effect waves-red red-text"}}, ) def render_name(self, value, record): colour = record.colour or "black" icon_name = record.icon or "assignment_ind" context = dict(content=value, icon=icon_name, classes=f"{colour} white-text") return render_to_string("components/materialize-chips.html", context) def before_render(self, request): if not request.user.has_perm("alsijil.edit_grouprole"): self.columns.hide("edit") if not request.user.has_perm("alsijil.delete_grouprole"): self.columns.hide("delete")