From 1ebeee196e91e77b9008a69c63dbbf705b0fdab1 Mon Sep 17 00:00:00 2001 From: mckmonster Date: Thu, 18 Jul 2024 21:18:59 +0200 Subject: [PATCH] =?UTF-8?q?[Eleves]=20D=C3=A9placement=20du=20code=20dans?= =?UTF-8?q?=20EleveManager?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- actions/ElevesAction.php | 14 +++--------- config.yaml | 8 +++---- controllers/ApiController.php | 15 +++++-------- services/EleveManager.php | 42 +++++++++++++++++++++++++++++++++++ templates/edu_eleves.twig | 2 +- 5 files changed, 56 insertions(+), 25 deletions(-) create mode 100644 services/EleveManager.php diff --git a/actions/ElevesAction.php b/actions/ElevesAction.php index 286a232..2c8c739 100644 --- a/actions/ElevesAction.php +++ b/actions/ElevesAction.php @@ -3,6 +3,7 @@ use YesWiki\Core\YesWikiAction; use YesWiki\Bazar\Service\EntryManager; use YesWiki\Bazar\Service\ListManager; +use YesWiki\Meeo\Service\EleveManager; class ElevesAction extends YesWikiAction { @@ -13,16 +14,7 @@ class ElevesAction extends YesWikiAction public function run() { - $meeo_config = $this->params->get('meeo'); - $formId = $meeo_config['elevesFormId']; - - $entryManager = $this->getService(EntryManager::class); - $eleves = $entryManager->search(['formsIds' => $formId]); - // echo '

'.var_dump($eleves).'

'; - - $listManager = $this->getService(ListManager::class); - $classes = $listManager->getOne('ListeClasses'); - - return $this->render('@meeo/edu_eleves.twig', ['eleves' => $eleves, 'classes' => $classes['label']]); + $eleveManager = $this->getService(EleveManager::class); + return $eleveManager->view(); } } \ No newline at end of file diff --git a/config.yaml b/config.yaml index d4706b2..5ea0822 100644 --- a/config.yaml +++ b/config.yaml @@ -10,9 +10,9 @@ services: autowire: true public: true - # YesWiki\MeeO\Service\: - # resource: 'services/*' + YesWiki\Meeo\Service\: + resource: 'services/*' # Allows to use controllers as services - YesWiki\MeeO\Controller\: - resource: 'controllers/*' + # YesWiki\MeeO\Controller\: + # resource: 'controllers/*' diff --git a/controllers/ApiController.php b/controllers/ApiController.php index 3ee2f75..d1d05f4 100644 --- a/controllers/ApiController.php +++ b/controllers/ApiController.php @@ -6,33 +6,30 @@ use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; use YesWiki\Core\ApiResponse; use YesWiki\Core\YesWikiController; +use YesWiki\Meeo\Service\EleveManager; class ApiController extends YesWikiController { - /** * @Route("/api/meeo/eleves",methods={"POST"},options={"acl":{"public"}}) */ public function eleveUpdate(Request $request) { + $eleveController = $this->getService(EleveManager::class); $content = $request->getContent(); parse_str($content, $parameters); - $result = []; - + $datas = []; foreach ($parameters as $cle => $valeur) { $clef_action = explode('_', $cle); if ($clef_action[1] == 'classe' && $valeur != 'aucune') { - $result[] = 'Change la classe de '.$clef_action[0].' pour '.$valeur; + $datas[] = $eleveController->updateClasse($clef_action[0], $valeur); } if ($clef_action[1] == 'del') { - $result[] = 'Suppression de '.$clef_action[0]; + $eleveController->del($clef_action[0]); } } - return new ApiResponse( - ['result'=> $result], - Response::HTTP_CREATED - ); + return $this->wiki->redirect('?Eleves', 200); } } \ No newline at end of file diff --git a/services/EleveManager.php b/services/EleveManager.php new file mode 100644 index 0000000..65fa12b --- /dev/null +++ b/services/EleveManager.php @@ -0,0 +1,42 @@ +get('meeo'); + $this->wiki = $wiki; + $this->formId = $meeo_config['elevesFormId']; + $this->entryManager = $entryManager; + $this->listManager = $listManager; + } + + public function del($id) { + $this->entryManager->delete($id); + } + + public function updateClasse($id, $classe) { + return $this->entryManager->update($id, ['listeListeClassesbf_classe' => $classe, 'antispam' => true]); + } + + public function view() { + $eleves = $this->entryManager->search(['formsIds' => $this->formId]); + // echo '

'.var_dump($eleves).'

'; + + $classes = $this->listManager->getOne('ListeClasses'); + + return $this->wiki->render('@meeo/edu_eleves.twig', ['eleves' => $eleves, 'classes' => $classes['label']]); + } +} \ No newline at end of file diff --git a/templates/edu_eleves.twig b/templates/edu_eleves.twig index d38e3c8..b3f6d43 100644 --- a/templates/edu_eleves.twig +++ b/templates/edu_eleves.twig @@ -11,7 +11,7 @@