diff --git a/actions/NotesAction.php b/actions/NotesAction.php index 46b409e..68ff53d 100644 --- a/actions/NotesAction.php +++ b/actions/NotesAction.php @@ -15,6 +15,6 @@ class NotesAction extends YesWikiAction public function run() { $noteManager = $this->getService(NoteManager::class); - $noteManager->viewBulletins(); + return $noteManager->viewBulletins(); } } diff --git a/controllers/ApiController.php b/controllers/ApiController.php index 9f8f340..1fcd4e0 100644 --- a/controllers/ApiController.php +++ b/controllers/ApiController.php @@ -53,8 +53,6 @@ class ApiController extends YesWikiController $controle = new Controle($parameters['intitule'], $parameters['matiere'], $parameters['coef'], $eleves); $eleveController->addNotes($controle->getNotes()); - - return new ApiResponse(['parameters' => $controle->getNotes()]); - // return $this->wiki->redirect('?Notes', 200); + return $this->wiki->redirect('?Notes', 200); } } \ No newline at end of file diff --git a/libs/bulletin/Bulletin.lib.php b/libs/bulletin/Bulletin.lib.php index e806f1d..f0aa18b 100644 --- a/libs/bulletin/Bulletin.lib.php +++ b/libs/bulletin/Bulletin.lib.php @@ -24,7 +24,7 @@ class Bulletin { } public function getId() { - return $this->eleve['bf_titre']; + return $this->eleve['id_fiche']; } public function getNom() { @@ -37,11 +37,14 @@ class Bulletin { public function getMoyenne() { $total = 0; + $totalMatieres = 0; foreach ( $this->matieres as $matiere) { - $total += $matiere->getMoyenne(); + if ($matiere->isVisible()) { + $total += $matiere->getMoyenne(); + ++$totalMatieres; + } } - - return $total / count($this->matieres); + return $total / $totalMatieres; } public function getMatieres() { diff --git a/libs/bulletin/Matiere.lib.php b/libs/bulletin/Matiere.lib.php index ffa859e..a7833a4 100644 --- a/libs/bulletin/Matiere.lib.php +++ b/libs/bulletin/Matiere.lib.php @@ -5,6 +5,7 @@ namespace YesWiki\Meeo\Bulletin; include 'tools/meeo/libs/bulletin/Note.lib.php'; use YesWiki\Bazar\Service\EntryManager; +use YesWiki\Meeo\Service\NoteManager; class Matiere { private $id; @@ -17,12 +18,10 @@ class Matiere { $eleveId = $bulletin->getId(); - $entryManager = $wiki->services->get(EntryManager::class); - $entries = $entryManager->search(['formsIds' => 7, 'queries' =>[ - 'listefiche5bf_eleve' => $eleveId, - 'listeListeMatièrebf_matiere' => $id - ]]); - // echo var_dump($entries)."\n\n"; + $noteManager = $wiki->services->get(NoteManager::class); + $entries = $noteManager->getNotes($eleveId, $id); + + // echo "

".var_dump($entries)."

