Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 19 additions & 1 deletion class/actions_digiquali.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -743,7 +743,25 @@ public function doPreMassActions(array $parameters): int
$formQuestion = [
['type' => 'select', 'name' => 'sheet', 'label' => $langs->trans('Sheet'), 'values' => $sheetArray, 'morecss' => 'maxwidth300 maxwidth200onsmartphone']
];
$this->resprints = $form->formconfirm($_SERVER['PHP_SELF'], $langs->trans('ConfirmMassAddQuestion'), $langs->trans('ConfirmMassAddingQuestion', count($parameters['toselect'])), 'add_questions', $formQuestion, '', 0, 200, 500, 1);

$numberOfQuestions = count($parameters['toselect']);

$elementElements = [];
$sql = "SELECT fk_target FROM llx_element_element WHERE targettype = 'digiquali_question'";
$resql = $this->db->query($sql);
if ($resql) {
$num_prods = $this->db->num_rows($resql);
$i = 0;
while ($i < $num_prods) {
$i++;

$row = $this->db->fetch_row($resql);
$elementElements[] = $row[0];
}
}
$parameters['toselect'] = array_diff($parameters['toselect'], $elementElements);
$newNumberOfQuestions = count($parameters['toselect']);
$this->resprints = $form->formconfirm($_SERVER['PHP_SELF'], $langs->trans('ConfirmMassAddQuestion'), $numberOfQuestions - $newNumberOfQuestions > 0 ? $langs->trans('ConfirmMassAddingQuestionAlreadyAffected', $newNumberOfQuestions, $numberOfQuestions - $newNumberOfQuestions) : $langs->trans('ConfirmMassAddingQuestion', $newNumberOfQuestions) , 'add_questions', $formQuestion, '', 0, 200, 500, 1);
} else {
setEventMessages('<a href="' . dol_buildpath('custom/digiquali/view/sheet/sheet_list.php', 1) . '">' . $langs->transnoentities('ObjectNotFound', img_picto('', $sheet->picto, 'class="paddingrightonly"') . $langs->transnoentities(ucfirst($sheet->element))) . '</a>', [], 'warnings');
}
Expand Down
133 changes: 67 additions & 66 deletions langs/fr_FR/digiquali.lang
Original file line number Diff line number Diff line change
Expand Up @@ -81,72 +81,73 @@ AnswerPublicInterfaceShowTitleDescription = Permet d'afficher le titre du con
#

