Closed daniel-illi closed 1 month ago
Beim Testen ist mir aufgefallen, dass ich beim Spezifizieren noch einen Fehler gemacht habe. Der Check bezüglich "self-service" sollte eigentlich nur im Stammsektionswechsel Wizard zum Zug kommen. Beim Zusatzsektion Beitritt ist dieser nicht relevant, da ja eine Neuanmeldung in der korrekten Neuanmeldungsgruppe erstellt wird. ~Das müssen wir noch anpassen bevor wir mergen.~ wird in follow-up ticket korrigiert: https://github.com/hitobito/hitobito_sac_cas/issues/708
depends on #602, #612, #653
Vor der Umsetzung bitte mit @daniel-illi besprechen.
Mockup
Tech-Spec
Ein POC existiert auf dem branch poc/wizard-registration und ein dazugehöriger Draft PR https://github.com/hitobito/hitobito/pull/2653/files?w=1 / https://github.com/hitobito/hitobito_sac_cas/pull/603/files?w=1
Dieser soll als Vorlage für die Implementation verwendet werden.
Wizard Step
Wizards::Steps::MembershipTerminatedInfo
, Titel: "Mitgliedschaft gekündigt"wizard.membership_terminated?
)Wizard Step
Wizards::Steps::JoinZusatzsektion::ChooseMembership
Titel "Familienmitgliedschaft"person.sac_family_main_person
kann typ gewählt werdentype
: select mit optionsself
: "für mich selber"family
: "für die ganze Familie"Wizard Step
Wizards::Steps::ChooseSektion
, Titel: "Sektion wählen"Group::SektionsNeuanmeldungenSektion
):current_user
SAC Mitarbeiter ist, Warnung anzeigen:current_user
KEIN SAC Mitarbeiter ist, Validierungsfehler:Wizard Step
Wizards::Steps::JoinZusatzsektion::Summary
, Titel: "Bestätigung"Wizard
Wizards::JoinZusatzsektion include Wizards::Registering
Der Wizard verwendet für die Rollenmutationen das
Memberships::JoinZusatzsektion
.#step_after
implementierenin
#valid?
auf demlast_step
zusätzlich die#join_operation
validieren. Falls diese invalid ist, deren errors ins errors des wizards übernehmen.in
#save!
dasjoin_operation.save!
aufrufenAbility
on(Wizards::JoinZusatzsektion).may(:create)
People::SacMembership#active?
)person == current_user || current_user.sac_mitarbeiter?
(SacCas::SAC_MITARBEITER_ROLES
)Controller
People::ZusatzsektionJoinsController
auf Basis desWizards::BaseController
des POCauthorize!(:create, entry)
def model_class
:Wizards::JoinZusatzsektion
def redirect_target
:group_person_path
Views
app/views/people/zusatzsektion_joins/new.html.haml
,new.js.haml
,_form.html.haml
,_fields.html.haml
analogapp/views/people/membership_changes/*.haml
des POCIn partial
app/views/people/_roles.html.haml
Button einfügen mit link aufgroup_person_zusatzsektion_join_path
.Link/Dropdown menu nur anzeigen, falls
current_user
für die Person einen Zusatzsektions Beitritt initiieren darf: zuvor definierte Ability verwenden siehe MockupToDo