Parent Directory
|
Revision Log
updated copyright header. -sam
1 ################################################################################ 2 # WeBWorK mod_perl (c) 2000-2002 WeBWorK Project 3 # $Id$ 4 ################################################################################ 5 6 package WeBWorK::ContentGenerator::ProblemSets; 7 8 =head1 NAME 9 10 WeBWorK::ContentGenerator::ProblemSets - Display a list of built problem sets. 11 12 =cut 13 14 use strict; 15 use warnings; 16 use base qw(WeBWorK::ContentGenerator); 17 use Apache::Constants qw(:common); 18 use CGI qw(); 19 use WeBWorK::ContentGenerator; 20 use WeBWorK::DB::WW; 21 use WeBWorK::Utils qw(formatDateTime); 22 23 sub initialize { 24 my $self = shift; 25 my $courseEnvironment = $self->{courseEnvironment}; 26 27 # Open a database connection that we can use for the rest of 28 # the content generation. 29 30 my $wwdb = new WeBWorK::DB::WW $courseEnvironment; 31 $self->{wwdb} = $wwdb; 32 } 33 34 sub path { 35 my ($self, $args) = @_; 36 37 my $ce = $self->{courseEnvironment}; 38 my $root = $ce->{webworkURLs}->{root}; 39 my $courseName = $ce->{courseName}; 40 return $self->pathMacro($args, 41 "Home" => "$root", 42 $courseName => "", 43 ); 44 } 45 46 sub title { 47 my $self = shift; 48 my $courseEnvironment = $self->{courseEnvironment}; 49 50 return $courseEnvironment->{courseName}; 51 } 52 53 sub body { 54 my $self = shift; 55 my $r = $self->{r}; 56 my $courseEnvironment = $self->{courseEnvironment}; 57 my $user = $r->param('user'); 58 my $wwdb = $self->{wwdb}; 59 60 print CGI::startform(-method=>"POST", -action=>$r->uri."/hardcopy"); 61 print CGI::start_table(); 62 print CGI::Tr( 63 CGI::th("Sel."), 64 CGI::th("Name"), 65 CGI::th("Status"), 66 CGI::th("Hardcopy"), 67 ); 68 69 my @sets; 70 push @sets, $wwdb->getSet($user, $_) foreach ($wwdb->getSets($user)); 71 foreach my $set (sort { $a->open_date <=> $b->open_date } @sets) { 72 print $self->setListRow($set); 73 } 74 75 print CGI::end_table(); 76 print $self->hidden_authen_fields; 77 print CGI::p(CGI::submit("hardcopy", "Download Harcopy for Selected Sets")); 78 print CGI::endform(); 79 80 return ""; 81 } 82 83 sub setListRow($$) { 84 my $self = shift; 85 my $set = shift; 86 87 my $name = $set->id; 88 89 my $interactiveURL = "set$name/?" . $self->url_authen_args; 90 my $hardcopyURL = "hardcopy/set$name/?" . $self->url_authen_args; 91 92 my $openDate = formatDateTime($set->open_date); 93 my $dueDate = formatDateTime($set->due_date); 94 my $answerDate = formatDateTime($set->answer_date); 95 96 my $checkbox = CGI::checkbox(-name=>"set", -value=>$set->id, -label=>""); 97 my $interactive = CGI::a({-href=>$interactiveURL}, $name); 98 my $hardcopy = CGI::a({-href=>$hardcopyURL}, "download hardcopy"); 99 100 my $status; 101 if (time < $set->open_date) { 102 $status = "opens at $openDate"; 103 $checkbox = ""; 104 $interactive = $name; 105 $hardcopy = ""; 106 } elsif (time < $set->due_date) { 107 $status = "open, due at $dueDate"; 108 } elsif (time < $set->answer_date) { 109 $status = "closed, answers at $answerDate"; 110 } else { 111 $status = "closed, answers available"; 112 } 113 114 return CGI::Tr(CGI::td([ 115 $checkbox, 116 $interactive, 117 $status, 118 $hardcopy, 119 ])); 120 } 121 122 1;
| aubreyja at gmail dot com | ViewVC Help |
| Powered by ViewVC 1.0.9 |