Move the "physical workshop needs a host" validation onto Workshop
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 78/100
Direção de pesquisa
Start with Admin::WorkshopsController, especially workshop_type_valid? and physical_workshop_and_no_host?, then inspect the Workshop model and existing admin workshop controller specs. Move the physical-workshop host rule into Workshop while preserving the host error message, add model specs for the validation, and run the existing controller specs to confirm the flash behaviour remains unchanged.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Parent: #2938
Problem
Admin::WorkshopsController enforces the rule "a physical workshop must have a host" in the controller (workshop_type_valid? plus physical_workshop_and_no_host?), adding a validation error from the controller:
def workshop_type_valid?
return true unless physical_workshop_and_no_host?(@workshop)
@workshop.errors.add(:host, "can't be blank")
false
end
Validation rules belong on the model so create, update, and any future caller get them for free.
Proposed change
- Move the rule into a
Workshopvalidation, reusing the controller's intent and error message (host"can't be blank"). - Delete
workshop_type_valid?andphysical_workshop_and_no_host?from the controller; thecreate/updateflows keep their existing flash behaviour via@workshop.errors.
Acceptance
- Creating/updating a physical workshop without a host fails with the same error message as today.
- Model specs cover the new validation; existing admin workshop controller specs pass.
- Linguagem predominante
- Ruby
- Estrelas
- 106
- Forks
- 208
- Merge médio
- 19h 51min
- PRs com merge (30d)
- 57
Preparar o ambiente
- Inclui um Dockerfile ou arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de codebar/planner
-
Preload workshop_host in DashboardQuery.upcoming_events_for_user (per-workshop N+1 on /dashboard)Abertaperformance
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
codebar/planner#3070 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 3/5 Meio dia Facilidade para iniciantes 35/100
codebar/planner#3069 · 1 comentário · 1 reação ·
Mantenedores costumam responder em até 1 dia
-
Dual Invitiation issueTalvez já em andamento @mroderick assumiu há 18 dias. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 42/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 28/100
codebar/planner#3008 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
Todas as issues de codebar/planner
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
openfoodfoundation/openfoodnetwork#14970 ·
Mantenedores costumam responder em até 1 dia
-
JWT::EncodedToken raises TypeError for a non-object headerTalvez já em andamento @anakinj assumiu hoje. Abertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 Menos de uma hora Facilidade para iniciantes 70/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
pulibrary/pdc_describe#2502 ·
Mantenedores costumam responder em até 1 dia