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;
|