Louis Mazin 5a56f5383d init
2026-09-13 18:56:33 +02:00

33 lines
1.1 KiB
Python

from django.db import models
from django.contrib.auth.models import User
from datetime import datetime, date
class TimeEntry(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='time_entries')
date = models.DateField()
start_time = models.TimeField()
end_time = models.TimeField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
ordering = ['-date', '-start_time']
unique_together = ['user', 'date', 'start_time']
def __str__(self):
return f"{self.user.username} - {self.date} ({self.start_time} to {self.end_time})"
@property
def duration(self):
"""Calculate duration in hours"""
if self.start_time and self.end_time:
start = datetime.combine(self.date, self.start_time)
end = datetime.combine(self.date, self.end_time)
return (end - start).total_seconds() / 3600
return 0
@property
def day_of_week(self):
"""Get day of week as string"""
return self.date.strftime('%A')