onboard/board/models.py
2021-07-21 20:58:18 -06:00

60 lines
1.8 KiB
Python

from django.db import models
from django.urls import reverse_lazy, reverse
from django.utils import timezone
class Employee(models.Model):
class Meta:
ordering = ('-hire_date',)
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
def get_absolute_url(self):
return reverse('employee-detail', kwargs={'pk': self.pk})
class LogEntry(models.Model):
class Meta:
ordering = ('-created_at',)
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}"
def get_absolute_url(self):
return reverse('todo-detail', kwargs={'pk': self.employee.pk, 'entry_pk': self.pk})
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 __str__(self):
return f"{self.employee}: {self.description}"
def get_absolute_url(self):
return reverse('todo-detail', kwargs={'pk': self.employee.pk, 'todo_pk': self.pk})