diff --git a/classquiz/db/models.py b/classquiz/db/models.py index 63c74d6..8d25793 100644 --- a/classquiz/db/models.py +++ b/classquiz/db/models.py @@ -119,6 +119,8 @@ class SlideElementTypes(str, Enum): TEXT = "TEXT" HEADLINE = "HEADLINE" IMAGE = "IMAGE" + RECTANGLE = "RECTANGLE" + CIRCLE = "CIRCLE" class SlideElement(BaseModel): diff --git a/classquiz/routers/editor.py b/classquiz/routers/editor.py index 7f1459f..1e2ec09 100644 --- a/classquiz/routers/editor.py +++ b/classquiz/routers/editor.py @@ -198,6 +198,7 @@ async def finish_edit(edit_id: str, quiz_input: QuizInput): quiz.description = quiz_input.description quiz.updated_at = datetime.now() quiz.questions = quiz_input.dict()["questions"] + print(quiz.questions) quiz.cover_image = quiz_input.cover_image quiz.background_color = quiz_input.background_color for image in images_to_delete: diff --git a/frontend/src/lib/editor/slide.svelte b/frontend/src/lib/editor/slide.svelte index 712e83b..a0e5ba6 100644 --- a/frontend/src/lib/editor/slide.svelte +++ b/frontend/src/lib/editor/slide.svelte @@ -6,6 +6,8 @@ @@ -190,6 +192,10 @@ {:else if el.type === ElementTypes.Headline} + {:else if el.type === ElementTypes.Rectangle} + + {:else if el.type === ElementTypes.Circle} + {/if} {/each} diff --git a/frontend/src/lib/editor/slides/element_selection.svelte b/frontend/src/lib/editor/slides/element_selection.svelte index ac07cf1..581c46b 100644 --- a/frontend/src/lib/editor/slides/element_selection.svelte +++ b/frontend/src/lib/editor/slides/element_selection.svelte @@ -11,7 +11,9 @@ export let selected_element; const keybinding_list = { t: ElementTypes.Text, - h: ElementTypes.Headline + h: ElementTypes.Headline, + r: ElementTypes.Rectangle, + c: ElementTypes.Circle // "i": ElementTypes.Image }; @@ -50,6 +52,20 @@ type: ElementTypes.Text, icon: undefined, shortcut: 't' + }, + { + name: 'Rectangle', + description: 'Just a rectangle', + type: ElementTypes.Rectangle, + icon: undefined, + shortcut: 'r' + }, + { + name: 'Circle', + description: 'Just a circle', + type: ElementTypes.Circle, + icon: undefined, + shortcut: 'c' } ]; diff --git a/frontend/src/lib/editor/slides/types/circle.svelte b/frontend/src/lib/editor/slides/types/circle.svelte new file mode 100644 index 0000000..2a3b06a --- /dev/null +++ b/frontend/src/lib/editor/slides/types/circle.svelte @@ -0,0 +1,20 @@ + + + +
+ {#if editor} + + {/if} +
diff --git a/frontend/src/lib/editor/slides/types/rectangle.svelte b/frontend/src/lib/editor/slides/types/rectangle.svelte new file mode 100644 index 0000000..502d7c8 --- /dev/null +++ b/frontend/src/lib/editor/slides/types/rectangle.svelte @@ -0,0 +1,20 @@ + + + +
+ {#if editor} + + {/if} +
diff --git a/frontend/src/lib/quiz_types.ts b/frontend/src/lib/quiz_types.ts index fbda89c..b336e93 100644 --- a/frontend/src/lib/quiz_types.ts +++ b/frontend/src/lib/quiz_types.ts @@ -5,9 +5,11 @@ */ export enum ElementTypes { - Text = 'TEXT', - Headline = 'HEADLINE', - Image = 'IMAGE' + Text = 'TEXT', // eslint-disable-line no-unused-vars + Headline = 'HEADLINE', // eslint-disable-line no-unused-vars + Image = 'IMAGE', // eslint-disable-line no-unused-vars + Rectangle = 'RECTANGLE', // eslint-disable-line no-unused-vars + Circle = 'CIRCLE' // eslint-disable-line no-unused-vars } export interface QuizData {