Welcome to the LimeSurvey Community Forum

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

Filter Image Select List Type: L mit Aggregierten Daten aus den Responses

  • mariomario
  • mariomario's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 years 1 month ago #213800 by mariomario
Hi, ich möchte eine Art "Geschenkeauswahl" umsetzen in LS 4.x (letzte Version)

1. Gruppe: 3 Geschenke (Single Choice)
2. Gruppe: Adressdaten

Die Anzahl der Geschenke sind begrenzt und wenn ein Geschenkt nicht mehr vorhanden ist, wird es ausgeblendet (gefiltert)

Soweit ich verstanden habe, kann ich aus den Fragen heraus nicht auf die Umfrageergebnisse zugreifen, also habe ich mir eine Twig Extension geschrieben ( github.com/LimeSurvey/LimeSurvey/blob/ma...extensions/README.md ) die mit `getAllAnswers` und ein paar array Filter die schon gewählten Antworten zusammenzählt und ins Frontend schreiben kann. 

Nur wie kann ich diese Werte von der festen Gesamtanzahl per Geschenk subtrahieren und zur Laufzeit die Checkboxen setzen um die Geschenkeauswahl zu filtern?

Hier ist mein Setup:

Frontend:

 

der Code in answer.twig der die Resultate abfragt:
Code:
{%if aSurveyInfo.active is same as("Y") %}
 
    {% set kResponses = getAllAnswers(aSurveyInfo.sid) %}
    {% set kResponses = array_count_values(array_filter(array_column(kResponses, '693772X20X147'))) %}
    <pre>
    {#{ dump(aSurveyInfo) }#}
    {{ dump(kResponses) }}
    </pre>
 
{%  endif  %}
<!-- Answer -->
<div class="{{ aSurveyInfo.class.answercontainer }} col-xs-12" {{ aSurveyInfo.attr.answercontainer }}>
    {# NOTE: If you want to customize the question rendering, use a question theme #}
    {{ aQuestion.answer | raw }}
</div>

[present] (Geschenke)

 


 

[filterPresent] Vorauswahl und Angabe der Gesamtanzahl an per Geschenk

 

 

Ich hoffe ich konnte mein Problem einigermaßen beschreiben und illustrieren.
LSS Datei des Setups hab ich angehängt.
Wenn der Code der Twig Extension benötigt wird kann ich das auch noch zur Verfügung stellen, abr ich denke da ist nur der Output interessant.

Danke für jeden Hinweis.

M.
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 1 month ago - 3 years 1 month ago #213803 by Joffm
Hallo, 
da hast Du Dir viel Arbeit gemacht.
Dabei gibt es das Plugin "getStatInSurvey", welches genau dies macht
[url] gitlab.com/SondagesPro/ExportAndStats/getStatInSurvey [/url]

Hier einmal ein ganz schnelles Beispiel:
Hier ist die Anzahl jeder Option auf 5 eingestellt. Wenn die Option fünfmal gewählt wurde, wird sie nicht mehr angezeigt.

 

File Attachment:

File Name: limesurvey...6261.lss
File Size:25 KB


Joffm

Nur wie kann ich diese Werte von der festen Gesamtanzahl per Geschenk subtrahieren und zur Laufzeit die Checkboxen setzen um die Geschenkeauswahl zu filtern?

Zum Beispiel kannst Du eine Gleichung machen , die die Checkboxen der Frage M1 setzt, wie
{M1_SQ001=if(AnzahlGeschenk1-VergebenGeschenk1>0,"Y","")}
{M1_SQ002=if(AnzahlGeschenk2-VergebenGeschenk2>0,"Y","")}
...
wobei Du ja "VergebenGeschenkx" mit Deiner Lösung bestimmt hast, und "AnzahlGeschenkx" ja wohl irgendwo in einer versteckten Frage zu finden ist, oder eben hart gecodet wird.

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 3 years 1 month ago by Joffm.
The topic has been locked.
  • mariomario
  • mariomario's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 years 1 month ago #213822 by mariomario
Hi Joffm
1000 Dank für deine Hilfe und dem Beispiel.
Das Plugin ist natürlich viel besser! Jetzt weiss ich zumindest wie ich Twig in LS erweitere :)

Ich hab ein paar Minuten benötigt um dein Bespiel zu verstehen aber ich denke ich hab es.
Ich gehe davon aus, dass der Javascript Teil in der Ersten [QValues] Frage, welches die Felder mit den getStatInSurvey Daten füllt, nur ein Weg ist Daten von außen in LS zu bringen, oder?

Nachfolgend poste ich einfach mal mein Setup und die lss Datei. Vielleicht nützt es jemanden.

 

File Attachment:

File Name: limesurvey...3772.lss
File Size:59 KB


1. Frage Equation

 

2. Frage Filter Multiple Choice





3. Multiple Choice gefilter von 2.

 

 



Danke nochmal. Da wäre ich wohl nie drauf gekommen :) - aber so langsam kapier ich das System.
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 1 month ago #213828 by Joffm

