From 4c62bc4de8aa18dab34c8f525d774f67a40f8746 Mon Sep 17 00:00:00 2001 From: Tiago Scholten Date: Tue, 13 Oct 2026 13:37:57 +0200 Subject: [PATCH] started working on activity system --- src/fiber_package/events/activity.py | 3 ++ src/fiber_package/events/notes.txt | 48 ++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 src/fiber_package/events/notes.txt diff --git a/src/fiber_package/events/activity.py b/src/fiber_package/events/activity.py index 0ee85dc..969e745 100644 --- a/src/fiber_package/events/activity.py +++ b/src/fiber_package/events/activity.py @@ -10,6 +10,9 @@ class ActivityModel(CommunicationModel): Field(pattern=CommunicationCategory.activity) ] + slug: str + # unique short name used in the public URL + start_time: datetime end_time: datetime diff --git a/src/fiber_package/events/notes.txt b/src/fiber_package/events/notes.txt new file mode 100644 index 0000000..f19315c --- /dev/null +++ b/src/fiber_package/events/notes.txt @@ -0,0 +1,48 @@ +Okay some ideas: + +We want a modular system. +A signup form = list of signup questions +A signup = list of signup answers + + +Examples of questions: +* Dietary restrictions +* Insurance info +* Pick option from list +* Team (interesting one, as people can also make new teams) + + +class SignupQuestion +--> SignupQuestionDiet, SignupQuestionInsurance, SignupQuestionOption .... +Questions differentiate through enum question_type +Questions can have parameters like Option + +-------------- + +Every SignupQuestionXYZ has a SignupAnswerXYZ + + +An activity consists of: +* usual event stuff, email, max_attendees, .... +* a slug! +* dict of SignupQuestions +* list of QuestionOrder + +A signup then consists of: +* ActivityRef (what activity) +* EntityRef (who signed up) +* optional payment_id +* optional is_reserve +* optional confirmed (true if paid) +* dict of SignupAnswers + +-------------- + +When saving a signup, we check: +* get activity +* is person allowed to sign up? +* do we have enough signup answers +* for every answer: does answer validate type of question? + + +