93 lines
2.6 KiB
Python
93 lines
2.6 KiB
Python
|
import django_tables2 as tables
|
||
|
|
||
|
from .models import (
|
||
|
InstructorOrVendor,
|
||
|
Waiver,
|
||
|
)
|
||
|
|
||
|
|
||
|
class WarnEmptyColumn(tables.Column):
|
||
|
attrs = {
|
||
|
"td": {
|
||
|
"class": lambda value, bound_column: (
|
||
|
"table-danger" if value == bound_column.default else ""
|
||
|
)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
class WaiverReportTable(tables.Table):
|
||
|
emergency_contact_name = WarnEmptyColumn()
|
||
|
emergency_contact_number = WarnEmptyColumn()
|
||
|
|
||
|
class Meta:
|
||
|
model = Waiver
|
||
|
fields = [
|
||
|
"name",
|
||
|
"date",
|
||
|
"emergency_contact_name",
|
||
|
"emergency_contact_number",
|
||
|
"waiver_version",
|
||
|
"guardian_name",
|
||
|
"guardian_relation",
|
||
|
"guardian_date",
|
||
|
]
|
||
|
|
||
|
|
||
|
class InstructorOrVendorTable(tables.Table):
|
||
|
instructor_agreement_date = WarnEmptyColumn(
|
||
|
"Instructor Agreement Date(s)", default="Missing"
|
||
|
)
|
||
|
w9_date = WarnEmptyColumn(default="Missing")
|
||
|
|
||
|
class Meta:
|
||
|
model = InstructorOrVendor
|
||
|
fields = [
|
||
|
"name",
|
||
|
"instructor_agreement_date",
|
||
|
"w9_date",
|
||
|
"phone",
|
||
|
"email_address",
|
||
|
]
|
||
|
|
||
|
|
||
|
class ShopAccessErrorColumn(tables.Column):
|
||
|
def td_class(value):
|
||
|
if value.startswith("Has access but"):
|
||
|
return "table-danger"
|
||
|
elif value.startswith("Has cert but"):
|
||
|
return "table-warning"
|
||
|
else:
|
||
|
return ""
|
||
|
|
||
|
attrs = {"td": {"class": td_class}}
|
||
|
|
||
|
|
||
|
class AccessVerificationTable(tables.Table):
|
||
|
account_name = tables.Column()
|
||
|
access_card = tables.Column()
|
||
|
billing_method = tables.Column()
|
||
|
join_date = tables.DateColumn()
|
||
|
renewal_date = tables.DateColumn()
|
||
|
access_front_door = tables.BooleanColumn(verbose_name="Front Door")
|
||
|
access_studio_space = tables.BooleanColumn(verbose_name="Studio Space")
|
||
|
wood_shop_error = ShopAccessErrorColumn()
|
||
|
metal_shop_error = ShopAccessErrorColumn()
|
||
|
extended_hours_error = ShopAccessErrorColumn()
|
||
|
extended_hours_shops_error = ShopAccessErrorColumn()
|
||
|
storage_closet_error = ShopAccessErrorColumn()
|
||
|
|
||
|
|
||
|
class CertifiersTable(tables.Table):
|
||
|
certified_by = tables.Column()
|
||
|
certification_version__definition__name = tables.Column("Certification")
|
||
|
certification_version__definition__department__name = tables.Column("Department")
|
||
|
number_issued_on_this_tool = tables.Column()
|
||
|
last_issued_certification_date = tables.Column()
|
||
|
|
||
|
|
||
|
class CertificationCountTable(tables.Table):
|
||
|
certification_version__definition__name = tables.Column("Certification")
|
||
|
certification_version__definition__department__name = tables.Column("Department")
|
||
|
total_issued = tables.Column()
|