Merge ResponseCandidate into Master
continuous-integration/drone/push Build is passing Details

interestingProfiles
Alexis 2 years ago
parent 5393854b13
commit fd65b34749

@ -58,7 +58,7 @@ class GatewayListResponseOfCandidate
)); ));
} }
public function insertListResponsesOfCandidate($id, $answer, $category, $titleForm) public function insertListResponsesOfCandidate($id, $answer, $category, $titleForm): void
{ {
$gatewayResponse = new GatewayResponse(); $gatewayResponse = new GatewayResponse();
$gatewayQuestion = new GatewayQuestion(); $gatewayQuestion = new GatewayQuestion();

@ -33,15 +33,6 @@ abstract class BoxQuestion extends Question
} }
} }
/**
* Permet de définir la manière donc la réponse doit être traitée
*
* @return void
*/
abstract public function responseStrategy();
/** /**
* Permet de définir la manière dont la question doit s'afficher en HTML. * Permet de définir la manière dont la question doit s'afficher en HTML.
* *

@ -13,17 +13,6 @@ class CheckBoxQuestion extends BoxQuestion
} }
/**
* Permet de définir la manière donc la réponse doit être traitée
*
* @return void
*/
public function responseStrategy(): void
{
echo "Implement responseStrategy() method.";
}
/** /**
* Permet de définir la manière dont la question doit s'afficher en HTML. * Permet de définir la manière dont la question doit s'afficher en HTML.
* *
@ -36,11 +25,11 @@ class CheckBoxQuestion extends BoxQuestion
$possibleResponses = $this->getPossibleResponses(); $possibleResponses = $this->getPossibleResponses();
$categories = $this->getCategories(); $categories = $this->getCategories();
$html = "\t\t\t<div class='question'> $html = "\t\t\t<div data-id='$id' class='question'>
<label>$content</label>\n"; <label>$content</label>\n";
for ($i = 0; $i < count($possibleResponses); $i++) { for ($i = 0; $i < count($possibleResponses); $i++) {
$categoriesSplit = $id."#".$possibleResponses[$i]."||"; $categoriesSplit = $possibleResponses[$i]."||";
foreach ($categories[$i] as $category) { foreach ($categories[$i] as $category) {
$categoriesSplit.= $category."_"; $categoriesSplit.= $category."_";
} }

@ -1,16 +0,0 @@
<?php
namespace BusinessClass;
/**
* Définit la gestion des réponses à une question.
*/
interface IResponseProcessingStrategy
{
/**
* Permet de définir la manière donc la réponse doit être traitée
*
* @return void
*/
public function responseStrategy();
}

@ -27,6 +27,7 @@ class Keyword
$this->word = $word; $this->word = $word;
} }
/** /**
* @return string * @return string
*/ */

