system-pri/backend/app/coordinator/schemas/examination_schedule.py

44 lines
1.5 KiB
Python

from marshmallow import fields, validate, Schema
from ..validators import validate_datetime_greater_than_now
class ExaminationScheduleSchema(Schema):
title = fields.Str(validate=validate.Length(min=1, max=100), required=True)
start_date = fields.DateTime(validate=validate_datetime_greater_than_now, required=True)
end_date = fields.DateTime(validate=validate_datetime_greater_than_now, required=True)
class ExaminationScheduleUpdateSchema(Schema):
start_date_for_enrollment_students = fields.DateTime(validate=validate_datetime_greater_than_now, required=True)
end_date_for_enrollment_students = fields.DateTime(validate=validate_datetime_greater_than_now, required=True)
class ExaminationScheduleListItemSchema(Schema):
id = fields.Integer()
title = fields.Str()
start_date = fields.DateTime()
end_date = fields.DateTime()
start_date_for_enrollment_students = fields.DateTime()
end_date_for_enrollment_students = fields.DateTime()
class ExaminationSchedulesPaginationSchema(Schema):
examination_schedules = fields.List(fields.Nested(ExaminationScheduleListItemSchema))
max_pages = fields.Integer()
class ExaminationSchedulesQuerySchema(Schema):
page = fields.Integer()
per_page = fields.Integer()
class ProjectSupervisorStatisticsSchema(Schema):
full_name = fields.Str()
assigned_to_committee = fields.Integer()
groups_assigned_to_his_committee = fields.Integer()
class WorkloadSchema(Schema):
workloads = fields.List(fields.Nested(ProjectSupervisorStatisticsSchema))