Welcome to the LimeSurvey Community Forum

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

100 Datensätze je Teilnehmer mit Bearbeitungsmöglichkeit durch die Antwortenden

  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 day 3 hours ago #269169 by holch
so, hab das mal kurz durchgespielt und Quota scheinen nicht dynamisch erstellbar zu sein.

Du musst also immer, wenn du eine neue SourceID erstellst, eine neue Quote erstellen. Jede SourceID braucht ihre EIGENE Quote, damit das auch wirklich funktioniert. Wenn du einfach in die gleiche Quote eine weitere Antwort einfügst, dann ist das keine OR Verknüpfung, sondern eine AND. Damit würde die Quota nie ziehen.

Ist jetzt aber auch kein Riesenakt und vermeidet, dass irgendwelche Schlauberger einfach das Quotenlimit in der URL erhöhen könnten (was ja sowieso nicht funktioniert). Ich gehe mal davon aus, dass du relativ viele Quellen hast, und damit SourceIDs. Aber das kann man ja nach und nach einfügen, wenn sie kommen. Quoten lassen sich ja auch in einer laufenden Umfrage ändern ohne die Umfrage deaktivieren zu müssen.

Jetzt hast du halt noch das Problem, dass du die Gültigkeit der SourceID checken willst. Mal sehen ob Joffm dafür was einfällt.

Help us to help you!
  • Provide your LS version and where it is installed (own server, uni/employer, SaaS hosting, etc.).
  • Always provide a LSS file (not LSQ or LSG).
Note: I answer at this forum in my spare time, I'm not a LimeSurvey GmbH employee.

Please Log in to join the conversation.

  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 day 3 hours ago #269171 by holch
Habe gerade Joffms Antwort gesehen.

Irgendwie habe ich das Gefühl, dass du uns nicht erzählst, was du wirklich machen willst und versuchst das durch irgendwelche Beispiel zu umschreiben, das dann aber immer nicht 100%.

Am besten ist es immer wenn wir wissen, was du wirklich machen willst. Dann verstehen wir meist die Problemstellung viel besser und können uns was überlegen, ohne dass bei jedem Schritt neue "Probleme" auftauchen, die gelöst werden müssen nur um nach der Lösung festzustellen, dass da dann wieder was anderes im Wege steht.

Ein ganzheitlicher Ansatz wäre hier sehr sinnvoll. Wenn wir verstehen, um was es geht, können wir das Ganze auch besser von allen Seiten beleuchten, um eine Lösung dafür zu finden.

Help us to help you!
  • Provide your LS version and where it is installed (own server, uni/employer, SaaS hosting, etc.).
  • Always provide a LSS file (not LSQ or LSG).
Note: I answer at this forum in my spare time, I'm not a LimeSurvey GmbH employee.

Please Log in to join the conversation.

  • BlackSwan
  • BlackSwan's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
1 day 3 hours ago #269172 by BlackSwan
Danke holch, 
ja das ist neu, kommt aber nicht aus dem Nichts. Vorher im geschlossenen Modus war eine Gruppe ja ein Teilnehmer. Mit dem neuen Lösungsansatz (offener Modus) fällt die Möglichkeit weg, die Gruppe, Anfang- und End-Datum sowie die Teilnehmerzahl über die "Übrige Nutzungsanzahl" über den Teilnehmer zu regeln. Also muss ich hier Workarounds finden. 

Ich kenne die SourceIDs und maximale Fallzahl vorab tatsächlich nicht. Und Du hast recht, ich habe relativ viele Quellen und damit SourceIDs. Die Quellen kommen laufenden hinzu. Das hinterlegen in einer versteckten Frage ist eine Option. Ich müsste die dann aber laufend aktualisieren. Schöner wäre aber eine zweite Umfrage, mit der ich die Daten erst erfasse. Die zweite Umfrage habe ich sowieso schon, da ich damit die Links automatisiert generiere. 

Danke fürs Mitdenken.

 

Please Log in to join the conversation.

  • BlackSwan
  • BlackSwan's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
1 day 3 hours ago #269173 by BlackSwan
Danke Joffm,

