Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sub question_add :Path('add') :Args{
- my($self,$c,@args) = @_;
- my $quizid = $c->req->params->{quizid};
- $c->log->info('Quizid :'.$quizid);
- my $questionname = $c->req->params->{'questiontitle'};
- my $questiontext = $c->req->params->{'question'};
- my $questiontype = $c->req->params->{'questiontype'};
- my $questiondefaultgrade = $c->req->params->{'score'};
- my $bloom = $c->req->params->{'bloom'};
- my $mitags = $c->req->params->{'mitags'};
- my $fileid = $c->req->params->{'fileid'};
- my @mitagarray = split(',',$mitags);
- my($knowledge, $comprehension, $application, $analysis, $synthesis, $evaluation);
- my($verbal, $logical, $musical, $interpersonal, $intrapersonal, $visual, $kinesthetic, $naturalistic);
- switch($bloom){
- case "knowledge" {
- $knowledge = 1;
- }
- case "comprehension" {
- $comprehension = 1;
- }
- case "application" {
- $application = 1;
- }
- case "analysis" {
- $analysis = 1;
- }
- case "synthesis" {
- $synthesis = 1;
- }
- case "evaluation" {
- $evaluation = 1;
- }
- }
- foreach my $mi (@mitagarray){
- switch($mi){
- case "verbal" {
- $verbal = 1;
- }
- case "logical" {
- $logical = 1;
- }
- case "musical" {
- $musical = 1;
- }
- case "interpersonal" {
- $interpersonal = 1;
- }
- case "intrapersonal" {
- $intrapersonal = 1;
- }
- case "visual" {
- $visual = 1;
- }
- case "kinesthetic" {
- $kinesthetic = 1;
- }
- case "naturalistic" {
- $naturalistic = 1;
- }
- }
- }
- my $quizobject = $c->model('Cl::Objects')->get_object_content($quizid);
- my $quizobjectid = $quizobject->quizid;
- $c->log->info('Quizobjectid :'. $quizobjectid);
- my($postdata, $url, $response_body, $questioninfo);
- switch($questiontype){
- case "essay" {
- $postdata = "question[0][cmid]=$quizobjectid&question[0][questiontext]=$questiontext&question[0][name]=$questionname&question[0][defaultgrade]=$questiondefaultgrade";
- $url=$c->config->{lms}->{moodle}.'/webservice/rest/simpleserver.php?wsusername=admin&wspassword=nuveda&wsfunction=moodle_question_add_essayquestion';
- $response_body = $c->forward('/execute_curl_post',[$url,$postdata]);
- }
- case "shortanswer" {
- my $answer = $c->req->params->{'saanswer'};
- $questioninfo->{correctanswer} = $answer;
- $postdata = "question[0][cmid]=$quizobjectid&question[0][questiontext]=$questiontext&question[0][name]=$questionname&question[0][defaultgrade]=$questiondefaultgrade&question[0][answertext]=$answer";
- $url=$c->config->{lms}->{moodle}.'/webservice/rest/simpleserver.php?wsusername=admin&wspassword=nuveda&wsfunction=moodle_question_add_saquestion';
- $response_body = $c->forward('/execute_curl_post',[$url,$postdata]);
- }
- case "truefalse" {
- my $tfanswer = $c->req->params->{'tfanswer'};
- my $answer;
- if($tfanswer == 1){
- $answer = 'True';
- }elsif($tfanswer == 0){
- $answer = 'False';
- }
- $questioninfo->{correctanswer} = $answer;
- $postdata = "question[0][cmid]=$quizobjectid&question[0][questiontext]=$questiontext&question[0][name]=$questionname&question[0][defaultgrade]=$questiondefaultgrade&question[0][options]=$answer";
- $url=$c->config->{lms}->{moodle}.'/webservice/rest/simpleserver.php?wsusername=admin&wspassword=nuveda&wsfunction=moodle_question_add_truefalse';
- $response_body = $c->forward('/execute_curl_post',[$url,$postdata]);
- }
- case "multiplechoice" {
- my $questionchoice = $c->req->params->{'mcquestionchoice'};
- my @qu_ch_arr = split(',',$questionchoice);
- my($choice1, $choice2, $choice3, $choice4, $choice5);
- if(defined($qu_ch_arr[0]) && $qu_ch_arr[0] ne "") {$choice1 = $qu_ch_arr[0]};
- if(defined($qu_ch_arr[1]) && $qu_ch_arr[1] ne "") {$choice2 = $qu_ch_arr[1]};
- if(defined($qu_ch_arr[2]) && $qu_ch_arr[2] ne "") {$choice3 = $qu_ch_arr[2]};
- if(defined($qu_ch_arr[3]) && $qu_ch_arr[3] ne "") {$choice4 = $qu_ch_arr[3]};
- if(defined($qu_ch_arr[4]) && $qu_ch_arr[4] ne "") {$choice5 = $qu_ch_arr[4]};
- $questionchoice = join(',',@qu_ch_arr);
- my $answer = $c->req->params->{'mcanswer'};
- $questioninfo->{questionchoice} = $questionchoice;
- $questioninfo->{correctanswer} = $answer;
- $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";
- $url = $c->config->{lms}->{moodle}.'/webservice/rest/simpleserver.php?wsusername=admin&wspassword=nuveda&wsfunction=moodle_question_add_multichoice';
- $response_body = $c->forward('/execute_curl_post',[$url,$postdata]);
- }
- case "match" {
- my $questionchoice = $c->req->params->{'matchquestionchoice'};
- my @qu_ch_arr = split(',',$questionchoice);
- my $answerchoice = $c->req->params->{'answerchoice'};
- my @ans_ch_arr = split(',',$answerchoice);
- my($question1, $question2, $question3, $question4, $question5, $question6, $answer1, $answer2, $answer3, $answer4, $answer5, $answer6);
- if(defined($qu_ch_arr[0]) && $qu_ch_arr[0] ne "") {$question1 = $qu_ch_arr[0]};
- if(defined($qu_ch_arr[1]) && $qu_ch_arr[1] ne "") {$question2 = $qu_ch_arr[1]};
- if(defined($qu_ch_arr[2]) && $qu_ch_arr[2] ne "") {$question3 = $qu_ch_arr[2]};
- if(defined($qu_ch_arr[3]) && $qu_ch_arr[3] ne "") {$question4 = $qu_ch_arr[3]};
- if(defined($qu_ch_arr[4]) && $qu_ch_arr[4] ne "") {$question5 = $qu_ch_arr[4]};
- if(defined($qu_ch_arr[5]) && $qu_ch_arr[5] ne "") {$question6 = $qu_ch_arr[5]};
- if(defined($ans_ch_arr[0]) && $ans_ch_arr[0] ne "") {$answer1 = $ans_ch_arr[0]};
- if(defined($ans_ch_arr[1]) && $ans_ch_arr[1] ne "") {$answer2 = $ans_ch_arr[1]};
- if(defined($ans_ch_arr[2]) && $ans_ch_arr[2] ne "") {$answer3 = $ans_ch_arr[2]};
- if(defined($ans_ch_arr[3]) && $ans_ch_arr[3] ne "") {$answer4 = $ans_ch_arr[3]};
- if(defined($ans_ch_arr[4]) && $ans_ch_arr[4] ne "") {$answer5 = $ans_ch_arr[4]};
- if(defined($ans_ch_arr[5]) && $ans_ch_arr[5] ne "") {$answer6 = $ans_ch_arr[5]};
- $questionchoice = join(',', @qu_ch_arr);
- $answerchoice = join(',', @ans_ch_arr);
- my @shuffled_answer = shuffle(@ans_ch_arr);
- $questioninfo->{questionchoice} = $questionchoice;
- $questioninfo->{correctanswer} = $answerchoice;
- $questioninfo->{answerchoice} = join(",",@shuffled_answer);
- $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";
- $url=$c->config->{lms}->{moodle}.'/webservice/rest/simpleserver.php?wsusername=admin&wspassword=nuveda&wsfunction=moodle_question_add_match';
- $response_body = $c->forward('/execute_curl_post',[$url,$postdata]);
- }
- case "multianswer" {
- my $questionchoice = $c->req->params->{'maquestionchoice'};
- my @qu_ch_arr = split(',',$questionchoice);
- my $answerchoice = $c->req->params->{'maanswerchoice'};
- my $question1 = $qu_ch_arr[0];
- my $question2 = $qu_ch_arr[1];
- my $question3 = $qu_ch_arr[2];
- my $question4 = $qu_ch_arr[3];
- my $question5 = $qu_ch_arr[4];
- $questioninfo->{questionchoice} = $questionchoice;
- $questioninfo->{correctanswer} = $answerchoice;
- $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";
- $url=$c->config->{lms}->{moodle}.'/webservice/rest/simpleserver.php?wsusername=admin&wspassword=nuveda&wsfunction=moodle_question_add_multianswer';
- $response_body = $c->forward('/execute_curl_post',[$url,$postdata]);
- }
- }
- my $xml = new XML::Simple;
- my $newmoodlequestion = $xml->XMLin($response_body);
- $questioninfo->{questionid} = $newmoodlequestion->{MULTIPLE}->{SINGLE}->[1]->{KEY}->{id}->{VALUE};
- $questioninfo->{name} = $questionname;
- $questioninfo->{questiontext} = $questiontext;
- $questioninfo->{questiontype} = $questiontype;
- $questioninfo->{maxscore} = $questiondefaultgrade;
- $questioninfo->{knowledge} = $knowledge;
- $questioninfo->{comprehension} = $comprehension;
- $questioninfo->{application} = $application;
- $questioninfo->{analysis} = $analysis;
- $questioninfo->{synthesis} = $synthesis;
- $questioninfo->{evaluation} = $evaluation;
- $questioninfo->{verbal} = $verbal;
- $questioninfo->{logical} = $logical;
- $questioninfo->{musical} = $musical;
- $questioninfo->{interpersonal} = $interpersonal;
- $questioninfo->{intrapersonal} = $intrapersonal;
- $questioninfo->{visual} = $visual;
- $questioninfo->{kinesthetic} = $kinesthetic;
- $questioninfo->{naturalistic} = $naturalistic;
- my $newquestion = $c->model('Cl::MoodleQuestion')->add($questioninfo);
- $c->forward('/attach',[$quizid,$newquestion->{$c->config->{objecttypes}->{moodlequestion}}->{id}]);
- if($fileid){
- $c->forward('/attach',[$newquestion->{$c->config->{objecttypes}->{moodlequestion}}->{id},$fileid]);
- }
- $c->stash->{results} = $newquestion;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement