mirror of
https://github.com/rzmk/learnhouse.git
synced 2025-12-19 04:19:25 +00:00
feat: add Assignments, Tasks, Submissions CRUD
This commit is contained in:
parent
cd2397f4f7
commit
47782b57bc
32 changed files with 1719 additions and 218 deletions
|
|
@ -1,72 +0,0 @@
|
|||
from typing import Optional
|
||||
from sqlalchemy import JSON, Column, ForeignKey, Integer
|
||||
from sqlmodel import Field, SQLModel
|
||||
from enum import Enum
|
||||
|
||||
|
||||
class ActivityTypeEnum(str, Enum):
|
||||
TYPE_VIDEO = "TYPE_VIDEO"
|
||||
TYPE_DOCUMENT = "TYPE_DOCUMENT"
|
||||
TYPE_DYNAMIC = "TYPE_DYNAMIC"
|
||||
TYPE_ASSESSMENT = "TYPE_ASSESSMENT"
|
||||
TYPE_CUSTOM = "TYPE_CUSTOM"
|
||||
|
||||
|
||||
class ActivitySubTypeEnum(str, Enum):
|
||||
# Dynamic
|
||||
SUBTYPE_DYNAMIC_PAGE = "SUBTYPE_DYNAMIC_PAGE"
|
||||
# Video
|
||||
SUBTYPE_VIDEO_YOUTUBE = "SUBTYPE_VIDEO_YOUTUBE"
|
||||
SUBTYPE_VIDEO_HOSTED = "SUBTYPE_VIDEO_HOSTED"
|
||||
# Document
|
||||
SUBTYPE_DOCUMENT_PDF = "SUBTYPE_DOCUMENT_PDF"
|
||||
SUBTYPE_DOCUMENT_DOC = "SUBTYPE_DOCUMENT_DOC"
|
||||
# Assessment
|
||||
SUBTYPE_ASSESSMENT_QUIZ = "SUBTYPE_ASSESSMENT_QUIZ"
|
||||
# Custom
|
||||
SUBTYPE_CUSTOM = "SUBTYPE_CUSTOM"
|
||||
|
||||
|
||||
class ActivityBase(SQLModel):
|
||||
name: str
|
||||
activity_type: ActivityTypeEnum = ActivityTypeEnum.TYPE_CUSTOM
|
||||
activity_sub_type: ActivitySubTypeEnum = ActivitySubTypeEnum.SUBTYPE_CUSTOM
|
||||
content: dict = Field(default={}, sa_column=Column(JSON))
|
||||
published_version: int
|
||||
version: int
|
||||
|
||||
|
||||
class Activity(ActivityBase, table=True):
|
||||
id: Optional[int] = Field(default=None, primary_key=True)
|
||||
org_id: int = Field(
|
||||
sa_column=Column(Integer, ForeignKey("organization.id", ondelete="CASCADE"))
|
||||
)
|
||||
course_id: int = Field(
|
||||
default=None,
|
||||
sa_column=Column(Integer, ForeignKey("course.id", ondelete="CASCADE")),
|
||||
)
|
||||
activity_uuid: str = ""
|
||||
creation_date: str = ""
|
||||
update_date: str = ""
|
||||
|
||||
|
||||
class ActivityCreate(ActivityBase):
|
||||
chapter_id: int
|
||||
pass
|
||||
|
||||
|
||||
class ActivityUpdate(ActivityBase):
|
||||
name: Optional[str]
|
||||
activity_type: Optional[ActivityTypeEnum]
|
||||
activity_sub_type: Optional[ActivitySubTypeEnum]
|
||||
content: dict = Field(default={}, sa_column=Column(JSON))
|
||||
published_version: Optional[int]
|
||||
version: Optional[int]
|
||||
|
||||
|
||||
class ActivityRead(ActivityBase):
|
||||
id: int
|
||||
activity_uuid: str
|
||||
creation_date: str
|
||||
update_date: str
|
||||
pass
|
||||
Loading…
Add table
Add a link
Reference in a new issue