67 lines
1.7 KiB
Python
67 lines
1.7 KiB
Python
from datetime import datetime, timedelta
|
|
|
|
import django_tables2 as tables
|
|
from django_tables2.utils import A
|
|
|
|
from core.tables import CoreTable
|
|
|
|
from .models import Device
|
|
|
|
|
|
class DevicesTable(CoreTable):
|
|
id = tables.Column(visible=False)
|
|
name = tables.Column("Device", linkify=True)
|
|
description = tables.Column(
|
|
attrs={"td": {"class": "text-truncate", "style": "max-width: 150px;"}}
|
|
)
|
|
delete = tables.LinkColumn(
|
|
"device_delete",
|
|
text="delete",
|
|
args=[A("pk")],
|
|
attrs={
|
|
"a": {
|
|
"class": "delete material-icons",
|
|
}
|
|
},
|
|
orderable=False,
|
|
)
|
|
|
|
class Meta(CoreTable.Meta):
|
|
model = Device
|
|
|
|
|
|
class WarrantiesTable(CoreTable):
|
|
customer = tables.Column(linkify=True, orderable=False)
|
|
device = tables.Column(linkify=True)
|
|
valid_from = tables.Column()
|
|
valid_until = tables.Column()
|
|
warranty_type = tables.Column()
|
|
delete = tables.LinkColumn(
|
|
"warranty_delete",
|
|
text="delete",
|
|
args=[A("pk")],
|
|
attrs={
|
|
"a": {
|
|
"class": "delete material-icons",
|
|
}
|
|
},
|
|
orderable=False,
|
|
)
|
|
|
|
class Meta(CoreTable.Meta):
|
|
pass
|
|
|
|
def render_valid_until(self, value, column):
|
|
today = datetime.date(datetime.today())
|
|
one_year_from_today = datetime.date(datetime.today() + timedelta(365))
|
|
|
|
if value > one_year_from_today:
|
|
column.attrs = {"td": {}}
|
|
return value
|
|
if value <= today:
|
|
column.attrs = {"td": {"bgcolor": "red"}}
|
|
return value
|
|
if value <= one_year_from_today:
|
|
column.attrs = {"td": {"bgcolor": "orange"}}
|
|
return value
|