onboard/board/models.py
2021-07-09 21:25:42 -06:00

54 lines
1.5 KiB
Python

from django.db import models
from django.utils import timezone
class Employee(models.Model):
first_name = models.CharField(max_length=64)
last_name = models.CharField(max_length=64)
hire_date = models.DateField()
title = models.CharField(max_length=64, blank=True, null=True)
department = models.CharField(max_length=64, blank=True, null=True)
manager = models.CharField(max_length=64, blank=True, null=True)
initial_comments = models.TextField(blank=True, null=True)
archived = models.BooleanField(default=False)
@property
def full_name(self):
return f"{self.first_name} {self.last_name}"
def __str__(self):
return self.full_name
class LogEntry(models.Model):
employee = models.ForeignKey(Employee, on_delete=models.CASCADE)
notes = models.CharField(max_length=500)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return f"{self.employee}: {self.notes}"
class Todo(models.Model):
employee = models.ForeignKey(Employee, on_delete=models.CASCADE)
description = models.CharField(max_length=64)
completed = models.BooleanField(default=False)
completed_at = models.DateTimeField(blank=True, null=True)
def complete(self):
LogEntry.objects.create(
employee=self.checklist.employee,
notes=f'Completed To-do: "{self.description}"'
)
self.object.completed = True
self.object.completed_at = timezone.now()
self.object.save()
def __str__(self):
return f"{self.employee}: {self.description}"