| from django.db import models | |
| from students.models import Student | |
| from classes.models import SchoolClass | |
| class Attendance(models.Model): | |
| STATUS_CHOICES = [ | |
| ('present', 'Present'), | |
| ('absent', 'Absent'), | |
| ('late', 'Late'), | |
| ('excused', 'Excused'), | |
| ] | |
| student = models.ForeignKey(Student, on_delete=models.CASCADE, related_name='attendances') | |
| school_class = models.ForeignKey(SchoolClass, on_delete=models.CASCADE, related_name='attendances') | |
| date = models.DateField() | |
| status = models.CharField(max_length=10, choices=STATUS_CHOICES, default='present') | |
| note = models.TextField(blank=True) | |
| created_at = models.DateTimeField(auto_now_add=True) | |
| def __str__(self): | |
| return f"{self.student} - {self.date} - {self.status}" | |
| class Meta: | |
| unique_together = ['student', 'date'] | |
| ordering = ['-date'] |