@ -13,17 +13,6 @@ class ListBoxQuestion extends BoxQuestion
} }
/**
* Permet de définir la manière donc la réponse doit être traitée
*
* @return void
*/
public function responseStrategy(): void
{
echo "Implement responseStrategy() method.";
}
/** /**
* Permet de définir la manière dont la question doit s'afficher en HTML. * Permet de définir la manière dont la question doit s'afficher en HTML.
* *
@ -36,12 +25,12 @@ class ListBoxQuestion extends BoxQuestion
$possibleResponses = $this->getPossibleResponses(); $possibleResponses = $this->getPossibleResponses();
$categories = $this->getCategories(); $categories = $this->getCategories();
$html = "\t\t\t<div class='question'> $html = "\t\t\t<div data-id='$id' class='question'>
<label>$content</label> <label>$content</label>
<select name='answers[]'>\n"; <select name='answers[]'>\n";
for ($i = 0; $i < count($possibleResponses); $i++) { for ($i = 0; $i < count($possibleResponses); $i++) {
$categoriesSplit = $id."#".$possibleResponses[$i]."||"; $categoriesSplit = $possibleResponses[$i]."||";
foreach ($categories[$i] as $category) { foreach ($categories[$i] as $category) {
$categoriesSplit.= $category."_"; $categoriesSplit.= $category."_";
} }

@ -5,7 +5,7 @@ namespace BusinessClass;
/** /**
* Définit une question. * Définit une question.
*/ */
abstract class Question implements IResponseProcessingStrategy, IPrintQuestionStrategy abstract class Question implements IPrintQuestionStrategy
{ {
/** /**
* @var int * @var int
@ -29,14 +29,6 @@ abstract class Question implements IResponseProcessingStrategy, IPrintQuestionSt
} }
/**
* Permet de définir la manière donc la réponse doit être traitée
*
* @return void
*/
abstract public function responseStrategy();
/** /**
* Permet de définir la manière dont la question doit s'afficher en HTML. * Permet de définir la manière dont la question doit s'afficher en HTML.
* *

@ -7,16 +7,6 @@ namespace BusinessClass;
*/ */
class TextQuestion extends Question class TextQuestion extends Question
{ {
/**
* Permet de définir la manière donc la réponse doit être traitée
*
* @return void
*/
public function responseStrategy(): void
{
echo "Implement responseStrategy() method.";
}
/** /**
* Permet de définir la manière dont la question doit s'afficher en HTML. * Permet de définir la manière dont la question doit s'afficher en HTML.
* *
@ -25,10 +15,11 @@ class TextQuestion extends Question
public function printStrategy(): string public function printStrategy(): string
{ {
$content = $this->getContent(); $content = $this->getContent();
$id = $this->getId();
return "\t\t\t<div class='question'> return "\t\t\t<div class='question'>
<label>$content</label> <label>$content</label>
<input type='text' name='answers[]' /> <input data-id='$id' type='text' name='answers[]' />
</div>\n"; </div>\n";
} }
} }

@ -8,6 +8,12 @@ $views['admin'] = 'Views/HTML/admin.php';
$views['possibleResponsesForm'] = 'Views/HTML/possibleResponsesForm.php'; $views['possibleResponsesForm'] = 'Views/HTML/possibleResponsesForm.php';
$views['continue'] = 'Views/HTML/continue.php'; $views['continue'] = 'Views/HTML/continue.php';
$googleApis = "https://fonts.googleapis.com";
$googleStatic = "https://fonts.gstatic.com";
$poppins = "https://fonts.googleapis.com/css2?family=Poppins:wght@300&display=swap";
$icon = "https://cdn.uca.fr/images/favicon/favicon.ico";
$logoUCA = "https://cdn.uca.fr/images/logos/logo_uca_mini_light.png";
$emailMaxLength=150; $emailMaxLength=150;
$pseudoMaxLength=50; $pseudoMaxLength=50;
$passwordMaxLength=500; $passwordMaxLength=500;

@ -20,10 +20,10 @@ class ControllerAdmin
public function addQuestion(): void public function addQuestion(): void
{ {
$type = $_POST['type']; $type = $_POST['type'];
$idQuestion = (new ModelAdmin())->addQuestion();
if (strcmp($type, "BusinessClass\TextQuestion") == 0) { if (strcmp($type, "BusinessClass\TextQuestion") == 0) {
$this->goToAdminPage(); $this->goToAdminPage();
} else { } else {
$idQuestion = (new ModelAdmin())->addQuestion();
$categories = (new ModelAdmin())->getCategories(); $categories = (new ModelAdmin())->getCategories();
$questionContent = $_POST['question']; $questionContent = $_POST['question'];
global $rep, $views; global $rep, $views;
@ -106,5 +106,6 @@ class ControllerAdmin
public function addKeyword(): void public function addKeyword(): void
{ {
(new ModelAdmin())->addKeyword(); (new ModelAdmin())->addKeyword();
$this->goToAdminPage();
} }
} }

@ -45,6 +45,9 @@ class ModelAdmin
$idQuestion = $_POST['idQuestion']; $idQuestion = $_POST['idQuestion'];
$response = $_POST['response']; $response = $_POST['response'];
$categories = $_POST['categories']; $categories = $_POST['categories'];
if($categories == null) {
$categories = [];
}
(new GatewayQuestion())->insertResponseInQuestion($response, $categories, $idQuestion); (new GatewayQuestion())->insertResponseInQuestion($response, $categories, $idQuestion);
} }

@ -20,14 +20,17 @@ class ModelCandidate
public function submitForm(): void public function submitForm(): void
{ {
$answersAndCategories = $_POST['answers']; $answersAndCategories = $_POST['answers'];
$dataIds = null;
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'submitForm') {
$dataIdsJson = $_POST['data_ids'];
$dataIds = json_decode($dataIdsJson);
}
$id = [];
$answer = []; $answer = [];
$category = []; $category = [];
foreach ($answersAndCategories as $answerAndCategory) { foreach ($answersAndCategories as $answerAndCategory) {
$idAndAnswer = explode("||", $answerAndCategory)[0]; $answer[] = explode("||", $answerAndCategory)[0];
$id[] = explode("#", $idAndAnswer)[0];
$answer[] = explode("#", $idAndAnswer)[1];
$categs = explode("||", $answerAndCategory)[1]; $categs = explode("||", $answerAndCategory)[1];
$categs = explode("_", $categs); $categs = explode("_", $categs);
array_pop($categs); array_pop($categs);
@ -35,7 +38,7 @@ class ModelCandidate
} }
$titleForm = (new GatewayForm())->getForm()[0]["title"]; $titleForm = (new GatewayForm())->getForm()[0]["title"];
(new GatewayListResponseOfCandidate())->insertListResponsesOfCandidate($id, $answer, $category, $titleForm); (new GatewayListResponseOfCandidate())->insertListResponsesOfCandidate($dataIds, $answer, $category, $titleForm);
} }
@ -72,6 +75,7 @@ class ModelCandidate
if (count($questions) > 0) { if (count($questions) > 0) {
$html.= "\t\t\t<input type='submit'>\n $html.= "\t\t\t<input type='submit'>\n
\t\t\t<input type='hidden' name='data_ids' value=''>
\t\t\t<input type='hidden' name='action' value='submitForm'> \t\t\t<input type='hidden' name='action' value='submitForm'>
\t\t</form>\n \t\t</form>\n
\t</div>\n"; \t</div>\n";

@ -23,4 +23,16 @@
</body> </body>
<script>
let dataIds = [];
let elements = document.querySelectorAll('[data-id]');
elements.forEach(function(element) {
dataIds.push(element.getAttribute('data-id'));
});
let dataIdsInput = document.querySelector('input[name="data_ids"]');
dataIdsInput.value = JSON.stringify(dataIds);
</script>
</html> </html>

Loading…
Cancel
Save