Ich gehe davon aus, dass der Javascript Teil in der Ersten [QValues] Frage, welches die Felder mit den  getStatInSurvey  Daten füllt, nur ein Weg ist Daten von außen in LS zu bringen, oder?

Im Grunde genommen dient dieses javascript nur als Hilfskrücke.
Da laut Anleitung das plugin nicht direkt in Gleichungen verwendet werden kann, schreibe ich die Werte in irgendwelche Felder, die ich dann aber in Gleichungen benutzen kann.

Ein anderer Weg, die Daten zu bekommen wäre z.B. ein ajax call, wo man mit einem eigenen Progrämmchen entweder per API oder mit Direktzugriff auf die Datenbank geht und dann die gewünschten Werte zurückliefert.
Das würde ich aber nur dann einsetzen, wenn ich einen Fragentyp hätte, der vom plugin nicht unterstützt wird. Diese kannst Du direkt in der *.php des plugins ansehen.

Alles Gute
Joffm


 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
  • mariomario
  • mariomario's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 years 1 month ago #213830 by mariomario

Da laut Anleitung das plugin nicht direkt in Gleichungen verwendet werden kann, schreibe ich die Werte in irgendwelche Felder, die ich dann aber in Gleichungen benutzen kann.

Ich konnte aber die Checkliste zum Filtern direkt mit 
Code:
{filterPresent_pres1=if((is_nan('[present.nb.pres1]') || '[present.nb.pres1]'<5),"Y","")}
im Equation Feld ansprechen?! 

Mit is_nan('[present.nb.pres1]') teste ich die Anzeige der Geschenkeauswahl wenn die Umfrage noch nicht freigegeben ist, aber das Konstrukt mit der ersten Gruppe die automatisch gefüllt und übersprungen wurde habe ich nicht benötigt. Vielleicht ist das auch eine LS 4 Neuerung?
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 1 month ago #213832 by Joffm
Na, umso besser.
Da mein Beispiel ziemlich alt ist, weiß ich nicht, was Denis inzwischen noch geschraubt hat.
Jedenfalls steht immer noch dieses dort; mehr oder weniger, dass es im Fragenteil funktioniert, im Antwortteil nicht; wenn doch, schön für uns.

To use this number in Expression manager : you must use the quote : for example
Code:
{if(('[Q.nb.A1]'-100)>0,"There are "+('[Q.nb.A1]'-100)+" before this answer is quota out","This answer is quota out")}
You can not use this system in expression manager for answer part in LimeSurvey 3 and up.Relevance equation can not use this replacement.Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
  • holch
  • holch's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 1 month ago #213916 by holch

Dabei gibt es das Plugin "getStatInSurvey", welches genau dies macht


Und wenn ich mich nicht täusche, kann das LS 4.x jetzt von Haus aus...

I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.

The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 1 month ago #213920 by Joffm
@holch; Ja, es gehen die Gerüchte.
Aber ich habe keine Ahnung, wie und wo.

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
  • holch
  • holch's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 1 month ago #213998 by holch

@holch; Ja, es gehen die Gerüchte.
Aber ich habe keine Ahnung, wie und wo.


Da bin ich ja beruhigt, ich nämlich auch nicht. ;-)

I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.

The topic has been locked.
Moderators: Joffm

Lime-years ahead

Online-surveys for every purse and purpose