From 7a79630eb48abe3e5229559dd78bf1705456cb75 Mon Sep 17 00:00:00 2001 From: Mawoka Date: Fri, 23 Dec 2022 12:30:12 +0100 Subject: [PATCH] :sparkles: Added circle and rectangle --- classquiz/db/models.py | 2 ++ classquiz/routers/editor.py | 1 + frontend/src/lib/editor/slide.svelte | 8 +++++++- .../editor/slides/element_selection.svelte | 18 ++++++++++++++++- .../src/lib/editor/slides/types/circle.svelte | 20 +++++++++++++++++++ .../lib/editor/slides/types/rectangle.svelte | 20 +++++++++++++++++++ frontend/src/lib/quiz_types.ts | 8 +++++--- 7 files changed, 72 insertions(+), 5 deletions(-) create mode 100644 frontend/src/lib/editor/slides/types/circle.svelte create mode 100644 frontend/src/lib/editor/slides/types/rectangle.svelte 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 {