65 lines
No EOL
1.8 KiB
Python
65 lines
No EOL
1.8 KiB
Python
import datetime
|
|
|
|
from django.urls import reverse
|
|
|
|
from rest_framework import serializers
|
|
|
|
from .models import *
|
|
|
|
class VEVENT_Serializer(serializers.ModelSerializer):
|
|
title = serializers.CharField(source='SUMMARY')
|
|
start = serializers.DateTimeField(source='DTSTART')
|
|
|
|
# end = serializers.CharField(source='DTEND')
|
|
end = serializers.SerializerMethodField()
|
|
className = serializers.SerializerMethodField()
|
|
url = serializers.SerializerMethodField()
|
|
description = serializers.SerializerMethodField()
|
|
# allDay = serializers.SerializerMethodField()
|
|
|
|
def get_end(self, obj):
|
|
x = obj.DURATION
|
|
return obj.DTSTART + datetime.timedelta(hours=x.hour, minutes=x.minute, seconds=x.second)
|
|
|
|
def get_className(self, obj):
|
|
return 'c%d' % obj.mode
|
|
|
|
def get_url(self, obj):
|
|
# print(obj.treatment.id)
|
|
return reverse('event-update',
|
|
kwargs={'pk': obj.id},
|
|
)
|
|
return reverse('treatment-detail',
|
|
# args=[obj.treatment.id],
|
|
kwargs={'object_id': obj.treatment.id},
|
|
)
|
|
|
|
def get_description(self, obj):
|
|
return None
|
|
|
|
t = obj.treatment
|
|
desc = t.patient.medical_records
|
|
if t.surgeon:
|
|
desc += ' '+t.surgeon.name
|
|
elif t.oncologist:
|
|
desc += ' '+t.oncologist.name
|
|
print(desc)
|
|
return desc
|
|
|
|
def get_allDay(self, obj):
|
|
return obj.DTSTART.hour < 8
|
|
|
|
class Meta:
|
|
model = VEVENT
|
|
fields = ('title', 'start', 'end', 'id', 'className', 'url', 'description')
|
|
|
|
|
|
class PatientSerializer(serializers.ModelSerializer):
|
|
# id = serializers.IntegerField(read_only=True)
|
|
|
|
class Meta:
|
|
model = Patient
|
|
fields = '__all__'
|
|
# fields = (
|
|
# 'id', 'name',
|
|
# ) |