Loading src/UnicaenAutoform/Controller/FormulaireController.php +8 −1 Original line number Diff line number Diff line Loading @@ -514,6 +514,11 @@ class FormulaireController extends AbstractActionController $champs = $categorie->getChamps(); $champs = array_filter($champs, function (Champ $c) {return $c->estNonHistorise(); }); //retrait des champs non codants todo faire mieux ici $champs = array_filter($champs, function (Champ $c) {return $c->getType()->getCode() !== Champ::TYPE_SPACER;}); $champs = array_filter($champs, function (Champ $c) {return $c->getType()->getCode() !== Champ::TYPE_LABEL;}); usort($champs, function (Champ $a,Champ $b) { return $a->getOrdre() <=> $b->getOrdre(); }); foreach ($champs as $champ) { Loading @@ -523,8 +528,10 @@ class FormulaireController extends AbstractActionController ]; } if (!empty($categorieJson['options'])) { $result[] = $categorieJson; } } return new JsonModel($result); } Loading src/UnicaenAutoform/Entity/Db/Formulaire.php +14 −0 Original line number Diff line number Diff line Loading @@ -76,4 +76,18 @@ class Formulaire implements HistoriqueAwareInterface { { return $this->categories->contains($categorie); } public function hasChamp(Champ $champ_, bool $withHisto = false): bool { foreach ($this->getCategories() as $categorie) { if ($withHisto OR $categorie->estNonHistorise()) { foreach ($categorie->getChamps() as $champ) { if ($withHisto OR $champ->estNonHistorise()) { if ($champ === $champ_) return true; } } } } return false; } } No newline at end of file src/UnicaenAutoform/Service/Champ/ChampService.php +10 −0 Original line number Diff line number Diff line Loading @@ -152,5 +152,15 @@ class ChampService return $array; } public function getChampsAsOptions(): array { $champs = $this->getChamps(); $options = []; foreach ($champs as $champ) { $options[$champ->getId()] = $champ->getLibelle(); } return $options; } } No newline at end of file src/UnicaenAutoform/Service/Formulaire/FormulaireInstanceService.php +14 −12 Original line number Diff line number Diff line Loading @@ -146,16 +146,17 @@ class FormulaireInstanceService $this->update($instance); } public function recopie(FormulaireInstance $instance1, FormulaireInstance $instance2, int $champId1, int $champId2): void public function recopie(FormulaireInstance $instanceFrom, FormulaireInstance $instanceTo, ?int $champFrom, ?int $champTo): void { $reponses = $instance1->getReponses(); if ($champFrom !== null AND $champTo !== null) { $reponses = $instanceFrom->getReponses(); foreach ($reponses as $reponse) { if ($reponse->getChamp()->getId() == $champId1) { $champ = $instance2->getChamp($champId2); if ($reponse->getChamp()->getId() == $champFrom) { $champ = $instanceTo->getChamp($champTo); if ($champ !== null) { $value = $reponse->getReponse(); $new = new FormulaireReponse(); $new->setFormulaireInstance($instance2); $new->setFormulaireInstance($instanceTo); $new->setChamp($champ); $new->setReponse($value); $this->getFormulaireReponseService()->create($new); Loading @@ -163,6 +164,7 @@ class FormulaireInstanceService } } } } public function createInstance(string $code): FormulaireInstance { Loading Loading
src/UnicaenAutoform/Controller/FormulaireController.php +8 −1 Original line number Diff line number Diff line Loading @@ -514,6 +514,11 @@ class FormulaireController extends AbstractActionController $champs = $categorie->getChamps(); $champs = array_filter($champs, function (Champ $c) {return $c->estNonHistorise(); }); //retrait des champs non codants todo faire mieux ici $champs = array_filter($champs, function (Champ $c) {return $c->getType()->getCode() !== Champ::TYPE_SPACER;}); $champs = array_filter($champs, function (Champ $c) {return $c->getType()->getCode() !== Champ::TYPE_LABEL;}); usort($champs, function (Champ $a,Champ $b) { return $a->getOrdre() <=> $b->getOrdre(); }); foreach ($champs as $champ) { Loading @@ -523,8 +528,10 @@ class FormulaireController extends AbstractActionController ]; } if (!empty($categorieJson['options'])) { $result[] = $categorieJson; } } return new JsonModel($result); } Loading
src/UnicaenAutoform/Entity/Db/Formulaire.php +14 −0 Original line number Diff line number Diff line Loading @@ -76,4 +76,18 @@ class Formulaire implements HistoriqueAwareInterface { { return $this->categories->contains($categorie); } public function hasChamp(Champ $champ_, bool $withHisto = false): bool { foreach ($this->getCategories() as $categorie) { if ($withHisto OR $categorie->estNonHistorise()) { foreach ($categorie->getChamps() as $champ) { if ($withHisto OR $champ->estNonHistorise()) { if ($champ === $champ_) return true; } } } } return false; } } No newline at end of file
src/UnicaenAutoform/Service/Champ/ChampService.php +10 −0 Original line number Diff line number Diff line Loading @@ -152,5 +152,15 @@ class ChampService return $array; } public function getChampsAsOptions(): array { $champs = $this->getChamps(); $options = []; foreach ($champs as $champ) { $options[$champ->getId()] = $champ->getLibelle(); } return $options; } } No newline at end of file
src/UnicaenAutoform/Service/Formulaire/FormulaireInstanceService.php +14 −12 Original line number Diff line number Diff line Loading @@ -146,16 +146,17 @@ class FormulaireInstanceService $this->update($instance); } public function recopie(FormulaireInstance $instance1, FormulaireInstance $instance2, int $champId1, int $champId2): void public function recopie(FormulaireInstance $instanceFrom, FormulaireInstance $instanceTo, ?int $champFrom, ?int $champTo): void { $reponses = $instance1->getReponses(); if ($champFrom !== null AND $champTo !== null) { $reponses = $instanceFrom->getReponses(); foreach ($reponses as $reponse) { if ($reponse->getChamp()->getId() == $champId1) { $champ = $instance2->getChamp($champId2); if ($reponse->getChamp()->getId() == $champFrom) { $champ = $instanceTo->getChamp($champTo); if ($champ !== null) { $value = $reponse->getReponse(); $new = new FormulaireReponse(); $new->setFormulaireInstance($instance2); $new->setFormulaireInstance($instanceTo); $new->setChamp($champ); $new->setReponse($value); $this->getFormulaireReponseService()->create($new); Loading @@ -163,6 +164,7 @@ class FormulaireInstanceService } } } } public function createInstance(string $code): FormulaireInstance { Loading