"; foreach ($entries as $entry) { $this->notes[] = new Note($entry['bf_intitule'], $entry['bf_note'], $entry['bf_coef']); } diff --git a/services/NoteManager.php b/services/NoteManager.php index fac8787..157f30b 100644 --- a/services/NoteManager.php +++ b/services/NoteManager.php @@ -5,7 +5,7 @@ namespace YesWiki\Meeo\Service; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use YesWiki\Bazar\Service\EntryManager; use YesWiki\Bazar\Service\ListManager; -use YesWiki\Core\Service\UserManager; +use YesWiki\Core\Controller\AuthController; use YesWiki\Wiki; use YesWiki\Meeo\Bulletin\Bulletin; use YesWiki\Meeo\Service\EleveManager; @@ -15,50 +15,51 @@ class NoteManager { protected $params; protected $entryManager; protected $listManager; - protected $userManager; protected $formId; + protected $authController; - public function __construct( Wiki $wiki, ParameterBagInterface $params, EntryManager $entryManager, ListManager $listManager, UserManager $userManager) + public function __construct( Wiki $wiki, ParameterBagInterface $params, EntryManager $entryManager, ListManager $listManager, AuthController $authController) { $this->wiki = $wiki; $this->params = $params; $this->entryManager = $entryManager; $this->listManager = $listManager; - $this->userManager = $userManager; + $this->authController = $authController; $meeo_config = $this->params->get('meeo'); $this->formId = $meeo_config['notesFormId']; } public function viewBulletins() { + // $eleveIdentifier = 'listefiche'.$meeo_config['elevesFormId'].'bf_eleve'; + // $groupeEE = $meeo_config['groupeEE']; - $eleveIdentifier = 'listefiche'.$meeo_config['elevesFormId'].'bf_eleve'; - $groupeEE = $meeo_config['groupeEE']; + $username = $this->authController->getLoggedUserName(); - if ( $this->userManager->isInGroup($groupeEE, admincheck: false) ) { - $eleves = $this->entryManager->search(['formsIds' => $meeo_config['elevesFormId']]); - $entries = $this->entryManager->search(['formsIds' => $this->formId]); + $eleves = $this->wiki->services->get(EleveManager::class)->getAll(); + // $eleves = $ $this->entryManager->search(['formsIds' => $meeo_config['elevesFormId']]); + $entries = $this->entryManager->search(['formsIds' => $this->formId]); + include 'tools/meeo/libs/bulletin/Bulletin.lib.php'; - include 'tools/meeo/libs/bulletin/Bulletin.lib.php'; - - $bulletins = []; - foreach ( $eleves as $eleve) { - //TODO enlever "Passerelle" - $bulletins[] = new Bulletin($this->wiki, $eleve, "Passerelle"); - } - // echo var_dump($eleves); - // echo var_dump($entries); - // echo var_dump($matieres); - return $this->wiki->render('@meeo/edu_notes.twig', [ - "bulletins" => $bulletins, - ]); - } else { - $entries = $entryManager->search(['formsIds' => $this->formId]); - - return $this->wiki->render('@meeo/eleve_notes.twig', [ - "bulletin" => $bulletin, - ]); + $bulletins = []; + foreach ( $eleves as $eleve) { + //TODO enlever "Passerelle" + $bulletins[] = new Bulletin($this->wiki, $eleve, "Passerelle"); } + // echo "

".var_dump($eleves)."

"; + // echo "

".var_dump($entries)."

"; + // echo "

".var_dump($bulletins)."

"; + + return $this->wiki->render('@meeo/edu_notes.twig', [ + "bulletins" => $bulletins, + ]); + // } else { + // $entries = $entryManager->search(['formsIds' => $this->formId]); + + // return $this->wiki->render('@meeo/eleve_notes.twig', [ + // "bulletin" => $bulletin, + // ]); + // } } public function viewControle() { @@ -77,4 +78,17 @@ class NoteManager { $this->entryManager->create($this->formId, $note); } } + + public function getNotes($eleveId, $matiereId) { + // echo "

".$eleveId."

"; + // echo "

".$matiereId."

"; + $entries = $this->entryManager->search(['formsIds' => $this->formId, + 'queries' =>[ + 'listefiche6bf_eleve' => $eleveId, + 'listeListeMatierebf_matiere' => $matiereId + ] + ]); + // echo "

".var_dump($entries)."

"; + return $entries; + } } \ No newline at end of file diff --git a/templates/eleve_notes.twig b/templates/eleve_notes.twig index 067960f..7747d83 100644 --- a/templates/eleve_notes.twig +++ b/templates/eleve_notes.twig @@ -1,5 +1,6 @@
{% for matiere in bulletin.getMatieres() %} + {% if matiere.isVisible() %}
+ {% endif %} {% endfor %} \ No newline at end of file