60 lines
1.9 KiB
Python
60 lines
1.9 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
|