From: Sam H. v. a. <we...@ma...> - 2005-09-16 18:47:29
|
Log Message: ----------- allow printing of error message upfront when there are no recipients. Modified Files: -------------- webwork2/lib/WeBWorK/ContentGenerator: Feedback.pm Revision Data ------------- Index: Feedback.pm =================================================================== RCS file: /webwork/cvs/system/webwork2/lib/WeBWorK/ContentGenerator/Feedback.pm,v retrieving revision 1.26 retrieving revision 1.27 diff -Llib/WeBWorK/ContentGenerator/Feedback.pm -Llib/WeBWorK/ContentGenerator/Feedback.pm -u -r1.26 -r1.27 --- lib/WeBWorK/ContentGenerator/Feedback.pm +++ lib/WeBWorK/ContentGenerator/Feedback.pm @@ -78,7 +78,6 @@ my $feedback = $r->param("feedback"); my $courseID = $r->urlpath->arg("courseID"); - my ($user, $set, $problem); $user = $db->getUser($userName) # checked if defined $userName and $userName ne ""; @@ -151,6 +150,14 @@ return ""; } + # determine the recipients of the email + my @recipients = $self->getFeedbackRecipients(); + + unless (@recipients) { + $self->noRecipientsAvailable($returnURL); + return ""; + } + if (defined $r->param("sendFeedback")) { # get verbosity level my $verbosity = $ce->{mail}->{feedbackVerbosity}; @@ -160,33 +167,12 @@ ? $user->email_address : $from); - # determine the recipients of the email - my @recipients; - if (defined $ce->{mail}->{feedbackRecipients}) { - @recipients = @{$ce->{mail}->{feedbackRecipients}}; - } else { - # send to all professors and TAs - foreach my $rcptName ($db->listUsers()) { - if ($authz->hasPermissions($rcptName, "receive_feedback")) { - my $rcpt = $db->getUser($rcptName); # checked - if ($rcpt and $rcpt->email_address) { - push @recipients, $rcpt->email_address; - } - } - } - } - # sanity checks unless ($sender) { $self->feedbackForm($user, $returnURL, "No Sender specified."); return ""; } - unless (@recipients) { - $self->feedbackForm($user, $returnURL, - "No recipients specified."); - return ""; - } unless ($feedback) { $self->feedbackForm($user, $returnURL, "Message was blank."); @@ -288,6 +274,13 @@ print CGI::p(CGI::a({-href=>$returnURL}, "Cancel Feedback")) if $returnURL; } +sub noRecipientsAvailable { + my ($self, $returnURL) = @_; + + print CGI::p("No feedback recipients are listed for this course."); + print CGI::p(CGI::a({-href=>$returnURL}, "Cancel Feedback")) if $returnURL; +} + sub feedbackForm { my ($self, $user, $returnURL, $message) = @_; my $r = $self->r; @@ -318,4 +311,28 @@ print CGI::p(CGI::a({-href=>$returnURL}, "Cancel Feedback")) if $returnURL; } +sub getFeedbackRecipients { + my ($self) = @_; + my $ce = $self->r->ce; + my $db = $self->r->db; + my $authz = $self->r->authz; + + my @recipients; + if (defined $ce->{mail}->{feedbackRecipients}) { + @recipients = @{$ce->{mail}->{feedbackRecipients}}; + } else { + # send to all users with permission to receive_feedback and an email address + foreach my $rcptName ($db->listUsers()) { + if ($authz->hasPermissions($rcptName, "receive_feedback")) { + my $rcpt = $db->getUser($rcptName); # checked + if ($rcpt and $rcpt->email_address) { + push @recipients, $rcpt->email_address; + } + } + } + } + + return @recipients; +} + 1; |