Skip to content

Commit

Permalink
Merge pull request openwebwork#32 from mgage/ww2.5.1.1
Browse files Browse the repository at this point in the history
Ww2.5.1.1
  • Loading branch information
mgage committed Sep 5, 2012
2 parents 14d6a17 + 6f952e8 commit 3daecc4
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 45 deletions.
3 changes: 2 additions & 1 deletion htdocs/themes/math2/system.template
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,11 @@
<link rel="shortcut icon" href="<!--#url type="webwork" name="htdocs"-->/images/favicon.ico"/>

<link rel="stylesheet" type="text/css" href="<!--#url type="webwork" name="htdocs"-->/themes/math2/math2.css"/>
<!--
<link rel="stylesheet" type="text/css" href="<!--#url type="webwork" name="htdocs"-->/themes/math2/codemirror2/lib/codemirror.css">
<link rel="stylesheet" type="text/css" href="<!--#url type="webwork" name="htdocs"-->/themes/math2/codemirror2/mode/pg/pg.css">
<link rel="stylesheet" type="text/css" href="<!--#url type="webwork" name="htdocs"-->/themes/math2/codemirror2/mode/math/math.css">

-->

<!--#if can="output_tabber_CSS"-->
<link rel="stylesheet" type="text/css" href="<!--#url type="webwork" name="htdocs"-->/css/tabber.css"/>
Expand Down
1 change: 0 additions & 1 deletion htdocs/themes/math3/codemirror2
Submodule codemirror2 deleted from 73edae
1 change: 1 addition & 0 deletions htdocs/themes/math3/codemirror2
3 changes: 2 additions & 1 deletion htdocs/themes/math3/system.template
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,11 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="shortcut icon" href="<!--#url type="webwork" name="htdocs"-->/images/favicon.ico"/>
<link rel="stylesheet" type="text/css" href="<!--#url type="webwork" name="htdocs"-->/themes/math3/math3.css"/>
<!--
<link rel="stylesheet" type="text/css" href="<!--#url type="webwork" name="htdocs"-->/themes/math3/codemirror2/lib/codemirror.css">
<link rel="stylesheet" type="text/css" href="<!--#url type="webwork" name="htdocs"-->/themes/math3/codemirror2/mode/pg/pg.css">
<link rel="stylesheet" type="text/css" href="<!--#url type="webwork" name="htdocs"-->/themes/math3/codemirror2/mode/math/math.css">

