Initial commit
This commit is contained in:
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,29 @@
|
||||
import modules.database.schemas.nodes.calendars as calendar_schemas
|
||||
from modules.database.tools.neontology.baserelationship import BaseRelationship
|
||||
from typing import ClassVar
|
||||
|
||||
# Sequenced Relationships for Calendar
|
||||
class YearFollowsYear(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'YEAR_FOLLOWS_YEAR'
|
||||
source: calendar_schemas.CalendarYearNode
|
||||
target: calendar_schemas.CalendarYearNode
|
||||
|
||||
class MonthFollowsMonth(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'MONTH_FOLLOWS_MONTH'
|
||||
source: calendar_schemas.CalendarMonthNode
|
||||
target: calendar_schemas.CalendarMonthNode
|
||||
|
||||
class WeekFollowsWeek(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'WEEK_FOLLOWS_WEEK'
|
||||
source: calendar_schemas.CalendarWeekNode
|
||||
target: calendar_schemas.CalendarWeekNode
|
||||
|
||||
class DayFollowsDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'DAY_FOLLOWS_DAY'
|
||||
source: calendar_schemas.CalendarDayNode
|
||||
target: calendar_schemas.CalendarDayNode
|
||||
|
||||
class TimeChunkFollowsTimeChunk(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'TIME_CHUNK_FOLLOWS_TIME_CHUNK'
|
||||
source: calendar_schemas.CalendarTimeChunkNode
|
||||
target: calendar_schemas.CalendarTimeChunkNode
|
||||
@@ -0,0 +1,96 @@
|
||||
import modules.database.schemas.nodes.schools.timetable as neo_timetable
|
||||
import modules.database.schemas.nodes.calendars as neo_calendar
|
||||
import modules.database.schemas.nodes.workers.timetable as neo_teacher_timetable
|
||||
from modules.database.tools.neontology.baserelationship import BaseRelationship
|
||||
from typing import ClassVar
|
||||
|
||||
class CalendarYearIsAcademicYear(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'IS_ACADEMIC_YEAR'
|
||||
source: neo_calendar.CalendarYearNode
|
||||
target: neo_timetable.AcademicYearNode
|
||||
|
||||
class AcademicYearIsCalendarYear(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'IS_CALENDAR_YEAR'
|
||||
source: neo_timetable.AcademicYearNode
|
||||
target: neo_calendar.CalendarYearNode
|
||||
|
||||
class CalendarWeekIsAcademicWeek(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'IS_ACADEMIC_WEEK'
|
||||
source: neo_calendar.CalendarWeekNode
|
||||
target: neo_timetable.AcademicWeekNode
|
||||
|
||||
class AcademicWeekIsCalendarWeek(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'IS_CALENDAR_WEEK'
|
||||
source: neo_timetable.AcademicWeekNode
|
||||
target: neo_calendar.CalendarWeekNode
|
||||
|
||||
class CalendarWeekIsHolidayWeek(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'IS_HOLIDAY_WEEK'
|
||||
source: neo_calendar.CalendarWeekNode
|
||||
target: neo_timetable.HolidayWeekNode
|
||||
|
||||
class HolidayWeekIsCalendarWeek(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'IS_CALENDAR_WEEK'
|
||||
source: neo_timetable.HolidayWeekNode
|
||||
target: neo_calendar.CalendarWeekNode
|
||||
|
||||
class CalendarDayIsAcademicDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'IS_ACADEMIC_DAY'
|
||||
source: neo_calendar.CalendarDayNode
|
||||
target: neo_timetable.AcademicDayNode
|
||||
|
||||
class AcademicDayIsCalendarDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'IS_CALENDAR_DAY'
|
||||
source: neo_timetable.AcademicDayNode
|
||||
target: neo_calendar.CalendarDayNode
|
||||
|
||||
class CalendarDayIsHolidayDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'IS_HOLIDAY_DAY'
|
||||
source: neo_calendar.CalendarDayNode
|
||||
target: neo_timetable.HolidayDayNode
|
||||
|
||||
class HolidayDayIsCalendarDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'IS_CALENDAR_DAY'
|
||||
source: neo_timetable.HolidayDayNode
|
||||
target: neo_calendar.CalendarDayNode
|
||||
|
||||
class CalendarDayIsOffTimetableDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'IS_OFF_TIMETABLE_DAY'
|
||||
source: neo_calendar.CalendarDayNode
|
||||
target: neo_timetable.OffTimetableDayNode
|
||||
|
||||
class OffTimetableDayIsCalendarDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'IS_CALENDAR_DAY'
|
||||
source: neo_timetable.OffTimetableDayNode
|
||||
target: neo_calendar.CalendarDayNode
|
||||
|
||||
class CalendarDayIsStaffDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'IS_STAFF_DAY'
|
||||
source: neo_calendar.CalendarDayNode
|
||||
target: neo_timetable.StaffDayNode
|
||||
|
||||
class StaffDayIsCalendarDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'IS_CALENDAR_DAY'
|
||||
source: neo_timetable.StaffDayNode
|
||||
target: neo_calendar.CalendarDayNode
|
||||
|
||||
# New relationships for user timetable
|
||||
class CalendarDayHasTimetableLesson(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'HAS_TIMETABLE_LESSON'
|
||||
source: neo_calendar.CalendarDayNode
|
||||
target: neo_teacher_timetable.TimetableLessonNode
|
||||
|
||||
class TimetableLessonBelongsToCalendarDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'BELONGS_TO_CALENDAR_DAY'
|
||||
source: neo_teacher_timetable.TimetableLessonNode
|
||||
target: neo_calendar.CalendarDayNode
|
||||
|
||||
class CalendarDayHasPlannedLesson(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'HAS_PLANNED_LESSON'
|
||||
source: neo_calendar.CalendarDayNode
|
||||
target: neo_teacher_timetable.PlannedLessonNode
|
||||
|
||||
class PlannedLessonBelongsToCalendarDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'BELONGS_TO_CALENDAR_DAY'
|
||||
source: neo_teacher_timetable.PlannedLessonNode
|
||||
target: neo_calendar.CalendarDayNode
|
||||
@@ -0,0 +1,34 @@
|
||||
import modules.database.schemas.nodes.calendars as calendar_schemas
|
||||
from modules.database.tools.neontology.baserelationship import BaseRelationship
|
||||
from typing import ClassVar
|
||||
|
||||
## Calendar layer relationships
|
||||
class CalendarIncludesYear(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'CALENDAR_INCLUDES_YEAR'
|
||||
source: calendar_schemas.CalendarNode
|
||||
target: calendar_schemas.CalendarYearNode
|
||||
|
||||
class YearIncludesMonth(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'YEAR_INCLUDES_MONTH'
|
||||
source: calendar_schemas.CalendarYearNode
|
||||
target: calendar_schemas.CalendarMonthNode
|
||||
|
||||
class YearIncludesWeek(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'YEAR_INCLUDES_WEEK'
|
||||
source: calendar_schemas.CalendarYearNode
|
||||
target: calendar_schemas.CalendarWeekNode
|
||||
|
||||
class MonthIncludesDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'MONTH_INCLUDES_DAY'
|
||||
source: calendar_schemas.CalendarMonthNode
|
||||
target: calendar_schemas.CalendarDayNode
|
||||
|
||||
class WeekIncludesDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'WEEK_INCLUDES_DAY'
|
||||
source: calendar_schemas.CalendarWeekNode
|
||||
target: calendar_schemas.CalendarDayNode
|
||||
|
||||
class DayIncludesTimeChunk(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'DAY_INCLUDES_TIME_CHUNK'
|
||||
source: calendar_schemas.CalendarDayNode
|
||||
target: calendar_schemas.CalendarTimeChunkNode
|
||||
@@ -0,0 +1,119 @@
|
||||
from typing import ClassVar
|
||||
from modules.database.tools.neontology.baserelationship import BaseRelationship
|
||||
|
||||
import modules.database.schemas.nodes.schools.pastoral as pastoral_nodes
|
||||
import modules.database.schemas.nodes.schools.curriculum as curriculum_nodes
|
||||
import modules.database.schemas.nodes.structures.schools as school_structures
|
||||
|
||||
# Structure layer relationships
|
||||
class CurriculumStructureIncludesKeyStage(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'CURRICULUM_STRUCTURE_INCLUDES_KEY_STAGE'
|
||||
source: school_structures.CurriculumStructureNode
|
||||
target: curriculum_nodes.KeyStageNode
|
||||
|
||||
class PastoralStructureIncludesYearGroup(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'PASTORAL_STRUCTURE_INCLUDES_YEAR_GROUP'
|
||||
source: school_structures.PastoralStructureNode
|
||||
target: pastoral_nodes.YearGroupNode
|
||||
|
||||
## Curriculum layer relationships
|
||||
class SubjectForKeyStage(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'SUBJECT_FOR_KEY_STAGE'
|
||||
source: curriculum_nodes.SubjectNode
|
||||
target: curriculum_nodes.KeyStageNode
|
||||
|
||||
class SubjectHasYearGroupSyllabus(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'SUBJECT_HAS_YEAR_GROUP_SYLLABUS'
|
||||
source: curriculum_nodes.SubjectNode
|
||||
target: pastoral_nodes.YearGroupSyllabusNode
|
||||
|
||||
class SubjectHasKeyStageSyllabus(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'SUBJECT_HAS_KEY_STAGE_SYLLABUS'
|
||||
source: curriculum_nodes.SubjectNode
|
||||
target: curriculum_nodes.KeyStageSyllabusNode
|
||||
|
||||
class TopicPartOfYearGroupSyllabus(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'YEAR_SYLLABUS_INCLUDES_TOPIC'
|
||||
source: pastoral_nodes.YearGroupSyllabusNode
|
||||
target: curriculum_nodes.TopicNode
|
||||
|
||||
class KeyStageSyllabusIncludesTopic(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'KEY_STAGE_SYLLABUS_INCLUDES_TOPIC'
|
||||
source: curriculum_nodes.KeyStageSyllabusNode
|
||||
target: curriculum_nodes.TopicNode
|
||||
|
||||
class YearGroupHasYearGroupSyllabus(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'YEAR_GROUP_HAS_YEAR_GROUP_SYLLABUS'
|
||||
source: pastoral_nodes.YearGroupNode
|
||||
target: pastoral_nodes.YearGroupSyllabusNode
|
||||
|
||||
class KeyStageSyllabusIncludesYearGroupSyllabus(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'KEY_STAGE_SYLLABUS_INCLUDES_YEAR_GROUP_SYLLABUS'
|
||||
source: curriculum_nodes.KeyStageSyllabusNode
|
||||
target: pastoral_nodes.YearGroupSyllabusNode
|
||||
|
||||
class KeyStageIncludesKeyStageSyllabus(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'KEY_STAGE_INCLUDES_KEY_STAGE_SYLLABUS'
|
||||
source: curriculum_nodes.KeyStageNode
|
||||
target: curriculum_nodes.KeyStageSyllabusNode
|
||||
|
||||
class KeyStageIncludesTopic(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'KEY_STAGE_INCLUDES_TOPIC'
|
||||
source: curriculum_nodes.KeyStageNode
|
||||
target: curriculum_nodes.TopicNode
|
||||
|
||||
class SubjectIncludesTopic(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'SUBJECT_INCLUDES_TOPIC'
|
||||
source: curriculum_nodes.SubjectNode
|
||||
target: curriculum_nodes.TopicNode
|
||||
|
||||
class TopicIncludesTopicLesson(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'TOPIC_INCLUDES_LESSON'
|
||||
source: curriculum_nodes.TopicNode
|
||||
target: curriculum_nodes.TopicLessonNode
|
||||
|
||||
class TopicIncludesLearningStatement(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'TOPIC_INCLUDES_LEARNING_STATEMENT'
|
||||
source: curriculum_nodes.TopicNode
|
||||
target: curriculum_nodes.LearningStatementNode
|
||||
|
||||
class LessonIncludesLearningStatement(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'LESSON_INCLUDES_LEARNING_STATEMENT'
|
||||
source: curriculum_nodes.TopicLessonNode
|
||||
target: curriculum_nodes.LearningStatementNode
|
||||
|
||||
# Science-specific curriculum layer relationships
|
||||
class TopicLessonIncludesScienceLab(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'LESSON_INCLUDES_SCIENCE_LAB'
|
||||
source: curriculum_nodes.TopicLessonNode
|
||||
target: curriculum_nodes.ScienceLabNode
|
||||
|
||||
class KeyStageFollowsKeyStage(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'KEY_STAGE_FOLLOWS_KEY_STAGE'
|
||||
source: curriculum_nodes.KeyStageNode
|
||||
target: curriculum_nodes.KeyStageNode
|
||||
|
||||
class YearGroupFollowsYearGroup(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'YEAR_GROUP_FOLLOWS_YEAR_GROUP'
|
||||
source: pastoral_nodes.YearGroupNode
|
||||
target: pastoral_nodes.YearGroupNode
|
||||
|
||||
class KeyStageSyllabusFollowsKeyStageSyllabus(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'KEY_STAGE_SYLLABUS_FOLLOWS_KEY_STAGE_SYLLABUS'
|
||||
source: curriculum_nodes.KeyStageSyllabusNode
|
||||
target: curriculum_nodes.KeyStageSyllabusNode
|
||||
|
||||
class YearGroupSyllabusFollowsYearGroupSyllabus(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'YEAR_GROUP_SYLLABUS_FOLLOWS_YEAR_GROUP_SYLLABUS'
|
||||
source: pastoral_nodes.YearGroupSyllabusNode
|
||||
target: pastoral_nodes.YearGroupSyllabusNode
|
||||
|
||||
class TopicLessonFollowsTopicLesson(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'LESSON_FOLLOWS_LESSON'
|
||||
source: curriculum_nodes.TopicLessonNode
|
||||
target: curriculum_nodes.TopicLessonNode
|
||||
|
||||
class YearGroupSyllabusIncludesTopic(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'YEAR_GROUP_SYLLABUS_INCLUDES_TOPIC'
|
||||
source: pastoral_nodes.YearGroupSyllabusNode
|
||||
target: curriculum_nodes.TopicNode
|
||||
@@ -0,0 +1,15 @@
|
||||
from typing import ClassVar
|
||||
from modules.database.tools.neontology.baserelationship import BaseRelationship
|
||||
|
||||
import modules.database.schemas.nodes.schools.schools as school_nodes
|
||||
import modules.database.schemas.nodes.structures.schools as school_structures
|
||||
|
||||
class SchoolHasCurriculumStructure(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'HAS_CURRICULUM_STRUCTURE'
|
||||
source: school_nodes.SchoolNode
|
||||
target: school_structures.CurriculumStructureNode
|
||||
|
||||
class SchoolHasPastoralStructure(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'HAS_PASTORAL_STRUCTURE'
|
||||
source: school_nodes.SchoolNode
|
||||
target: school_structures.PastoralStructureNode
|
||||
@@ -0,0 +1,49 @@
|
||||
from typing import ClassVar, Union
|
||||
import modules.database.schemas.entities as entities
|
||||
import modules.database.schemas.nodes.users as user_nodes
|
||||
import modules.database.schemas.nodes.workers.workers as worker_nodes
|
||||
import modules.database.schemas.nodes.schools.schools as school_nodes
|
||||
import modules.database.schemas.nodes.schools.curriculum as curriculum_nodes
|
||||
import modules.database.schemas.nodes.structures.schools as school_structures
|
||||
from modules.database.tools.neontology.baserelationship import BaseRelationship
|
||||
|
||||
class UserIsSchoolWorker(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'IS_SCHOOL_WORKER'
|
||||
source: user_nodes.UserNode
|
||||
target: Union[worker_nodes.SchoolAdminNode, worker_nodes.TeacherNode, worker_nodes.StudentNode]
|
||||
|
||||
class UserIsSystemWorker(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'IS_SYSTEM_WORKER'
|
||||
source: user_nodes.UserNode
|
||||
target: Union[worker_nodes.DeveloperNode, worker_nodes.SuperAdminNode]
|
||||
|
||||
class EntityBelongsToSchool(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'BELONGS_TO'
|
||||
source: Union[entities.worker_entities, entities.school_entities]
|
||||
target: entities.school_entities
|
||||
|
||||
class EntityBelongsToDepartment(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'BELONGS_TO'
|
||||
source: entities.worker_entities
|
||||
target: school_nodes.DepartmentNode
|
||||
|
||||
class SchoolHasDepartmentStructure(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'HAS_DEPARTMENT_STRUCTURE'
|
||||
source: school_nodes.SchoolNode
|
||||
target: school_structures.DepartmentStructureNode
|
||||
|
||||
class DepartmentStructureHasDepartment(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'HAS_DEPARTMENT'
|
||||
source: school_structures.DepartmentStructureNode
|
||||
target: school_nodes.DepartmentNode
|
||||
|
||||
class DepartmentManagesKeyStageSyllabus(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'MANAGES_KEY_STAGE_SYLLABUS'
|
||||
source: school_nodes.DepartmentNode
|
||||
target: curriculum_nodes.KeyStageSyllabusNode
|
||||
|
||||
class DepartmentManagesSubject(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'MANAGES_SUBJECT'
|
||||
source: school_nodes.DepartmentNode
|
||||
target: curriculum_nodes.SubjectNode
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
from typing import ClassVar, Union
|
||||
from modules.database.tools.neontology.baserelationship import BaseRelationship
|
||||
import modules.database.schemas.nodes.users as user_nodes
|
||||
import modules.database.schemas.nodes.workers.workers as worker_nodes
|
||||
import modules.database.schemas.nodes.schools.schools as school_nodes
|
||||
import modules.database.schemas.nodes.workers.timetable as worker_timetable
|
||||
import modules.database.schemas.nodes.schools.timetable as school_timetable
|
||||
|
||||
class EntityHasTimetable(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'HAS_TIMETABLE'
|
||||
source: Union[user_nodes.UserNode, worker_nodes.TeacherNode, worker_nodes.StudentNode, school_nodes.SubjectClassNode]
|
||||
target: worker_timetable.WorkerTimetableNode
|
||||
|
||||
|
||||
class SchoolHasTimetable(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'HAS_TIMETABLE'
|
||||
source: school_nodes.SchoolNode
|
||||
target: school_timetable.SchoolTimetableNode
|
||||
@@ -0,0 +1,9 @@
|
||||
from typing import ClassVar, Union
|
||||
import modules.database.schemas.nodes.calendars as calendar_schemas
|
||||
import modules.database.schemas.owners as owner_schemas
|
||||
from modules.database.tools.neontology.baserelationship import BaseRelationship
|
||||
|
||||
class OwnerHasCalendar(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'HAS_CALENDAR'
|
||||
source: owner_schemas.owners
|
||||
target: calendar_schemas.CalendarNode
|
||||
@@ -0,0 +1,48 @@
|
||||
from typing import ClassVar, Union
|
||||
from modules.database.tools.neontology.baserelationship import BaseRelationship
|
||||
from modules.database.schemas.nodes.schools.timetable import AcademicPeriodNode, RegistrationPeriodNode
|
||||
from modules.database.schemas.nodes.workers.timetable import TeacherTimetableNode, TimetableLessonNode, PlannedLessonNode
|
||||
from modules.database.schemas.nodes.workers.workers import TeacherNode
|
||||
from modules.database.schemas.nodes.schools.schools import SubjectClassNode
|
||||
from modules.database.schemas.nodes.schools.pastoral import YearGroupSyllabusNode
|
||||
|
||||
class TimetableLessonBelongsToPeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'LESSON_BELONGS_TO_PERIOD'
|
||||
source: TimetableLessonNode
|
||||
target: Union[AcademicPeriodNode, RegistrationPeriodNode]
|
||||
|
||||
class TimetableLessonHasPlannedLesson(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'TIMETABLE_LESSON_HAS_PLANNED_LESSON'
|
||||
source: TimetableLessonNode
|
||||
target: PlannedLessonNode
|
||||
|
||||
class TeacherHasTimetable(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'TEACHER_HAS_TIMETABLE'
|
||||
source: TeacherNode
|
||||
target: TeacherTimetableNode
|
||||
|
||||
class TimetableHasClass(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'TIMETABLE_HAS_CLASS'
|
||||
source: TeacherTimetableNode
|
||||
target: SubjectClassNode
|
||||
|
||||
class ClassHasLesson(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'CLASS_HAS_LESSON'
|
||||
source: SubjectClassNode
|
||||
target: TimetableLessonNode
|
||||
|
||||
class TimetableLessonFollowsTimetableLesson(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'TIMETABLE_LESSON_FOLLOWS_TIMETABLE_LESSON'
|
||||
source: Union[TimetableLessonNode, PlannedLessonNode]
|
||||
target: Union[TimetableLessonNode, PlannedLessonNode]
|
||||
|
||||
|
||||
class PlannedLessonFollowsPlannedLesson(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'PLANNED_LESSON_FOLLOWS_PLANNED_LESSON'
|
||||
source: PlannedLessonNode
|
||||
target: PlannedLessonNode
|
||||
|
||||
class SubjectClassBelongsToYearGroupSyllabus(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'SUBJECT_CLASS_BELONGS_TO_YEAR_GROUP_SYLLABUS'
|
||||
source: SubjectClassNode
|
||||
target: YearGroupSyllabusNode
|
||||
@@ -0,0 +1,11 @@
|
||||
from neontology import BaseRelationship
|
||||
|
||||
class CalendarYearHasNextCalendarYear(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'CALENDAR_YEAR_HAS_NEXT_CALENDAR_YEAR'
|
||||
source: CalendarYearNode
|
||||
target: CalendarYearNode
|
||||
|
||||
class CalendarYearHasPreviousCalendarYear(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'CALENDAR_YEAR_HAS_PREVIOUS_CALENDAR_YEAR'
|
||||
source: CalendarYearNode
|
||||
target: CalendarYearNode
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
from neontology import BaseRelationship
|
||||
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
from neontology import BaseRelationship
|
||||
|
||||
class PlannedLessonHasNextPlannedLesson(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'PLANNED_LESSON_HAS_NEXT_PLANNED_LESSON'
|
||||
source: PlannedLessonNode
|
||||
target: PlannedLessonNode
|
||||
|
||||
class PlannedLessonHasPreviousPlannedLesson(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'PLANNED_LESSON_HAS_PREVIOUS_PLANNED_LESSON'
|
||||
source: PlannedLessonNode
|
||||
target: PlannedLessonNode
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
from neontology import BaseRelationship
|
||||
|
||||
class AcademicTermHasNextTerm(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'TERM_HAS_NEXT_TERM'
|
||||
source: TermNode
|
||||
target: TermNode
|
||||
|
||||
class AcademicTermHasPreviousTerm(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'TERM_HAS_PREVIOUS_TERM'
|
||||
source: TermNode
|
||||
target: TermNode
|
||||
|
||||
class AcademicWeekHasNextWeek(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'WEEK_HAS_NEXT_WEEK'
|
||||
source: WeekNode
|
||||
target: WeekNode
|
||||
|
||||
class AcademicWeekHasPreviousWeek(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'WEEK_HAS_PREVIOUS_WEEK'
|
||||
source: WeekNode
|
||||
target: WeekNode
|
||||
|
||||
class AcademicDayHasNextDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'DAY_HAS_NEXT_DAY'
|
||||
source: DayNode
|
||||
target: DayNode
|
||||
|
||||
class AcademicDayHasPreviousDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'DAY_HAS_PREVIOUS_DAY'
|
||||
source: DayNode
|
||||
target: DayNode
|
||||
|
||||
class AcademicPeriodHasNextPeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'PERIOD_HAS_NEXT_PERIOD'
|
||||
source: PeriodNode
|
||||
target: PeriodNode
|
||||
|
||||
class AcademicPeriodHasPreviousPeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'PERIOD_HAS_PREVIOUS_PERIOD'
|
||||
source: PeriodNode
|
||||
target: PeriodNode
|
||||
BIN
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,65 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
ClassroomCopilot Structure Relationships
|
||||
This module defines the relationships between schools and structure nodes,
|
||||
as well as between entities and structure nodes.
|
||||
"""
|
||||
|
||||
from typing import ClassVar
|
||||
from modules.database.tools.neontology.baserelationship import BaseRelationship
|
||||
import modules.database.schemas.nodes.schools.schools as school_nodes
|
||||
import modules.database.schemas.nodes.structures.schools as school_structures
|
||||
import modules.database.schemas.nodes.workers.workers as worker_nodes
|
||||
|
||||
|
||||
class SchoolHasStaffStructure(BaseRelationship):
|
||||
"""Relationship between a school and its staff structure node."""
|
||||
__relationshiptype__: ClassVar[str] = 'HAS_STAFF_STRUCTURE'
|
||||
source: school_nodes.SchoolNode
|
||||
target: school_structures.StaffStructureNode
|
||||
|
||||
|
||||
class SchoolHasStudentStructure(BaseRelationship):
|
||||
"""Relationship between a school and its student structure node."""
|
||||
__relationshiptype__: ClassVar[str] = 'HAS_STUDENT_STRUCTURE'
|
||||
source: school_nodes.SchoolNode
|
||||
target: school_structures.StudentStructureNode
|
||||
|
||||
|
||||
class SchoolHasITAdminStructure(BaseRelationship):
|
||||
"""Relationship between a school and its IT admin structure node."""
|
||||
__relationshiptype__: ClassVar[str] = 'HAS_IT_ADMIN_STRUCTURE'
|
||||
source: school_nodes.SchoolNode
|
||||
target: school_structures.ITAdminStructureNode
|
||||
|
||||
|
||||
class EntityBelongsToStructure(BaseRelationship):
|
||||
"""
|
||||
Relationship between an entity (worker, student, etc.) and a structure node.
|
||||
This is a generic relationship that can be used for any entity type.
|
||||
"""
|
||||
__relationshiptype__: ClassVar[str] = 'BELONGS_TO_STRUCTURE'
|
||||
source: object # Generic source type to allow any entity
|
||||
target: object # Generic target type to allow any structure
|
||||
|
||||
|
||||
# Specific entity-to-structure relationships
|
||||
class SuperAdminBelongsToITAdminStructure(BaseRelationship):
|
||||
"""Relationship between a super admin and the IT admin structure."""
|
||||
__relationshiptype__: ClassVar[str] = 'BELONGS_TO_STRUCTURE'
|
||||
source: worker_nodes.SuperAdminNode
|
||||
target: school_structures.ITAdminStructureNode
|
||||
|
||||
|
||||
class TeacherBelongsToStaffStructure(BaseRelationship):
|
||||
"""Relationship between a teacher and the staff structure."""
|
||||
__relationshiptype__: ClassVar[str] = 'BELONGS_TO_STRUCTURE'
|
||||
source: worker_nodes.TeacherNode
|
||||
target: school_structures.StaffStructureNode
|
||||
|
||||
|
||||
class StudentBelongsToStudentStructure(BaseRelationship):
|
||||
"""Relationship between a student and the student structure."""
|
||||
__relationshiptype__: ClassVar[str] = 'BELONGS_TO_STRUCTURE'
|
||||
source: worker_nodes.StudentNode
|
||||
target: school_structures.StudentStructureNode
|
||||
@@ -0,0 +1,305 @@
|
||||
import modules.database.schemas.nodes.schools.timetable as neo_timetable
|
||||
from modules.database.tools.neontology.baserelationship import BaseRelationship
|
||||
from typing import ClassVar
|
||||
|
||||
# Timetable hierarchy structure relationships
|
||||
class AcademicTimetableHasAcademicYear(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_TIMETABLE_HAS_ACADEMIC_YEAR'
|
||||
source: neo_timetable.SchoolTimetableNode
|
||||
target: neo_timetable.AcademicYearNode
|
||||
|
||||
class AcademicYearHasAcademicTerm(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_YEAR_HAS_ACADEMIC_TERM'
|
||||
source: neo_timetable.AcademicYearNode
|
||||
target: neo_timetable.AcademicTermNode
|
||||
|
||||
class AcademicYearHasAcademicTermBreak(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_YEAR_HAS_ACADEMIC_TERM_BREAK'
|
||||
source: neo_timetable.AcademicYearNode
|
||||
target: neo_timetable.AcademicTermBreakNode
|
||||
|
||||
class AcademicYearHasAcademicWeek(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_YEAR_HAS_ACADEMIC_WEEK'
|
||||
source: neo_timetable.AcademicYearNode
|
||||
target: neo_timetable.AcademicWeekNode
|
||||
|
||||
class AcademicYearHasHolidayWeek(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_YEAR_HAS_HOLIDAY_WEEK'
|
||||
source: neo_timetable.AcademicYearNode
|
||||
target: neo_timetable.HolidayWeekNode
|
||||
|
||||
class AcademicTermHasAcademicWeek(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_TERM_HAS_ACADEMIC_WEEK'
|
||||
source: neo_timetable.AcademicTermNode
|
||||
target: neo_timetable.AcademicWeekNode
|
||||
|
||||
class AcademicTermBreakHasHolidayWeek(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_TERM_BREAK_HAS_HOLIDAY_WEEK'
|
||||
source: neo_timetable.AcademicTermBreakNode
|
||||
target: neo_timetable.HolidayWeekNode
|
||||
|
||||
class AcademicTermBreakHasHolidayDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_TERM_BREAK_HAS_HOLIDAY_DAY'
|
||||
source: neo_timetable.AcademicTermBreakNode
|
||||
target: neo_timetable.HolidayDayNode
|
||||
|
||||
class AcademicTermHasAcademicDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_TERM_HAS_ACADEMIC_DAY'
|
||||
source: neo_timetable.AcademicTermNode
|
||||
target: neo_timetable.AcademicDayNode
|
||||
|
||||
class AcademicTermHasHolidayDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_TERM_HAS_HOLIDAY_DAY'
|
||||
source: neo_timetable.AcademicTermNode
|
||||
target: neo_timetable.HolidayDayNode
|
||||
|
||||
class AcademicTermHasOffTimetableDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_TERM_HAS_OFF_TIMETABLE_DAY'
|
||||
source: neo_timetable.AcademicTermNode
|
||||
target: neo_timetable.OffTimetableDayNode
|
||||
|
||||
class AcademicTermHasStaffDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_TERM_HAS_STAFF_DAY'
|
||||
source: neo_timetable.AcademicTermNode
|
||||
target: neo_timetable.StaffDayNode
|
||||
|
||||
class AcademicWeekHasAcademicDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_WEEK_HAS_ACADEMIC_DAY'
|
||||
source: neo_timetable.AcademicWeekNode
|
||||
target: neo_timetable.AcademicDayNode
|
||||
|
||||
class AcademicWeekHasHolidayDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_WEEK_HAS_HOLIDAY_DAY'
|
||||
source: neo_timetable.AcademicWeekNode
|
||||
target: neo_timetable.HolidayDayNode
|
||||
|
||||
class AcademicWeekHasOffTimetableDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_WEEK_HAS_OFF_TIMETABLE_DAY'
|
||||
source: neo_timetable.AcademicWeekNode
|
||||
target: neo_timetable.OffTimetableDayNode
|
||||
|
||||
class AcademicWeekHasStaffDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_WEEK_HAS_STAFF_DAY'
|
||||
source: neo_timetable.AcademicWeekNode
|
||||
target: neo_timetable.StaffDayNode
|
||||
|
||||
class HolidayWeekHasHolidayDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'HOLIDAY_WEEK_HAS_HOLIDAY_DAY'
|
||||
source: neo_timetable.HolidayWeekNode
|
||||
target: neo_timetable.HolidayDayNode
|
||||
|
||||
class AcademicDayHasAcademicPeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_DAY_HAS_ACADEMIC_PERIOD'
|
||||
source: neo_timetable.AcademicDayNode
|
||||
target: neo_timetable.AcademicPeriodNode
|
||||
|
||||
class AcademicDayHasRegistrationPeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_DAY_HAS_REGISTRATION_PERIOD'
|
||||
source: neo_timetable.AcademicDayNode
|
||||
target: neo_timetable.RegistrationPeriodNode
|
||||
|
||||
class AcademicDayHasBreakPeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_DAY_HAS_BREAK_PERIOD'
|
||||
source: neo_timetable.AcademicDayNode
|
||||
target: neo_timetable.BreakPeriodNode
|
||||
|
||||
class AcademicDayHasOffTimetablePeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_DAY_HAS_OFF_TIMETABLE_PERIOD'
|
||||
source: neo_timetable.AcademicDayNode
|
||||
target: neo_timetable.OffTimetablePeriodNode
|
||||
|
||||
# Timetable sequence relationships
|
||||
class AcademicYearFollowsAcademicYear(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_YEAR_FOLLOWS_ACADEMIC_YEAR'
|
||||
source: neo_timetable.AcademicYearNode
|
||||
target: neo_timetable.AcademicYearNode
|
||||
|
||||
class AcademicTermFollowsAcademicTermBreak(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_TERM_FOLLOWS_ACADEMIC_TERM_BREAK'
|
||||
source: neo_timetable.AcademicTermBreakNode # Term break ends
|
||||
target: neo_timetable.AcademicTermNode # New term starts
|
||||
|
||||
class AcademicTermBreakFollowsAcademicTerm(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_TERM_BREAK_FOLLOWS_ACADEMIC_TERM'
|
||||
source: neo_timetable.AcademicTermNode # Term ends
|
||||
target: neo_timetable.AcademicTermBreakNode # Term break starts
|
||||
|
||||
class AcademicWeekFollowsAcademicWeek(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_WEEK_FOLLOWS_ACADEMIC_WEEK'
|
||||
source: neo_timetable.AcademicWeekNode
|
||||
target: neo_timetable.AcademicWeekNode
|
||||
|
||||
class HolidayWeekFollowsHolidayWeek(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'HOLIDAY_WEEK_FOLLOWS_HOLIDAY_WEEK'
|
||||
source: neo_timetable.HolidayWeekNode
|
||||
target: neo_timetable.HolidayWeekNode
|
||||
|
||||
class AcademicWeekFollowsHolidayWeek(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_WEEK_FOLLOWS_HOLIDAY_WEEK'
|
||||
source: neo_timetable.HolidayWeekNode
|
||||
target: neo_timetable.AcademicWeekNode
|
||||
|
||||
class HolidayWeekFollowsAcademicWeek(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'HOLIDAY_WEEK_FOLLOWS_ACADEMIC_WEEK'
|
||||
source: neo_timetable.AcademicWeekNode
|
||||
target: neo_timetable.HolidayWeekNode
|
||||
|
||||
class AcademicDayFollowsAcademicDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_DAY_FOLLOWS_ACADEMIC_DAY'
|
||||
source: neo_timetable.AcademicDayNode
|
||||
target: neo_timetable.AcademicDayNode
|
||||
|
||||
class AcademicDayFollowsHolidayDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_DAY_FOLLOWS_HOLIDAY_DAY'
|
||||
source: neo_timetable.HolidayDayNode
|
||||
target: neo_timetable.AcademicDayNode
|
||||
|
||||
class AcademicDayFollowsOffTimetableDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_DAY_FOLLOWS_OFF_TIMETABLE_DAY'
|
||||
source: neo_timetable.OffTimetableDayNode
|
||||
target: neo_timetable.AcademicDayNode
|
||||
|
||||
class AcademicDayFollowsStaffDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_DAY_FOLLOWS_STAFF_DAY'
|
||||
source: neo_timetable.StaffDayNode
|
||||
target: neo_timetable.AcademicDayNode
|
||||
|
||||
class HolidayDayFollowsHolidayDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'HOLIDAY_DAY_FOLLOWS_HOLIDAY_DAY'
|
||||
source: neo_timetable.HolidayDayNode
|
||||
target: neo_timetable.HolidayDayNode
|
||||
|
||||
class HolidayDayFollowsAcademicDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'HOLIDAY_DAY_FOLLOWS_ACADEMIC_DAY'
|
||||
source: neo_timetable.AcademicDayNode
|
||||
target: neo_timetable.HolidayDayNode
|
||||
|
||||
class HolidayDayFollowsOffTimetableDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'HOLIDAY_DAY_FOLLOWS_OFF_TIMETABLE_DAY'
|
||||
source: neo_timetable.OffTimetableDayNode
|
||||
target: neo_timetable.HolidayDayNode
|
||||
|
||||
class HolidayDayFollowsStaffDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'HOLIDAY_DAY_FOLLOWS_STAFF_DAY'
|
||||
source: neo_timetable.StaffDayNode
|
||||
target: neo_timetable.HolidayDayNode
|
||||
|
||||
class OffTimetableDayFollowsOffTimetableDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'OFF_TIMETABLE_DAY_FOLLOWS_OFF_TIMETABLE_DAY'
|
||||
source: neo_timetable.OffTimetableDayNode
|
||||
target: neo_timetable.OffTimetableDayNode
|
||||
|
||||
class OffTimetableDayFollowsAcademicDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'OFF_TIMETABLE_DAY_FOLLOWS_ACADEMIC_DAY'
|
||||
source: neo_timetable.AcademicDayNode
|
||||
target: neo_timetable.OffTimetableDayNode
|
||||
|
||||
class OffTimetableDayFollowsHolidayDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'OFF_TIMETABLE_DAY_FOLLOWS_HOLIDAY_DAY'
|
||||
source: neo_timetable.HolidayDayNode
|
||||
target: neo_timetable.OffTimetableDayNode
|
||||
|
||||
class OffTimetableDayFollowsStaffDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'OFF_TIMETABLE_DAY_FOLLOWS_STAFF_DAY'
|
||||
source: neo_timetable.StaffDayNode
|
||||
target: neo_timetable.OffTimetableDayNode
|
||||
|
||||
class StaffDayFollowsStaffDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'STAFF_DAY_FOLLOWS_STAFF_DAY'
|
||||
source: neo_timetable.StaffDayNode
|
||||
target: neo_timetable.StaffDayNode
|
||||
|
||||
class StaffDayFollowsAcademicDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'STAFF_DAY_FOLLOWS_ACADEMIC_DAY'
|
||||
source: neo_timetable.AcademicDayNode
|
||||
target: neo_timetable.StaffDayNode
|
||||
|
||||
class StaffDayFollowsHolidayDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'STAFF_DAY_FOLLOWS_HOLIDAY_DAY'
|
||||
source: neo_timetable.HolidayDayNode
|
||||
target: neo_timetable.StaffDayNode
|
||||
|
||||
class StaffDayFollowsOffTimetableDay(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'STAFF_DAY_FOLLOWS_OFF_TIMETABLE_DAY'
|
||||
source: neo_timetable.OffTimetableDayNode
|
||||
target: neo_timetable.StaffDayNode
|
||||
|
||||
class AcademicPeriodFollowsAcademicPeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_PERIOD_FOLLOWS_ACADEMIC_PERIOD'
|
||||
source: neo_timetable.AcademicPeriodNode
|
||||
target: neo_timetable.AcademicPeriodNode
|
||||
|
||||
class AcademicPeriodFollowsBreakPeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_PERIOD_FOLLOWS_BREAK_PERIOD'
|
||||
source: neo_timetable.BreakPeriodNode
|
||||
target: neo_timetable.AcademicPeriodNode
|
||||
|
||||
class AcademicPeriodFollowsRegistrationPeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_PERIOD_FOLLOWS_REGISTRATION_PERIOD'
|
||||
source: neo_timetable.RegistrationPeriodNode
|
||||
target: neo_timetable.AcademicPeriodNode
|
||||
|
||||
class AcademicPeriodFollowsOffTimetablePeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'ACADEMIC_PERIOD_FOLLOWS_OFF_TIMETABLE_PERIOD'
|
||||
source: neo_timetable.OffTimetablePeriodNode
|
||||
target: neo_timetable.AcademicPeriodNode
|
||||
|
||||
class BreakPeriodFollowsAcademicPeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'BREAK_PERIOD_FOLLOWS_ACADEMIC_PERIOD'
|
||||
source: neo_timetable.AcademicPeriodNode
|
||||
target: neo_timetable.BreakPeriodNode
|
||||
|
||||
class RegistrationPeriodFollowsAcademicPeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'REGISTRATION_PERIOD_FOLLOWS_ACADEMIC_PERIOD'
|
||||
source: neo_timetable.AcademicPeriodNode
|
||||
target: neo_timetable.RegistrationPeriodNode
|
||||
|
||||
class RegistrationPeriodFollowsOffTimetablePeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'REGISTRATION_PERIOD_FOLLOWS_OFF_TIMETABLE_PERIOD'
|
||||
source: neo_timetable.OffTimetablePeriodNode
|
||||
target: neo_timetable.RegistrationPeriodNode
|
||||
|
||||
class OffTimetablePeriodFollowsAcademicPeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'OFF_TIMETABLE_PERIOD_FOLLOWS_ACADEMIC_PERIOD'
|
||||
source: neo_timetable.AcademicPeriodNode
|
||||
target: neo_timetable.OffTimetablePeriodNode
|
||||
|
||||
class OffTimetablePeriodFollowsRegistrationPeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'OFF_TIMETABLE_PERIOD_FOLLOWS_REGISTRATION_PERIOD'
|
||||
source: neo_timetable.RegistrationPeriodNode
|
||||
target: neo_timetable.OffTimetablePeriodNode
|
||||
|
||||
class OffTimetablePeriodFollowsOffTimetablePeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'OFF_TIMETABLE_PERIOD_FOLLOWS_OFF_TIMETABLE_PERIOD'
|
||||
source: neo_timetable.OffTimetablePeriodNode
|
||||
target: neo_timetable.OffTimetablePeriodNode
|
||||
|
||||
class BreakPeriodFollowsBreakPeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'BREAK_PERIOD_FOLLOWS_BREAK_PERIOD'
|
||||
source: neo_timetable.BreakPeriodNode
|
||||
target: neo_timetable.BreakPeriodNode
|
||||
|
||||
class BreakPeriodFollowsRegistrationPeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'BREAK_PERIOD_FOLLOWS_REGISTRATION_PERIOD'
|
||||
source: neo_timetable.RegistrationPeriodNode
|
||||
target: neo_timetable.BreakPeriodNode
|
||||
|
||||
class BreakPeriodFollowsOffTimetablePeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'BREAK_PERIOD_FOLLOWS_OFF_TIMETABLE_PERIOD'
|
||||
source: neo_timetable.OffTimetablePeriodNode
|
||||
target: neo_timetable.BreakPeriodNode
|
||||
|
||||
class RegistrationPeriodFollowsBreakPeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'REGISTRATION_PERIOD_FOLLOWS_BREAK_PERIOD'
|
||||
source: neo_timetable.BreakPeriodNode
|
||||
target: neo_timetable.RegistrationPeriodNode
|
||||
|
||||
class OffTimetablePeriodFollowsBreakPeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'OFF_TIMETABLE_PERIOD_FOLLOWS_BREAK_PERIOD'
|
||||
source: neo_timetable.BreakPeriodNode
|
||||
target: neo_timetable.OffTimetablePeriodNode
|
||||
|
||||
class RegistrationPeriodFollowsRegistrationPeriod(BaseRelationship):
|
||||
__relationshiptype__: ClassVar[str] = 'REGISTRATION_PERIOD_FOLLOWS_REGISTRATION_PERIOD'
|
||||
source: neo_timetable.RegistrationPeriodNode
|
||||
target: neo_timetable.RegistrationPeriodNode
|
||||
Reference in New Issue
Block a user