...
 
Commits (22)
......@@ -2,9 +2,10 @@
{% block content %}
<form method="post">
Reset Plugin Database: <input type="submit" value="Reset" name="reset_full_plugin">
<p>Reset Plugin Database: <input type="submit" value="Reset" name="reset_full_plugin"><p/>
</form>
<form method="post">
Import Interessentest: <input type="submit" value="Import Interessentest" name="import_interessentest">
<p>Import Interessentest: <input type="submit" value="Import Interessentest" name="import_interessentest"><p/>
<p>Import Selbstregulation: <input type="submit" value="Import Selbstregulation" name="import_selbstregulation"><p/>
</form>
{% endblock %}
\ No newline at end of file
{% endblock %}
<?php
/* -------------------------------
* ###### TABLE OF CONTENTS ######
* -------------------------------
* 0. LOAD STUFF
* 1. CONFIGURATION
* 2. BUILD DATA MODEL
* 2.1 TEST
* 2.2 EVALUATION
* 2.3 SUBSCALES
* 2.4 COMPARISON GROUPS AND PRECALCULATEDRESULT
* 2.5 Evaluables
*
*/
# 0. LOAD STUFF
use GravityScores\Model\Test;
use GravityScores\Model\SubScale;
use GravityScores\Model\Evaluation;
use GravityScores\Model\Visualization;
use GravityScores\Model\Group;
use GravityScores\Model\GroupResult;
use GravityScores\Model\Likert;
# 1. CONFIGURATION
$form_name = "Persönlichkeit";
$eval_type = "Likert";
$subscale_names = [
"C1: Kompetenz", // $subscale_names[0]
"C2: Ordnungsliebe", // $subscale_names[1]
"C3: Pflichtbewusstsein", // $subscale_names[2]
"C4: Leistungsstreben", // $subscale_names[3]
"C5: Selbstdisziplin", // $subscale_names[4]
"C6: Besonnenheit", // $subscale_names[5]
"N1: Ängstlichkeit", // $subscale_names[6]
"O6: Offenheit des Wertesystems" // $subscale_names[7]
];
$subscale_descriptions = [
$subscale_names[0] => "Personen mit einem hohen Punktewert auf dieser Skala fühlen sich für das Leben gewappnet, haben eine hohe Meinung von ihren Fähigkeiten und halten sich selbst für intelligent und vernünftig. Personen mit einem niedrigen Punktwert halten sich selbst für eher unbeholfen und sind der Meinung, dass sie die an sie gestellten Anforderungen nicht immer erfüllen können. Sie haben eine geringe Meinung, was ihre Fertigkeiten und Fähigkeiten betrifft.",
$subscale_names[1] => "Personen mit einem hohen Punktwert halten Ordnung und arbeiten ordentlich und systematisch. Personen mit einem geringen Punktwert halten sich selbst für unordentlich und chaotisch. Sie sehen sich selbst nicht in der Lage, ihre Tätigkeiten ausreichend genug zu organisieren.",
$subscale_names[2] => "Personen mit einer hohen Ausprägung auf dieser Skala halten sich streng an moralische Verpflichtungen und ethische Prinzipien. Personen mit einer geringen Ausprägung legen moralische und ethische Grundsätze eher großzügig aus und sind manchmal etwas unzuverlässig.",
$subscale_names[3] => "Personen mit einer hohen Ausprägung auf dieser Skala arbeiten strebsam, zielorientiert und mit einem hohen Anspruchsniveau. Personen mit einer niedrigen Ausprägung auf dieser Skala sind schon mit einem geringen Leistungsniveau zufrieden und haben kein Bestreben, erfolgreich zu sein. Vieles ist ihnen gleichgültig und ihre Interessen sind beschränkt.",
$subscale_names[4] => "Menschen mit einer hohen Ausprägung auf dieser Skala erledigen ihre Aufgaben bis zum Ende dizipliniert. Menschen mit einer geringen Ausprägung auf dieser Skala brechen Aufgaben häufiger ab, sind leicht zu demotivieren und schieben Aufgaben häufiger vor sich her.",
$subscale_names[5] => "Personen mit einer starken Ausprägung in dieser Facette handeln überlegt, umsichtig und nicht vorschnell. Personen mit einer geringen Ausprägung auf dieser Facette handeln häufiger ohne Überlegungen, welche Folgen ihr Handeln haben könnte.",
$subscale_names[6] => "Personen mit einem hohen Punktwert nehmen sich selbst als eher ängstlich und angespannt wahr. Sie machen sich vermehrt Sorgen um Andere. Personen mit einer geringen Ausprägung auf dieser Skala sind entspannt, ausgeglichen und machen sich eher keine Sorgen, dass etwas schief gehen könnte.",
$subscale_names[7] => "Personen mit einem hohen Punktewert tendieren dazu, bestehende politische, religiöse und soziale Werte in Frage zu stellen. Personen mit einer niedrigen Ausprägung akzeptieren Obrigkeiten und Traditionen und sind eher konventionell.",];
$survey_block_ids = [208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232]
// Liste aller zu der Subskala gehörenden Fragen.
// Die Zahl vor dem Punkt bezieht sich jeweils auf die Seitennummer (wird im späteren script mit den $survey_block_ids ersetzt),
// die Zahl nach dem Punkt auf das konkrete Item (Zeile) in dieser Frage.
$evaluables_per_subscale = [
$subscale_names[6] => ["-1.1", "+2.3", "-3.5", "+5.1", "-6.3", "+7.5", "-9.1", "+10.3", "-11.5", "+13.1"], // N1: Ängstlichkeit
$subscale_names[0] => ["+1.2", "-2.4", "+3.6", "-5.2", "+6.4", "-7.6", "+9.2", "+10.4", "+11.6", "-13.2"], // C1: Kompetenz
$subscale_names[1] => ["-1.3", "+2.5", "-4.1", "+5.3", "-6.5", "+8.1", "-9.3", "-10.5", "+12.1", "+13.3"], // C2: Ordnungsliebe
$subscale_names[2] => ["+1.4", "-2.6", "+4.2", "-5.4", "+6.6", "+8.2", "+9.4", "-10.6", "-12.2", "-13.4"], // C3: Pflichtbewusstsein
$subscale_names[3] => ["-1.5", "+3.1", "-4.3", "+5.5", "-7.1", "+8.3", "+9.5", "+11.1", "+12.3", "+13.5"], // C4: Leistungsstreben
$subscale_names[4] => ["+1.6", "-3.2", "+4.4", "-5.6", "+7.2", "-8.4", "-9.6", "+11.2", "+12.4", "-13.6"], // C5: Selbstdisziplin
$subscale_names[5] => ["-2.1", "+3.3", "-4.5", "+6.1", "-7.3", "+8.5", "-10.1", "-11.3", "-12.5", "-13.7"], // C6: Besonnenheit
$subscale_names[7] => ["-2.2", "+3.4", "-4.6", "+6.2", "-7.4", "+8.6", "-10.1", "-11.4", "-12.6", "-13.8"], // O6: Offenheit des Wertesystems
];
// 2.1 missing
$visualisation_config = [
'name' => 'persoenlichkeit',
'minSubScales' => 2,
'maxSubScales' => count($subscale_names) * 2,
'type' => $eval_type
];
// Ergebnisse der Vergleichsgruppen
// 'subscale': Kommt aus der oben angeführten Liste der Subskalen und wird über $subscale_names[NUMMER] referenziert, z.B. Investigative
// 'group': z.B. Psychologie (gemeint sind die Psychologiestudierende, die befragt worden sind)
// 'sampleSize': z.B. 30, das "n"
// 'type': Wird oben definiert und über $eval_type referenziert
// 'minValue': z.B. 3, kleinste erreichter Wert in der Gruppe
// 'maxValue': z.B. 28, größte erreichter Wert in der Gruppe
// 'average': z.B. 10, Mittelwert der Ausprägung
// 'median': z.B. 9, Median der Ausprägung
// 'standardDeviation': z.B. 6,2, Standardabweichung der Ausprägung
$preCalcConfigs = [
[
'subscale' => $subscale_names[0],
'group' => 'Kulturwissenschaft',
'sampleSize' => 11,
'type' => $eval_type,
'minValue' => 9,
'maxValue' => 32,
'average' => 18.55,
'median' => 20,
'standardDeviation' => 8.1
], [
'subscale' => $subscale_names[1],
'group' => 'Kulturwissenschaft',
'sampleSize' => 11,
'type' => $eval_type,
'minValue' => 16,
'maxValue' => 31,
'average' => 22.09,
'median' => 21,
'standardDeviation' => 4.78
]
];
# 2. BUILD DATAMODEL
# 2.1 TEST
$getFormByName = function ($form_name) {
foreach (\GFAPI::get_forms() as $gf_form)
if ($gf_form['title'] === $form_name)
return $gf_form;
return false;
};
try {
$test = new Test(['formId' => $getFormByName($form_name)['id']]);
$test->save();
# 2.2 EVALUATION
$visualisation = new Visualization($visualisation_config);
$visualisation->save();
$evaluation = new Evaluation([
'title' => 'Radarchart for Interessentest',
'visualizationId' => $visualisation->id
]);
$evaluation->save();
$evaluation->setVisualization($visualisation);
$visualisation->save();
# 2.3 SUBSCALES
$subscales = [];
foreach ($subscale_names as $subscale_name) {
$subscales[$subscale_name] = new SubScale([
'name' => $subscale_name,
'description' => $subscale_descriptions[$subscale_name],
]);
$test->addSubScale($subscales[$subscale_name]);
$evaluation->addSubScale($subscales[$subscale_name]);
$subscales[$subscale_name]->save();
}
# 2.4 COMPARISON GROUPS AND PRECALCULATEDRESULT
$groups = [];
$precalculatedresults = [];
foreach ($preCalcConfigs as $preCalcConfig) {
$group_name = $preCalcConfig['group'];
$subscale_name = $preCalcConfig['subscale'];
unset($preCalcConfig['group'], $preCalcConfig['subscale']);
if (Group::where('name', '=', $group_name)->count() == 0) {
$groups[$group_name] = new Group(['name' => $group_name]);
$groups[$group_name]->save();
} else {
$groups[$group_name] = Group::where('name', '=', $group_name)->first();
}
$precalculatedresults[$group_name] = new GroupResult($preCalcConfig);
$precalculatedresults[$group_name]->setGroup($groups[$group_name]);
$precalculatedresults[$group_name]->setSubScale($subscales[$subscale_name]);
$precalculatedresults[$group_name]->save();
}
# 2.5 EVALUABLES
foreach ($evaluables_per_subscale as $subscale_name => $evaluable_ids) {
foreach ($evaluable_ids as $evaluable_id) {
$sign = substr($evaluable_id, 0, 1);
$id_split = explode(".", substr($evaluable_id, 1, -1));
$evaluable = new Likert([
'subScaleId' => $subscales[$subscale_name]->id,
'fieldId' => $survey_block_ids[intval($id_split[0]) - 1],
'subQuestion' => $id_split[1],
'weight' => ($sign == '+') ? 1.0 : -1.0,
]);
//$evaluable->setSubScale($subscales[$subscale_name]);
$evaluable->save();
}
}
} catch (Exception $exception) {
echo $exception->getMessage();
}
This diff is collapsed.
......@@ -83,6 +83,8 @@ try {
if (array_key_exists('import_interessentest', $_POST) && current_user_can("administrator")) {
include 'dumps/interessentest.php';
} else if (array_key_exists('import_selbstregulation', $_POST) && current_user_can("administrator")) {
include 'dumps/selbstregulation.php';
}
# 6. WP_CLI
......