From f6cdc08d5720e0243e0a24360e7903b567b2b0f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Ig=C3=B3n?= Date: Tue, 31 Oct 2023 12:19:46 +0100 Subject: [PATCH 1/2] allow project owner to change project type --- .../Forms/Model/ProjectCampaignForm.php | 23 +++++++++++-------- translations/ca/project.yml | 1 + translations/en/project.yml | 1 + translations/es/project.yml | 1 + 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/Goteo/Library/Forms/Model/ProjectCampaignForm.php b/src/Goteo/Library/Forms/Model/ProjectCampaignForm.php index 151c8543b9..56102a2821 100644 --- a/src/Goteo/Library/Forms/Model/ProjectCampaignForm.php +++ b/src/Goteo/Library/Forms/Model/ProjectCampaignForm.php @@ -45,15 +45,20 @@ public function createForm(): ProjectCampaignForm $builder = $this->getBuilder(); $admin = Session::isAdmin(); + + $builder + ->add('type', ChoiceType::class, [ + 'label' => 'project-campaign-type-label', + 'data' => $project->type ?? $project->getConfig()->getType(), + 'choices' => $this->projectTypeChoices(), + 'required' => false, + 'attr' => [ + 'pre-help' => Text::get('project-campaign-type-prehelp'), + ] + ]); + if ($admin) { $builder - ->add('type', ChoiceType::class, [ - 'label' => 'project-campaign-type-label', - 'row_class' => 'extra', - 'data' => $project->type ?? $project->getConfig()->getType(), - 'choices' => $this->projectTypeChoices(), - 'required' => false - ]) ->add('impact_calculator', BooleanType::class, [ 'label' => 'project-campaign-impact-calculator', 'row_class' => 'extra', @@ -128,7 +133,8 @@ private function projectTypeChoices(): array ]; } - public function save(FormInterface $form = null, $force_save = false) { + public function save(FormInterface $form = null, $force_save = false): ProjectCampaignForm + { if(!$form) $form = $this->getBuilder()->getForm(); if(!$form->isValid() && !$force_save) throw new FormModelException(Text::get('form-has-errors')); @@ -142,7 +148,6 @@ public function save(FormInterface $form = null, $force_save = false) { throw new FormModelException(Text::get('form-sent-error', implode(', ',$errors))); } - $data = $form->getData(); $account = $this->getOption('account'); $account->rebuildData(['allowpp' => $data['allowpp']]); diff --git a/translations/ca/project.yml b/translations/ca/project.yml index 31052396db..c5ba0d7314 100644 --- a/translations/ca/project.yml +++ b/translations/ca/project.yml @@ -165,3 +165,4 @@ project-campaign-activate-impact-calculator: "Al activar la calculadora d'impact project-campaign-type-label: "Escull tipus de campanya" project-campaign-type-campaign: "Campanya" project-campaign-type-permanent: "Permanent" +project-campaign-type-prehelp: "Aquest camp permet escollir el tipus de campanya que es vol fer. Si es vol fer un projecte per rondes s'ha d'escollir `campanya`. Si es vol fer una campanya `permanent`, s'ha d'escollir permanent." diff --git a/translations/en/project.yml b/translations/en/project.yml index 6721d72704..374a5ed738 100644 --- a/translations/en/project.yml +++ b/translations/en/project.yml @@ -162,3 +162,4 @@ project-campaign-activate-impact-calculator: "By activating the impact calculato project-campaign-type-label: "Choose type of Campaign" project-campaign-type-campaign: "Campaign" project-campaign-type-permanent: "Permanent" +project-campaign-type-prehelp: "This field allows you to choose the type of campaign you want to do. If you want to make a project for rounds you have to choose `campaign`. If you want to make a `permanent` campaign, you have to choose permanent." diff --git a/translations/es/project.yml b/translations/es/project.yml index e897a97099..a761fb18a5 100644 --- a/translations/es/project.yml +++ b/translations/es/project.yml @@ -184,3 +184,4 @@ project-campaign-activate-impact-calculator: "Al activar la calculadora de impac project-campaign-type-label: "Escoge tipo de campaña" project-campaign-type-campaign: "Campaña" project-campaign-type-permanent: "Permanente" +project-campaign-type-prehelp: "Este campo permite escoger el tipo de campaña que se quiere hacer. Si se quiere hacer un proyecto por rondas se tiene que escoger `campaña`, si se quiere hacer una campaña permanente se debe escoer `permanente`." From 855ec2e7092ff73036494ee13ce48c5a0c0defae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Ig=C3=B3n?= Date: Tue, 31 Oct 2023 17:04:24 +0100 Subject: [PATCH 2/2] fix project translation typo --- translations/es/project.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/es/project.yml b/translations/es/project.yml index a761fb18a5..c1b0c16a66 100644 --- a/translations/es/project.yml +++ b/translations/es/project.yml @@ -184,4 +184,4 @@ project-campaign-activate-impact-calculator: "Al activar la calculadora de impac project-campaign-type-label: "Escoge tipo de campaña" project-campaign-type-campaign: "Campaña" project-campaign-type-permanent: "Permanente" -project-campaign-type-prehelp: "Este campo permite escoger el tipo de campaña que se quiere hacer. Si se quiere hacer un proyecto por rondas se tiene que escoger `campaña`, si se quiere hacer una campaña permanente se debe escoer `permanente`." +project-campaign-type-prehelp: "Este campo permite escoger el tipo de campaña que se quiere hacer. Si se quiere hacer un proyecto por rondas se tiene que escoger `campaña`, si se quiere hacer una campaña permanente se debe escoger `permanente`."