diff --git a/Controller/AdminController.php b/Controller/AdminController.php index 93b07ca..66a4b7d 100644 --- a/Controller/AdminController.php +++ b/Controller/AdminController.php @@ -72,6 +72,7 @@ class AdminController extends AbstractController { const _STATUS_VIEWABLE = 0; const _STATUS_MODERATE = 1; const _STATUS_FOREXAM = 2; + const _STATUS_HIDDENST = 3; /** * @var ManagerRegistry @@ -1451,7 +1452,7 @@ public function examineall(Request $request) :Response { * _findHidden * @return array */ - public function _findHidden($inStatus = 2) : array { + public function _findHidden($inStatus = self::_STATUS_FOREXAM) : array { //get them all $qb = $this->entityManager->createQueryBuilder(); // add select and from params @@ -1489,6 +1490,30 @@ public function hiddentopublic(Request $request) : RedirectResponse{ return $this->redirect($this->generateUrl('paustianquickcheckmodule_admin_index')); } + /** + * @Route("/hiddentohiddenst") + * @Theme("admin") + * @param Request $request + * @return RedirectResponse + * @throws AccessDeniedException + */ + + public function hiddentohiddenst(Request $request) : RedirectResponse{ + // Security check - important to do this as early as possible to avoid + // potential security holes or just too much wasted processing + if (!$this->hasPermission($this->name . '::', '::', ACCESS_ADMIN)) { + throw new AccessDeniedException(); + } + $questions = $this->_findHidden(); + + foreach ($questions as $question){ + $question->setStatus(AdminController::_STATUS_HIDDENST); + $this->entityManager->merge($question); + } + $this->entityManager->flush(); + $this->addFlash('status', $this->trans('Hidden student questions for exam moved to hidden from students.')); + return $this->redirect($this->generateUrl('paustianquickcheckmodule_admin_index')); + } /** * @Route("/hiddenstudenttopublic") * @Theme("admin") @@ -1503,7 +1528,7 @@ public function hiddenstudenttopublic(Request $request) : RedirectResponse{ if (!$this->hasPermission($this->name . '::', '::', ACCESS_ADMIN)) { throw new AccessDeniedException(); } - $questions = $this->_findHidden(3); + $questions = $this->_findHidden(self::_STATUS_HIDDENST); foreach ($questions as $question){ $question->setStatus(AdminController::_STATUS_VIEWABLE); diff --git a/Menu/ExtensionMenu.php b/Menu/ExtensionMenu.php index 913239a..ca19a2f 100644 --- a/Menu/ExtensionMenu.php +++ b/Menu/ExtensionMenu.php @@ -120,7 +120,7 @@ private function getAdmin(): ?ItemInterface 'route' => 'paustianquickcheckmodule_admin_examineall' ]); - $menu['Processing']->addChild('Move Hidden Questions to public', [ + $menu['Processing']->addChild('Move Hidden Exam Questions to public', [ 'route' => 'paustianquickcheckmodule_admin_hiddentopublic' ]); @@ -128,6 +128,10 @@ private function getAdmin(): ?ItemInterface 'route' => 'paustianquickcheckmodule_admin_hiddenstudenttopublic' ]); + $menu['Processing']->addChild('Move Hidden Exam Questions to Hidden Student Questions', [ + 'route' => 'paustianquickcheckmodule_admin_hiddentohiddenst' + ]); + $menu['Processing']->addChild('Import questions from XML file', [ 'route' => 'paustianquickcheckmodule_admin_importquiz' ]); diff --git a/Resources/views/Rmd/rmd_export.rmd.twig b/Resources/views/Rmd/rmd_export.rmd.twig index a6622a1..68f4b59 100644 --- a/Resources/views/Rmd/rmd_export.rmd.twig +++ b/Resources/views/Rmd/rmd_export.rmd.twig @@ -14,7 +14,7 @@ Solution Answerlist ---------- {% for solution in solutions %} -* {{ solution|raw }} +* {% endfor %} Meta-information diff --git a/composer.json b/composer.json index 57f67c2..983e164 100755 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { "name": "paustian/quickcheck-module", - "version": "4.3.3", + "version": "4.3.4", "description": "Module for creating quizzes that you can attach to other modules", "type": "zikula-module", "license": "LGPL-3.0+",