mirror of
https://github.com/TurTaskProject/TurTaskWeb.git
synced 2025-12-19 05:54:07 +01:00
65 lines
2.6 KiB
Python
65 lines
2.6 KiB
Python
from rest_framework import serializers
|
|
from boards.models import Board
|
|
from tasks.models import Todo, RecurrenceTask
|
|
|
|
|
|
class GoogleCalendarEventSerializer(serializers.Serializer):
|
|
summary = serializers.CharField()
|
|
start = serializers.DateTimeField()
|
|
end = serializers.DateTimeField()
|
|
description = serializers.CharField(required=False)
|
|
|
|
|
|
class TodoUpdateSerializer(serializers.ModelSerializer):
|
|
id = serializers.CharField(source="google_calendar_id")
|
|
summary = serializers.CharField(source="title")
|
|
description = serializers.CharField(source="notes", required=False)
|
|
created = serializers.DateTimeField(source="creation_date")
|
|
updated = serializers.DateTimeField(source="last_update")
|
|
start_datetime = serializers.DateTimeField(source="start_event", required=False)
|
|
end_datetime = serializers.DateTimeField(source="end_event", required=False)
|
|
list_board = serializers.SerializerMethodField()
|
|
|
|
class Meta:
|
|
model = Todo
|
|
fields = ('id', 'summary', 'description', 'created', 'updated', 'start_datetime', 'end_datetime', 'list_board')
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
self.user = kwargs.pop('user', None)
|
|
super(TodoUpdateSerializer, self).__init__(*args, **kwargs)
|
|
|
|
def get_list_board(self, obj):
|
|
return Board.objects.get(user=self.user).listboard_set.first()
|
|
|
|
def create(self, validated_data):
|
|
validated_data['user'] = self.user
|
|
validated_data['list_board'] = self.get_list_board(self)
|
|
task = Todo.objects.create(**validated_data)
|
|
|
|
return task
|
|
|
|
|
|
class RecurrenceTaskUpdateSerializer(serializers.ModelSerializer):
|
|
id = serializers.CharField(source="google_calendar_id")
|
|
summary = serializers.CharField(source="title")
|
|
description = serializers.CharField(source="notes", required=False)
|
|
created = serializers.DateTimeField(source="creation_date")
|
|
updated = serializers.DateTimeField(source="last_update")
|
|
recurrence = serializers.CharField(source="recurrence_rule")
|
|
start_datetime = serializers.DateTimeField(source="start_event", required=False)
|
|
end_datetime = serializers.DateTimeField(source="end_event", required=False)
|
|
|
|
|
|
class Meta:
|
|
model = RecurrenceTask
|
|
fields = ('id', 'summary', 'description', 'created', 'updated', 'recurrence', 'start_datetime', 'end_datetime')
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
self.user = kwargs.pop('user', None)
|
|
super(RecurrenceTaskUpdateSerializer, self).__init__(*args, **kwargs)
|
|
|
|
def create(self, validated_data):
|
|
validated_data['user'] = self.user
|
|
task = RecurrenceTask.objects.create(**validated_data)
|
|
|
|
return task |