Advertisement
Guest User

Untitled

a guest
Aug 5th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.67 KB | None | 0 0
  1. sub question_add :Path('add') :Args{
  2. my($self,$c,@args) = @_;
  3. my $quizid = $c->req->params->{quizid};
  4. $c->log->info('Quizid :'.$quizid);
  5. my $questionname = $c->req->params->{'questiontitle'};
  6. my $questiontext = $c->req->params->{'question'};
  7. my $questiontype = $c->req->params->{'questiontype'};
  8. my $questiondefaultgrade = $c->req->params->{'score'};
  9. my $bloom = $c->req->params->{'bloom'};
  10. my $mitags = $c->req->params->{'mitags'};
  11. my $fileid = $c->req->params->{'fileid'};
  12.  
  13. my @mitagarray = split(',',$mitags);
  14.  
  15. my($knowledge, $comprehension, $application, $analysis, $synthesis, $evaluation);
  16. my($verbal, $logical, $musical, $interpersonal, $intrapersonal, $visual, $kinesthetic, $naturalistic);
  17.  
  18. switch($bloom){
  19. case "knowledge" {
  20. $knowledge = 1;
  21. }
  22. case "comprehension" {
  23. $comprehension = 1;
  24. }
  25. case "application" {
  26. $application = 1;
  27. }
  28. case "analysis" {
  29. $analysis = 1;
  30. }
  31. case "synthesis" {
  32. $synthesis = 1;
  33. }
  34. case "evaluation" {
  35. $evaluation = 1;
  36. }
  37. }
  38.  
  39. foreach my $mi (@mitagarray){
  40. switch($mi){
  41. case "verbal" {
  42. $verbal = 1;
  43. }
  44. case "logical" {
  45. $logical = 1;
  46. }
  47. case "musical" {
  48. $musical = 1;
  49. }
  50. case "interpersonal" {
  51. $interpersonal = 1;
  52. }
  53. case "intrapersonal" {
  54. $intrapersonal = 1;
  55. }
  56. case "visual" {
  57. $visual = 1;
  58. }
  59. case "kinesthetic" {
  60. $kinesthetic = 1;
  61. }
  62. case "naturalistic" {
  63. $naturalistic = 1;
  64. }
  65. }
  66. }
  67. my $quizobject = $c->model('Cl::Objects')->get_object_content($quizid);
  68. my $quizobjectid = $quizobject->quizid;
  69. $c->log->info('Quizobjectid :'. $quizobjectid);
  70.  
  71. my($postdata, $url, $response_body, $questioninfo);
  72.  
  73. switch($questiontype){
  74. case "essay" {
  75. $postdata = "question[0][cmid]=$quizobjectid&question[0][questiontext]=$questiontext&question[0][name]=$questionname&question[0][defaultgrade]=$questiondefaultgrade";
  76. $url=$c->config->{lms}->{moodle}.'/webservice/rest/simpleserver.php?wsusername=admin&wspassword=nuveda&wsfunction=moodle_question_add_essayquestion';
  77. $response_body = $c->forward('/execute_curl_post',[$url,$postdata]);
  78. }
  79.  
  80. case "shortanswer" {
  81. my $answer = $c->req->params->{'saanswer'};
  82. $questioninfo->{correctanswer} = $answer;
  83. $postdata = "question[0][cmid]=$quizobjectid&question[0][questiontext]=$questiontext&question[0][name]=$questionname&question[0][defaultgrade]=$questiondefaultgrade&question[0][answertext]=$answer";
  84. $url=$c->config->{lms}->{moodle}.'/webservice/rest/simpleserver.php?wsusername=admin&wspassword=nuveda&wsfunction=moodle_question_add_saquestion';
  85. $response_body = $c->forward('/execute_curl_post',[$url,$postdata]);
  86. }
  87.  
  88. case "truefalse" {
  89. my $tfanswer = $c->req->params->{'tfanswer'};
  90. my $answer;
  91. if($tfanswer == 1){
  92. $answer = 'True';
  93. }elsif($tfanswer == 0){
  94. $answer = 'False';
  95. }
  96. $questioninfo->{correctanswer} = $answer;
  97. $postdata = "question[0][cmid]=$quizobjectid&question[0][questiontext]=$questiontext&question[0][name]=$questionname&question[0][defaultgrade]=$questiondefaultgrade&question[0][options]=$answer";
  98. $url=$c->config->{lms}->{moodle}.'/webservice/rest/simpleserver.php?wsusername=admin&wspassword=nuveda&wsfunction=moodle_question_add_truefalse';
  99. $response_body = $c->forward('/execute_curl_post',[$url,$postdata]);
  100. }
  101.  
  102. case "multiplechoice" {
  103. my $questionchoice = $c->req->params->{'mcquestionchoice'};
  104. my @qu_ch_arr = split(',',$questionchoice);
  105. my($choice1, $choice2, $choice3, $choice4, $choice5);
  106. if(defined($qu_ch_arr[0]) && $qu_ch_arr[0] ne "") {$choice1 = $qu_ch_arr[0]};
  107. if(defined($qu_ch_arr[1]) && $qu_ch_arr[1] ne "") {$choice2 = $qu_ch_arr[1]};
  108. if(defined($qu_ch_arr[2]) && $qu_ch_arr[2] ne "") {$choice3 = $qu_ch_arr[2]};
  109. if(defined($qu_ch_arr[3]) && $qu_ch_arr[3] ne "") {$choice4 = $qu_ch_arr[3]};
  110. if(defined($qu_ch_arr[4]) && $qu_ch_arr[4] ne "") {$choice5 = $qu_ch_arr[4]};
  111.  
  112. $questionchoice = join(',',@qu_ch_arr);
  113. my $answer = $c->req->params->{'mcanswer'};
  114. $questioninfo->{questionchoice} = $questionchoice;
  115. $questioninfo->{correctanswer} = $answer;
  116.  
  117. $postdata = "question[0][cmid]=$quizobjectid&question[0][questiontext]=$questiontext&question[0][name]=$questionname&question[0][defaultgrade]=$questiondefaultgrade&question[0][choices1]=$choice1&question[0][choices2]=$choice2&question[0][choices3]=$choice3&question[0][choices4]=$choice4&question[0][choices5]=$choice5&question[0][options]=$answer";
  118. $url = $c->config->{lms}->{moodle}.'/webservice/rest/simpleserver.php?wsusername=admin&wspassword=nuveda&wsfunction=moodle_question_add_multichoice';
  119. $response_body = $c->forward('/execute_curl_post',[$url,$postdata]);
  120. }
  121.  
  122. case "match" {
  123. my $questionchoice = $c->req->params->{'matchquestionchoice'};
  124. my @qu_ch_arr = split(',',$questionchoice);
  125. my $answerchoice = $c->req->params->{'answerchoice'};
  126. my @ans_ch_arr = split(',',$answerchoice);
  127.  
  128. my($question1, $question2, $question3, $question4, $question5, $question6, $answer1, $answer2, $answer3, $answer4, $answer5, $answer6);
  129.  
  130. if(defined($qu_ch_arr[0]) && $qu_ch_arr[0] ne "") {$question1 = $qu_ch_arr[0]};
  131. if(defined($qu_ch_arr[1]) && $qu_ch_arr[1] ne "") {$question2 = $qu_ch_arr[1]};
  132. if(defined($qu_ch_arr[2]) && $qu_ch_arr[2] ne "") {$question3 = $qu_ch_arr[2]};
  133. if(defined($qu_ch_arr[3]) && $qu_ch_arr[3] ne "") {$question4 = $qu_ch_arr[3]};
  134. if(defined($qu_ch_arr[4]) && $qu_ch_arr[4] ne "") {$question5 = $qu_ch_arr[4]};
  135. if(defined($qu_ch_arr[5]) && $qu_ch_arr[5] ne "") {$question6 = $qu_ch_arr[5]};
  136.  
  137. if(defined($ans_ch_arr[0]) && $ans_ch_arr[0] ne "") {$answer1 = $ans_ch_arr[0]};
  138. if(defined($ans_ch_arr[1]) && $ans_ch_arr[1] ne "") {$answer2 = $ans_ch_arr[1]};
  139. if(defined($ans_ch_arr[2]) && $ans_ch_arr[2] ne "") {$answer3 = $ans_ch_arr[2]};
  140. if(defined($ans_ch_arr[3]) && $ans_ch_arr[3] ne "") {$answer4 = $ans_ch_arr[3]};
  141. if(defined($ans_ch_arr[4]) && $ans_ch_arr[4] ne "") {$answer5 = $ans_ch_arr[4]};
  142. if(defined($ans_ch_arr[5]) && $ans_ch_arr[5] ne "") {$answer6 = $ans_ch_arr[5]};
  143.  
  144. $questionchoice = join(',', @qu_ch_arr);
  145. $answerchoice = join(',', @ans_ch_arr);
  146.  
  147. my @shuffled_answer = shuffle(@ans_ch_arr);
  148. $questioninfo->{questionchoice} = $questionchoice;
  149. $questioninfo->{correctanswer} = $answerchoice;
  150. $questioninfo->{answerchoice} = join(",",@shuffled_answer);
  151.  
  152. $postdata = "question[0][cmid]=$quizobjectid&question[0][questiontext]=$questiontext&question[0][name]=$questionname&question[0][defaultgrade]=$questiondefaultgrade&question[0][questiontext1]=$question1&question[0][questiontext2]=$question2&question[0][questiontext3]=$question3&question[0][questiontext4]=$question4&question[0][questiontext5]=$question5&question[0][questiontext6]=$question6&question[0][answer1]=$answer1&question[0][answer2]=$answer2&question[0][answer3]=$answer3&question[0][answer4]=$answer4&question[0][answer5]=$answer5&question[0][answer6]=$answer6";
  153. $url=$c->config->{lms}->{moodle}.'/webservice/rest/simpleserver.php?wsusername=admin&wspassword=nuveda&wsfunction=moodle_question_add_match';
  154. $response_body = $c->forward('/execute_curl_post',[$url,$postdata]);
  155. }
  156.  
  157. case "multianswer" {
  158. my $questionchoice = $c->req->params->{'maquestionchoice'};
  159. my @qu_ch_arr = split(',',$questionchoice);
  160. my $answerchoice = $c->req->params->{'maanswerchoice'};
  161.  
  162. my $question1 = $qu_ch_arr[0];
  163. my $question2 = $qu_ch_arr[1];
  164. my $question3 = $qu_ch_arr[2];
  165. my $question4 = $qu_ch_arr[3];
  166. my $question5 = $qu_ch_arr[4];
  167.  
  168. $questioninfo->{questionchoice} = $questionchoice;
  169. $questioninfo->{correctanswer} = $answerchoice;
  170.  
  171. $postdata = "question[0][cmid]=$quizobjectid&question[0][questiontext]=$questiontext&question[0][name]=$questionname&question[0][defaultgrade]=$questiondefaultgrade&question[0][choices1]=$question1&question[0][choices2]=$question2&question[0][choices3]=$question3&question[0][choices4]=$question4&question[0][choices5]=$question5&question[0][options]=$answerchoice";
  172. $url=$c->config->{lms}->{moodle}.'/webservice/rest/simpleserver.php?wsusername=admin&wspassword=nuveda&wsfunction=moodle_question_add_multianswer';
  173. $response_body = $c->forward('/execute_curl_post',[$url,$postdata]);
  174.  
  175. }
  176. }
  177. my $xml = new XML::Simple;
  178. my $newmoodlequestion = $xml->XMLin($response_body);
  179. $questioninfo->{questionid} = $newmoodlequestion->{MULTIPLE}->{SINGLE}->[1]->{KEY}->{id}->{VALUE};
  180. $questioninfo->{name} = $questionname;
  181. $questioninfo->{questiontext} = $questiontext;
  182. $questioninfo->{questiontype} = $questiontype;
  183. $questioninfo->{maxscore} = $questiondefaultgrade;
  184. $questioninfo->{knowledge} = $knowledge;
  185. $questioninfo->{comprehension} = $comprehension;
  186. $questioninfo->{application} = $application;
  187. $questioninfo->{analysis} = $analysis;
  188. $questioninfo->{synthesis} = $synthesis;
  189. $questioninfo->{evaluation} = $evaluation;
  190. $questioninfo->{verbal} = $verbal;
  191. $questioninfo->{logical} = $logical;
  192. $questioninfo->{musical} = $musical;
  193. $questioninfo->{interpersonal} = $interpersonal;
  194. $questioninfo->{intrapersonal} = $intrapersonal;
  195. $questioninfo->{visual} = $visual;
  196. $questioninfo->{kinesthetic} = $kinesthetic;
  197. $questioninfo->{naturalistic} = $naturalistic;
  198. my $newquestion = $c->model('Cl::MoodleQuestion')->add($questioninfo);
  199. $c->forward('/attach',[$quizid,$newquestion->{$c->config->{objecttypes}->{moodlequestion}}->{id}]);
  200. if($fileid){
  201. $c->forward('/attach',[$newquestion->{$c->config->{objecttypes}->{moodlequestion}}->{id},$fileid]);
  202. }
  203. $c->stash->{results} = $newquestion;
  204. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement