Initial commit
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,52 @@
|
||||
from typing import ClassVar
|
||||
from modules.database.tools.neontology.basenode import BaseNode
|
||||
|
||||
class CCBaseNode(BaseNode):
|
||||
__primarylabel__: ClassVar[str] = ''
|
||||
__primaryproperty__: ClassVar[str] = 'unique_id'
|
||||
unique_id: str
|
||||
tldraw_snapshot: str
|
||||
|
||||
def to_dict(self):
|
||||
return {
|
||||
"__primarylabel__": self.__primarylabel__,
|
||||
"unique_id": self.unique_id,
|
||||
"tldraw_snapshot": self.tldraw_snapshot,
|
||||
}
|
||||
|
||||
class UserBaseNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = ''
|
||||
cc_username: str
|
||||
user_email: str
|
||||
user_db_name: str
|
||||
user_name: str
|
||||
user_type: str
|
||||
|
||||
def to_dict(self):
|
||||
return {
|
||||
"__primarylabel__": self.__primarylabel__,
|
||||
"unique_id": self.unique_id,
|
||||
"tldraw_snapshot": self.tldraw_snapshot,
|
||||
"cc_username": self.cc_username,
|
||||
"user_db_name": self.user_db_name,
|
||||
"user_email": self.user_email,
|
||||
"user_name": self.user_name,
|
||||
"user_type": self.user_type,
|
||||
}
|
||||
|
||||
class WorkerBaseNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = ''
|
||||
worker_name: str
|
||||
worker_email: str
|
||||
worker_db_name: str
|
||||
worker_type: str
|
||||
def to_dict(self):
|
||||
return {
|
||||
"__primarylabel__": self.__primarylabel__,
|
||||
"unique_id": self.unique_id,
|
||||
"tldraw_snapshot": self.tldraw_snapshot,
|
||||
"worker_name": self.worker_name,
|
||||
"worker_email": self.worker_email,
|
||||
"worker_db_name": self.worker_db_name,
|
||||
"worker_type": self.worker_type,
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
import datetime
|
||||
from typing import ClassVar
|
||||
from .base_nodes import CCBaseNode
|
||||
|
||||
class CalendarNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'Calendar'
|
||||
name: str
|
||||
start_date: datetime.date
|
||||
end_date: datetime.date
|
||||
|
||||
class CalendarYearNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'CalendarYear'
|
||||
year: str
|
||||
|
||||
class CalendarMonthNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'CalendarMonth'
|
||||
year: str
|
||||
month: str
|
||||
month_name: str
|
||||
|
||||
class CalendarWeekNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'CalendarWeek'
|
||||
start_date: datetime.date
|
||||
week_number: str
|
||||
iso_week: str # ISO 8601 week
|
||||
|
||||
class CalendarDayNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'CalendarDay'
|
||||
date: datetime.date
|
||||
day_of_week: str
|
||||
iso_day: str # ISO 8601 day
|
||||
|
||||
class CalendarTimeChunkNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'CalendarTimeChunk'
|
||||
start_time: datetime.time
|
||||
end_time: datetime.time
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,56 @@
|
||||
from typing import ClassVar, Optional
|
||||
from ..base_nodes import CCBaseNode
|
||||
|
||||
class CurriculumBaseNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = ''
|
||||
|
||||
class KeyStageNode(CurriculumBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'KeyStage'
|
||||
key_stage: str
|
||||
name: str
|
||||
|
||||
class KeyStageSyllabusNode(CurriculumBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'KeyStageSyllabus'
|
||||
id: str
|
||||
name: str
|
||||
key_stage: str
|
||||
subject_name: str
|
||||
|
||||
class SubjectNode(CurriculumBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'Subject'
|
||||
id: str
|
||||
name: str
|
||||
|
||||
class TopicNode(CurriculumBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'Topic'
|
||||
id: str
|
||||
name: str
|
||||
type: str
|
||||
assessment_type: str
|
||||
total_number_of_lessons_for_topic: str
|
||||
|
||||
class TopicLessonNode(CurriculumBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'TopicLesson'
|
||||
id: str
|
||||
name: str
|
||||
type: str
|
||||
length: Optional[str] = None
|
||||
suggested_activities: Optional[str] = None
|
||||
skills_learned: Optional[str] = None
|
||||
weblinks: Optional[str] = None
|
||||
|
||||
class LearningStatementNode(CurriculumBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'LearningStatement'
|
||||
id: str
|
||||
name: str
|
||||
type: str
|
||||
|
||||
class ScienceLabNode(CurriculumBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'ScienceLab'
|
||||
id: str
|
||||
name: str
|
||||
summary: Optional[str] = None
|
||||
requirements: Optional[str] = None
|
||||
procedure: Optional[str] = None
|
||||
safety: Optional[str] = None
|
||||
weblinks: Optional[str] = None
|
||||
@@ -0,0 +1,14 @@
|
||||
from typing import ClassVar, Optional
|
||||
from ..base_nodes import CCBaseNode
|
||||
|
||||
class YearGroupNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'YearGroup'
|
||||
year_group: str
|
||||
name: str
|
||||
|
||||
class YearGroupSyllabusNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'YearGroupSyllabus'
|
||||
id: str
|
||||
name: str
|
||||
year_group: str
|
||||
subject_name: str
|
||||
@@ -0,0 +1,60 @@
|
||||
from typing import ClassVar, Optional
|
||||
from ..base_nodes import CCBaseNode
|
||||
|
||||
class SchoolNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'School'
|
||||
|
||||
# Core identification fields (required for all databases)
|
||||
id: str # School's unique identifier within its type
|
||||
school_type: str # e.g., 'development', 'state', 'private', etc.
|
||||
name: str
|
||||
website: str = 'unknown'
|
||||
|
||||
# Public school fields (required for public database)
|
||||
statutory_low_age: Optional[int] = None
|
||||
statutory_high_age: Optional[int] = None
|
||||
phase_of_education: Optional[str] = None
|
||||
school_capacity: Optional[int] = None
|
||||
religious_character: Optional[str] = None
|
||||
ofsted_rating: Optional[str] = None
|
||||
|
||||
# Private school fields (required for private database)
|
||||
establishment_number: Optional[str] = None
|
||||
establishment_name: Optional[str] = None
|
||||
establishment_type: Optional[str] = None
|
||||
establishment_status: Optional[str] = None
|
||||
|
||||
@property
|
||||
def database_id(self) -> str:
|
||||
"""Get the full database identifier for this school"""
|
||||
return f"{self.school_type}.{self.id}"
|
||||
|
||||
@property
|
||||
def public_database_name(self) -> str:
|
||||
"""Get the public database name for this school"""
|
||||
return "cc.institutes"
|
||||
|
||||
@property
|
||||
def private_database_name(self) -> str:
|
||||
"""Get the private database name for this school"""
|
||||
return f"cc.institutes.{self.database_id}"
|
||||
|
||||
@property
|
||||
def curriculum_database_name(self) -> str:
|
||||
"""Get the curriculum database name for this school"""
|
||||
return f"{self.private_database_name}.curriculum"
|
||||
|
||||
class DepartmentNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'Department'
|
||||
name: str
|
||||
|
||||
class SubjectClassNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'SubjectClass'
|
||||
name: Optional[str] = 'unknown'
|
||||
year_group_id: str
|
||||
subject_id: str
|
||||
|
||||
class RoomNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'Room'
|
||||
name: Optional[str] = 'unknown'
|
||||
building_id: Optional[str] = 'unknown'
|
||||
@@ -0,0 +1,88 @@
|
||||
import datetime
|
||||
from typing import ClassVar
|
||||
from ..base_nodes import CCBaseNode
|
||||
|
||||
class SchoolTimetableNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'SchoolTimetable'
|
||||
school_timetable_id: str
|
||||
start_date: datetime.date
|
||||
end_date: datetime.date
|
||||
|
||||
class AcademicYearNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'AcademicYear'
|
||||
year: str
|
||||
|
||||
class AcademicTermNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'AcademicTerm'
|
||||
term_name: str
|
||||
term_number: str
|
||||
start_date: datetime.date
|
||||
end_date: datetime.date
|
||||
|
||||
class AcademicTermBreakNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'AcademicTermBreak'
|
||||
term_break_name: str
|
||||
start_date: datetime.date
|
||||
end_date: datetime.date
|
||||
|
||||
class AcademicWeekNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'AcademicWeek'
|
||||
academic_week_number: str
|
||||
start_date: datetime.date
|
||||
week_type: str
|
||||
|
||||
class HolidayWeekNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'HolidayWeek'
|
||||
start_date: datetime.date
|
||||
|
||||
class AcademicDayNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'AcademicDay'
|
||||
academic_day: str
|
||||
date: datetime.date
|
||||
day_of_week: str
|
||||
day_type: str
|
||||
|
||||
class OffTimetableDayNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'OffTimetableDay'
|
||||
date: datetime.date
|
||||
day_of_week: str
|
||||
|
||||
class StaffDayNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'StaffDay'
|
||||
date: datetime.date
|
||||
day_of_week: str
|
||||
|
||||
class HolidayDayNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'HolidayDay'
|
||||
date: datetime.date
|
||||
day_of_week: str
|
||||
|
||||
class AcademicPeriodNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'AcademicPeriod'
|
||||
name: str
|
||||
date: datetime.date
|
||||
start_time: datetime.datetime
|
||||
end_time: datetime.datetime
|
||||
period_code: str
|
||||
|
||||
class RegistrationPeriodNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'RegistrationPeriod'
|
||||
name: str
|
||||
date: datetime.date
|
||||
start_time: datetime.datetime
|
||||
end_time: datetime.datetime
|
||||
period_code: str
|
||||
|
||||
class BreakPeriodNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'BreakPeriod'
|
||||
name: str
|
||||
date: datetime.date
|
||||
start_time: datetime.datetime
|
||||
end_time: datetime.datetime
|
||||
|
||||
class OffTimetablePeriodNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'OffTimetablePeriod'
|
||||
name: str
|
||||
date: datetime.date
|
||||
start_time: datetime.datetime
|
||||
end_time: datetime.datetime
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,23 @@
|
||||
from typing import ClassVar
|
||||
from ..base_nodes import CCBaseNode
|
||||
|
||||
class DepartmentStructureNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'DepartmentStructure'
|
||||
|
||||
class PastoralStructureNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'PastoralStructure'
|
||||
|
||||
class CurriculumStructureNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'CurriculumStructure'
|
||||
|
||||
class SiteStructureNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'SiteStructure'
|
||||
|
||||
class StaffStructureNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'StaffStructure'
|
||||
|
||||
class StudentStructureNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'StudentStructure'
|
||||
|
||||
class ITAdminStructureNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'ITAdminStructure'
|
||||
@@ -0,0 +1,8 @@
|
||||
from typing import ClassVar
|
||||
from ..base_nodes import CCBaseNode
|
||||
|
||||
class WorkerStructureNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'WorkerStructure'
|
||||
|
||||
class UserCalendarStructureNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'UserCalendarStructure'
|
||||
@@ -0,0 +1,5 @@
|
||||
from typing import ClassVar, Optional
|
||||
from ..base_nodes import CCBaseNode
|
||||
|
||||
class WorkerTimetableStructureNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'WorkerTimetableStructure'
|
||||
@@ -0,0 +1,5 @@
|
||||
from typing import ClassVar
|
||||
from .base_nodes import UserBaseNode
|
||||
|
||||
class UserNode(UserBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'User'
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,63 @@
|
||||
import datetime
|
||||
from typing import ClassVar, Optional, List, Union
|
||||
from ..base_nodes import CCBaseNode
|
||||
|
||||
class EntityTimetableBaseNode(CCBaseNode):
|
||||
start_date: datetime.date
|
||||
end_date: datetime.date
|
||||
|
||||
class WorkerTimetableNode(EntityTimetableBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'WorkerTimetable'
|
||||
worker_timetable_id: str
|
||||
|
||||
class TeacherTimetableNode(EntityTimetableBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'TeacherTimetable'
|
||||
teacher_timetable_id: str
|
||||
|
||||
class UserTeacherTimetableNode(EntityTimetableBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'UserTeacherTimetable'
|
||||
user_teacher_timetable_id: str
|
||||
|
||||
class StudentTimetableNode(EntityTimetableBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'StudentTimetable'
|
||||
student_timetable_id: str
|
||||
|
||||
class SchoolAdminTimetableNode(EntityTimetableBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'SchoolAdminTimetable'
|
||||
school_admin_timetable_id: str
|
||||
|
||||
class DeveloperTimetableNode(EntityTimetableBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'DeveloperTimetable'
|
||||
developer_timetable_id: str
|
||||
|
||||
class SuperAdminTimetableNode(EntityTimetableBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'SuperAdminTimetable'
|
||||
super_admin_timetable_id: str
|
||||
|
||||
class TimetableLessonNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'TimetableLesson'
|
||||
subject_class: str
|
||||
date: datetime.date
|
||||
start_time: datetime.time
|
||||
end_time: datetime.time
|
||||
period_code: str
|
||||
|
||||
class PlannedLessonNode(CCBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'PlannedLesson'
|
||||
date: datetime.date
|
||||
start_time: datetime.time
|
||||
end_time: datetime.time
|
||||
period_code: str
|
||||
subject_class: str
|
||||
year_group: str
|
||||
subject: str
|
||||
teacher_code: str
|
||||
planning_status: str
|
||||
topic_code: Optional[str] = None
|
||||
topic_name: Optional[str] = None
|
||||
lesson_code: Optional[str] = None
|
||||
lesson_name: Optional[str] = None
|
||||
learning_statement_codes: Optional[List[str]] = None
|
||||
learning_statements: Optional[List[str]] = None
|
||||
learning_resource_codes: Optional[List[str]] = None
|
||||
learning_resources: Optional[List[str]] = None
|
||||
@@ -0,0 +1,19 @@
|
||||
import datetime
|
||||
from typing import ClassVar
|
||||
from ..base_nodes import WorkerBaseNode
|
||||
|
||||
class SchoolAdminNode(WorkerBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'SchoolAdmin'
|
||||
|
||||
class TeacherNode(WorkerBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'Teacher'
|
||||
|
||||
class StudentNode(WorkerBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'Student'
|
||||
|
||||
class DeveloperNode(WorkerBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'Developer'
|
||||
developer_role: str # To distinguish between admin/developer roles
|
||||
|
||||
class SuperAdminNode(WorkerBaseNode):
|
||||
__primarylabel__: ClassVar[str] = 'SuperAdmin'
|
||||
Reference in New Issue
Block a user