-->
<!--#if can="output_tabber_CSS"-->
<link rel="stylesheet" type="text/css" href="<!--#url type="webwork" name="htdocs"-->/css/tabber.css"/>
<!--#endif-->
Expand Down
75 changes: 43 additions & 32 deletions lib/WeBWorK/ContentGenerator/Instructor/SendMail.pm
Original file line number Diff line number Diff line change
Expand Up @@ -417,21 +417,21 @@ sub initialize {
my $result_message = eval { $self->mail_message_to_recipients() };
if ($@) {
# add the die message to the result message
$result_message = "An error occurred while trying to send email.\n"
$result_message .= "An error occurred while trying to send email.\n"
. "The error message is:\n\n$@\n\n";
# and also write it to the apache log
$self->r->log->error("An error occurred while trying to send email: $@");
$r->log->error("An error occurred while trying to send email: $@\n");
}
# this could fail too...
eval { $self->email_notification($result_message) };
if ($@) {
$self->r->log->error("An error occured while trying to send the email notification: $@");
$r->log->error("An error occured while trying to send the email notification: $@\n");
}
};
if (MP2) {
$r->connection->pool->cleanup_register($post_connection_action);
$r->connection->pool->cleanup_register($post_connection_action, $r);
} else {
$r->post_connection($post_connection_action);
$r->post_connection($post_connection_action, $r);
}
} else {
$self->addbadmessage(CGI::p("Didn't recognize button $action"));
Expand Down Expand Up @@ -781,44 +781,55 @@ sub mail_message_to_recipients {
my $merge_file = $self->{merge_file};
my $result_message = '';
my $failed_messages = 0;

my $error_messages = '';
foreach my $recipient (@recipients) {
# warn "FIXME sending email to $recipient";
my $error_messages = '';
$error_messages = '';

my $ur = $self->{db}->getUser($recipient); #checked
unless ($ur) {
$error_messages .= "Record for user $recipient not found\n";
$error_messages .= "Record for user $recipient not found\n";
next;
}
unless ($ur->email_address) {
$error_messages .="User $recipient does not have an email address -- skipping\n";
unless ($ur->email_address=~/\S/) { #unless address contains a non-blank charachter
$error_messages .="User $recipient does not have an email address -- skipping\n";
next;
}
#warn "\nDEBUG: sending email to $recipient with email address ",$ur->email_address,"\n";

my $msg = eval { $self->process_message($ur,$rh_merge_data) };
$error_messages .= "There were errors in processing user $recipient, merge file $merge_file. \n$@\n" if $@;
my $mailer = Mail::Sender->new({
from => $ce->{mail}{smtpSender},
fake_from => $from,
to => $ur->email_address,
smtp => $self->{smtpServer},
subject => $subject,
headers => "X-Remote-Host: ".$self->{remote_host},
});
unless (ref $mailer) {
$error_messages .= "Failed to create a mailer for user $recipient: $Mail::Sender::Error\n";
#warn "message is ok";
my $mailer = eval{ Mail::Sender->new({
from => $ce->{mail}{smtpSender},
fake_from => $from,
to => $ur->email_address,
smtp => $self->{smtpServer},
subject => $subject,
headers => "X-Remote-Host: ".$self->{remote_host},
})
};
if ($@) {
$error_messages .= "Failed to create a mailer for user $recipient: $Mail::Sender::Error\n$@\n";
next;
}
unless (ref $mailer->Open()) {
$error_messages .= "Failed to open the mailer for user $recipient: $Mail::Sender::Error\n";
#warn "DEBUG: mailer created as $mailer\n";
unless (ref($mailer) and $mailer->Open()) {
$error_messages .= "Failed to open the mailer for user $recipient: $@\n $Mail::Sender::Error\n";
next;
}
my $MAIL = $mailer->GetHandle() || ($error_messages .= "Couldn't get mailer handle \n");
print $MAIL $msg || ($error_messages .= "Couldn't print to $MAIL");
close $MAIL || ($error_messages .= "Couldn't close $MAIL");
#warn "FIXME mailed to $recipient: ", $ur->email_address, " from $from subject $subject Errors: $error_messages";
$failed_messages++ if $error_messages;
$result_message .= $error_messages;
}
#warn "DEBUG: mailer opened\n";
my $MAIL = $mailer->GetHandle() || ($error_messages .= "$recipient: Couldn't get mailer handle \n");
print $MAIL $msg || ($error_messages .= "$recipient: Couldn't print to mail $MAIL\n");
close $MAIL || ($error_messages .= "$recipient: Couldn't close mail $MAIL -- possibly a badly formed address: ".$ur->email_address."\n");
#warn "DEBUG: mailed to $recipient: ", $ur->email_address, " from $from subject $subject. Errors:\n $error_messages\n\n";
#FIXME -- allow this list to be turned off with a "verbose" flag
$result_message .= "Msg sent to $recipient at ".$ur->email_address."\n" unless $error_messages;
} continue { #update failed messages before continuing loop
if ($error_messages) {
$failed_messages++;
$result_message .= $error_messages;
}
}
my $courseName = $self->r->urlpath->arg("courseID");
my $number_of_recipients = scalar(@recipients) - $failed_messages;
$result_message = <<EndText.$result_message;
Expand All @@ -827,7 +838,7 @@ sub mail_message_to_recipients {
$subject
has been sent to
$number_of_recipients recipient(s) in the class $courseName.
There were $failed_messages message(s) that could not be delivered.
There were $failed_messages message(s) that could not be sent.\n
EndText
Expand Down Expand Up @@ -864,7 +875,7 @@ sub email_notification {
# clean up
close $MAIL;
warn "instructor message sent to ", $self->{defaultFrom};
warn "\ninstructor message \"". $self->{subject}."\" sent to ", $self->{defaultFrom},"\n";
}
sub getRecord {
Expand Down
20 changes: 10 additions & 10 deletions lib/WeBWorK/ContentGenerator/ProblemSets.pm
Original file line number Diff line number Diff line change
Expand Up @@ -384,18 +384,18 @@ sub setListRow {
$interactiveURL =~ s|/quiz_mode/|/proctored_quiz_mode/| if
( defined( $set->assignment_type() ) &&
$set->assignment_type() eq 'proctored_gateway' );

$name =~ s/_/&nbsp;/g;
my $display_name = $name;
$display_name =~ s/_/&nbsp;/g;
# this is the link to the homework assignment
my $interactive = CGI::a({-href=>$interactiveURL}, "$name");
my $interactive = CGI::a({-href=>$interactiveURL}, "$display_name");

my $control = "";

my $setIsOpen = 0;
my $status = '';
if ( $gwtype ) {
if ( $gwtype == 1 ) {
unless (ref($problemRecords[0]) ) {warn "Error: problem not defined in set $name"; return()}
unless (ref($problemRecords[0]) ) {warn "Error: problem not defined in set $display_name"; return()}
if ( $problemRecords[0]->num_correct() +
$problemRecords[0]->num_incorrect() >=
( ( !($set->attempts_per_version()) ) ? 0 : $set->attempts_per_version() ) ) {
Expand All @@ -413,32 +413,32 @@ sub setListRow {
# reset the link to give the test number
my $vnum = $set->version_id;
$interactive = CGI::a({-href=>$interactiveURL},
$r->maketext("[_1] (test [_2])", $name, $vnum));
$r->maketext("[_1] (test [_2])", $display_name, $vnum));
} else {
my $t = time();
if ( $t < $set->open_date() ) {
$status = $r->maketext("will open on [_1]", $self->formatDateTime($set->open_date,undef,$ce->{studentDateDisplayFormat}));
if ( $preOpenSets ) {
# reset the link
$interactive = CGI::a({-href=>$interactiveURL},
$r->maketext("Take [_1] test", $name));
$r->maketext("Take [_1] test", $display_name));
} else {
$control = "";
$interactive = $r->maketext("[_1] test", $name);
$interactive = $r->maketext("[_1] test", $display_name);
}
} elsif ( $t < $set->due_date() ) {
$status = $r->maketext("now open, due ") . $self->formatDateTime($set->due_date,undef,$ce->{studentDateDisplayFormat});
$setIsOpen = 1;
$interactive = CGI::a({-href=>$interactiveURL},
$r->maketext("Take [_1] test", $name));
$r->maketext("Take [_1] test", $display_name));
} else {
$status = $r->maketext("Closed");

if ( $authz->hasPermissions( $user, "record_answers_after_due_date" ) ) {
$interactive = CGI::a({-href=>$interactiveURL},
$r->maketext("Take [_1] test", $name));
$r->maketext("Take [_1] test", $display_name));
} else {
$interactive = $r->maketext("[_1] test", $name);
$interactive = $r->maketext("[_1] test", $display_name);
}
}
}
Expand Down

0 comments on commit 3daecc4

Please sign in to comment.