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

43 lines
1.5 KiB
Python

from rest_framework import serializers
from django.contrib.auth.models import User
from .models import TimeEntry
class TimeEntrySerializer(serializers.ModelSerializer):
user = serializers.StringRelatedField(read_only=True)
username = serializers.CharField(source='user.username', read_only=True)
class Meta:
model = TimeEntry
fields = ['id', 'user', 'username', 'date', 'start_time', 'end_time', 'duration', 'created_at']
read_only_fields = ['user', 'duration', 'created_at']
class TimeEntryCreateSerializer(serializers.ModelSerializer):
class Meta:
model = TimeEntry
fields = ['date', 'start_time', 'end_time']
class TimeEntryUpdateSerializer(serializers.ModelSerializer):
class Meta:
model = TimeEntry
fields = ['start_time', 'end_time']
class WeeklySummarySerializer(serializers.Serializer):
user = serializers.StringRelatedField()
username = serializers.CharField()
total_hours = serializers.FloatField()
days = serializers.ListField()
def to_representation(self, instance):
data = super().to_representation(instance)
# Format the days data for frontend consumption
formatted_days = []
for day in data['days']:
formatted_days.append({
'date': day['date'],
'day': day['day'],
'start_time': day['start_time'],
'end_time': day['end_time'],
'duration': day['duration']
})
data['days'] = formatted_days
return data