Wäre aber vielleicht sinnvoll, um nicht 500 Quoten anlegen zu müssen.
Dann ginge wohl {if(statcountif(SourceID.sgqa,SourceID.NAOK)>grplimit,0,1)}
Hier kannst/musst Du dann das Limit der Gruppe mit übergeben, wobei ich aber denke, dies sollte man innerhalb der Umfrage vorhalten.
Dann genügt eine Quote mit Limit 0, die den Teilnehmer im Falle von "0" rausschmeißt (denn dann wurde ja das Limit der Gruppe überschritten.

Genau das war meine Intention. Danke!

Du vergibst doch URLs nur mit gültiger GruppenID.
Meinst Du, dass jemand einfach einen anderen Parameter anhängt und dann die Umfrage beantwortet?

Ja genau. Der Fragebogen soll über Jahre laufen und Daten sammeln. Im offen Modus läuft der Basislink ja nie ab. Daher würde ich dem gerne vorbeugen, dass genau das passiert und sich jemand eine eigene Gruppe erstellt. 

Das Szenario ist bereits realistisch. Alle bekommen die gleichen Fragen. Die Auswertung erfolgt gestaffelt auf unterschiedlichen Ebenen:
  1. Über die Gruppen hinweg. (Deshalb soll es alles in Befragung liegen)
  2. Auswertung nach Gruppen
  3. Auswertung Subgruppen, die durch den Teilnehmenden angegeben werden.

 

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 day 3 hours ago - 1 day 3 hours ago #269174 by Joffm

Die Quellen kommen laufenden hinzu. Das hinterlegen in einer versteckten Frage ist eine Option. Ich müsste die dann aber laufend aktualisieren

Lass mal die Kirche im Dorf. Das ist ja wirklich kein Problem.
Du müsstest ja nur die neuen Werte - wohl strukturiert, wenn Du immer noch das Limit, das Anfangs-, Enddatum, usw. zusätzlich hinterlegen willst - in die "default"-Antwort einer Frage vom Typ "langer Text" hinzukopieren.

Aber wenn Du etwas hast, was Dir Links kreiert, dann könntest Du auch in eine csv-Datei schreiben, und - wie bereits geschrieben - mit "papaparse" die Werte einlesen.

Wie holch, mach bitte einmal ein mehr oder weniger (eher mehr) realistisches Beispiel.

Joffm
 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 1 day 3 hours ago by Joffm.

Please Log in to join the conversation.

  • BlackSwan
  • BlackSwan's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
1 day 2 hours ago - 1 day 2 hours ago #269176 by BlackSwan
Also "papaparse" schaue ich mir an. 

Die Quota habe ich nun per JS gelöst. Beispiel als lss für alle die mal vor einem ähnlichen Problem stehen wie ich. Deine Lösung  {if(statcountif(SourceID.sgqa,SourceID.NAOK)>grplimit,0,1)} ist aber eleganter, da sie ohne JS auskommt. Werde ich auch nochmal testen. 

Das Beispiel bildet ziemlich genau meinen Anwendungsfall ab. Ich übergebe anfangs per URL Parameter, speichere diese in versteckten Gleichungsfragen. Dann folgen zu 95% Bootstrap-Button mit Likert-Skala + wenige Multiple-Choice-Fragen. Die Fragen sind für alle Gruppen gleich. 
Meine Herausforderung ist, dass ich für jede Quelle, die dazu kommt, einen Ansprechpartner habe. Dieser stellt seiner Gruppe den Link zu Verfügung. Die Quelle bekommt für Ihre Gruppe dann eine Auswertung mit Bezugswerten zur Gesamtgruppe. In vielen Fällen unterteilt sich die Quelle nochmal in Untergruppen (Ärzte in Chirugen, Orthopäden, usw.). Diese Angaben wird aber nicht per URL getrackt. 
Last edit: 1 day 2 hours ago by BlackSwan.

Please Log in to join the conversation.

  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 day 2 hours ago #269177 by holch

ist aber eleganter, da sie ohne JS auskommt.


Sehe ich ähnlich. Würde, wo es geht, immer auf JS verzichten und versuchen alles so weit wie möglich mit Limesurvey Boardmittelns zu lösen.

Joffm ist wirklich fit in solchen Sachen und wenn er sich nicht 100% damit auskennt, fuchst er sich meist rein. Bin immer wieder erstaunt mit welchen Lösungen er ankommt. Ohne Joffm wäre das Forum nur halb so viel wert. Und damit möchte ich die Leistungen anderer Top-Contributer wie Tparter und Denis gar nicht schmälern. Denen gehören jeweils 20%. ;-)

Help us to help you!
  • Provide your LS version and where it is installed (own server, uni/employer, SaaS hosting, etc.).
  • Always provide a LSS file (not LSQ or LSG).
Note: I answer at this forum in my spare time, I'm not a LimeSurvey GmbH employee.

Please Log in to join the conversation.

  • BlackSwan
  • BlackSwan's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
1 day 2 hours ago #269178 by BlackSwan
Ich kann dir  nur zustimmen holch. Ohne Euch hätte ich Tage gebraucht, um eine Lösung herauszubekommen. Wenn ich mich nicht weiter verannt hätte. Eure schnellen und ausführlichen Antworten sind alles andere als selbstverständlich und mehr als hilfreich.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 day 1 hour ago - 1 day 1 hour ago #269181 by Joffm
Ja, ich habe einmal etwas gespielt.
Dieser Source-Pool (anzeigend SourceID, Limit, Startdatum, Enddatum, Verbatim der Gruppe)
 

Wie gesagt, das kann man auch anders machen.

Wenn nun die Umfrage mit ?SourceID=11114 aufgerufen wird, kann ich mit ein paar Gleichungen
nämlich
Code:
{strpos(Pool,join('#',SourceID))}
und
Code:
{Params_1=substr(Pool,eqPos+1,5)}
{Params_2=intval(substr(Pool,eqPos+6,3))}
{Params_3=substr(Pool,eqPos+9,10)}
{Params_4=substr(Pool,eqPos+19,10)}
{Params_5=substr(Pool,eqPos+29,11)}
{Params_6=date('Y-m-d')}
{Params_7=statCountIf(SourceID.sgqa, SourceID.NAOK)}
meine gewünschten Werte in einem Container (Params) (mehrfache kurze Texte) zwischenspeichern
 

