Parent Directory
|
Revision Log
Problem.pm/PG.pm/Translator.pm now compile and work (to some degree) changed the format of pg/modules in global.conf diddled with the format of system.template (i believe i moved an <HR>) added ref2string function to Utils.pm, removed hash2string/array2string fixed a package name in IO.pm
1 package WeBWorK::ContentGenerator::Problem; 2 use base qw(WeBWorK::ContentGenerator); 3 4 use strict; 5 use warnings; 6 use CGI qw(:html :form); 7 use WeBWorK::Utils qw(ref2string); 8 use WeBWorK::PG; 9 use WeBWorK::Form; 10 11 # NEW form fields 12 # 13 # user 14 # key 15 # 16 # displayMode 17 # showOldAnswers 18 # showCorrectAnswers 19 # showHints 20 # showSolutions 21 # 22 # submitAnswers - name of "Submit Answers" button 23 24 sub title { 25 my ($self, $setName, $problemNumber) = @_; 26 my $userName = $self->{r}->param('user'); 27 return "Problem $problemNumber of problem set $setName for $userName"; 28 } 29 30 sub body { 31 my ($self, $setName, $problemNumber) = @_; 32 my $courseEnv = $self->{courseEnvironment}; 33 my $r = $self->{r}; 34 my $userName = $r->param('user'); 35 36 # fix format of setName and problem 37 # (i want dennis to cut "set" and "prob" off before calling me) 38 $setName =~ s/^set//; 39 $problemNumber =~ s/^prob//; 40 41 # get database information 42 my $classlist = WeBWorK::DB::Classlist->new($courseEnv); 43 my $wwdb = WeBWorK::DB::WW->new($courseEnv); 44 my $user = $classlist->getUser($userName); 45 my $set = $wwdb->getSet($userName, $setName); 46 my $problem = $wwdb->getProblem($userName, $setName, $problemNumber); 47 my $psvn = $wwdb->getPSVN($userName, $setName); 48 49 # set options from form fields 50 my $displayMode = $r->param("displayMode") || $courseEnv->{pg}->{options}->{displayMode}; 51 my $showOldAnswers = $r->param("showOldAnswers") || $courseEnv->{pg}->{options}->{showOldAnswers}; 52 my $showCorrectAnswers = $r->param("showCorrectAnswers") || $courseEnv->{pg}->{options}->{showCorrectAnswers}; 53 my $showHints = $r->param("showHints") || $courseEnv->{pg}->{options}->{showHints}; 54 my $showSolutions = $r->param("showSolutions") || $courseEnv->{pg}->{options}->{showSolutions}; 55 my $processAnswers = $r->param("submitAnswers"); 56 57 # coerce form fields into CGI::Vars format 58 my $formFields = { WeBWorK::Form->new_from_paramable($r)->Vars }; 59 60 # TODO: 61 # 1. enforce privs for showCorrectAnswers and showSolutions 62 # (use $PRIV = $canPRIV && $wantPRIV -- cool syntax!) 63 # 2. if answers were not submitted and there are student answers in the DB, 64 # decode them and put them into $formFields for the translator 65 # 3. Latex2HTML massaging code 66 # 4. store submitted answers hash in database for sticky answers 67 # 5. deal with the results of answer evaluation and grading :p 68 # 6. introduce a recordAnswers option, which works on the same principle as 69 # the other priv-based options 70 71 my $pg = WeBWorK::PG->new( 72 $courseEnv, 73 $r->param('user'), 74 $r->param('key'), 75 $setName, 76 $problemNumber, 77 { # translation options 78 displayMode => $displayMode, 79 showHints => $showHints, 80 showSolutions => $showSolutions, 81 processAnswers => $processAnswers, 82 }, 83 $formFields 84 ); 85 86 # return ( 87 # h1("Problem.pm"), 88 # table( 89 # Tr(td("user"), td($r->param('userName'))), 90 # Tr(td("key"), td($r->param('key'))), 91 # Tr(td("set"), td($setName)), 92 # Tr(td("problem"), td($problemNumber)), 93 # ), 94 # #pre(hash2string($pg, 0)), 95 # hash2string($pg, 1), 96 # ); 97 98 # View options form 99 print startform("POST", $r->uri); 100 print $self->hidden_authen_fields; 101 print p("View equations as: ", 102 radio_group( 103 -name => "displayMode", 104 -values => ['plainText', 'formattedText', 'images'], 105 -default => $displayMode, 106 -labels => { 107 plainText => "plain text", 108 formattedText => "formatted text", 109 images => "images", 110 } 111 ), br(), 112 checkbox( 113 -name => "showOldAnswers", 114 -checked => $showOldAnswers, 115 -label => "Show old answers", 116 ), br(), 117 submit(-name=>'redisplay') 118 ); 119 print endform(); 120 print hr(); 121 122 # Previous answer results 123 124 125 # Problem form 126 print startform("POST", $r->uri); 127 print $self->hidden_authen_fields; 128 print p($pg->{body_text}); 129 print p(submit(-name=>"submitAnswers", -label=>"Submit Answers")); 130 print endform(); 131 print hr(); 132 133 # debugging stuff 134 print h2("debugging information"); 135 print h3("form fields"); 136 print ref2string($formFields); 137 print h3("PG object"); 138 print ref2string($pg, {'WeBWorK::PG::Translator' => 1}); 139 140 return ""; 141 } 142 143 1;
| aubreyja at gmail dot com | ViewVC Help |
| Powered by ViewVC 1.0.9 |