aimmath-commit Mailing List for AiM Assessment in Mathematics (Page 14)
Brought to you by:
gustav_delius,
npstrick
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
|
Jul
(73) |
Aug
(96) |
Sep
(240) |
Oct
(34) |
Nov
(12) |
Dec
(3) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(31) |
Feb
(6) |
Mar
(17) |
Apr
(6) |
May
(5) |
Jun
|
Jul
|
Aug
(2) |
Sep
(2) |
Oct
(19) |
Nov
|
Dec
|
2005 |
Jan
|
Feb
|
Mar
(14) |
Apr
(33) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <bre...@us...> - 2003-09-15 03:54:33
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple In directory sc8-pr-cvs1:/tmp/cvs-serv6865 Modified Files: Servlet.mpl Log Message: Commented out the startup and shutdown routines for Tomcat as suggested by Neil and Gustav. Index: Servlet.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Servlet.mpl,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Servlet.mpl 26 Aug 2003 20:34:59 -0000 1.5 --- Servlet.mpl 15 Sep 2003 03:54:29 -0000 1.6 *************** *** 4,10 **** # Distributed without warranty under the GPL - see README for details ! # This script creates the servlet configuration file web.xml, ! # and the scripts startaim.sh and stopaim.sh that start and ! # stop the server. read("OS0.mpl"): --- 4,10 ---- # Distributed without warranty under the GPL - see README for details ! # This script creates the servlet configuration file web.xml. We have commented out ! # the portion which generates the startaim.sh and stopaim.sh scripts as well as the ! # corresponding .bat scripts. read("OS0.mpl"): *************** *** 201,298 **** ###################################################################### ! ! if os_os = "Linux" then ! file := cat(webinf,"/startaim.sh"): ! fd := traperror(fopen(file,WRITE)): ! if fd = lasterror then ! printf("Cannot open startaim.sh for writing:\n%a\n\n",fd): ! `quit`(1): ! fi: ! ! fprintf(fd, ! "#!/bin/sh ! JAVA_HOME=%s ! export JAVA_HOME ! CATALINA_HOME=%s ! export CATALINA_HOME ! %s/bin/startup.sh ! ", ! ServletConfig['JavaHome'], ! ServletConfig['CatalinaHome'], ! ServletConfig['CatalinaHome'] ! ): ! ! fclose(fd): ! ! system(sprintf("chown nobody:aim %s",file)): ! system(sprintf("chmod 774 %s",file)): ! ! file := cat(webinf,"/stopaim.sh"): ! fd := traperror(fopen(file,WRITE)): ! if fd = lasterror then ! printf("Cannot open stopaim.sh for writing:\n%a\n\n",fd): ! `quit`(1): ! fi: ! ! fprintf(fd, ! "#!/bin/sh ! JAVA_HOME=%s ! export JAVA_HOME ! CATALINA_HOME=%s ! export CATALINA_HOME ! %s/bin/shutdown.sh ! ", ! ServletConfig['JavaHome'], ! ServletConfig['CatalinaHome'], ! ServletConfig['CatalinaHome'] ! ): ! ! fclose(fd): ! ! system(sprintf("chown nobody:aim %s",file)): ! system(sprintf("chmod 774 %s",file)): ! elif os_os = "DOS" then ! file := cat(webinf,"/startaim.bat"): ! fd := traperror(fopen(file,WRITE)): ! if fd = lasterror then ! printf("Cannot open startaim.bat for writing:\n%a\n\n",fd): ! `quit`(1): ! fi: ! ! fprintf(fd, ! "@echo off ! SET JAVA_HOME=%s ! SET CATALINA_HOME=%s ! call %s\\bin\\startup.bat ! ", ! ServletConfig['JavaHome'], ! ServletConfig['CatalinaHome'], ! ServletConfig['CatalinaHome'] ! ): ! ! fclose(fd): ! ! file := cat(webinf,"/stopaim.bat"): ! fd := traperror(fopen(file,WRITE)): ! if fd = lasterror then ! printf("Cannot open stopaim.bat for writing:\n%a\n\n",fd): ! `quit`(1): ! fi: ! ! fprintf(fd, ! "@echo off ! SET JAVA_HOME=%s ! SET CATALINA_HOME=%s ! call %s\\bin\\shutdown.bat ! ", ! ServletConfig['JavaHome'], ! ServletConfig['CatalinaHome'], ! ServletConfig['CatalinaHome'] ! ): ! ! fclose(fd): ! ! fi: ! read("Make.mpl"); --- 201,299 ---- ###################################################################### ! # start JB ! #if os_os = "Linux" or os_os = "OS X" then ! # file := cat(webinf,"/startaim.sh"): ! # fd := traperror(fopen(file,WRITE)): ! # if fd = lasterror then ! # printf("Cannot open startaim.sh for writing:\n%a\n\n",fd): ! # `quit`(1): ! # fi: ! # ! # fprintf(fd, ! # "#!/bin/sh ! # JAVA_HOME=%s ! # export JAVA_HOME ! # CATALINA_HOME=%s ! # export CATALINA_HOME ! # %s/bin/startup.sh ! # ", ! # ServletConfig['JavaHome'], ! # ServletConfig['CatalinaHome'], ! # ServletConfig['CatalinaHome'] ! # ): ! # ! # fclose(fd): ! # ! # system(sprintf("chown nobody:aim %s",file)): ! # system(sprintf("chmod 774 %s",file)): ! # ! # file := cat(webinf,"/stopaim.sh"): ! # fd := traperror(fopen(file,WRITE)): ! # if fd = lasterror then ! # printf("Cannot open stopaim.sh for writing:\n%a\n\n",fd): ! # `quit`(1): ! # fi: ! # ! # fprintf(fd, ! # "#!/bin/sh ! # JAVA_HOME=%s ! # export JAVA_HOME ! # CATALINA_HOME=%s ! # export CATALINA_HOME ! # %s/bin/shutdown.sh ! # ", ! # ServletConfig['JavaHome'], ! # ServletConfig['CatalinaHome'], ! # ServletConfig['CatalinaHome'] ! # ): ! # ! # fclose(fd): ! # ! # system(sprintf("chown nobody:aim %s",file)): ! # system(sprintf("chmod 774 %s",file)): ! # ! #elif os_os = "DOS" then ! # file := cat(webinf,"/startaim.bat"): ! # fd := traperror(fopen(file,WRITE)): ! # if fd = lasterror then ! # printf("Cannot open startaim.bat for writing:\n%a\n\n",fd): ! # `quit`(1): ! # fi: ! # ! # fprintf(fd, ! # "@echo off ! #SET JAVA_HOME=%s ! #SET CATALINA_HOME=%s ! #call %s\\bin\\startup.bat ! # ", ! # ServletConfig['JavaHome'], ! # ServletConfig['CatalinaHome'], ! # ServletConfig['CatalinaHome'] ! # ): ! # ! # fclose(fd): ! # ! # file := cat(webinf,"/stopaim.bat"): ! # fd := traperror(fopen(file,WRITE)): ! # if fd = lasterror then ! # printf("Cannot open stopaim.bat for writing:\n%a\n\n",fd): ! # `quit`(1): ! # fi: ! # ! # fprintf(fd, ! # "@echo off ! #SET JAVA_HOME=%s ! #SET CATALINA_HOME=%s ! #call %s\\bin\\shutdown.bat ! # ", ! # ServletConfig['JavaHome'], ! # ServletConfig['CatalinaHome'], ! # ServletConfig['CatalinaHome'] ! # ): ! # ! # fclose(fd): ! # ! #fi: ! #end JB read("Make.mpl"); |
From: <mo...@us...> - 2003-09-15 01:02:51
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim In directory sc8-pr-cvs1:/tmp/cvs-serv9687 Modified Files: LaTeX.mpl Log Message: fixed bug that causes and error for latex(``). Removed `` around nonstandard symbols in latex output Index: LaTeX.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/LaTeX.mpl,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** LaTeX.mpl 12 Sep 2003 03:16:07 -0000 1.8 --- LaTeX.mpl 15 Sep 2003 01:02:29 -0000 1.9 *************** *** 48,52 **** #): ! ## KM #`Package/Assign`( # `latex/latex/symbol`, --- 48,53 ---- #): ! # KM ! # WAS: #`Package/Assign`( # `latex/latex/symbol`, *************** *** 70,74 **** # RETURN(texlist); # end ! #): `Package/Assign`( --- 71,162 ---- # RETURN(texlist); # end ! ! `Package/Assign`( ! `latex/latex/symbol_no`, ! "This is the Maple 7 version of this routine, modified to prevent nonstandard symbols from being surrounded by single quotes, @`@, and fix a bug that caused and error when converting the symbol @``@ to latex. @aim/LaTeX(``)@ now returns @NULL@)", ! proc(QQ) ! local texlist, `{`, `}`, `\\_`, QQtmp; ! option system, remember; ! # KM ! # WAS: if assigned(`latex/special_names`[`` || QQ]) then ! if QQ = `` then return NULL; ! elif assigned(`latex/special_names`[`` || QQ]) then ! # END KM ! texlist := `latex/special_names`[evaln(`` || QQ)] ! elif member(QQ, eval(`latex/greek`, 1)) then ! texlist := `latex/latex/copy`(`\\` || QQ) ! elif has(`latex/mathops`, QQ) then ! texlist := `latex/latex/copy`(`\\` || QQ) ! elif 0 < length(QQ) and has({"A", "B", "C", "D", "E", "F", "G", "H", ! "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", ! "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", ! "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", ! "y", "z", "'"}, convert(substring(QQ, 1 .. 1), string)) and {} = ! convert(`latex/latex/chars_in_string`(QQ), 'set') minus ({"A", "B", ! "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", ! "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", ! "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", ! "s", "t", "u", "v", "w", "x", "y", "z", "'"} union ! {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}) then ! if length(QQ) = 1 then texlist := `latex/latex/copy`(QQ) ! else texlist := ! `{`, `latex/csname_font`, `latex/latex/copy`(QQ), `}` ! fi ! elif 0 < length(QQ) and has({"A", "B", "C", "D", "E", "F", "G", "H", ! "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", ! "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", ! "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", ! "y", "z", "'"} union {"_"}, convert(substring(QQ, 1 .. 1), string)) ! and {"_"} = convert(`latex/latex/chars_in_string`(QQ), 'set') minus ( ! {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", ! "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", ! "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", ! "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "'"} union ! {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}) then texlist := ! `{`, `latex/csname_font`, ! cat(op(subs("_" = "\\_", `latex/latex/chars_in_string`(QQ)))), `}` ! elif is(QQ, BottomProp) <> FAIL and substring(QQ, -1 .. -1) = '~' and ! 0 < length(QQ) and has({"A", "B", "C", "D", "E", "F", "G", "H", "I", ! "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", ! "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", ! "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", ! "z", "'"}, convert(substring(QQ, 1 .. 1), string)) and {"~"} = ! convert(`latex/latex/chars_in_string`(QQ), 'set') minus ({"A", "B", ! "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", ! "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", ! "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", ! "s", "t", "u", "v", "w", "x", "y", "z", "'"} union ! {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}) then ! QQtmp := substring(QQ, 1 .. -2); ! if length(QQtmp) = 1 then texlist := `latex/latex/copy`(QQtmp) ! else texlist := ! `{`, `latex/csname_font`, `latex/latex/copy`(QQtmp), `}` ! fi ! elif is(QQ, BottomProp) <> FAIL and substring(QQ, -1 .. -1) = '~' and ! 0 < length(QQ) and has({"A", "B", "C", "D", "E", "F", "G", "H", "I", ! "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", ! "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", ! "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", ! "z", "'"} union {"_"}, convert(substring(QQ, 1 .. 1), string)) and ! {"_", "~"} = convert(`latex/latex/chars_in_string`(QQ), 'set') minus ( ! {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", ! "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", ! "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", ! "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "'"} union ! {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}) then texlist := ! `{`, `latex/csname_font`, cat(op(subs("_" = "\\_", ! `latex/latex/chars_in_string`(substring(QQ, 1 .. -2))))), `}` ! # KM ! # WAS: else texlist := `\\mbox `, `{` $ 2, `latex/verbatim_font`, cat(`\``, ! else texlist := `\\mbox `, `{` $ 2, `latex/verbatim_font`, cat( ! op(subs("``" = "````", "#" = "\\#", "$" = "\\$", "%" = "\\%", ! "&" = "\\&", "_" = "\\_", "{" = "\\{", "}" = "\\}", "~" = "\\~{}", ! "^" = "\\^{}", "\\" = "$\\backslash$", "<" = "$<$", ">" = "$>$", ! # WAS: "|" = "$|$", `latex/latex/chars_in_string`(QQ))), `\``), `}` $ 2 ! "|" = "$|$", `latex/latex/chars_in_string`(QQ))) ), `}` $ 2 ! fi; ! return texlist ! end ! ): `Package/Assign`( *************** *** 93,99 **** # WAS: if op(2, e) <> 1/2 then # WAS: texlist := texlist, `[`, 1/op(2, e), `]` ! # WAS: end if; # WAS: texlist := texlist, `{`, `latex/print`(op(1, e)), `}` ! # WAS: end if if type(op(2, e),fraction) and op(2,e)=1/2 and type(op(1,e),integer) and 0<=op(1,e) and op(1,e)<10 then --- 181,187 ---- # WAS: if op(2, e) <> 1/2 then # WAS: texlist := texlist, `[`, 1/op(2, e), `]` ! # WAS: fi; # WAS: texlist := texlist, `{`, `latex/print`(op(1, e)), `}` ! # WAS: fi if type(op(2, e),fraction) and op(2,e)=1/2 and type(op(1,e),integer) and 0<=op(1,e) and op(1,e)<10 then *************** *** 117,145 **** ): - #proc (e::anything) - # local texlist,`[`,`\\frac `,`\\sqrt `,`]`,`{`,`}`; - # - # texlist := NULL; - # I don't ever want it to do any of this... I'll force it to simplify if I want it that way - # dist if type(op(2,e),'fraction') and abs(op([2, 1],e)) = 1 - # dist and abs(op([2, 2],e)) < 10 and op(2,e) < 0 then - # dist texlist:=texlist,`{`,`\\frac`,`{`,1,`}`,`{`,`latex/print`(1/e),`}`,`}` - # dist elif type(op(1,e),{name,numeric}) and op(2,e) = 1/2 then - # dist texlist := `\\sqrt `,`{`,`latex/print`(op(1,e)),`}`; - # dist else - # if type(op(1,e),{'`+`','`*`','`^`','function','series','fraction','negative'}) - # then - # texlist:=texlist,`latex/latex/prinpar`(op(1,e)) - # else - # texlist:=texlist,`{`,`latex/print`(op(1,e)),`}` - # fi; - # texlist:=texlist,`^`,`{`,`latex/print`(op(2,e)),`}`; - ## KM - ## dist fi; - ## END KM - # texlist - # end - #): - # KM `Package/Assign`( --- 205,208 ---- *************** *** 221,225 **** if type(op(1, e), 'numeric') and op(1, e) < 0 then return `latex/latex/copy`('`-`'), `latex/print`(-e) ! end if; if type(op(1, e), 'numeric') then # i := _LatexSmallFractionConstant; --- 284,288 ---- if type(op(1, e), 'numeric') and op(1, e) < 0 then return `latex/latex/copy`('`-`'), `latex/print`(-e) ! fi; if type(op(1, e), 'numeric') then # i := _LatexSmallFractionConstant; *************** *** 229,233 **** # _LatexSmallFractionConstant := i; return texlist ! end if; texlist := NULL; num := 1; --- 292,296 ---- # _LatexSmallFractionConstant := i; return texlist ! fi; texlist := NULL; num := 1; *************** *** 240,244 **** op(2, subee) < 0 then den := den/subee else num := num*subee ! end if end do; if den <> 1 then --- 303,307 ---- op(2, subee) < 0 then den := den/subee else num := num*subee ! fi end do; if den <> 1 then *************** *** 248,257 **** if type(num, '`+`') then texlist := ` \\left( `, texlist, ` \\right) ` ! end if else texlist := NULL ! end if; if type(den, '`*`') then den := [op(den)] else den := [den] ! end if; for subexp in den do texlist := texlist, `latex/print`(1/subexp) --- 311,320 ---- if type(num, '`+`') then texlist := ` \\left( `, texlist, ` \\right) ` ! fi else texlist := NULL ! fi; if type(den, '`*`') then den := [op(den)] else den := [den] ! fi; for subexp in den do texlist := texlist, `latex/print`(1/subexp) *************** *** 261,265 **** `latex/print`(num), '`}`', '`{`', `latex/print`(den), '`}`', `}` ! end if else i := 1; --- 324,328 ---- `latex/print`(num), '`}`', '`{`', `latex/print`(den), '`}`', `}` ! fi else i := 1; *************** *** 279,283 **** texlist := texlist, `latex/latex/prinpar`(ff[k]) else texlist := texlist, `latex/print`(ff[k]) ! end if; if i < nops(ee) and ( i = 1 and type(op(1, ee), 'integer') or type(ff[k], '`!`') or --- 342,346 ---- texlist := texlist, `latex/latex/prinpar`(ff[k]) else texlist := texlist, `latex/print`(ff[k]) ! fi; if i < nops(ee) and ( i = 1 and type(op(1, ee), 'integer') or type(ff[k], '`!`') or *************** *** 285,292 **** has([`latex/print`(ff[k])], '`\\sqrt `')) then texlist := texlist, `\\,` ! end if; i := i + 1 end do ! end if; texlist end --- 348,355 ---- has([`latex/print`(ff[k])], '`\\sqrt `')) then texlist := texlist, `\\,` ! fi; i := i + 1 end do ! fi; texlist end |
From: <bre...@us...> - 2003-09-14 16:11:49
|
Update of /cvsroot/aimmath/AIM/doc In directory sc8-pr-cvs1:/tmp/cvs-serv19678 Modified Files: installosx.html Log Message: Updated instructions and fixed spelling errors. Index: installosx.html =================================================================== RCS file: /cvsroot/aimmath/AIM/doc/installosx.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** installosx.html 14 Sep 2003 07:50:34 -0000 1.1 --- installosx.html 14 Sep 2003 16:11:43 -0000 1.2 *************** *** 12,16 **** The installation consists of 4 steps: <ol> ! <li><a href="#usr">Get aquainted with Terminal</a></li> <li><a href="#maple">Install Maple</a></li> <li><a href="#tomcat">Install the Tomcat web server</a></li> --- 12,16 ---- The installation consists of 4 steps: <ol> ! <li><a href="#usr">Get acquainted with Terminal</a></li> <li><a href="#maple">Install Maple</a></li> <li><a href="#tomcat">Install the Tomcat web server</a></li> *************** *** 53,59 **** GNU General Public License for more details. ! <h2><a name="usr">Get aquainted with Terminal</a></h2> ! The AiM installation will require you to use the Terminal application for some of the installation steps. Terminal can be found in <font color="green">/Applications/Utilities</font>. It is recommended that you place Terminal in your Dock for easier access. There are a few commands that will be of use during the installation. These include <code>cd</code> (change directory), <code>mkdir</code> (make directory), <code>ln -s</code> (make a symbolic link), and <code>sudo</code> (temporarily assume <code>root</code> privlieges).<p/> Many of the files associated with AiM are placed in subdirectories of the <font color='green'>/usr</font> directory. Under OS X <font color='green'>/usr</font> is hidden. The simplest way to browse and work with <font color='green'>/usr</font> is to create a symbolic link to the directory in your home directory. To do this start the Terminal application and enter, on one line, <font color='green'>ln -s /usr usr</font>. Now open your home directory. You should see a folder called <font color='green'>usr</font>. You can browse through the new folder as you normally would, but must use Terminal to create or move any files into the <font color='green'>/usr</font> directory or any of its subdirectories. --- 53,59 ---- GNU General Public License for more details. ! <h2><a name="usr">Get acquainted with Terminal</a></h2> ! The AiM installation will require you to use the Terminal application for some of the installation steps. Terminal can be found in <font color="green">/Applications/Utilities</font>. It is recommended that you place Terminal in your Dock for easier access. There are a few commands that will be of use during the installation. These include <code>cd</code> (change directory), <code>mkdir</code> (make directory), <code>ln -s</code> (make a symbolic link), and <code>sudo</code> (temporarily assume <code>root</code> privileges).<p/> Many of the files associated with AiM are placed in subdirectories of the <font color='green'>/usr</font> directory. Under OS X <font color='green'>/usr</font> is hidden. The simplest way to browse and work with <font color='green'>/usr</font> is to create a symbolic link to the directory in your home directory. To do this start the Terminal application and enter, on one line, <font color='green'>ln -s /usr usr</font>. Now open your home directory. You should see a folder called <font color='green'>usr</font>. You can browse through the new folder as you normally would, but must use Terminal to create or move any files into the <font color='green'>/usr</font> directory or any of its subdirectories. *************** *** 122,126 **** standard paths <font color='green'>/usr/local/bin</font>, <font color='green'>/usr/bin</font> and <font color='green'>/bin</font>, ! and if it is not found amongst these paths it is set to the copy of <font color='green'>tth</font> that comes with the AiM distribution. If <font color='green'>AutoConf.mpl</font> finds a version --- 122,126 ---- standard paths <font color='green'>/usr/local/bin</font>, <font color='green'>/usr/bin</font> and <font color='green'>/bin</font>, ! and if it is not found among these paths it is set to the copy of <font color='green'>tth</font> that comes with the AiM distribution. If <font color='green'>AutoConf.mpl</font> finds a version *************** *** 136,140 **** <p/> Note that versions of TtH older that 3.30 may translate some ``unbalanced'' ! LaTeX <code>eqnarray</code> environments so that they are not nicely centred. This problem was fixed in version 3.30. <p/> --- 136,140 ---- <p/> Note that versions of TtH older that 3.30 may translate some ``unbalanced'' ! LaTeX <code>eqnarray</code> environments so that they are not nicely centered. This problem was fixed in version 3.30. <p/> *************** *** 155,168 **** steps: <ol> ! <li>Download the latest file release from <a href="http://sourceforge.net/projects/aimmath/">SourceForge</a> or directly <a href="http://aimmath.sourceforge.net/aim.zip">from here</a> ! and unzip it into a new folder. <!--You should get a folder called aim Folder. Inside this folder is another folder called AiM. Move the AiM folder to the Desktop.--> Now move this new folder into the ! <font color='green'>/usr/local/tomcat/webapps/</font> directory.<!-- by entering <blockquote> <code>sudo mv ~/Desktop/AiM /usr/local/tomcat/webapps</code> </blockquote> ! in Terminal.--> ! You can choose any name for this subdirectory. If you choose ROOT then the directory will not appear in the URL of the server pages for the AiM quizzes. Any other choice will appear in the URL. (It is --- 155,168 ---- steps: <ol> ! <li>Download the latest zipped file release from <a href="http://sourceforge.net/projects/aimmath/">SourceForge</a> or directly <a href="http://aimmath.sourceforge.net/aim.zip">from here</a> ! and unzip it. You should get a folder called <font color="green">aim Folder</font>. Rename the <font color="green">aim Folder</font> to <font color="green">AiM</font>. Now move the <font color="green">AiM</font> folder into the ! <font color='green'>/usr/local/tomcat/webapps/</font> directory by entering <blockquote> <code>sudo mv ~/Desktop/AiM /usr/local/tomcat/webapps</code> </blockquote> ! in Terminal (assuming you unzipped on the Desktop). If you unzipped in a different location, then type <code>sudo mv </code> and then drag your <font color="green">AiM</font> folder onto the Terminal window. The path to your <font color="green">AiM</font> folder will be auto completed and you can finish the command by entering space and the rest of the command above. ! You do not have to rename the aim Folder to AiM. You can choose any name for this subdirectory. If you choose ROOT then the directory will not appear in the URL of the server pages for the AiM quizzes. Any other choice will appear in the URL. (It is *************** *** 265,269 **** Terminal.<p/> </li> ! <li>Point your webbrowser at the URL of the AiM server. This will be something like <font color='green'><a href="http://localhost/AiM/admin.html">http://localhost/AiM/admin.html</a></font>, where you will need to replace <font color='green'>AiM</font> by the name of --- 265,269 ---- Terminal.<p/> </li> ! <li>Point your Web browser at the URL of the AiM server. This will be something like <font color='green'><a href="http://localhost/AiM/admin.html">http://localhost/AiM/admin.html</a></font>, where you will need to replace <font color='green'>AiM</font> by the name of *************** *** 325,329 **** should look at the most recent Tomcat log file <font color='green'>/usr/local/tomcat/logs/log.YYYY-MM-DD.txt</font>, ! and search backwards from the end for the string "unavailable". Just above this, you should find a stacktrace, and the top of the stacktrace may be informative. --- 325,329 ---- should look at the most recent Tomcat log file <font color='green'>/usr/local/tomcat/logs/log.YYYY-MM-DD.txt</font>, ! and search backward from the end for the string "unavailable". Just above this, you should find a stacktrace, and the top of the stacktrace may be informative. *************** *** 344,348 **** <font color='green'>Config['TomcatPort']</font> in <font color='green'>AutoConfig.mws</font> to specify a ! different port and reexecute that worksheet. </li> <li>The message <font color='red'>Catalina.stop: --- 344,348 ---- <font color='green'>Config['TomcatPort']</font> in <font color='green'>AutoConfig.mws</font> to specify a ! different port and re-execute that worksheet. </li> <li>The message <font color='red'>Catalina.stop: |
From: <ma...@us...> - 2003-09-14 14:11:24
|
Update of /cvsroot/aimmath/moodle/mod/math_assignment In directory sc8-pr-cvs1:/tmp/cvs-serv28853/mod/math_assignment Modified Files: lib.php mod.html Log Message: Modified mod.html to allow urls and file uploads. Index: lib.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/lib.php,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** lib.php 13 Sep 2003 13:01:16 -0000 1.4 --- lib.php 14 Sep 2003 14:11:14 -0000 1.5 *************** *** 11,17 **** /// of the new instance. $math_assignment->problems = trim($math_assignment->problems); $math_assignment->solutions = trim($math_assignment->solutions); ! $math_assignment->timedue = make_timestamp($math_assignment->dueyear, $math_assignment->duemonth,$math_assignment->dueday, $math_assignment->duehour, $math_assignment->dueminute); $math_assignment->timemodified = time(); if (!math_assignment_setup_aim_quiz($math_assignment)) --- 11,39 ---- /// of the new instance. + // due time + $math_assignment->timedue = make_timestamp($math_assignment->dueyear, $math_assignment->duemonth,$math_assignment->dueday, $math_assignment->duehour, $math_assignment->dueminute); + + // problems + if ($math_assignment->problems == "|url|") + $math_assignment->problems = $math_assignment->problemsurl; + else if ($math_assignment->problems == "|upload|") { + if (empty($_FILES['problemsfile'])) + $math_assignment->problems = ""; + else + $math_assignment->problems = math_assignment_save_upload($_FILES['problemsfile']); + } $math_assignment->problems = trim($math_assignment->problems); + + // solutions + if ($math_assignment->solutions == "|url|") + $math_assignment->solutions = $math_assignment->solutionsurl; + else if ($math_assignment->solutions == "|upload|") { + if (empty($_FILES['solutionsfile'])) + $math_assignment->solutions = ""; + else + $math_assignment->solutions = math_assignment_save_upload($_FILES['solutionsfile']); + } $math_assignment->solutions = trim($math_assignment->solutions); ! $math_assignment->timemodified = time(); if (!math_assignment_setup_aim_quiz($math_assignment)) *************** *** 26,32 **** /// will update an existing instance with new data. $math_assignment->problems = trim($math_assignment->problems); $math_assignment->solutions = trim($math_assignment->solutions); ! $math_assignment->timedue = make_timestamp($math_assignment->dueyear, $math_assignment->duemonth,$math_assignment->dueday, $math_assignment->duehour, $math_assignment->dueminute); $math_assignment->timemodified = time(); $math_assignment->id = $math_assignment->instance; --- 48,76 ---- /// will update an existing instance with new data. + // due time + $math_assignment->timedue = make_timestamp($math_assignment->dueyear, $math_assignment->duemonth,$math_assignment->dueday, $math_assignment->duehour, $math_assignment->dueminute); + + // problems + if ($math_assignment->problems == "|url|") + $math_assignment->problems = $math_assignment->problemsurl; + else if ($math_assignment->problems == "|upload|") { + if (empty($_FILES['problemsfile'])) + $math_assignment->problems = ""; + else + $math_assignment->problems = math_assignment_save_upload($_FILES['problemsfile']); + } $math_assignment->problems = trim($math_assignment->problems); + + // solutions + if ($math_assignment->solutions == "|url|") + $math_assignment->solutions = $math_assignment->solutionsurl; + else if ($math_assignment->solutions == "|upload|") { + if (empty($_FILES['solutionsfile'])) + $math_assignment->solutions = ""; + else + $math_assignment->solutions = math_assignment_save_upload($_FILES['solutionsfile']); + } $math_assignment->solutions = trim($math_assignment->solutions); ! $math_assignment->timemodified = time(); $math_assignment->id = $math_assignment->instance; *************** *** 36,40 **** } - function math_assignment_delete_instance($id) { /// Given an ID of an instance of this module, --- 80,83 ---- *************** *** 111,114 **** --- 154,172 ---- /// Any other math_assignment functions go here. Each of them must have a name that /// starts with math_assignment_ + + function math_assignment_save_upload($file) { + /// Function which saves an uploaded file (used when adding / updating an instance) + if (!$basedir = make_upload_directory("$course->id")) + return ""; + if (!is_uploaded_file($file['tmp_name']) || $file['size'] == 0) + return ""; + $file_name = clean_filename($file['name']); + if (!$file_name) + return ""; + if (!move_uploaded_file($file['tmp_name'], "$basedir/$file_name")) + return ""; + chmod("$basedir/$file_name", 0666); + return $file_name; + } function math_assignment_list_servers($selected) { Index: mod.html =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/mod.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** mod.html 13 Sep 2003 13:01:16 -0000 1.2 --- mod.html 14 Sep 2003 14:11:14 -0000 1.3 *************** *** 42,48 **** --- 42,66 ---- $form->aimsubject = $courses[$form->course]->shortname; } + // Process problems and solutions + $form->problemsurl = ""; + if ($form->problems) { + if (strcasecmp(substr($form->problems, 0, 5), "http:") == 0) { + $form->problemsurl = $form->problems; + $form->problems = "|url|"; + } + } + $form->solutionsurl = ""; + if ($form->solutions) { + if (strcasecmp(substr($form->solutions, 0, 5), "http:") == 0) { + $form->solutionsurl = $form->solutions; + $form->solutions = "|url|"; + } + } $strname = get_string("name"); $strtimedue = get_string("timedue", "math_assignment"); + $strnone = get_string("none"); + $strexternalurl = get_string("externalurl", "math_assignment"); + $struploadnew = get_string("uploadnew", "math_assignment"); $strproblems = get_string("problems", "math_assignment"); $strsolutions = get_string("solutions", "math_assignment"); *************** *** 53,57 **** ?> ! <form name="form" method="post" action="<?php echo $ME; ?>"> <center> --- 71,90 ---- ?> ! <script language="JavaScript"><!-- //hide ! function enableeditbox(type) ! { ! list = eval("document.form." + type); ! url = eval("document.form." + type + "url"); ! file = eval("document.form." + type + "file"); ! url.disabled = (list.value != "|url|"); ! file.disabled = (list.value != "|upload|"); ! } ! //end --></script> ! ! <form name="form" method="post" enctype="multipart/form-data" action="<?php echo $ME; ?>"> ! <?php ! $upload_max_filesize = get_max_upload_file_size(); ! echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"$upload_max_filesize\" />"; ! ?> <center> *************** *** 73,77 **** echo " - "; print_time_selector("duehour", "dueminute", $form->timedue, 5); ! helpbutton("addupdate_timedue", $strtimedue, "math_assignment"); ?></td> </tr> --- 106,110 ---- echo " - "; print_time_selector("duehour", "dueminute", $form->timedue, 5); ! helpbutton("addupdate_timedue", $strtimedue, "math_assignment"); ?></td> </tr> *************** *** 82,94 **** </td> <td> ! <?php $rootdir = $CFG->dataroot . "/" . $course->id; $coursedirs = get_directory_list($rootdir, $CFG->moddata); $options = array(); foreach ($coursedirs as $dir) { $options["$dir"] = $dir; } ! choose_from_menu ($options, "problems", $form->problems, "choose", "", ""); helpbutton("addupdate_problems", $strproblems, "math_assignment"); ?> </td> --- 115,145 ---- </td> <td> ! <?php $rootdir = $CFG->dataroot . "/" . $course->id; $coursedirs = get_directory_list($rootdir, $CFG->moddata); $options = array(); + $options["|url|"] = $strexternalurl; + $options["|upload|"] = $struploadnew; foreach ($coursedirs as $dir) { $options["$dir"] = $dir; } ! echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"1\" align=\"left\">\n"; ! echo "<tr valign=\"middle\">\n"; ! echo "<td align=\"left\" rowspan=\"2\">\n"; ! choose_from_menu ($options, "problems", $form->problems, $strnone, "enableeditbox('problems');", ""); ! echo "</td>\n<td align=\"left\">"; ! echo "<input type=\"text\" name=\"problemsurl\" size=\"44\" maxlength=\"255\" value=\"$form->problemsurl\""; ! if ($form->problems == "|url|") ! echo " />"; ! else ! echo " disabled=\"true\" />"; ! echo "</td>\n<td align=\"left\" rowspan=\"2\">"; helpbutton("addupdate_problems", $strproblems, "math_assignment"); + echo "</td>\n</tr>\n"; + echo "<tr valign=\"middle\">\n"; + echo "<td align=\"left\">"; + echo "<input type=\"file\" name=\"problemsfile\" size=\"40\" value=\"\" disabled=\"true\" />"; + echo "</td>\n</tr>\n"; + echo "</table>\n"; ?> </td> *************** *** 104,112 **** $coursedirs = get_directory_list($rootdir, $CFG->moddata); $options = array(); foreach ($coursedirs as $dir) { $options["$dir"] = $dir; } ! choose_from_menu ($options, "solutions", $form->solutions, "choose", "", ""); helpbutton("addupdate_solutions", $strsolutions, "math_assignment"); ?> </td> --- 155,181 ---- $coursedirs = get_directory_list($rootdir, $CFG->moddata); $options = array(); + $options["|url|"] = $strexternalurl; + $options["|upload|"] = $struploadnew; foreach ($coursedirs as $dir) { $options["$dir"] = $dir; } ! echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"1\" align=\"left\">\n"; ! echo "<tr valign=\"middle\">\n"; ! echo "<td align=\"left\" rowspan=\"2\">\n"; ! choose_from_menu ($options, "solutions", $form->solutions, $strnone, "enableeditbox('solutions');", ""); ! echo "</td>\n<td align=\"left\">"; ! echo "<input type=\"text\" name=\"solutionsurl\" size=\"44\" maxlength=\"255\" value=\"$form->solutionsurl\""; ! if ($form->solutions == "|url|") ! echo " />"; ! else ! echo " disabled=\"true\" />"; ! echo "</td>\n<td align=\"left\" rowspan=\"2\">"; helpbutton("addupdate_solutions", $strsolutions, "math_assignment"); + echo "</td>\n</tr>\n"; + echo "<tr valign=\"middle\">\n"; + echo "<td align=\"left\">"; + echo "<input type=\"file\" name=\"solutionsfile\" size=\"40\" value=\"\" disabled=\"true\" />"; + echo "</td>\n</tr>\n"; + echo "</table>\n"; ?> </td> |
From: <ma...@us...> - 2003-09-14 14:11:24
|
Update of /cvsroot/aimmath/moodle/lang/en In directory sc8-pr-cvs1:/tmp/cvs-serv28853/lang/en Modified Files: math_assignment.php Log Message: Modified mod.html to allow urls and file uploads. Index: math_assignment.php =================================================================== RCS file: /cvsroot/aimmath/moodle/lang/en/math_assignment.php,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** math_assignment.php 11 Sep 2003 21:15:32 -0000 1.2 --- math_assignment.php 14 Sep 2003 14:11:14 -0000 1.3 *************** *** 32,35 **** --- 32,36 ---- $string['editquiz'] = "AiM Quiz Administration"; //"Edit Quiz"; $string['editsubject'] = "AiM Subject Administration"; //"Edit Subject"; + $string['externalurl'] = "URL of external file -->"; $string['failed'] = "Error : Could not save the changes made."; $string['grademultiplier'] = "Grade Multiplier"; *************** *** 81,84 **** --- 82,86 ---- $string['timedue'] = "Due Date and Time"; $string['tryquiz'] = "Try AiM Assignment"; + $string['uploadnew'] = "Upload new file -->"; $string['viewproblems'] = "View Problems"; $string['viewquiz'] = "View AiM Assignment"; |
From: <gus...@us...> - 2003-09-14 13:45:06
|
Update of /cvsroot/aimmath/AIM/doc In directory sc8-pr-cvs1:/tmp/cvs-serv21963/doc Modified Files: Tag: AiM_3_0 installwin.html Log Message: Now downloads aim.zip rather than aim.tar.gz because Windows XP can deal with zip files without additional software Index: installwin.html =================================================================== RCS file: /cvsroot/aimmath/AIM/doc/installwin.html,v retrieving revision 1.9 retrieving revision 1.9.2.1 diff -C2 -d -r1.9 -r1.9.2.1 *** installwin.html 10 Sep 2003 19:18:45 -0000 1.9 --- installwin.html 14 Sep 2003 13:44:54 -0000 1.9.2.1 *************** *** 113,117 **** <font color='green'>complete</font>) from <a href="http://sourceforge.net/projects/aimmath/">SourceForge</a> ! or directly <a href="http://aimmath.sourceforge.net/aim.tar.gz">from here</a> and unzip it into a subdirectory of the <font color='green'>C:\Tomcat\webapps\</font> directory. Do not unzip it --- 113,117 ---- <font color='green'>complete</font>) from <a href="http://sourceforge.net/projects/aimmath/">SourceForge</a> ! or directly <a href="http://aimmath.sourceforge.net/aim.zip">from here</a> and unzip it into a subdirectory of the <font color='green'>C:\Tomcat\webapps\</font> directory. Do not unzip it |
From: <gus...@us...> - 2003-09-14 11:52:17
|
Update of /cvsroot/aimmath/AIM In directory sc8-pr-cvs1:/tmp/cvs-serv873 Modified Files: version.txt Log Message: AiM 3.0 release Index: version.txt =================================================================== RCS file: /cvsroot/aimmath/AIM/version.txt,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** version.txt 10 Sep 2003 19:18:45 -0000 1.1 --- version.txt 14 Sep 2003 11:52:13 -0000 1.2 *************** *** 1 **** ! This is AiM 3.0 beta 2 \ No newline at end of file --- 1 ---- ! This is AiM 3.0 (released on 14 September 2003) \ No newline at end of file |
From: <gus...@us...> - 2003-09-13 21:05:39
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple In directory sc8-pr-cvs1:/tmp/cvs-serv16928/WEB-INF/maple Modified Files: AutoConf.mpl OS0.mpl OS0_OSX.mpl Log Message: Changes for OS X contributed by Jon. Installation instructions to follow. Index: AutoConf.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/AutoConf.mpl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** AutoConf.mpl 10 Sep 2003 16:00:26 -0000 1.4 --- AutoConf.mpl 13 Sep 2003 21:05:28 -0000 1.5 *************** *** 182,186 **** q("Checking the path for executables like *%s%s ...",os_pathsep,r): progdir,prog := op(util_splitfilename(r)): ! if os_os = "Linux" then d := util_striptrailspaces(os_system0("which %a",prog)): if util_endswith(d,r) then --- 182,186 ---- q("Checking the path for executables like *%s%s ...",os_pathsep,r): progdir,prog := op(util_splitfilename(r)): ! if os_os = "Linux" or os_os = "OS X" then d := util_striptrailspaces(os_system0("which %a",prog)): if util_endswith(d,r) then *************** *** 275,279 **** elif l = "Path" then q("Checking the path for executables like *%s%s ...",os_pathsep,r): ! if os_os = "Linux" then d := util_striptrailspaces(os_system0("which %a",r)): if os_fileexists(d) then --- 275,279 ---- elif l = "Path" then q("Checking the path for executables like *%s%s ...",os_pathsep,r): ! if os_os = "Linux" or os_os = "OS X" then d := util_striptrailspaces(os_system0("which %a",r)): if os_fileexists(d) then *************** *** 346,349 **** --- 346,350 ---- # Defaults: Linux: /usr/java/jdk*, /usr/local/jdk* # DOS: c:\java\jdk*, c:\jdk* + # OS X: /Library/Java/Home # double parent of java executable (try 'where', or PATH) # *************** *** 361,364 **** --- 362,377 ---- "Check" = "bin/java" ): + # start JB + elif os_os = "OS X" then + Config['JavaHome'] := + look_for_dir( + "Java", + "Conf" = 'JavaHome', + "Env" = "JAVA_HOME", + "Def" = ["/Library/Java","Home"], + "Path" = "bin/java", + "Check" = "bin/java" + ): + # end JB else Config['JavaHome'] := *************** *** 404,407 **** --- 417,434 ---- "Check" = "bin/catalina.sh" ): + # begin JB + elif os_os = "OS X" then + Config['CatalinaHome'] := + look_for_dir( + "Tomcat", + "Conf" = 'CatalinaHome', + "Env" = "CATALINA_HOME", + "Def" = ["/usr/local","tomcat"], + "Def" = ["/usr/local","jakarta-tomcat"], + "Def" = ["/usr/local","jakarta-tomcat-*"], + cd, + "Check" = "bin/catalina.sh" + ): + # end JB else Config['CatalinaHome'] := *************** *** 437,440 **** --- 464,483 ---- "Check" = ["-c quit;","Waterloo"] ): + # start JB + elif os_os = "OS X" then + Config['MapleProgram'] := + look_for_prog( + "Maple", + "Conf" = 'MapleProgram', + "Def" = "/bin/maple", + "Def" = "/Applications/\"Maple\ 9.app\"/Contents/MacOS/bin/maple", + "Def" = "/usr/bin/maple", + "Def" = "/usr/local/bin/maple", + "Def" = "/usr/local/maple/bin/maple", + "Def" = "/usr/local/maple_su/bin/maple", + "Path" = "maple", + "Check" = ["-c quit;","Waterloo"] + ): + # end JB else Config['MapleProgram'] := *************** *** 463,467 **** # Look for the Kill Program ! if os_os = "Linux" then Config['KillProgram'] :="/bin/kill"; os_osname(look_for_prog( --- 506,510 ---- # Look for the Kill Program ! if os_os = "Linux" or os_os = "OS X" then Config['KillProgram'] :="/bin/kill"; os_osname(look_for_prog( *************** *** 494,498 **** # Look for email program ! if os_os = "Linux" then Config['SendmailProgram'] := look_for_prog( --- 537,541 ---- # Look for email program ! if os_os = "Linux" or os_os = "OS X" then Config['SendmailProgram'] := look_for_prog( *************** *** 518,522 **** # Look for upload directory ! if os_os = "Linux" then Config['TempDir'] := look_for_dir( --- 561,565 ---- # Look for upload directory ! if os_os = "Linux" or os_os = "OS X" then Config['TempDir'] := look_for_dir( *************** *** 550,554 **** q("The host name was set manually to %a\n",Config['HostName']): else ! if os_os = "Linux" then hostname := traperror(ssystem("hostname --fqdn")): if hostname = lasterror then --- 593,597 ---- q("The host name was set manually to %a\n",Config['HostName']): else ! if os_os = "Linux" or os_os = "OS X" then hostname := traperror(ssystem("hostname --fqdn")): if hostname = lasterror then *************** *** 642,646 **** ! if os_os = "Linux" then timezone := traperror(util_striptrailspaces(os_system("date +%%Z"))); if timezone = lasterror then timezone := NULL: fi: --- 685,689 ---- ! if os_os = "Linux" or os_os = "OS X" then timezone := traperror(util_striptrailspaces(os_system("date +%%Z"))); if timezone = lasterror then timezone := NULL: fi: *************** *** 753,757 **** # Look for TtH ! if os_os = "Linux" then Config['TtHProgram'] := look_for_prog( --- 796,800 ---- # Look for TtH ! if os_os = "Linux" or os_os = "OS X" then Config['TtHProgram'] := look_for_prog( Index: OS0.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/OS0.mpl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** OS0.mpl 25 Aug 2003 21:47:18 -0000 1.3 --- OS0.mpl 13 Sep 2003 21:05:28 -0000 1.4 *************** *** 19,22 **** --- 19,25 ---- os_osmsg := "Operating system is Linux": os_os := "Linux": + elif searchtext("OSX",os_mapleversion) > 0 then + os_osmsg := "Operating system is Mac OS X": + os_os := "OS X": elif searchtext("Unix",os_mapleversion) > 0 then os_osmsg := *************** *** 75,78 **** --- 78,85 ---- if os_os = "Linux" then read("OS0_Linux.mpl"): + # start JB + elif os_os = "OS X" then + read("OS0_OSX.mpl"): + # end JB else read("OS0_DOS.mpl"): Index: OS0_OSX.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/OS0_OSX.mpl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** OS0_OSX.mpl 25 Aug 2003 21:47:18 -0000 1.3 --- OS0_OSX.mpl 13 Sep 2003 21:05:28 -0000 1.4 *************** *** 5,10 **** # This file, contributed by Jon Breitenbucher, is intended as a ! # substitute for OS0_Linux for use under Mac OSX. It is not yet fully ! # integrated into the AIM distribution. os_driveletter := "": --- 5,9 ---- # This file, contributed by Jon Breitenbucher, is intended as a ! # substitute for OS0_Linux for use under Mac OS X. os_driveletter := "": *************** *** 16,19 **** --- 15,26 ---- end: + # List files in a directory, one per line, but do not list subdirectories + os_listfilesonly := + proc(dir::string) + subs("" = NULL, + [util_linesplit( + os_system(cat("ls-F -1 ",os_osname(dir)," | sed 's#.*/##'")))]); + end: + # Remove a directory and all contents recursively os_removedirectory := *************** *** 101,105 **** os_filemodificationtime := proc(file::string) ! op(sscanf(os_system0("date -r %a +%%s",file),%d)): end: --- 108,112 ---- os_filemodificationtime := proc(file::string) ! op(sscanf(os_system0("filetest -M %a",file),%d)): end: *************** *** 131,132 **** --- 138,141 ---- NULL; end: + + os_pathsep := "/": |
From: <gr...@us...> - 2003-09-13 18:11:35
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim In directory sc8-pr-cvs1:/tmp/cvs-serv17483 Modified Files: Trig.mpl Log Message: Added evalb that was needed to make it work with Maple 7. - GG Index: Trig.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/Trig.mpl,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Trig.mpl 25 Aug 2003 21:47:19 -0000 1.2 --- Trig.mpl 13 Sep 2003 18:11:25 -0000 1.3 *************** *** 85,89 **** ans := eval(a); fi; ! ans := sort([op(ans)], `<` @ evalf); eq, interval, rightans := op(Q); --- 85,89 ---- ans := eval(a); fi; ! ans := sort([op(ans)], evalb @ `<` @ evalf); # evalb req'd for Maple 7 eq, interval, rightans := op(Q); |
From: <ma...@us...> - 2003-09-13 13:01:26
|
Update of /cvsroot/aimmath/moodle/mod/math_assignment In directory sc8-pr-cvs1:/tmp/cvs-serv23041/mod/math_assignment Modified Files: index.php lib.php mod.html pdfgen.php Log Message: Problems and solutions links now point to pdfgen.php if the file (or URL) has a .tex extension. Also some bug fixes in the display of the links. Index: index.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/index.php,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** index.php 11 Sep 2003 21:15:32 -0000 1.3 --- index.php 13 Sep 2003 13:01:16 -0000 1.4 *************** *** 118,122 **** } ! math_assignment_get_file_urls($course->id, $math_assignment, $proburl, $solurl); if ($teacher) { if ($showaim && $math_assignment->aimquiz) { --- 118,122 ---- } ! math_assignment_get_file_urls($math_assignment, $proburl, $solurl); if ($teacher) { if ($showaim && $math_assignment->aimquiz) { Index: lib.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/lib.php,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** lib.php 10 Sep 2003 20:47:51 -0000 1.3 --- lib.php 13 Sep 2003 13:01:16 -0000 1.4 *************** *** 11,14 **** --- 11,16 ---- /// of the new instance. + $math_assignment->problems = trim($math_assignment->problems); + $math_assignment->solutions = trim($math_assignment->solutions); $math_assignment->timedue = make_timestamp($math_assignment->dueyear, $math_assignment->duemonth,$math_assignment->dueday, $math_assignment->duehour, $math_assignment->dueminute); $math_assignment->timemodified = time(); *************** *** 24,27 **** --- 26,31 ---- /// will update an existing instance with new data. + $math_assignment->problems = trim($math_assignment->problems); + $math_assignment->solutions = trim($math_assignment->solutions); $math_assignment->timedue = make_timestamp($math_assignment->dueyear, $math_assignment->duemonth,$math_assignment->dueday, $math_assignment->duehour, $math_assignment->dueminute); $math_assignment->timemodified = time(); *************** *** 185,212 **** } ! function math_assignment_get_file_urls($courseid, $math_assignment, &$proburl, &$solurl) { /// Function which creates the URLs for the problem sheet and solution sheet global $CFG; ! if ($CFG->slasharguments) { ! $proburl = "$CFG->wwwroot/file.php/$courseid/$math_assignment->problems"; ! $solurl = "$CFG->wwwroot/file.php/$courseid/$math_assignment->solutions"; ! } else { ! $proburl = "$CFG->wwwroot/file.php?file=/$courseid/$math_assignment->problems"; ! $solurl = "$CFG->wwwroot/file.php?file=/$courseid/$math_assignment->solutions"; } } ! function math_assignment_get_file_links($cm, $math_assignment, $align="left") { /// Function which prints the problem and solution sheet links /// Note that if $align is empty we assume we are already in a paragraph, else we put the links in a paragraph ! math_assignment_get_file_urls($cm->course, $math_assignment, $proburl, $solurl); if ($math_assignment->problems) { if (isset($return)) $return .= "<br />\n"; else if ($align) ! $return .= "<p align=\"$align\">"; $strviewproblems = get_string("viewproblems", "math_assignment"); $return .= "<a href=\"$proburl\" target=\"problems\">$strviewproblems</a>"; --- 189,233 ---- } ! function math_assignment_get_file_urls($math_assignment, &$proburl, &$solurl) { /// Function which creates the URLs for the problem sheet and solution sheet global $CFG; ! if ($math_assignment->problems) { ! if(strcasecmp(substr($math_assignment->problems, -4), ".tex") == 0) ! $proburl = "pdfgen.php?id=$math_assignment->id&type=problems"; ! else if ($CFG->slasharguments) ! $proburl = "$CFG->wwwroot/file.php/$math_assignment->course/$math_assignment->problems"; ! else ! $proburl = "$CFG->wwwroot/file.php?file=/$math_assignment->course/$math_assignment->problems"; ! } ! else ! $proburl = ""; ! if ($math_assignment->solutions) { ! if(strcasecmp(substr($math_assignment->solutions, -4), ".tex") == 0) ! $solurl = "pdfgen.php?id=$math_assignment->id&type=solutions"; ! else if ($CFG->slasharguments) ! $solurl = "$CFG->wwwroot/file.php/$math_assignment->course/$math_assignment->solutions"; ! else ! $solurl = "$CFG->wwwroot/file.php?file=/$math_assignment->course/$math_assignment->solutions"; } + else + $solurl = ""; } ! function math_assignment_get_file_links($math_assignment, $align="left") { /// Function which prints the problem and solution sheet links /// Note that if $align is empty we assume we are already in a paragraph, else we put the links in a paragraph ! math_assignment_get_file_urls($math_assignment, $proburl, $solurl); ! $proburl = htmlspecialchars($proburl); ! $solurl = htmlspecialchars($solurl); if ($math_assignment->problems) { if (isset($return)) $return .= "<br />\n"; else if ($align) ! $return = "<p align=\"$align\">"; ! else ! $return = ""; $strviewproblems = get_string("viewproblems", "math_assignment"); $return .= "<a href=\"$proburl\" target=\"problems\">$strviewproblems</a>"; *************** *** 217,236 **** $return .= "<br />\n"; else if ($align) ! $return .= "<p align=\"$align\">"; $strviewsolutions = get_string("viewsolutions", "math_assignment"); $return .= "<a href=\"$solurl\" target=\"solutions\">$strviewsolutions</a>"; $return .= math_assignment_help_button("viewsolutions", $strviewsolutions, false); } ! else if(($math_assignment->solutions) && isteacher($cm->course)) { if (isset($return)) $return .= "<br />\n"; else if ($align) ! $return .= "<p align=\"$align\">"; $strviewsolutions = get_string("viewsolutions", "math_assignment"); $return .= "<a href=\"$solurl\" target=\"solutions\">$strviewsolutions (" . get_string("notavailabletostudentsyet", "math_assignment") . ")</a>"; $return .= math_assignment_help_button("viewsolutionsteacher", $strviewsolutions, false); } ! if (isset($return) && $align){ ! $return .= "</p>\n"; return $return; } --- 238,262 ---- $return .= "<br />\n"; else if ($align) ! $return = "<p align=\"$align\">"; ! else ! $return = ""; $strviewsolutions = get_string("viewsolutions", "math_assignment"); $return .= "<a href=\"$solurl\" target=\"solutions\">$strviewsolutions</a>"; $return .= math_assignment_help_button("viewsolutions", $strviewsolutions, false); } ! else if(($math_assignment->solutions) && isteacher($math_assignment->course)) { if (isset($return)) $return .= "<br />\n"; else if ($align) ! $return = "<p align=\"$align\">"; ! else ! $return = ""; $strviewsolutions = get_string("viewsolutions", "math_assignment"); $return .= "<a href=\"$solurl\" target=\"solutions\">$strviewsolutions (" . get_string("notavailabletostudentsyet", "math_assignment") . ")</a>"; $return .= math_assignment_help_button("viewsolutionsteacher", $strviewsolutions, false); } ! if (isset($return)) { ! if ($align) ! $return .= "</p>\n"; return $return; } *************** *** 242,246 **** $return = ""; ! $filelinks = math_assignment_get_file_links($cm, $math_assignment, ""); if ($math_assignment->aimquiz) { $return = "<p align=\"$align\">$filelinks"; --- 268,272 ---- $return = ""; ! $filelinks = math_assignment_get_file_links($math_assignment, ""); if ($math_assignment->aimquiz) { $return = "<p align=\"$align\">$filelinks"; Index: mod.html =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/mod.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** mod.html 9 Sep 2003 18:31:07 -0000 1.1 --- mod.html 13 Sep 2003 13:01:16 -0000 1.2 *************** *** 89,93 **** $options["$dir"] = $dir; } ! choose_from_menu ($options, "problems", $form->problems); helpbutton("addupdate_problems", $strproblems, "math_assignment"); ?> --- 89,93 ---- $options["$dir"] = $dir; } ! choose_from_menu ($options, "problems", $form->problems, "choose", "", ""); helpbutton("addupdate_problems", $strproblems, "math_assignment"); ?> *************** *** 107,111 **** $options["$dir"] = $dir; } ! choose_from_menu ($options, "solutions", $form->solutions); helpbutton("addupdate_solutions", $strsolutions, "math_assignment"); ?> --- 107,111 ---- $options["$dir"] = $dir; } ! choose_from_menu ($options, "solutions", $form->solutions, "choose", "", ""); helpbutton("addupdate_solutions", $strsolutions, "math_assignment"); ?> Index: pdfgen.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/pdfgen.php,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** pdfgen.php 11 Sep 2003 14:40:55 -0000 1.1 --- pdfgen.php 13 Sep 2003 13:01:16 -0000 1.2 *************** *** 6,10 **** require_once("lib.php"); ! require_variable($id); // Course Module ID, or optional_variable($type, "problems"); // "problems" or "solutions" --- 6,10 ---- require_once("lib.php"); ! require_variable($id); // math_assignment id optional_variable($type, "problems"); // "problems" or "solutions" *************** *** 15,39 **** } ! if (! $cm = get_record("course_modules", "id", $id)) { ! error("Course Module ID was incorrect"); } ! if (! $course = get_record("course", "id", $cm->course)) { error("Course is misconfigured"); } - if (! $math_assignment = get_record("math_assignment", "id", $cm->instance)) { - error("Course module is incorrect"); - } - require_login($course->id); ! add_to_log($course->id, "math_assignment", "pdfgen", "pdfgen.php?id=$cm->id", "$math_assignment->id"); // check that the request is valid if ($solutions) { if (time() < $math_assignment->timedue) { error("You can not view the solutions until the assignment has closed!"); } } --- 15,43 ---- } ! if (! $math_assignment = get_record("math_assignment", "id", $id)) { ! error("Course module is incorrect"); } ! if (! $course = get_record("course", "id", $math_assignment->course)) { error("Course is misconfigured"); } require_login($course->id); ! add_to_log($course->id, "math_assignment", "pdfgen", "pdfgen.php?id=$math_assignment->id", $type); // check that the request is valid + if ($problems) { + if (strcasecmp(substr($math_assignment->problems, -4), ".tex")) { + error("Not a dynamic problem sheet."); // this should never happen as we only link to this page if needed + } + } if ($solutions) { if (time() < $math_assignment->timedue) { error("You can not view the solutions until the assignment has closed!"); + } + if (strcasecmp(substr($math_assignment->solutions, -4), ".tex")) { + error("Not a dynamic solution sheet."); // this should never happen as we only link to this page if needed } } |
From: <gus...@us...> - 2003-09-13 07:30:42
|
Update of /cvsroot/aimmath/AIM/doc In directory sc8-pr-cvs1:/tmp/cvs-serv29699/doc Modified Files: index.html Added Files: AuthoringPackages.html docmenu.html intro.html noframes.html styles.css Log Message: Added menu frame to documentation and also a list of authoring packages --- NEW FILE: AuthoringPackages.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <TITLE>AIM Authoring Packages</TITLE> <META http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <link rel="stylesheet" type="text/css" href="styles.css"> <link rel="shortcut icon" href="favicon.ico"> </HEAD> <BODY> <h1>AIM Authoring Packages</h1> <p> AiM has a large assortment of built-in utilities and tools to assist authors in writing AiM questions. The links below bring you to the automatically generated documentation for each of the packages containing such tools. The use of some of them is also explained in the still growing tutorial "<a href="AuthoringGuide.pdf" target="pdf">AiM Authoring Tools</a>". You may want to look for a newer version of this guide on the <a href="http://aimmath.sourceforge.net">AiM homepage</a>. </p> <ul> <li><a href="aim/Diff.html"><b>Diff</b></a> - authoring utilities for differentiation questions <li><a href="aim/Int.html"><b>Int</b></a> - authoring utilities for integration questions <li><a href="aim/Matrix.html"><b>Matrix</b></a> - authoring utilities for matrix questions <li><a href="aim/Trig.html"><b>Trig</b></a> - authoring utilities for trig questions <li><a href="aim/Calc.html"><b>Calc</b></a> - uses Maple's Student[Calculus] package to automatically produce step by step solutions of calculus problems <li><a href="aim/Inert.html"><b>Inert</b></a> - defines Inert forms of Maple expressions and allows customized latex formatting of expressions <li><a href="aim/SET.html"><b>SET</b></a> - defines an AiM class SET and related functions to get around the problems inherent in trying to use Maple sets in randomized questions <li><a href="aim/Decimal.html"><b>Decimal</b></a> - authoring utilities for dealing with the decimal representation of rationals <li><a href="aim/Number.html"><b>Number</b></a> - utilities for dealing with the representations of integers (Roman numerals, converting numbers to words, etc) <li><a href="Random.html"><b>Random</b></a> - the Rand command now has several new features <li><b>Keys()</b> - an authoring utility that makes it easy to generate quiz question selector functions <li><b>Nice</b> - `Nice/Monomial`(), `Nice/Binomial`(), `Nice/Trinomial`() are utilities that produce "nice" monomials, binomials, and trinomials similar to those usually found in textbook questions </ul> </BODY> </HTML> --- NEW FILE: docmenu.html --- <html> <head> <TITLE>AIM Documentation</TITLE> <link rel="stylesheet" type="text/css" href="styles.css"> <link rel="shortcut icon" href="favicon.ico"> </head> <body bgcolor="#C5EFFF"> <font size="4" face="san-serif"> Installation: </font><font size="2" face="san-serif"> <ul> <li><a href='install.html' target="main">Installation instructions</a></li> <li><a href="WhatsNewInV3.txt" target="main">What is new in version 3.0</a></li> </ul> <font size="4" face="san-serif"> For teachers: </font><font size="2" face="san-serif"> <ul> <li><a href='concepts.html' target="main">Some useful concepts</a></li> <li><a href='teacher.html' target="main">Instructions for teachers<br>and administrators</a></li> <li><a href='format.html' target="main">AIM Question Syntax</a></li> <li><a href='AuthoringPackages.html' target="main">Question Authoring Packages</a></li> <li><a href='AuthoringGuide.pdf' target="main">Authoring tools tutorial</a></li> <li><a href='tasks.html' target="main">Tasks for the lecturer</a></li> </ul> <font size=4 face="san-serif"> For students: </font><font size=2 face="san-serif"> <ul> <li><a href='help.html' target="main">Help for students</a></li> </ul> <font size=4 face="san-serif"> For administrators<br /> and developers: </font><font size=2 face="san-serif"> <ul> <li><a href='teacher.html' target="main">Instructions for teachers<br>and administrators</a></li> <li><a href='files.html' target="main">Files and directories</a></li> <li><a href='components.html' target="main">Components of the system</a></li> <li><a href='packing.html' target="main">AIM Maple package system</a></li> <li><a href='packages.html' target="main">Package list</a></li> <li><a href='entries.html' target="main">Index of all package documentation</a></li> <li><a href='admindoc.html' target="main">AiM admin pages and actions</a></li> <li><a href='todo.html' target="main">Things to do</a></li> </ul> </font> </body> </html> --- NEW FILE: intro.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <TITLE>AIM Introduction</TITLE> <META http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <link rel="stylesheet" type="text/css" href="styles.css"> <link rel="shortcut icon" href="favicon.ico"> </HEAD> <BODY> <h1>Documentation</h1> <p> The menu on the left gives you access to all locally available documentation for AIM 3.0. There may exist more recent documentation on the AiM website at <a href="http://aimmath.sourceforge.net" target="_top">aimmath.sourceforge.net</a>. </p> <p> The documentation for AiM should be extended, in particular there is a need for more extensive tutorials and manuals for teachers and students. If you have written something, please contribute it to the forum at <a href="http://aimmath.sourceforge.net" target="_top">aimmath.sourceforge.net</a>. </p> <p>Enjoy using AiM!</p> </BODY> </HTML> --- NEW FILE: noframes.html --- <html> <head> <TITLE>AIM Documentation</TITLE> </head> <body> <font size="4" face="san-serif"> Installation: </font><font size="2" face="san-serif"> <ul> <li><a href='install.html'>Installation instructions</a></li> <li><a href="WhatsNewInV3.txt">What is new in version 3.0</a></li> </ul> <font size="4" face="san-serif"> For teachers: </font><font size="2" face="san-serif"> <ul> <li><a href='concepts.html'>Some useful concepts</a></li> <li><a href='teacher.html'>Instructions for teachers<br>and administrators</a></li> <li><a href='format.html'>AIM Question Syntax</a></li> <li><a href='AuthoringPackages.html'>Question Authoring Packages</a></li> <li><a href='AuthoringGuide.pdf'>Authoring tools tutorial</a></li> <li><a href='tasks.html'>Tasks for the lecturer</a></li> </ul> <font size=4 face="san-serif"> For students: </font><font size=2 face="san-serif"> <ul> <li><a href='help.html'>Help for students</a></li> </ul> <font size=4 face="san-serif"> For administrators<br /> and developers: </font><font size=2 face="san-serif"> <ul> <li><a href='teacher.html'>Instructions for teachers<br>and administrators</a></li> <li><a href='files.html'>Files and directories</a></li> <li><a href='components.html'>Components of the system</a></li> <li><a href='packing.html'>AIM Maple package system</a></li> <li><a href='packages.html'>Package list</a></li> <li><a href='entries.html'>Index of all package documentation</a></li> <li><a href='admindoc.html'>AiM admin pages and actions</a></li> <li><a href='todo.html'>Things to do</a></li> </ul> </font> </body> </html> --- NEW FILE: styles.css --- body, td, th, li { font-family: "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; } Index: index.html =================================================================== RCS file: /cvsroot/aimmath/AIM/doc/index.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** index.html 25 Aug 2003 21:47:19 -0000 1.2 --- index.html 13 Sep 2003 07:30:38 -0000 1.3 *************** *** 1,23 **** ! <html> ! <!-- @(#)$Id$ --> ! <head><title>AiM System documentation</title></head> ! <body bgcolor='white'> ! <h1>AiM System Documentation</h1> ! ! <ul> ! <li>Instructions for teachers, organized by ! <a href='teacher.html'>page</a> or by ! <a href='tasks.html'>task</a>. ! </li> ! <li><a href='concepts.html'>Some useful concepts</a></li> ! <li><a href='format.html'>Syntax of question source files</a></li> ! <li><a href='install.html'>Installation instructions</a></li> ! <li><a href='files.html'>Files and directories used by AiM</a></li> ! <li><a href='components.html'>Components of the system</a></li> ! <li><a href='packing.html'>The AiM Maple package system</a></li> ! <li><a href='packages.html'>The package list</a></li> ! <li><a href='entries.html'>Index of all package documentation</a></li> ! <li><a href='todo.html'>Things to do</a></li> ! </ul> ! </body> ! </html> --- 1,14 ---- ! <HTML> ! <HEAD> ! <TITLE>AIM Documentation</TITLE> ! <link rel="stylesheet" type="text/css" href="styles.css"> ! <link rel="shortcut icon" href="favicon.ico"> ! </HEAD> ! <frameset cols="250,*"> ! <frame src="docmenu.html" name="docmenu"> ! <frame src="intro.html" name="main"> ! <noframes> ! To view this you need a browser that can display frames. However you can also use the <a href="noframes.html">no-frame version</a>. ! </noframes> ! </frameset> ! </HTML> |
From: <gus...@us...> - 2003-09-12 22:18:41
|
Update of /cvsroot/aimmath/AIM/doc In directory sc8-pr-cvs1:/tmp/cvs-serv1718/doc Modified Files: WhatsNewInV3.txt Log Message: A small number of additions to the list Index: WhatsNewInV3.txt =================================================================== RCS file: /cvsroot/aimmath/AIM/doc/WhatsNewInV3.txt,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** WhatsNewInV3.txt 12 Sep 2003 18:14:23 -0000 1.1 --- WhatsNewInV3.txt 12 Sep 2003 22:18:36 -0000 1.2 *************** *** 4,19 **** * Multipart questions ! AIM now has implemented multipart questions, using a syntax similar (but ! not identical) to that in the Gent version of AIM. See the question format ! documentation to explain how it works. * Focused mode ! + The user interface for students now allows them to focus ! on an individual question instead of working the entire quiz and one time. This should improve response times quite substantially. ! + Once a student requests the solutions to a quiz, AIM now shows the solutions to the student every time the quiz is requested until the student explicitly requests a new version. * Improved student feedback + The quiz selection page now shows each registered student a summary of --- 4,22 ---- * Multipart questions ! AiM now has implemented multipart questions, using a syntax similar (but ! not identical) to that in the Gent version of AiM. See the question syntax ! documentation for an explanation of how it works. * Focused mode ! + The user interface for students now allows them to focus on an individual ! question instead of working on the entire quiz at one time. This should improve response times quite substantially. ! + Once a student requests the solutions to a quiz, AiM now shows the solutions to the student every time the quiz is requested until the student explicitly requests a new version. + * Maple 9 compatibility + + AiM can now be run using either versions 7, 8, or 9 of Maple. + * Improved student feedback + The quiz selection page now shows each registered student a summary of *************** *** 30,34 **** * Time limits on processing ! + The maple part of AIM now imposes time limits on many things such as initializing a question, constructing the solution, or marking an answer. All time limits default to 2 seconds. --- 33,37 ---- * Time limits on processing ! + The maple part of AiM now imposes time limits on many things such as initializing a question, constructing the solution, or marking an answer. All time limits default to 2 seconds. *************** *** 40,56 **** * Improved compatibility ! + As a first step towards integrating AIM with Moodle or other VLE's, ! AIM mark up its output in a way that can more easily be parsed by other programs. This is mostly achieved by using <div> and <span> tags. For example, question 7.2 now comes wrapped in <div class='question' id='question7.2'> ... </div>, and the solution ! comes wrapped in <div class='solution'> ... </div>. + There are also some changes to move closer to strict compliance with the XHTML standard, e.g. replacing <br> by <br /> everywhere. This will be useful if and when we move to using MathML. ! * Postprompt flag + There is a postprompt>/pp> flag, for putting some text directly after the input box in a text question. * Technical changes --- 43,65 ---- * Improved compatibility ! + AiM now uses unicode for Netscape, Mozilla, and Safari browsers to ! resolve problems with the symbol font. ! + As a first step towards integrating AiM with Moodle or other VLE's, ! AiM mark up its output in a way that can more easily be parsed by other programs. This is mostly achieved by using <div> and <span> tags. For example, question 7.2 now comes wrapped in <div class='question' id='question7.2'> ... </div>, and the solution ! comes wrapped in <div class='solution'> ... </div>. ! + Other programs can ask AiM to serve its mathematical output in LaTeX ! which can then be converted to MathML or pdf. This is used by the ! Moodle interface. + There are also some changes to move closer to strict compliance with the XHTML standard, e.g. replacing <br> by <br /> everywhere. This will be useful if and when we move to using MathML. ! * Prompt and Postprompt flags + There is a postprompt>/pp> flag, for putting some text directly after the input box in a text question. + + Both prompt and postprompt can now be used also in matrix questions. * Technical changes *************** *** 89,93 **** * Exponential function and pi ! + AIM now defines the global variable e to be exp(1) + Students (and question authors) can enter expressions involving the exponential function using e instead of exp. For example, exp(x) can --- 98,102 ---- * Exponential function and pi ! + AiM now defines the global variable e to be exp(1) + Students (and question authors) can enter expressions involving the exponential function using e instead of exp. For example, exp(x) can *************** *** 100,107 **** Trig - authoring utilities for trig questions ! Calc - authoring utilities for calculus questions Inert - defines Inert forms of Maple expressions and allows customized latex formatting of expressions ! SET - defines an AIM class SET and related functions to get around the problems inherent in trying to use Maple sets in randomized questions --- 109,117 ---- Trig - authoring utilities for trig questions ! Calc - uses Maple's Student[Calculus] package to automatically produce ! step by step solutions of calculus problems Inert - defines Inert forms of Maple expressions and allows customized latex formatting of expressions ! SET - defines an AiM class SET and related functions to get around the problems inherent in trying to use Maple sets in randomized questions *************** *** 115,120 **** Nice - `Nice/Monomial`(), `Nice/Binomial`(), `Nice/Trinomial`() are utilities that produce "nice" monomials, binomials, and ! trinomials similar to those usually found in textbook questions ! * Servlet improvements ! + ??? --- 125,134 ---- Nice - `Nice/Monomial`(), `Nice/Binomial`(), `Nice/Trinomial`() are utilities that produce "nice" monomials, binomials, and ! trinomials similar to those usually found in textbook questions ! ! + A new manual/tutorial "AiM Authoring Tools" (work in progress) ! * Installation procedure ! + Installation has been simplified. ! + It is now possible to have several AiM installations running in parallel on ! the same Tomcat server. |
From: <mo...@us...> - 2003-09-12 18:14:27
|
Update of /cvsroot/aimmath/AIM/doc In directory sc8-pr-cvs1:/tmp/cvs-serv14288 Added Files: WhatsNewInV3.txt Log Message: quickie rough draft of new features list for version 3.0 --- NEW FILE: WhatsNewInV3.txt --- What's New in Release 3.0 ------------------------- * Multipart questions AIM now has implemented multipart questions, using a syntax similar (but not identical) to that in the Gent version of AIM. See the question format documentation to explain how it works. * Focused mode + The user interface for students now allows them to focus on an individual question instead of working the entire quiz and one time. This should improve response times quite substantially. + Once a student requests the solutions to a quiz, AIM now shows the solutions to the student every time the quiz is requested until the student explicitly requests a new version. * Improved student feedback + The quiz selection page now shows each registered student a summary of their current marks on all quizzes. + Students are now informed of the number of attempts they made on a given question, even if their answer is incorrect. * Improved quiz navigation + when requesting a Mark or Validation on an unfocused quiz, the cursor returns to the question that the student was last working on, rather than the top of the page. + Solutions and teacher's answers now have a different color background than the rest of the question. * Time limits on processing + The maple part of AIM now imposes time limits on many things such as initializing a question, constructing the solution, or marking an answer. All time limits default to 2 seconds. + There is a new timelimit>/tl> flag allowing you to specify a different limit for a particular question. + There is a new system variable Config['TimeLimit'] that can be set in ManualConfig.mpl to set change the system default from 2.0 seconds to whatever value is appropriate for a given server. * Improved compatibility + As a first step towards integrating AIM with Moodle or other VLE's, AIM mark up its output in a way that can more easily be parsed by other programs. This is mostly achieved by using <div> and <span> tags. For example, question 7.2 now comes wrapped in <div class='question' id='question7.2'> ... </div>, and the solution comes wrapped in <div class='solution'> ... </div>. + There are also some changes to move closer to strict compliance with the XHTML standard, e.g. replacing <br> by <br /> everywhere. This will be useful if and when we move to using MathML. * Postprompt flag + There is a postprompt>/pp> flag, for putting some text directly after the input box in a text question. * Technical changes + There are some changes to the object oriented programming framework, to make it fit better with the Maple debugger. In particular, the procedures used to perform methods, which were previously anonymous, now have names: for example, the 'Show' method for `aim/Question/Instance` objects is called `aim/Question/Instance!Show`, and this name is reported in error messages, and can be passed to debugger functions such as stopat(). + There is a facility to make a list of all messages that might need to be translated for internationalization. + The trylast.mpl file has disappeared; it is replaced by the trylast() function which is now defined explicitly in Console.mpl + Several minor technical changes were made to allow compatibility with Maple 9 * Improved robustness + The old codegen package that was causing *lots* of problems when compiling questions has now been replaced with routines calling ToInert and FromInert. This should result in much improved robustness when compiling questions. * Improvements to the Admin pages + The Zone admin page has been cleaned up a bit. In particular the Zone student and administrator login page editors now have their own web page. The default for hiding subjects has been changed from hidden to visible. + The subject admin page now has a link to compile all questions in all non-hidden subjects. * Improvements in LaTeX formatting + Substantially improved default formatting of floats + There is a new global variable 'LaTeXDigits' whose value affects the number of digits used when formatting a float, but not the internal accuracy of the floating point calculations + n^(1/2) now formats as \sqrt{n} if n is a single digit integer * Exponential function and pi + AIM now defines the global variable e to be exp(1) + Students (and question authors) can enter expressions involving the exponential function using e instead of exp. For example, exp(x) can be entered by the students as e^x + the global pi is now defined to be Pi, so students can enter either one * New question authoring utilities + Several new packages and utilities have been added to aid in question authoring: Trig - authoring utilities for trig questions Calc - authoring utilities for calculus questions Inert - defines Inert forms of Maple expressions and allows customized latex formatting of expressions SET - defines an AIM class SET and related functions to get around the problems inherent in trying to use Maple sets in randomized questions Decimal - authoring utilities for dealing with the decimal representation of rationals Number - utilities for dealing with the representations of integers (Roman numerals, converting numbers to words, etc) Random - the Rand command now has several new features Keys() - an authoring utility that makes it easy to generate quiz question selector functions Nice - `Nice/Monomial`(), `Nice/Binomial`(), `Nice/Trinomial`() are utilities that produce "nice" monomials, binomials, and trinomials similar to those usually found in textbook questions * Servlet improvements + ??? |
From: <gus...@us...> - 2003-09-12 12:22:43
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple In directory sc8-pr-cvs1:/tmp/cvs-serv2810/WEB-INF/maple Modified Files: PackageList Log Message: typos corrected Index: PackageList =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/PackageList,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** PackageList 12 Sep 2003 10:42:46 -0000 1.4 --- PackageList 12 Sep 2003 12:22:39 -0000 1.5 *************** *** 24,27 **** --- 24,28 ---- aim/Diff aim/Int + aim/Calc aim/Functions aim/Trig *************** *** 63,65 **** aim/try/Quiz Site - aim/Calc --- 64,65 ---- |
From: <gus...@us...> - 2003-09-12 12:22:43
|
Update of /cvsroot/aimmath/AIM/doc In directory sc8-pr-cvs1:/tmp/cvs-serv2810/doc Modified Files: packing.html Log Message: typos corrected Index: packing.html =================================================================== RCS file: /cvsroot/aimmath/AIM/doc/packing.html,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** packing.html 1 Sep 2003 20:22:23 -0000 1.3 --- packing.html 12 Sep 2003 12:22:40 -0000 1.4 *************** *** 122,126 **** saved in the <font color='red'>.m</font> file for the package, with documentation in the <font color='red'>.html</font> and an entry in ! the documentation index file <font color='red'>enties.html</font>. It is (very) occasionally convenient to modify the value of a variable after the <font color='green'>`Package/Assign`</font> --- 122,126 ---- saved in the <font color='red'>.m</font> file for the package, with documentation in the <font color='red'>.html</font> and an entry in ! the documentation index file <font color='red'>entries.html</font>. It is (very) occasionally convenient to modify the value of a variable after the <font color='green'>`Package/Assign`</font> |
From: <gus...@us...> - 2003-09-12 12:22:43
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim In directory sc8-pr-cvs1:/tmp/cvs-serv2810/WEB-INF/maple/aim Modified Files: Calc.mpl Log Message: typos corrected Index: Calc.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/Calc.mpl,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Calc.mpl 12 Sep 2003 10:42:46 -0000 1.1 --- Calc.mpl 12 Sep 2003 12:22:40 -0000 1.2 *************** *** 1,5 **** read("Package.mpl"): ! Package("aim/Diff"," This package provides a number of useful functions for use in differentiation questions. --- 1,5 ---- read("Package.mpl"): ! Package("aim/Calc"," This package provides a number of useful functions for use in differentiation questions. *************** *** 38,42 **** `Package/Assign`( `aim/Calc/Soln`::`string`, ! "Uses the @aim/Calc/MakeSoln@ procedure to generate a solution to a @Diff@, @Int@, or @Limit@ problem, then returns a string of tex code to format the solution. --- 38,42 ---- `Package/Assign`( `aim/Calc/Soln`::`string`, ! "Uses the #aim/Calc/MakeSoln# procedure to generate a solution to a @Diff@, @Int@, or @Limit@ problem, then returns a string of tex code to format the solution. |
From: <gus...@us...> - 2003-09-12 10:42:55
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim In directory sc8-pr-cvs1:/tmp/cvs-serv16994/WEB-INF/maple/aim Added Files: Calc.mpl Log Message: New package aim/Calc for automatic generation of Calculus Examples, see http://maths-physics.org.uk/aiminfo/mod/forum/discuss.php?d=35 --- NEW FILE: Calc.mpl --- read("Package.mpl"): Package("aim/Diff"," This package provides a number of useful functions for use in differentiation questions. " ): ###################################################################### `Package/Assign`( `aim/Calc/MakeSoln`::`list`, "Expects a calc problem involving either a @Diff@, @Int@, or @Limit@. Returns a list with two elements. The first is a list of hints for the problem. The second is a list of the intermediate steps in the problem. This uses Maple's @Student[Calculus1]@ package. ", proc(prob) local hintlist, steplist, hint, step; step:=prob; steplist:=[prob]; hint:=Student[Calculus1][Hint](step); if nops([hint])>1 then hint:=hint[1]; fi; hintlist:=[hint]; while hintlist[nops(hintlist)]<>[] do step:=Student[Calculus1][Rule][hintlist[nops(hintlist)]](step); steplist:=[op(steplist), rhs(step)]; hint:=Student[Calculus1][Hint](step); if nops([hint])>1 then hint:=hint[1]; fi; hintlist:=[op(hintlist), hint]; od; return([hintlist,steplist]); end ): ###################################################################### `Package/Assign`( `aim/Calc/Soln`::`string`, "Uses the @aim/Calc/MakeSoln@ procedure to generate a solution to a @Diff@, @Int@, or @Limit@ problem, then returns a string of tex code to format the solution. ", proc(prob) local Soln,Output,i; Soln:=`aim/Calc/MakeSoln`(prob); Output:=cat("\\begin{eqnarray*}\n", `aim/LaTeX`(Soln[2,1]), "=& ", `aim/LaTeX`(Soln[2,2]), " & ", `aim/LaTeX`(Soln[1,1]), "\\\\ \n"); if nops(Soln[2])>2 then for i from 3 to nops(Soln[2]) do Output:=cat(Output, "=& ", `aim/LaTeX`(Soln[2,i]), " & ", `aim/LaTeX`(Soln[1,i-1]), "\\\\ \n"); od; fi; Output:=cat(Output,"\\end{eqnarray*}"); return(Output); end ): ###################################################################### EndPackage(): |
From: <gus...@us...> - 2003-09-12 10:42:55
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple In directory sc8-pr-cvs1:/tmp/cvs-serv16994/WEB-INF/maple Modified Files: PackageList Log Message: New package aim/Calc for automatic generation of Calculus Examples, see http://maths-physics.org.uk/aiminfo/mod/forum/discuss.php?d=35 Index: PackageList =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/PackageList,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PackageList 1 Sep 2003 05:53:28 -0000 1.3 --- PackageList 12 Sep 2003 10:42:46 -0000 1.4 *************** *** 63,65 **** aim/try/Quiz Site ! --- 63,65 ---- aim/try/Quiz Site ! aim/Calc |
From: <mo...@us...> - 2003-09-12 03:16:49
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple In directory sc8-pr-cvs1:/tmp/cvs-serv6741 Modified Files: AliceServer.mpl Random.mpl Log Message: Changes to LaTeX routines to accomodate pdf output, Also minor typos and bug fixes. Index: AliceServer.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/AliceServer.mpl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** AliceServer.mpl 1 Sep 2003 05:53:28 -0000 1.4 --- AliceServer.mpl 12 Sep 2003 03:16:46 -0000 1.5 *************** *** 30,37 **** readlib(latex): # KM ! # DIST unassign('`latex/exp`'): # END KM - unassign('`latex/ln`'): - unassign('`latex/log`'): readlib(randomize)(): with(linalg): --- 30,37 ---- readlib(latex): # KM ! # WAS: unassign('`latex/exp`'): ! # WAS: unassign('`latex/ln`'): ! # WAS: unassign('`latex/log`'): # END KM readlib(randomize)(): with(linalg): Index: Random.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Random.mpl,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Random.mpl 8 Sep 2003 03:43:31 -0000 1.7 --- Random.mpl 12 Sep 2003 03:16:46 -0000 1.8 *************** *** 72,77 **** <LI>if the argument is a range of the form @a..b@ where @a@ and @b@ are single character strings, then a random character between @a@ and @b@ is returned (using @convert(-,bytes)@ for the values of the characters). <LI>if the argument is a range of the form @a..b@ where @a@ and @b@ are floating point numbers, then a random float between @a@ and @b@ is returned (with precision similar to the precision specified by @a@ and @b@). ! <LI>if the argument is an AiM #SET# @S@, then @Rand(S['elements'])@ is returned ! (see documentation for SET). Note that in general you should not use ordinary Maple sets in your AiM questions, since Maple sets do not have a guaranteed order for their elements (which can produce different results in different instances of the same question). <LI>if the argument is of the form @Fn(f,x[1],...,x[k])@ where @f@ is a argument to @Rand@ which returns a function of @k@ variables and each @x[i]@ is an argument to @Rand@, then for each @i@, @a[i]:=Rand(x[i])@ is computed. The value @Rand(f)(a1,...,a[k])@ is then returned. <LI>if the argument is of the form @Set(A,B)@, @AIMSET(A,B)@, @List(A,B)@, @DupList(A,B)@, @Seq(A,B)@, @DupSeq(A,B)@, @SUM(A,B)@, or @Prod(A,B)@ then a natural number @n=Rand(B)@ is computed and a set, #SET#, list, sequence, sum, --- 72,77 ---- <LI>if the argument is a range of the form @a..b@ where @a@ and @b@ are single character strings, then a random character between @a@ and @b@ is returned (using @convert(-,bytes)@ for the values of the characters). <LI>if the argument is a range of the form @a..b@ where @a@ and @b@ are floating point numbers, then a random float between @a@ and @b@ is returned (with precision similar to the precision specified by @a@ and @b@). ! <LI>if the argument is an #`aim/SET`# @S@, then @Rand(S['elements'])@ is returned ! (see documentation for #`aim/SET`#). Note that in general you should not use ordinary Maple sets in your AiM questions, since Maple sets do not have a guaranteed order for their elements (which can produce different results in different instances of the same question). <LI>if the argument is of the form @Fn(f,x[1],...,x[k])@ where @f@ is a argument to @Rand@ which returns a function of @k@ variables and each @x[i]@ is an argument to @Rand@, then for each @i@, @a[i]:=Rand(x[i])@ is computed. The value @Rand(f)(a1,...,a[k])@ is then returned. <LI>if the argument is of the form @Set(A,B)@, @AIMSET(A,B)@, @List(A,B)@, @DupList(A,B)@, @Seq(A,B)@, @DupSeq(A,B)@, @SUM(A,B)@, or @Prod(A,B)@ then a natural number @n=Rand(B)@ is computed and a set, #SET#, list, sequence, sum, *************** *** 267,270 **** --- 267,271 ---- fi; if type(r,specfunc(list,Permute)) then a:=op(r) else a:=[op(r)] fi: + a:=map(Rand,a); n:=nops(a); t:=combinat[randperm](n); |
From: <mo...@us...> - 2003-09-12 03:16:18
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim In directory sc8-pr-cvs1:/tmp/cvs-serv6646 Modified Files: Inert.mpl LaTeX.mpl SET.mpl Log Message: Changes to LaTeX routines to accomodate pdf output, Also minor typos and bug fixes. Index: Inert.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/Inert.mpl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Inert.mpl 8 Sep 2003 03:44:13 -0000 1.4 --- Inert.mpl 12 Sep 2003 03:16:07 -0000 1.5 *************** *** 28,32 **** An InertExpr contains both its mathematical value and its LaTeX formatting.<br/><br/> ! The #TeX# command can be used to return the LaTeX formatting of an @InertExpr@ while the #Value# command can be used to obtain the mathematical value of an @InertExpr@. For example, @TeX(Sin(0))@ will return the string \"sin(0)\" while @Value(Sin(0))@ will return 0.<br/><br/> The #Apply# command can also be used to treat either an @InertExpr@ or an ordinary Maple expression as a function. The first argument is treated as a function and applied to the remaining arguments as illustrated in the following exmaples:<br/><br/> --- 28,32 ---- An InertExpr contains both its mathematical value and its LaTeX formatting.<br/><br/> ! The #TeX# command can be used to return the LaTeX formatting of an @InertExpr@ while the #Value# command can be used to obtain the mathematical value of an @InertExpr@. For example, @TeX(Sin(0))@ will return the string \"\\sin(0)\" while @Value(Sin(0))@ will return 0.<br/><br/> The #Apply# command can also be used to treat either an @InertExpr@ or an ordinary Maple expression as a function. The first argument is treated as a function and applied to the remaining arguments as illustrated in the following exmaples:<br/><br/> *************** *** 249,253 **** RETURN("Wrong number of arguments") fi; ! Values:=seq(`if`(type(NewArgs[j],InertExpr),NewArgs[j]['Value'],NewArgs[j]),j=1..n); f:=F['Map']; d:=F['Domain']; --- 249,255 ---- RETURN("Wrong number of arguments") fi; ! Values:=seq(`if`(type(NewArgs[j],InertExpr), ! eval(NewArgs[j])['Value'], ! eval(NewArgs)[j]),j=1..n); f:=F['Map']; d:=F['Domain']; *************** *** 938,944 **** proc(x) # TeX if x=1 then ! "{\\boldmath e}" else ! PercentStringToProc("{\\boldmath e}^{%1}")(x); fi; end, --- 940,946 ---- proc(x) # TeX if x=1 then ! "{\\it e}" else ! PercentStringToProc("{\\it e}^{%1}")(x); fi; end, *************** *** 962,966 **** "The Inert exponential function.", `new/Inert`( proc(x) ln(x) end, # Map ! "ln\\left(%1\\right)", # TeX 1, # Nargs 'algebraic', # Domain --- 964,968 ---- "The Inert exponential function.", `new/Inert`( proc(x) ln(x) end, # Map ! "\\ln\\left(%1\\right)", # TeX 1, # Nargs 'algebraic', # Domain *************** *** 987,991 **** "The Inert sine function.", `new/Inert`( sin, # Map ! "sin(%1)", # TeX 1, # Nargs 'algebraic',# Domain --- 989,993 ---- "The Inert sine function.", `new/Inert`( sin, # Map ! "\\sin(%1)", # TeX 1, # Nargs 'algebraic',# Domain *************** *** 1003,1007 **** "The Inert cos function.", `new/Inert`( cos, # Map ! "cos(%1)", # TeX 1, # Nargs 'algebraic',# Domain --- 1005,1009 ---- "The Inert cos function.", `new/Inert`( cos, # Map ! "\\cos(%1)", # TeX 1, # Nargs 'algebraic',# Domain *************** *** 1019,1023 **** "The Inert tan function.", `new/Inert`( tan, # Map ! "tan(%1)", # TeX 1, # Nargs proc(x::algebraic) # Domain --- 1021,1025 ---- "The Inert tan function.", `new/Inert`( tan, # Map ! "\\tan(%1)", # TeX 1, # Nargs proc(x::algebraic) # Domain *************** *** 1064,1079 **** `Inert/Union`::Inert, "The Inert Set function (represents a SET object).", ! `new/Inert`( proc() # Map FIX ME ! if type([args],list(SET)) then ! `SET/Union`(args) ! else ! `union`(args) ! fi ! end, proc() # TeX cat(TeX(args[1]),seq(cat("\\cup{}",TeX(args[i])),i=2..nargs)) end, ! 0, # Nargs ! 'anything', # Domain "Union", # Name true, # Needs parentheses --- 1066,1075 ---- `Inert/Union`::Inert, "The Inert Set function (represents a SET object).", ! `new/Inert`(`SET/Union`, # Map proc() # TeX cat(TeX(args[1]),seq(cat("\\cup{}",TeX(args[i])),i=2..nargs)) end, ! -1, # Nargs ! 'SET', # Domain "Union", # Name true, # Needs parentheses Index: LaTeX.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/LaTeX.mpl,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** LaTeX.mpl 10 Sep 2003 15:26:09 -0000 1.7 --- LaTeX.mpl 12 Sep 2003 03:16:07 -0000 1.8 *************** *** 24,74 **** `Package/Dependencies` = ["Util"]: ! `Package/Assign`( ! `latex/latex/function`, ! "", ! proc(e) ! local `(`, `)`, `,`, texlist, lf, `{`, `}`,`\\,`; ! if 1 < nops(op(0, e)) or ! type(op(0, e), 'function') and op([0, 0], e) = '`@`' or ! type(op(0, e), {'`+`', '`*`'}) ! then ! texlist := `latex/prinpar`(op(0, e)) ! elif type(op(0, e), {'string', 'symbol'}) then ! lf := cat(`latex/`,op(0, e)); ! if (eval(lf) <> eval(lf,1)) then ! RETURN(eval(cat(`latex/`,op(0, e))(op(e)))); ! else ! texlist := `\\,`,`latex/print`(op(0, e)); ! fi; ! else ! texlist := `\\,`,`latex/print`(op(0, e)); ! fi; ! texlist, `latex/latex/commalist`([op(e)], `,`, `(`, `)`) ! end ! ): ! # KM ! `Package/Assign`( ! `latex/latex/symbol`, ! "", ! proc(QQ) ! local texlist, s,n,`{`, `}`, `\\_`; ! option system, remember; ! if assigned(`latex/special_names`[cat(``,QQ)]) then ! texlist := `latex/special_names`[cat(``,QQ)] ! elif member(QQ, eval(`latex/greek`, 1)) then ! texlist := `latex/latex/copy`(cat(`\\`,QQ)) ! else ! texlist := `latex/latex/copy`(QQ); ! s := convert(texlist,string); ! if s <> "" and substring(s,1..1) = "&" then ! s := substring(s,2..-1); ! n := convert(s,name); ! texlist := `latex/latex/copy`(n); ! fi; ! fi; ! RETURN(texlist); ! end ! ): `Package/Assign`( --- 24,74 ---- `Package/Dependencies` = ["Util"]: ! #`Package/Assign`( ! # `latex/latex/function`, ! # "", ! # proc(e) ! # local `(`, `)`, `,`, texlist, lf, `{`, `}`,`\\,`; ! # if 1 < nops(op(0, e)) or ! # type(op(0, e), 'function') and op([0, 0], e) = '`@`' or ! # type(op(0, e), {'`+`', '`*`'}) ! # then ! # texlist := `latex/prinpar`(op(0, e)) ! # elif type(op(0, e), {'string', 'symbol'}) then ! # lf := cat(`latex/`,op(0, e)); ! # if (eval(lf) <> eval(lf,1)) then ! # RETURN(eval(cat(`latex/`,op(0, e))(op(e)))); ! # else ! # texlist := `\\,`,`latex/print`(op(0, e)); ! # fi; ! # else ! # texlist := `\\,`,`latex/print`(op(0, e)); ! # fi; ! # texlist, `latex/latex/commalist`([op(e)], `,`, `(`, `)`) ! # end ! #): ! ## KM ! #`Package/Assign`( ! # `latex/latex/symbol`, ! # "", ! # proc(QQ) ! # local texlist, s,n,`{`, `}`, `\\_`; ! # option system, remember; ! # if assigned(`latex/special_names`[cat(``,QQ)]) then ! # texlist := `latex/special_names`[cat(``,QQ)] ! # elif member(QQ, eval(`latex/greek`, 1)) then ! # texlist := `latex/latex/copy`(cat(`\\`,QQ)) ! # else ! # texlist := `latex/latex/copy`(QQ); ! # s := convert(texlist,string); ! # if s <> "" and substring(s,1..1) = "&" then ! # s := substring(s,2..-1); ! # n := convert(s,name); ! # texlist := `latex/latex/copy`(n); ! # fi; ! # fi; ! # RETURN(texlist); ! # end ! #): `Package/Assign`( *************** *** 76,84 **** "This function overrides the default Maple routine for LaTeX'ing powers, to prevent doing conversions of expressions into ! various other forms and to handle the @exp@ function. We can use #InerExpr# objects to format as we desire.", ! proc (e::anything) ! local texlist,`[`,`\\frac `,`\\sqrt `,`]`,`{`,`}`; ! ! texlist := NULL; # I don't ever want it to do any of this... I'll force it to simplify if I want it that way # dist if type(op(2,e),'fraction') and abs(op([2, 1],e)) = 1 --- 76,124 ---- "This function overrides the default Maple routine for LaTeX'ing powers, to prevent doing conversions of expressions into ! various other forms and to handle the @exp@ function.", ! proc(e) ! local texlist, `[`, `\\frac `, `\\sqrt `, `]`, `{`, `}`; ! option ! `Copyright (c) 1992 by the University of Waterloo. All rights reserved.`; ! texlist := NULL; ! # KM Prevent these ad hoc conversions... ! # KM only allow radicals for single digit numbers ! # ! # WAS: if type(op(2, e), 'fraction') and abs(op([2, 1], e)) = 1 and ! # WAS: abs(op([2, 2], e)) < 10 then ! # WAS: if op(2, e) < 0 then texlist := texlist, `{`, `\\frac `, `{`, 1, ! # WAS: `}`, `{`, `latex/print`(1/e), `}`, `}` ! # WAS: else ! # WAS: texlist := texlist, `\\sqrt `; ! # WAS: if op(2, e) <> 1/2 then ! # WAS: texlist := texlist, `[`, 1/op(2, e), `]` ! # WAS: end if; ! # WAS: texlist := texlist, `{`, `latex/print`(op(1, e)), `}` ! # WAS: end if ! if type(op(2, e),fraction) and op(2,e)=1/2 and ! type(op(1,e),integer) and 0<=op(1,e) and op(1,e)<10 then ! texlist := texlist, `\\sqrt `, `{`, `latex/print`(op(1, e)), `}` ! # END KM ! else ! if type(op(1, e), { ! 'function', '`+`', '`*`', 'fraction', '`^`', 'series', 'negative'}) ! # KM ! and not op(1,e)=exp(1) ! # END KM ! then texlist := texlist, `latex/latex/prinpar`(op(1, e)) ! elif type(op(1, e), 'nonreal') and not type(op(1, e), 'imaginary') ! then texlist := texlist, `latex/latex/prinpar`(op(1, e)) ! else texlist := texlist, `{`, `latex/print`(op(1, e)), `}` ! fi; ! texlist := texlist, `^`, `{`, `latex/print`(op(2, e)), `}` ! fi; ! texlist ! end ! ): ! ! #proc (e::anything) ! # local texlist,`[`,`\\frac `,`\\sqrt `,`]`,`{`,`}`; ! # ! # texlist := NULL; # I don't ever want it to do any of this... I'll force it to simplify if I want it that way # dist if type(op(2,e),'fraction') and abs(op([2, 1],e)) = 1 *************** *** 88,120 **** # dist texlist := `\\sqrt `,`{`,`latex/print`(op(1,e)),`}`; # dist else ! if type(op(1,e),{'`+`','`*`','`^`','function','series','fraction','negative'}) ! # KM ! and not op(1,e)=exp(1) ! # END KM ! then ! texlist:=texlist,`latex/latex/prinpar`(op(1,e)) ! else ! texlist:=texlist,`{`,`latex/print`(op(1,e)),`}` ! fi; ! texlist:=texlist,`^`,`{`,`latex/print`(op(2,e)),`}`; ! # KM ! # dist fi; ! # END KM ! texlist ! end ! ): # KM `Package/Assign`( `latex/exp`::string, ! "This is a replacement for the @`latex/exp`@ command which works exactly the same, except that it boldmath's the e. ", proc() ! local e, `{`, `}`; ! if nargs=1 and args[1]=1 then ! `{`, `\\boldmath `, e,`}`; ! else ! `{`, `{`, `\\boldmath `, e,`}`, `^`, `{`, `latex/print`(args), `}`,`}`; ! fi; end ): --- 128,157 ---- # dist texlist := `\\sqrt `,`{`,`latex/print`(op(1,e)),`}`; # dist else ! # if type(op(1,e),{'`+`','`*`','`^`','function','series','fraction','negative'}) ! # then ! # texlist:=texlist,`latex/latex/prinpar`(op(1,e)) ! # else ! # texlist:=texlist,`{`,`latex/print`(op(1,e)),`}` ! # fi; ! # texlist:=texlist,`^`,`{`,`latex/print`(op(2,e)),`}`; ! ## KM ! ## dist fi; ! ## END KM ! # texlist ! # end ! #): # KM `Package/Assign`( `latex/exp`::string, ! "This is a replacement for the @`latex/exp`@ command which works exactly the same, except that italicizes the e, since TtH doesn't otherwise. ", proc() ! local e, `{`, `}`; ! if nargs=1 and args[1]=1 then ! `{`, `\\it `, e,`}`; ! else ! `{`, `{`, `\\it `, e,`}`, `^`, `{`, `latex/print`(args), `}`,`}`; ! fi; end ): *************** *** 124,128 **** `latex/latex/matrix`, "This function overrides the default Maple routine for ! LaTeX'ing matrices. The sole change is that one line has been modifed to prevent the insertion of extra whitespace that confuses TtH. --- 161,165 ---- `latex/latex/matrix`, "This function overrides the default Maple routine for ! LaTeX'ing matrices. The sole change is that one line has been modifed to prevent the insertion of extra whitespace that confuses TtH. Index: SET.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/SET.mpl,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** SET.mpl 1 Sep 2003 05:55:59 -0000 1.1 --- SET.mpl 12 Sep 2003 03:16:07 -0000 1.2 *************** *** 12,16 **** "There is a problem with trying to use Maple sets in AIM questions, namely that Maple sets have no particular ! guarenteed order to their elements. This is a problem in AIM because we want the order to depend only on the randomization seed, so that, e.g. if we print a set in a --- 12,16 ---- "There is a problem with trying to use Maple sets in AIM questions, namely that Maple sets have no particular ! guaranteed order to their elements. This is a problem in AIM because we want the order to depend only on the randomization seed, so that, e.g. if we print a set in a |
From: <ma...@us...> - 2003-09-11 21:15:36
|
Update of /cvsroot/aimmath/moodle/mod/math_assignment In directory sc8-pr-cvs1:/tmp/cvs-serv1782/mod/math_assignment Modified Files: aimpage.php index.php Log Message: Removed 'printer friendly version' links from aimpage. Also another minor bug fix in index.php. Index: aimpage.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/aimpage.php,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** aimpage.php 11 Sep 2003 15:12:23 -0000 1.3 --- aimpage.php 11 Sep 2003 21:15:32 -0000 1.4 *************** *** 14,18 **** optional_variable($q); // quiz ID optional_variable($aimaction); // action to get AiM to perform ! optional_variable($output, "html"); // output type (html, xml, pdf) if (strcasecmp($output, "xml") == 0) --- 14,18 ---- optional_variable($q); // quiz ID optional_variable($aimaction); // action to get AiM to perform ! optional_variable($output, "html"); // output type (html, xml) if (strcasecmp($output, "xml") == 0) *************** *** 20,27 **** else $usexml = false; - if (strcasecmp($output, "pdf") == 0) - $makepdf = true; - else - $makepdf = false; if (! $site = get_site()) { --- 20,23 ---- *************** *** 69,73 **** // browse through the data which has been POSTed to us $postdata = ""; - $createpdfaction = ""; if (!$_POST) { if (isteacher($course->id)) { --- 65,68 ---- *************** *** 75,79 **** $postdata = math_assignment_add_arg_to_url_data($postdata, "Command","try/Quiz"); $postdata = math_assignment_add_arg_to_url_data($postdata, "Action", "TryQuiz"); - $createpdfaction = "try"; } else if (strcasecmp($aimaction, "edit") == 0) { // load the edit quiz page --- 70,73 ---- *************** *** 105,109 **** $postdata = math_assignment_add_arg_to_url_data($postdata, "StudentID", $USER->username); $postdata = math_assignment_add_arg_to_url_data($postdata, "Password", $server->student_passwd); - $createpdfaction = "show"; } } --- 99,102 ---- *************** *** 115,129 **** } } - if (array_key_exists("Command", $_POST)) { - if (strcasecmp($_POST['Command'], "ShowQuizPage") == 0) - $createpdfaction = "show"; - else if(strcasecmp($_POST['Command'], "try/Quiz") == 0) - $createpdfaction = "try"; - } } - if (empty($createpdfaction)) - $makepdf = false; // only allow pdf for supported pages - if ($makepdf) - $createpdfaction = ""; // don't display pdf link for pdf output page // Print the page header --- 108,112 ---- *************** *** 153,158 **** // Print the main part of the page ! if (!$makepdf) ! math_assignment_print_aim_output_script(); if (isset($CFG->math_assignment_debug)) { --- 136,140 ---- // Print the main part of the page ! math_assignment_print_aim_output_script(); if (isset($CFG->math_assignment_debug)) { *************** *** 167,171 **** // load the AiM page and grab the result ! $data = math_assignment_get_aim_output($server->address, $postdata, ($usexml || $makepdf) ? "latex" : "html"); // check if we need to sooth any AiM grumbles --- 149,153 ---- // load the AiM page and grab the result ! $data = math_assignment_get_aim_output($server->address, $postdata, $usexml ? "latex" : "html"); // check if we need to sooth any AiM grumbles *************** *** 178,182 **** } // retry ! $data = math_assignment_get_aim_output($server->address, $postdata, ($usexml || $makepdf) ? "latex" : "html"); } } --- 160,164 ---- } // retry ! $data = math_assignment_get_aim_output($server->address, $postdata, $usexml ? "latex" : "html"); } } *************** *** 185,229 **** if (isteacher($course->id)) echo math_assignment_get_admin_links($cm, $math_assignment, "right"); - // write pdf link - if ($createpdfaction) { - $strcreatepdf = get_string("createpdf", "math_assignment"); - echo "<p align=\"right\"><a href=\"aimpage.php?id=$cm->id&aimaction=$createpdfaction&output=pdf\">$strcreatepdf</a> "; - helpbutton("try_quiz", $strcreatepdf, "math_assignment"); - echo "</p>\n"; - } - // write out relevant parts of it ! $data = math_assignment_convert_aim_output($math_assignment, $subject, $data, $server->address, "aimpage.php?id=$cm->id", !$makepdf, $grade, $max_grade); if (!$data) { error(get_string("nooutput", "math_assignment"), "view.php?id=$cm->id"); } ! if ($makepdf) { ! if (math_assignment_pdf($math_assignment, $course, $data)) { ! notice(get_string("pdfok", "math_assignment")); ! } else { ! error(get_string("pdferror", "math_assignment")); ! } ! } ! else { ! print_simple_box_start("center", "", "$THEME->cellcontent", "20"); ! echo $data; ! print_simple_box_end(); ! // update max grade ! if ($max_grade > 0) ! set_field("math_assignment", "aimgrade", $max_grade, "id", $math_assignment->id); ! // update student grade when marking only ! if (isstudent($course->id)) { ! if (array_key_exists("Command", $_POST)) { ! if (strcmp($_POST['Command'], "MarkQuiz") == 0) { ! math_assignment_store_grade($math_assignment, $USER->id, -1, $grade); ! } } } - - // display teacher grade override comment (if any) - math_assignment_print_grade_override($math_assignment, $USER->id); } if (isset($CFG->math_assignment_debug)) { --- 167,194 ---- if (isteacher($course->id)) echo math_assignment_get_admin_links($cm, $math_assignment, "right"); // write out relevant parts of it ! $data = math_assignment_convert_aim_output($math_assignment, $subject, $data, $server->address, "aimpage.php?id=$cm->id", true, $grade, $max_grade); if (!$data) { error(get_string("nooutput", "math_assignment"), "view.php?id=$cm->id"); } ! print_simple_box_start("center", "", "$THEME->cellcontent", "20"); ! echo $data; ! print_simple_box_end(); ! // update max grade ! if ($max_grade > 0) ! set_field("math_assignment", "aimgrade", $max_grade, "id", $math_assignment->id); ! // update student grade when marking only ! if (isstudent($course->id)) { ! if (array_key_exists("Command", $_POST)) { ! if (strcmp($_POST['Command'], "MarkQuiz") == 0) { ! math_assignment_store_grade($math_assignment, $USER->id, -1, $grade); } } } + + // display teacher grade override comment (if any) + math_assignment_print_grade_override($math_assignment, $USER->id); if (isset($CFG->math_assignment_debug)) { Index: index.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/index.php,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** index.php 11 Sep 2003 20:50:40 -0000 1.2 --- index.php 11 Sep 2003 21:15:32 -0000 1.3 *************** *** 120,132 **** math_assignment_get_file_urls($course->id, $math_assignment, $proburl, $solurl); if ($teacher) { ! if ($showaim) { // lookup subject if (! $subject = get_record("math_assignment_subject", "id", $math_assignment->aimsubject)) { ! $subject->server = 0; ! $subject->name = "Unknown"; // this should never happen! } // lookup server if (! $server = get_record("math_assignment_server", "id", $subject->server)) { ! $server->name = "Unknown"; // this should never happen! $server->address = "unknown"; } --- 120,132 ---- math_assignment_get_file_urls($course->id, $math_assignment, $proburl, $solurl); if ($teacher) { ! if ($showaim && $math_assignment->aimquiz) { // lookup subject if (! $subject = get_record("math_assignment_subject", "id", $math_assignment->aimsubject)) { ! $subject->server = 0; ! $subject->name = "Unknown"; } // lookup server if (! $server = get_record("math_assignment_server", "id", $subject->server)) { ! $server->name = "Unknown"; $server->address = "unknown"; } *************** *** 138,143 **** } array_push($row, userdate($math_assignment->timedue, "", 99, false), $math_assignment->problems ? "<a href=\"$proburl\" target=\"problems\">$strviewproblems</a>" : "", $math_assignment->solutions ? "<a href=\"$solurl\" target=\"solutions\">$strviewsolutions</a>" : ""); ! if ($showaim) ! array_push($row, $subject->name, "$server->name ($server->address)"); $table->data[] = $row; } --- 138,147 ---- } array_push($row, userdate($math_assignment->timedue, "", 99, false), $math_assignment->problems ? "<a href=\"$proburl\" target=\"problems\">$strviewproblems</a>" : "", $math_assignment->solutions ? "<a href=\"$solurl\" target=\"solutions\">$strviewsolutions</a>" : ""); ! if ($showaim) { ! if ($math_assignment->aimquiz) ! array_push($row, $subject->name, "$server->name ($server->address)"); ! else ! array_push($row, "", ""); ! } $table->data[] = $row; } |
From: <ma...@us...> - 2003-09-11 21:15:36
|
Update of /cvsroot/aimmath/moodle/lang/en In directory sc8-pr-cvs1:/tmp/cvs-serv1782/lang/en Modified Files: math_assignment.php Log Message: Removed 'printer friendly version' links from aimpage. Also another minor bug fix in index.php. Index: math_assignment.php =================================================================== RCS file: /cvsroot/aimmath/moodle/lang/en/math_assignment.php,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** math_assignment.php 9 Sep 2003 18:31:07 -0000 1.1 --- math_assignment.php 11 Sep 2003 21:15:32 -0000 1.2 *************** *** 23,27 **** $string['autoregister'] = "Auto-register Students with AiM"; $string['browsesource'] = "Browse AiM Source"; - $string['createpdf'] = "Display printer friendly (pdf) version of this page"; $string['computer'] = "Computer"; $string['comment'] = "Comment"; --- 23,26 ---- |
From: <ma...@us...> - 2003-09-11 20:50:43
|
Update of /cvsroot/aimmath/moodle/mod/math_assignment In directory sc8-pr-cvs1:/tmp/cvs-serv27821/mod/math_assignment Modified Files: index.php Log Message: Bug fix - problems and solutions links were being displayed in the table on index.php even when there were none. Also added the new columns (due time, problems, solutions) to the student view. I hope they have their screen resolution high! :-) Index: index.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/index.php,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** index.php 9 Sep 2003 18:31:07 -0000 1.1 --- index.php 11 Sep 2003 20:50:40 -0000 1.2 *************** *** 46,49 **** --- 46,54 ---- $strtopic = get_string("topic"); $strname = get_string("name"); + $strtimedue = get_string("timedue", "math_assignment"); + $strproblems = get_string("problems", "math_assignment"); + $strsolutions = get_string("solutions", "math_assignment"); + $strviewproblems = get_string("viewproblems", "math_assignment"); + $strviewsolutions = get_string("viewsolutions", "math_assignment"); $strpaper = get_string("paper", "math_assignment"); $strcomputer = get_string("computer", "math_assignment"); *************** *** 61,69 **** $showaim = true; - $strtimedue = get_string("timedue", "math_assignment"); - $strproblems = get_string("problems", "math_assignment"); - $strsolutions = get_string("solutions", "math_assignment"); - $strviewproblems = get_string("viewproblems", "math_assignment"); - $strviewsolutions = get_string("viewsolutions", "math_assignment"); if ($showaim) { $straimsubject = get_string("aimsubject", "math_assignment"); --- 66,69 ---- *************** *** 94,108 **** if ($course->format == "weeks") { ! $table->head = array ($strweek, $strname, "$strpaper $strgrade", "$strcomputer $strgrade", "$strtotal $strgrade"); ! $table->align = array ("CENTER", "LEFT", "CENTER", "CENTER", "CENTER"); ! $table->width = array (10, "*", "*", "*", "*"); } else if ($course->format == "topics") { ! $table->head = array ($strtopic, $strname, "$strpaper $strgrade", "$strcomputer $strgrade", "$strtotal $strgrade"); ! $table->align = array ("CENTER", "LEFT", "CENTER", "CENTER", "CENTER"); ! $table->width = array (10, "*", "*", "*", "*"); } else { ! $table->head = array ($strname, "$strpaper $strgrade", "$strcomputer $strgrade", "$strtotal $strgrade"); ! $table->align = array ("LEFT", "CENTER", "CENTER", "CENTER"); ! $table->width = array ("*", "*", "*", "*"); } } --- 94,108 ---- if ($course->format == "weeks") { ! $table->head = array ($strweek, $strname, $strtimedue, $strproblems, $strsolutions, "$strpaper $strgrade", "$strcomputer $strgrade", "$strtotal $strgrade"); ! $table->align = array ("CENTER", "LEFT", "LEFT", "LEFT", "LEFT", "CENTER", "CENTER", "CENTER"); ! $table->width = array (10, "*", "*", "*", "*", "*", "*", "*"); } else if ($course->format == "topics") { ! $table->head = array ($strtopic, $strname, $strtimedue, $strproblems, $strsolutions, "$strpaper $strgrade", "$strcomputer $strgrade", "$strtotal $strgrade"); ! $table->align = array ("CENTER", "LEFT", "LEFT", "LEFT", "LEFT", "CENTER", "CENTER", "CENTER"); ! $table->width = array (10, "*", "*", "*", "*", "*", "*", "*"); } else { ! $table->head = array ($strname, $strtimedue, $strproblems, $strsolutions, "$strpaper $strgrade", "$strcomputer $strgrade", "$strtotal $strgrade"); ! $table->align = array ("LEFT", "LEFT", "LEFT", "LEFT", "CENTER", "CENTER", "CENTER"); ! $table->width = array ("*", "*", "*", "*", "*", "*", "*"); } } *************** *** 118,123 **** } if ($teacher) { - math_assignment_get_file_urls($course->id, $math_assignment, $proburl, $solurl); if ($showaim) { // lookup subject --- 118,123 ---- } + math_assignment_get_file_urls($course->id, $math_assignment, $proburl, $solurl); if ($teacher) { if ($showaim) { // lookup subject *************** *** 137,141 **** $row = array ($link); } ! array_push($row, userdate($math_assignment->timedue, "", 99, false), "<a href=\"$proburl\" target=\"problems\">$strviewproblems</a>", "<a href=\"$solurl\" target=\"solutions\">$strviewsolutions</a>"); if ($showaim) array_push($row, $subject->name, "$server->name ($server->address)"); --- 137,141 ---- $row = array ($link); } ! array_push($row, userdate($math_assignment->timedue, "", 99, false), $math_assignment->problems ? "<a href=\"$proburl\" target=\"problems\">$strviewproblems</a>" : "", $math_assignment->solutions ? "<a href=\"$solurl\" target=\"solutions\">$strviewsolutions</a>" : ""); if ($showaim) array_push($row, $subject->name, "$server->name ($server->address)"); *************** *** 160,168 **** if ($grade->aimoverride) $aimgrade .= " (" . get_string("gradeoverride", "math_assignment") . ")"; ! if ($course->format == "weeks" or $course->format == "topics") { ! $table->data[] = array ($math_assignment->section, $link, $papergrade, $aimgrade, math_assignment_total_grade($math_assignment, $grade) . " / $maxgrade"); ! } else { ! $table->data[] = array ($link, $papergrade, $aimgrade); } } } --- 160,177 ---- if ($grade->aimoverride) $aimgrade .= " (" . get_string("gradeoverride", "math_assignment") . ")"; ! if ($course->format == "weeks" or $course->format == "topics") ! $row = array ($math_assignment->section, $link); ! else ! $row = array ($link); ! if ($math_assignment->solutions) { ! if ($timenow > $math_assignment->timedue) ! $solutions = "<a href=\"$solurl\" target=\"solutions\">$strviewsolutions</a>"; ! else ! $solutions = ""; } + else + $solutions = ""; + array_push($row, userdate($math_assignment->timedue, "", 99, false), $math_assignment->problems ? "<a href=\"$proburl\" target=\"problems\">$strviewproblems</a>" : "", $solutions, $papergrade, $aimgrade); + $table->data[] = $row; } } |
From: <ma...@us...> - 2003-09-11 15:12:27
|
Update of /cvsroot/aimmath/moodle/mod/math_assignment In directory sc8-pr-cvs1:/tmp/cvs-serv19808/mod/math_assignment Modified Files: aimpage.php Log Message: Bug fix - grades from AiM are now stored as AiM grades, not paper grades Index: aimpage.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/math_assignment/aimpage.php,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** aimpage.php 10 Sep 2003 18:25:50 -0000 1.2 --- aimpage.php 11 Sep 2003 15:12:23 -0000 1.3 *************** *** 218,222 **** if (array_key_exists("Command", $_POST)) { if (strcmp($_POST['Command'], "MarkQuiz") == 0) { ! math_assignment_store_grade($math_assignment, $USER->id, $grade); } } --- 218,222 ---- if (array_key_exists("Command", $_POST)) { if (strcmp($_POST['Command'], "MarkQuiz") == 0) { ! math_assignment_store_grade($math_assignment, $USER->id, -1, $grade); } } |
From: <ma...@us...> - 2003-09-11 14:41:04
|
Update of /cvsroot/aimmath/moodle/mod/math_assignment In directory sc8-pr-cvs1:/tmp/cvs-serv12766/mod/math_assignment Added Files: pdfgen.php Log Message: Template for pdf generation file. --- NEW FILE: pdfgen.php --- <?PHP // $Id: pdfgen.php,v 1.1 2003/09/11 14:40:55 madalex Exp $ // This file produces the problem and solution sheets in pdf. require_once("../../config.php"); require_once("lib.php"); require_variable($id); // Course Module ID, or optional_variable($type, "problems"); // "problems" or "solutions" $solutions = (strcasecmp($type, "solutions") == 0); if (! $site = get_site()) { redirect("$CFG->wwwroot/$CFG->admin/index.php"); } if (! $cm = get_record("course_modules", "id", $id)) { error("Course Module ID was incorrect"); } if (! $course = get_record("course", "id", $cm->course)) { error("Course is misconfigured"); } if (! $math_assignment = get_record("math_assignment", "id", $cm->instance)) { error("Course module is incorrect"); } require_login($course->id); add_to_log($course->id, "math_assignment", "pdfgen", "pdfgen.php?id=$cm->id", "$math_assignment->id"); // check that the request is valid if ($solutions) { if (time() < $math_assignment->timedue) { error("You can not view the solutions until the assignment has closed!"); } } ///// ####### YOUR CODE HERE! ####### /* - Examine $math_assignment->problems or $math_assignment->solutions - If URL or filesystem path points to a non-tex file then fail with an error message (since my code should produce links directly to static files) - load tex file - load aim page */ if ($math_assignment->aimquiz) { if (!$subject = get_record("math_assignment_subject", "id", $math_assignment->aimsubject)) { error(get_string("noaccess", "math_assignment")); } if (!$server = get_record("math_assignment_server", "id", $subject->server)) { error(get_string("noaccess", "math_assignment")); } $postdata = ""; // ##### I wasn't sure which aim page you actually wanted. Use this for the student's view of the quiz: $postdata = math_assignment_add_arg_to_url_data($postdata, "Command", "ShowQuizPage"); $postdata = math_assignment_add_arg_to_url_data($postdata, "SubjectName", $subject->name); $postdata = math_assignment_add_arg_to_url_data($postdata, "QuizName", $math_assignment->aimquiz); $postdata = math_assignment_add_arg_to_url_data($postdata, "StudentID", $USER->username); $postdata = math_assignment_add_arg_to_url_data($postdata, "Password", $server->student_passwd); // ##### Or this for the lecturer's 'try quiz' view of the quiz: $postdata = math_assignment_add_arg_to_url_data($postdata, "Command","try/Quiz"); $postdata = math_assignment_add_arg_to_url_data($postdata, "Action", "TryQuiz"); $postdata = math_assignment_add_arg_to_url_data($postdata, "SubjectName", $subject->name); $postdata = math_assignment_add_arg_to_url_data($postdata, "QuizName", $math_assignment->aimquiz); $postdata = math_assignment_add_arg_to_url_data($postdata, "Password", $subject->password); // load the AiM page and grab the result $data = math_assignment_get_aim_output($server->address, $postdata, "latex"); // check if we need to sooth any AiM grumbles $error = math_assignment_check_aim_output($data); if ($error == 1) { // user not registered if ($CFG->math_assignment_auto_register) { // attempt to register them automatically if (!math_assignment_register_with_aim($server, $subject)) { error(get_string("nooutput", "math_assignment"), "view.php?id=$cm->id"); } // retry $data = math_assignment_get_aim_output($server->address, $postdata, "latex"); } } $data = math_assignment_convert_aim_output($math_assignment, $subject, $data, "", "", false, $grade, $max_grade); // #### $data now contains the same data that was being passed to your function } /* - generate pdf file */ // output of pdf /* Is it possible to generate the pdf direct to stdout? If so you could call the program with the passthru function and not generate any files which would be good. If you do have to create a file, remeber to use the tempnam function so that you don't get collisions. I assume here that you have created a pdf file, for the sake of argument in "/tmp/problems.pdf" Whilst you could use the readfile function to open and output the file in one go it is best to do it this way because we only set the output type to pdf after successfully opening the file. If it fails we can still output an error message in html. */ if ($file = fopen("/tmp/problems.pdf", "rb")) { // the 'b' is for compatibility with Windoze // tell the browser that it is pdf header("Content-type: application/pdf"); /* more headers controlling caching, etc if required */ fpassthru($file); // chuck all the data direct to the browser and close the handle } else { error("It didn't work!"); // error message } ?> |