Als nächstes kommt nun die Quote, nämlich
"liegt er in der Zeit"
{if(strtotime(Params_3) gt strtotime(Params_6) or strtotime(Params_4) lt strtotime(Params_6),0,1)}
Liegt er in der Zeit, ist das Resultat 1, sonst 0.

"sind noch Interviews frei"
{if(Params_7 ge Params_2,0,1)}
analog

Daher gibt es nur noch zwei Quoten, die beide bei der "0" den Teilnehmer rausschmeißen.
 

Wie hier; die Meldung ist natürlich dynamisch Die Umfrage ist nur vom {Params_3} - {Params_4} auszufüllen.
 

Und danach geht es dann mit der eigentlichen Umfrage los:
Je nach SourceID werden die entsprechenden Fragen gestellt


Diese ganzen Fragen werden natürlich versteckt.

Ich denke, mehr braucht man nicht.

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 1 day 1 hour ago by Joffm.
The following user(s) said Thank You: holch, BlackSwan

Please Log in to join the conversation.

  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 day 15 minutes ago #269185 by holch
Wusste doch, dass da noch irgendwas unglaubliches kommt!

Help us to help you!
  • Provide your LS version and where it is installed (own server, uni/employer, SaaS hosting, etc.).
  • Always provide a LSS file (not LSQ or LSG).
Note: I answer at this forum in my spare time, I'm not a LimeSurvey GmbH employee.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
6 hours 19 minutes ago - 3 hours 6 minutes ago #269193 by Joffm
Da es ein erster schneller Entwurf war, müssen noch einige Feinheiten korrigiert werden.
Nämlich für die Überprüfung, ob die SourceID überhaupt vorhanden ist.

Die Funktion liefert bei "Nicht-Gefunden" eine "0" zurück; dies ist beim ersten Link aber auch der Fall (strpos startet bei "0").
Um dies zu vermeiden, wird einfach noch ein  Zeichen an den Anfang gesetzt.

Jetzt kommen die Screenouts.
Wenn die ID nicht gefunden wird, wird in "Params" trotzdem etwas stehen (allerdings Unsinn).
Und damit können auch die anderen Checks (Datum, Anzahl) zuschlagen und ein falsches Screenout angezeigt werden.

Aus diesem Grund werden die "Screenout"-Gleichungen auf zwei Gruppen verteilt.
In die erste Gruppe
{if(eqPos gt 0,1,0)} für den Rauswurf wegen ungültiger SourceID
die anderen in die folgende Gruppe.

Seht dann irgendwie so aus.
 
Und in G3 / Q1 gehjt es dann endlich los.

Joffm
 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 3 hours 6 minutes ago by Joffm.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 hours 23 minutes ago - 2 hours 17 minutes ago #269196 by Joffm
Und mit der Bibliothek "Papaparse" ist es vielleicht ein wenig angenehmer.
In unseren "Container" dieses script
Code:
<script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.4.1/papaparse.js" ></script>
 
<script type="text/javascript" charset="utf-8">
  $(document).on('ready pjax:complete',function() {
 
       var id = '{SourceID}';    
 
      Papa.parse("/upload/surveys/{SID}/files/test1.csv", {
          download: true,
          header: true,
          skipEmptyLines: true,
          complete: function(results) {
              for (i=0; i < results.data.length; i++) {
                  if (results.data[i].id==id) {
                      $('#question{QID} input[type="text"]:eq(0)').val(results.data[i].id);
                      $('#question{QID} input[type="text"]:eq(1)').val(results.data[i].limit);
                      $('#question{QID} input[type="text"]:eq(2)').val(results.data[i].start);
                      $('#question{QID} input[type="text"]:eq(3)').val(results.data[i].ende);
                      $('#question{QID} input[type="text"]:eq(4)').val(results.data[i].text);
                      break;
                  }
              }
          }
      });
  });
</script>[/i][/i][/i][/i][/i][/i]


mit dieser Datei "test1.csv"

Code:
id,limit,start,ende,text
11111,2,2025-01-01,2025-03-31,Arzt
11112,3,2025-02-01,2025-03-02,Ingenieur
11113,4,2025-02-01,2025-03-31,Klempner
11114,22,2025-03-01,2025-03-31,Dachdecker
11115,3,2025-02-01,2025-03-31,Masseur


Die Werte für das aktuelle Datum und die bereits erfolgten Completes der Gruppe habe ich hier direkt in die Vorgabe-Antwort eingetragen
 

Dann bekomme ich diese drei Screenouts.
Datum
 
Quote voll
 
Ungültige ID
 

Bei Interesse einfach etwas Realistisches schicken.

Joffm
 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 2 hours 17 minutes ago by Joffm.

Please Log in to join the conversation.

Moderators: holchJoffmtpartner

Lime-years ahead

Online-surveys for every purse and purpose