Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Récupérer le fonctionnement de création d'une réponse

  • FabienBrG
  • FabienBrG's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
4 years 11 months ago #182019 by FabienBrG
Bonjour,

Je vais essayer de vous expliquer mon idée.

Nous aimerions qu'un administrateur puisse lancer un questionnaire pour un participant et remplir les champs à partir d'une réponse précédente.
L'objectif n'est pas d'éditer la réponse mais d'en créer une nouvelle à partir d'une précédente.

Je travailles dans le développement informatique, cependant j'ai du mal à comprendre l'architecture du framework et de l'application.

Peut-on me guider un peu ?

J'ai installer le plugin reloadAnyResponses. Il me permet bien de relancer les réponses mais il me permet pas d'en créer une nouvelle à partir des données d'une précédente, il me l'edit à chaque fois.

J'ai l'habitude d'utiliser Symfony mais la Yii c'est un peu abstrait pour moi et j'arrive pas à comprendre comment développer mes propres controller par exemple etc...
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
4 years 11 months ago #182112 by DenisChenu
Tu ne pourra pas développer tes propres controleur directement.
LimeSurvey est développé sur Yii , ou plutot est passé d'un développement sans framework à Yii pour pouvoir évoluer.
Cependant : tu ne garde pas toutes les possibilités de Yii (si tu veux pouvoir faire évoluer LimeSUrvey sans ré adapater trop ton code).

En partant de reloadAnyResponse :
1. Ajouter la possibilité d'un paramètre qui créerais à partir de
2. Si ce paramètre est présent : à peu près à cet endroit : créer une copie de la question courante : gitlab.com/SondagesPro/coreAndTools/relo...AnyResponse.php#L671
3. Recharger cette copie ensuite et continuer

la suite est un peu bidouille, fonctionelle mais bidouille …

Entre 2 et 3 : je pense que faire
Code:
$oNewResponse = SurveyDynamic::model($surveyid);
$previousAttributes = $oResponse->getAttributes();
unset($previousAttributes['id']);
unset($previousAttributes['submitdate']);
$oNewResponse->attributes = $previousAttributes;
$oNewResponse->save();
peut le faire (code totalement non testé …)

Pour le paramétre un truc du genre srid=XXX&createone=1

Faut penser à tester si les droits de création sont là aussi.

J'accepte les pull request sur les nouvelles fonctionnalités ;). Et ca fera un joli bouton supplémentaire sur gitlab.com/SondagesPro/managament/responseListAndManage ;)

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
Moderators: Nickko

Lime-years ahead

Online-surveys for every purse and purpose