Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim/analyze
In directory sc8-pr-cvs1:/tmp/cvs-serv12052/WEB-INF/maple/aim/analyze
Modified Files:
Question.mpl Quiz.mpl
Log Message:
merged from develop_2_1
Index: Question.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/analyze/Question.mpl,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Question.mpl 5 May 2003 03:25:46 -0000 1.2
--- Question.mpl 25 Aug 2003 21:47:19 -0000 1.3
***************
*** 36,40 ****
['Parameter',"QuizName" = 'required'],
['Parameter',"QuestionName" = 'required'],
!
['Parameter',
"ValidityConstraint"::
--- 36,40 ----
['Parameter',"QuizName" = 'required'],
['Parameter',"QuestionName" = 'required'],
! ['Parameter',"PartLabel"::string = 'required'],
['Parameter',
"ValidityConstraint"::
***************
*** 217,222 ****
proc(page::`aim/admin/Page`,p::table)
! local action,subject,quizname,quiz,questionname,question,analysis,
! opts,summary,timedatestring;
global AimCache;
--- 217,222 ----
proc(page::`aim/admin/Page`,p::table)
! local action,subject,quizname,quiz,questionname,partlabel,
! question,analysis,opts,summary,timedatestring;
global AimCache;
***************
*** 227,231 ****
quizname := p["QuizName"];
! quiz := traperror(subject['GetQuiz',quizname]);
if not(type(quiz,`aim/Quiz`)) then
--- 227,232 ----
quizname := p["QuizName"];
!
! quiz := traperror(eval(subject['GetQuiz',quizname]));
if not(type(quiz,`aim/Quiz`)) then
***************
*** 237,241 ****
questionname := p["QuestionName"];
! question := traperror(quiz['GetQuestion',questionname]);
if not(type(question,`aim/Question`)) then
--- 238,243 ----
questionname := p["QuestionName"];
! partlabel := p["PartLabel"];
! question := traperror(quiz['GetQuestion',questionname,partlabel]);
if not(type(question,`aim/Question`)) then
***************
*** 249,258 ****
if p["Action"] = "AnalyzeQuestion" then
analysis :=
! traperror(eval(quiz['GetQuestionAnalysis',questionname]));
fi;
if analysis = NULL then
analysis :=
! eval(`aim/Question/Analyze`(quiz['RootDir'],questionname));
if not(type([analysis],[`aim/Question/Analysis`])) then
--- 251,263 ----
if p["Action"] = "AnalyzeQuestion" then
analysis :=
! traperror(eval(quiz['GetQuestionAnalysis',questionname,partlabel]));
fi;
if analysis = NULL then
analysis :=
! # KM
! # DIST eval(`aim/Question/Analyze`(quiz['RootDir'],questionname));
! eval(`aim/Question/Analyze`(quiz['RootDir'],questionname,partlabel));
! # END KM
if not(type([analysis],[`aim/Question/Analysis`])) then
Index: Quiz.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/analyze/Quiz.mpl,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Quiz.mpl 5 May 2003 03:25:46 -0000 1.2
--- Quiz.mpl 25 Aug 2003 21:47:19 -0000 1.3
***************
*** 62,66 ****
"",
['Command' = "analyze/Question",
! 'Arguments' = ["QuestionName"],
'LinkText' = __("Analyze")]],
--- 62,66 ----
"",
['Command' = "analyze/Question",
! 'Arguments' = ["QuestionName","PartLabel"],
'LinkText' = __("Analyze")]],
***************
*** 124,129 ****
local subject,register,ids,action,quizname,quiz,
! qnames,i,istring,qname,question,analysis,entry,
! resultstable,questiontable,timedatestring,f,g;
action := p["Action"];
--- 124,130 ----
local subject,register,ids,action,quizname,quiz,
! qn,qnos,i,qname,question,analysis,entry,
! resultstable,questiontable,timedatestring,f,g,
! nl,qlist,nllist;
action := p["Action"];
***************
*** 144,148 ****
analysis := traperror(eval(quiz['GetAnalysis']));
fi;
!
if analysis = NULL then
register := eval(subject['GetRegister']);
--- 145,149 ----
analysis := traperror(eval(quiz['GetAnalysis']));
fi;
!
if analysis = NULL then
register := eval(subject['GetRegister']);
***************
*** 157,161 ****
analysis['Sort',p["OrderStudentsBy"]];
! qnames := quiz['QuestionNames'];
if analysis['AnalysisTime'] = NULL then
--- 158,173 ----
analysis['Sort',p["OrderStudentsBy"]];
! qlist := quiz['Questions'];
! nllist := map(q -> [q['Name'],q['PartLabel']],qlist);
!
! qn := 0;
! qnos := NULL;
! for nl in nllist do
! if member(nl[2], {"", ".1"}) then
! qn := qn + 1;
! fi;
! qnos := qnos, cat("", qn, nl[2]);
! od;
! qnos := [qnos];
if analysis['AnalysisTime'] = NULL then
***************
*** 166,178 ****
if action = "DownloadQuiz" then
! f := (n,x) -> cat(x['MarkString',n],"\t");
g :=
! proc(entry,qnames)
sprintf("%s\t%s\t%s\t%s%s\n",
entry['StudentID'],
entry['StudentFirstName'],
entry['StudentSurname'],
! cat(op(map(f,qnames,entry))),
entry['TotalMarkString']);
end;
--- 178,190 ----
if action = "DownloadQuiz" then
! f := (n,x) -> cat(x['MarkString',op(n)],"\t");
g :=
! proc(entry,nllist)
sprintf("%s\t%s\t%s\t%s%s\n",
entry['StudentID'],
entry['StudentFirstName'],
entry['StudentSurname'],
! cat(op(map(f,nllist,entry))),
entry['TotalMarkString']);
end;
***************
*** 186,192 ****
__("First name"),"\t",
__("Surname"),"\t",
! seq(sprintf("%d\t",i),i=1..nops(qnames)),
__("Total"),"\n",
! op(map(g,analysis['Entries'],qnames)));
page['SetContentType',"text/tab-separated-values"];
--- 198,204 ----
__("First name"),"\t",
__("Surname"),"\t",
! seq(sprintf("%d\t",i),i=1..nops(nllist)),
__("Total"),"\n",
! op(map(g,analysis['Entries'],nllist)));
page['SetContentType',"text/tab-separated-values"];
***************
*** 194,200 ****
fi;
! f := (n,x) -> cat("<td>",x['MarkString',n],"</td>\n");
! g := proc(entry,qnames)
cat(
"<tr>\n<td>",
--- 206,213 ----
fi;
! f := (n,x) -> cat("<td>",x['MarkString',op(n)],"</td>\n");
! #f := (n,x) -> cat("<td>",convert(eval(x['MarkCodeTable][op(1,n)])),"</td>\n");
! g := proc(entry,nllist)
cat(
"<tr>\n<td>",
***************
*** 208,212 ****
entry['StudentSurname'],
"</td>\n",
! op(map(f,qnames,entry)),
"<td>",entry['TotalMarkString'],"</td>\n",
"</tr>\n");
--- 221,225 ----
entry['StudentSurname'],
"</td>\n",
! op(map(f,nllist,entry)),
"<td>",entry['TotalMarkString'],"</td>\n",
"</tr>\n");
***************
*** 214,218 ****
resultstable :=
! cat(op(map(g,analysis['Entries'],qnames)));
resultstable :=
--- 227,231 ----
resultstable :=
! cat(op(map(g,analysis['Entries'],nllist)));
resultstable :=
***************
*** 222,227 ****
"<th>",__("ID"),"</th>\n",
"<th>",__("Name"),"</th>\n",
! seq(sprintf("<th><a href='#Q%d'>%d</a></th>\n",i,i),
! i=1..nops(qnames)),
"<th>",__("Total"),"</th>\n",
"</tr>",
--- 235,239 ----
"<th>",__("ID"),"</th>\n",
"<th>",__("Name"),"</th>\n",
! seq(sprintf("<th><a href='#Q%s'>%s</a></th>\n",qn,qn),qn=qnos),
"<th>",__("Total"),"</th>\n",
"</tr>",
***************
*** 236,240 ****
["tr",
[["th","width" = "10%","noscroll"]], # question number
! [["th","width" = "45%","align"="left"],__("Question name")],
[["th","width" = "15%"]], # edit link
[["th","width" = "15%"]], # try link
--- 248,253 ----
["tr",
[["th","width" = "10%","noscroll"]], # question number
! [["th","width" = "40%","align"="left"],__("Question name")],
! [["th","width" = "5%"]], # part label
[["th","width" = "15%"]], # edit link
[["th","width" = "15%"]], # try link
***************
*** 242,257 ****
]);
! for i to nops(qnames) do
! istring := sprintf("%d",i);
! qname := qnames[i];
! questiontable['AddContents',
! ["tr",
! ["td",[["a", "name" = cat("Q",istring)],istring]],
! ["td",qname],
! ["td",page['ActionLink',"EditQuestion",[qname]]],
! ["td",page['ActionLink',"TryQuestion",[qname]]],
! ["td",page['ActionLink',"AnalyzeQuestion",[qname]]]]];
! question := traperror(eval(quiz['GetQuestion',qname]));
if type(question,`aim/Question`) then
if assigned(question['Description']) and
question['Description'] <> "" then
--- 255,270 ----
]);
! for i to nops(nllist) do
! question := qlist[i];
if type(question,`aim/Question`) then
+ qname := question['Name'];
+ questiontable['AddContents',
+ ["tr",
+ ["td",[["a", "name" = cat("Q",qnos[i])],qnos[i]]],
+ ["td",qname],
+ ["td",question['PartLabel']],
+ ["td",page['ActionLink',"EditQuestion",[qname]]],
+ ["td",page['ActionLink',"TryQuestion",[qname]]],
+ ["td",page['ActionLink',"AnalyzeQuestion",[qname,question['PartLabel']]]]]];
if assigned(question['Description']) and
question['Description'] <> "" then
|