[system] / branches / rel-2-0-pr1-hardcopy-changes / webwork2 / lib / WeBWorK / ContentGenerator / ProblemSets.pm Repository:
ViewVC logotype

View of /branches/rel-2-0-pr1-hardcopy-changes/webwork2/lib/WeBWorK/ContentGenerator/ProblemSets.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 640 - (download) (as text) (annotate)
Wed Nov 20 21:46:37 2002 UTC (10 years, 6 months ago) by sh002i
Original Path: trunk/webwork2/lib/WeBWorK/ContentGenerator/ProblemSets.pm
File size: 2928 byte(s)
fixed the "Download Hardcopy for Selected Sets" button
-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 $self->hidden_authen_fields;
   62   print CGI::start_table();
   63   print CGI::Tr(
   64     CGI::th("Sel."),
   65     CGI::th("Name"),
   66     CGI::th("Status"),
   67     CGI::th("Hardcopy"),
   68   );
   69 
   70   my @sets;
   71   push @sets, $wwdb->getSet($user, $_) foreach ($wwdb->getSets($user));
   72   foreach my $set (sort { $a->open_date <=> $b->open_date } @sets) {
   73     print $self->setListRow($set);
   74   }
   75 
   76   print CGI::end_table();
   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 = "$name/?" . $self->url_authen_args;
   90   my $hardcopyURL = "hardcopy/$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");
   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