# Data - Donnée
Question = Question
Questions = questions
TheQuestion = la question
QuestionList = Liste des questions
SelectMultipleQuestion = Sélectionnez une ou plusieurs questions
NewQuestion = Nouvelle question
ModifyQuestion = Modifier une question
LinkedQuestionsList = Liste des questions liées (%s)
AddQuestionLink = %d Question(s) ajoutée(s) au modèle :
WarningQuestionLink = %d Question(s) déjà dans le modèle :
ConfirmMassAddQuestion = Confirmation d'ajout en masse de questions au modèle
ConfirmMassAddingQuestion = Êtes-vous sur de vouloir ajouter les %d question(s) sélectionnée(s) ?
removeQuestionLink = Question retirée du modèle :
LockQuestion = La question %s est passée au statut verrouillé
LockQuestions = Toutes les questions sélectionnées sont passées au statut verrouillé
ThereAre = Il y a
YouAnswered = Vous avez répondu à
On = sur
BewareQuestionsAnswered = Attention il manque %s réponse(s)
QuestionsCategoriesArea = Espace des tags/catégories des questions
ExtrafieldsQuestionManagement = Gestion des attributs supplémentaires des questions
PhotoOk = Exemple de photo correcte
PhotoKo = Exemple de photo incorrecte
ShowPhoto = Afficher les photos
AuthorizeAnswerPhoto = Autoriser l'envoi de photos sur les réponses
ShowPhotoTooltip = Affiche les photos et la bibliothèque de médias sur la question
AuthorizeAnswerPhotoTooltip = Autorise l'envoi de photos sur les réponses de question
NoteControl = Note publique
EnterComment = Saisir les commentaires
EnterCommentTooltip = Saisit le commentaire sur les réponses de question
ErrorQuestionUsedInSheet = La question %s ne peut pas être supprimée, elle est utilisée dans un ou plusieurs modèles.
ErrorNoQuestionSelected = Aucune question sélectionnée
AddQuestionIntoCategory = Assigner cette catégorie à la question
QuestionType = Type de question
AnswersList = Liste des réponses possibles
MultipleChoices = Choix multiples
Text = Texte
UniqueChoice = Choix unique
Range = Valeur numérique
OkKo = Sélecteur OK/KO
OkKoToFixNonApplicable = Sélecteur OK/KO/NA/A réparer
ToFix = A réparer
NonApplicable = NA
Answer = Réponse
EmptyValue = La valeur de la réponse est vide
ErrorCreateAnswer = Une erreur est survenue lors de la création de la réponse
ErrorUpdateAnswer = Une erreur est survenue lors de l'édition de la réponse
ErrorDeleteAnswer = Une erreur est survenue lors de la suppression de la réponse
AnswerCreated = La réponse a été créée avec succès
AnswerUpdated = La réponse a été mise à jour avec succès
AnswerDeleted = La réponse a été supprimée avec succès
AnswerMustBeCreated = La question %s doit avoir au moins une réponse pour passer au statut verrouillé
ShowOnlyQuestionsWithNoAnswer = Afficher uniquement les questions qui n'ont pas de réponse
AveragePercentageQuestions = Moyenne des questions
AddToSheet = Ajouter au modèle
PercentageQuestionStep = Nombre d'étapes du curseur
NumberOfPoints = Nombre de points
Point = Point
Points = Points
AnswerCorrectness = Validité de la réponse
ExpectedAnswer = Réponse correcte
QuestionWithOneCorrectAnswer = Ce type de question n'accepte qu'une seule réponse correcte
AnswerCorrectnessMinBound = Valeur minimale de réponse correcte
AnswerCorrectnessMaxBound = Valeur maximale de réponse correcte
QuestionMinBoundExceeded = La valeur minimale de réponse correcte d'un pourcentage ne peut pas être inférieure à 0
QuestionMaxBoundExceeded = La valeur minimale de réponse correcte d'un pourcentage ne peut pas être supérieure à 100
Question = Question
Questions = questions
TheQuestion = la question
QuestionList = Liste des questions
SelectMultipleQuestion = Sélectionnez une ou plusieurs questions
NewQuestion = Nouvelle question
ModifyQuestion = Modifier une question
LinkedQuestionsList = Liste des questions liées (%s)
AddQuestionLink = %d Question(s) ajoutée(s) au modèle :
WarningQuestionLink = %d Question(s) déjà dans le modèle :
ConfirmMassAddQuestion = Confirmation d'ajout en masse de questions au modèle
ConfirmMassAddingQuestion = Êtes-vous sur de vouloir ajouter les %d question(s) sélectionnée(s) ?
ConfirmMassAddingQuestionAlreadyAffected = Êtes-vous sur de vouloir ajouter les %d question(s) sélectionnée(s) ? %d question(s) non comprises car déjà affectés !
removeQuestionLink = Question retirée du modèle :
LockQuestion = La question %s est passée au statut verrouillé
LockQuestions = Toutes les questions sélectionnées sont passées au statut verrouillé
ThereAre = Il y a
YouAnswered = Vous avez répondu à
On = sur
BewareQuestionsAnswered = Attention il manque %s réponse(s)
QuestionsCategoriesArea = Espace des tags/catégories des questions
ExtrafieldsQuestionManagement = Gestion des attributs supplémentaires des questions
PhotoOk = Exemple de photo correcte
PhotoKo = Exemple de photo incorrecte
ShowPhoto = Afficher les photos
AuthorizeAnswerPhoto = Autoriser l'envoi de photos sur les réponses
ShowPhotoTooltip = Affiche les photos et la bibliothèque de médias sur la question
AuthorizeAnswerPhotoTooltip = Autorise l'envoi de photos sur les réponses de question
NoteControl = Note publique
EnterComment = Saisir les commentaires
EnterCommentTooltip = Saisit le commentaire sur les réponses de question
ErrorQuestionUsedInSheet = La question %s ne peut pas être supprimée, elle est utilisée dans un ou plusieurs modèles.
ErrorNoQuestionSelected = Aucune question sélectionnée
AddQuestionIntoCategory = Assigner cette catégorie à la question
QuestionType = Type de question
AnswersList = Liste des réponses possibles
MultipleChoices = Choix multiples
Text = Texte
UniqueChoice = Choix unique
Range = Valeur numérique
OkKo = Sélecteur OK/KO
OkKoToFixNonApplicable = Sélecteur OK/KO/NA/A réparer
ToFix = A réparer
NonApplicable = NA
Answer = Réponse
EmptyValue = La valeur de la réponse est vide
ErrorCreateAnswer = Une erreur est survenue lors de la création de la réponse
ErrorUpdateAnswer = Une erreur est survenue lors de l'édition de la réponse
ErrorDeleteAnswer = Une erreur est survenue lors de la suppression de la réponse
AnswerCreated = La réponse a été créée avec succès
AnswerUpdated = La réponse a été mise à jour avec succès
AnswerDeleted = La réponse a été supprimée avec succès
AnswerMustBeCreated = La question %s doit avoir au moins une réponse pour passer au statut verrouillé
ShowOnlyQuestionsWithNoAnswer = Afficher uniquement les questions qui n'ont pas de réponse
AveragePercentageQuestions = Moyenne des questions
AddToSheet = Ajouter au modèle
PercentageQuestionStep = Nombre d'étapes du curseur
NumberOfPoints = Nombre de points
Point = Point
Points = Points
AnswerCorrectness = Validité de la réponse
ExpectedAnswer = Réponse correcte
QuestionWithOneCorrectAnswer = Ce type de question n'accepte qu'une seule réponse correcte
AnswerCorrectnessMinBound = Valeur minimale de réponse correcte
AnswerCorrectnessMaxBound = Valeur maximale de réponse correcte
QuestionMinBoundExceeded = La valeur minimale de réponse correcte d'un pourcentage ne peut pas être inférieure à 0
QuestionMaxBoundExceeded = La valeur minimale de réponse correcte d'un pourcentage ne peut pas être supérieure à 100


#
Expand Down
16 changes: 16 additions & 0 deletions view/question/question_list.php
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,22 @@
}

if (($massaction == 'add_questions' || ($action == 'add_questions' && $confirm == 'yes')) && $permissiontoadd) {

$elementElements = [];
$sql = "SELECT fk_target FROM llx_element_element WHERE targettype = 'digiquali_question'";
$resql = $db->query($sql);
if ($resql) {
$num_prods = $db->num_rows($resql);
$i = 0;
while ($i < $num_prods) {
$i++;

$row = $db->fetch_row($resql);
$elementElements[] = $row[0];
}
}
$toselect = array_diff($toselect, $elementElements);

if (!empty($toselect)) {
$totalQuestions = 0;
$questionInArray = [];
Expand Down