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();
$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.
*

@ -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.
*
@ -36,11 +25,11 @@ class CheckBoxQuestion extends BoxQuestion
$possibleResponses = $this->getPossibleResponses();
$categories = $this->getCategories();
$html = "\t\t\t<div class='question'>
$html = "\t\t\t<div data-id='$id' class='question'>
<label>$content</label>\n";
for ($i = 0; $i < count($possibleResponses); $i++) {
$categoriesSplit = $id."#".$possibleResponses[$i]."||";
$categoriesSplit = $possibleResponses[$i]."||";
foreach ($categories[$i] as $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;
}
/**
* @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.
*
@ -36,12 +25,12 @@ class ListBoxQuestion extends BoxQuestion
$possibleResponses = $this->getPossibleResponses();
$categories = $this->getCategories();
$html = "\t\t\t<div class='question'>
$html = "\t\t\t<div data-id='$id' class='question'>
<label>$content</label>
<select name='answers[]'>\n";
for ($i = 0; $i < count($possibleResponses); $i++) {
$categoriesSplit = $id."#".$possibleResponses[$i]."||";
$categoriesSplit = $possibleResponses[$i]."||";
foreach ($categories[$i] as $category) {
$categoriesSplit.= $category."_";
}

@ -5,7 +5,7 @@ namespace BusinessClass;
/**
* Définit une question.
*/
abstract class Question implements IResponseProcessingStrategy, IPrintQuestionStrategy
abstract class Question implements IPrintQuestionStrategy
{
/**
* @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.
*

@ -7,16 +7,6 @@ namespace BusinessClass;
*/
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.
*
@ -25,10 +15,11 @@ class TextQuestion extends Question
public function printStrategy(): string
{
$content = $this->getContent();
$id = $this->getId();
return "\t\t\t<div class='question'>
return "\t\t\t<div class='question'>
<label>$content</label>
<input type='text' name='answers[]' />
<input data-id='$id' type='text' name='answers[]' />
</div>\n";
}
}

@ -8,6 +8,12 @@ $views['admin'] = 'Views/HTML/admin.php';
$views['possibleResponsesForm'] = 'Views/HTML/possibleResponsesForm.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;
$pseudoMaxLength=50;
$passwordMaxLength=500;

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

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

@ -20,14 +20,17 @@ class ModelCandidate
public function submitForm(): void
{
$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 = [];
$category = [];
foreach ($answersAndCategories as $answerAndCategory) {
$idAndAnswer = explode("||", $answerAndCategory)[0];
$id[] = explode("#", $idAndAnswer)[0];
$answer[] = explode("#", $idAndAnswer)[1];
$answer[] = explode("||", $answerAndCategory)[0];
$categs = explode("||", $answerAndCategory)[1];
$categs = explode("_", $categs);
array_pop($categs);
@ -35,7 +38,7 @@ class ModelCandidate
}
$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) {
$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</form>\n
\t</div>\n";

@ -23,4 +23,16 @@
</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>

Loading…
Cancel
Save