[LON-CAPA-cvs] cvs: loncom(version_2_9_X) /interface courseprefs.pm
raeburn
raeburn@source.lon-capa.org
Sun, 03 Jan 2010 01:59:26 -0000
This is a MIME encoded message
--raeburn1262483966
Content-Type: text/plain
raeburn Sun Jan 3 01:59:26 2010 EDT
Modified files: (Branch: version_2_9_X)
/loncom/interface courseprefs.pm
Log:
- Backport 1.9, 1.13, 1.15.
--raeburn1262483966
Content-Type: text/plain
Content-Disposition: attachment; filename="raeburn-20100103015926.txt"
Index: loncom/interface/courseprefs.pm
diff -u loncom/interface/courseprefs.pm:1.8.2.3 loncom/interface/courseprefs.pm:1.8.2.4
--- loncom/interface/courseprefs.pm:1.8.2.3 Sun Jan 3 01:09:41 2010
+++ loncom/interface/courseprefs.pm Sun Jan 3 01:59:25 2010
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set configuration settings for a course
#
-# $Id: courseprefs.pm,v 1.8.2.3 2010/01/03 01:09:41 raeburn Exp $
+# $Id: courseprefs.pm,v 1.8.2.4 2010/01/03 01:59:25 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -57,11 +57,22 @@
$r->send_http_header;
} else {
if ($navmap) {
- $env{'user.error.msg'}=
- "/adm/courseprefs:opa:0:0:Cannot modify course settings";
+ if ($crstype eq 'Community') {
+ $env{'user.error.msg'}=
+ "/adm/courseprefs:opa:0:0:Cannot modify community settings";
+ } else {
+ $env{'user.error.msg'}=
+ "/adm/courseprefs:opa:0:0:Cannot modify course settings";
+ }
} else {
- $env{'user.error.msg'}=
- "/adm/courseprefs::0:1:Course environment gone, reinitialize the course";
+ if ($crstype eq 'Community') {
+ $env{'user.error.msg'}=
+ "/adm/courseprefs::0:1:Course environment gone, reinitialize the community";
+ } else {
+ $env{'user.error.msg'}=
+ "/adm/courseprefs::0:1:Course environment gone, reinitialize the course";
+
+ }
}
return HTTP_NOT_ACCEPTABLE;
}
@@ -73,10 +84,63 @@
&Apache::lonhtmlcommon::add_breadcrumb({href=>"/adm/parmset",
text=>"Parameter Manager"});
}
+ my ($brtext,$brtitle,$crsinfotext,$crsinfodesc,$crscateg,$crshide);
+ my %lt;
+ if ($crstype eq 'Community') {
+ %lt = (
+ conf => 'Community Configuration',
+ edit => 'Edit Community Configuration',
+ gens => 'General community settings',
+ idnu => 'Community ID or number',
+ desc => 'Community Description',
+ catg => 'Categorize community',
+ excc => 'Exclude from community catalog',
+ clon => 'Users allowed to clone community',
+ rept => 'Replacement titles for standard community roles',
+ time => 'Timezone where the community is located',
+ date => 'Locale used for community calendar',
+ coco => 'Community Content',
+ copo => 'Community Policy',
+ priv => 'Domain Coordinators in community',
+ defd => 'Default dates for member access',
+ stuv => 'Member-viewable membership list options',
+ stul => 'Member agreement needed to be listed',
+ clas => 'Membership and Facilitator Listing',
+ priv => 'Privileged users (Domain Coordinators) in facilitator listing',
+ defc => 'Default Community Spreadsheet',
+ defs => 'Default User Spreadsheet',
+ seme => 'Send message to member when clicking Done on Tasks'
+ );
+ } else {
+ %lt = (
+ conf => 'Course Configuration',
+ edit => 'Edit Course Configuration',
+ gens => 'General course settings',
+ idnu => 'Course ID or number',
+ desc => 'Course Description',
+ catg => 'Categorize course',
+ excc => 'Exclude from course catalog',
+ clon => 'Users allowed to clone course',
+ rept => 'Replacement titles for standard course roles',
+ time => 'Timezone in which the course takes place',
+ date => 'Locale used for course calendar',
+ coco => 'Course Content',
+ copo => 'Course Policy',
+ priv => 'Domain Coordinators in course',
+ defd => 'Default dates for student access',
+ stuv => 'Student-viewable classlist options',
+ stul => 'Student agreement needed to be listed',
+ clas => 'Classlists and Staff Listing',
+ priv => 'Privileged users (Domain Coordinators) in staff listing',
+ defc => 'Default Course Spreadsheet',
+ defs => 'Default Student Spreadsheet',
+ seme => 'Send message to student when clicking Done on Tasks',
+ );
+ }
&Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/courseprefs',
- text=>"Course Configuration"});
+ text=>$lt{'conf'}});
my $breadcrumbs =
- &Apache::lonhtmlcommon::breadcrumbs('Edit Course Configuration');
+ &Apache::lonhtmlcommon::breadcrumbs($lt{'edit'});
my $phase = 'pickactions';
if ( exists($env{'form.phase'}) ) {
@@ -84,7 +148,7 @@
}
if ($phase eq 'categorizecourse') {
- &assign_course_categories($r);
+ &assign_course_categories($r,$crstype);
return OK;
}
@@ -95,7 +159,7 @@
my %prefs = (
'courseinfo' =>
- { text => 'General course settings',
+ { text => $lt{'gens'},
help => 'Course_Environment',
header => [{col1 => 'Setting',
col2 => 'Value'}],
@@ -103,14 +167,14 @@
'hidefromcat','cloners','externalsyllabus',
'url','rolenames'],
itemtext => {
- description => 'Course Description',
- courseid => 'Course ID or number',
- categories => 'Categorize course',
- hidefromcat => 'Exclude from course catalog',
- cloners => 'Users allowed to clone course',
+ description => $lt{'desc'},
+ courseid => $lt{'idnu'},
+ categories => $lt{'catg'},
+ hidefromcat => $lt{'excc'},
+ cloners => $lt{'clon'},
externalsyllabus => 'URL of Syllabus',
url => 'Top Level Map',
- rolenames => 'Replacement titles for standard course roles',
+ rolenames => $lt{'rept'},
},
},
'localization' =>
@@ -121,8 +185,8 @@
ordered => ['languages','timezone','datelocale'],
itemtext => {
languages => 'Languages used',
- timezone => 'Timezone in which the course takes place',
- datelocale => 'Locale used for course calendar',
+ timezone => $lt{'time'},
+ datelocale => $lt{'date'},
},
},
'feedback' =>
@@ -135,8 +199,8 @@
ordered => ['question.email','comment.email','policy.email'],
itemtext => {
'question.email' => 'Resource Content',
- 'comment.email' => 'Course Content',
- 'policy.email' => 'Course Policy',
+ 'comment.email' => $lt{'coco'},
+ 'policy.email' => $lt{'copo'},
},
},
'discussion' =>
@@ -158,14 +222,14 @@
},
},
'classlists' =>
- { text => 'Classlists and Staff Listing',
+ { text => $lt{'clas'},
help => 'Course_Environment',
header => [{col1 => 'Type',
- col2 => 'Default dates for student access'},
+ col2 => $lt{'defd'}},
{col1 => 'Setting',
- col2 => 'Privileged users (Domain Coordinators) in staff listing'},
+ col2 => $lt{'priv'}},
{col1 => 'Setting',
- col2 => 'Student-viewable classlist options'}],
+ col2 => $lt{'stuv'}}],
ordered => ['default_enrollment_start_date',
'default_enrollment_end_date',
'nothideprivileged','student_classlist_view',
@@ -173,9 +237,9 @@
itemtext => {
default_enrollment_start_date => 'Start date',
default_enrollment_end_date => 'End date',
- nothideprivileged => 'Domain Coodinators in course',
- student_classlist_view => 'Student-viewable classlist',
- student_opt_in => 'Student agreement needed to be listed',
+ nothideprivileged => $lt{'priv'},
+ student_classlist_view => $lt{'stuv'},
+ student_opt_in => $lt{'stul'},
student_classlist_portfiles => 'Include link to accessible portfolio files',
},
},
@@ -235,8 +299,8 @@
'spreadsheet_default_studentcalc',
'spreadsheet_default_assesscalc','hideemptyrows'],
itemtext => {
- spreadsheet_default_classcalc => 'Default Course Spreadsheet',
- spreadsheet_default_studentcalc => 'Default Student Spreadsheet',
+ spreadsheet_default_classcalc => $lt{'defc'},
+ spreadsheet_default_studentcalc => $lt{'defs'},
spreadsheet_default_assesscalc => 'Default Assessment Spreadsheet',
hideemptyrows => 'Hide Empty Rows in Spreadsheets',
},
@@ -249,7 +313,7 @@
ordered => ['task_messages','task_grading',
'suppress_embed_prompt'],
itemtext => {
- task_messages => 'Send message to student when clicking Done on Tasks',
+ task_messages => $lt{'seme'},
task_grading => 'Bridge Task grading by instructors and TAs in sections' ,
suppress_embed_prompt => 'Hide upload references prompt if uploading file to portfolio',
},
@@ -271,7 +335,7 @@
my $jscript = &get_jscript($cdom,$phase,$crstype);
my @allitems = &get_allitems(%prefs);
&Apache::lonconfigsettings::display_settings($r,$cdom,$phase,$context,
- \@prefs_order,\%prefs,\%values,undef,$jscript,\@allitems);
+ \@prefs_order,\%prefs,\%values,undef,$jscript,\@allitems,$crstype);
} else {
&Apache::lonconfigsettings::display_choices($r,$phase,$context,
\@prefs_order,\%prefs);
@@ -296,7 +360,7 @@
}
sub print_config_box {
- my ($r,$cdom,$phase,$action,$item,$settings,$allitems) = @_;
+ my ($r,$cdom,$phase,$action,$item,$settings,$allitems,$crstype) = @_;
my $ordered = $item->{'ordered'};
my $itemtext = $item->{'itemtext'};
my $rowtotal = 0;
@@ -320,7 +384,7 @@
if ($action eq 'feedback') {
$output .= &print_feedback('top',$cdom,$settings,$ordered,$itemtext,\$rowtotal);
} elsif ($action eq 'classlists') {
- $output .= &print_classlists('top',$cdom,$settings,$itemtext,\$rowtotal);
+ $output .= &print_classlists('top',$cdom,$settings,$itemtext,\$rowtotal,$crstype);
}
$output .= '
</table>
@@ -335,7 +399,7 @@
<td class="LC_right_item">'.&mt($item->{'header'}->[1]->{'col2'}).'</td>
</tr>';
if ($action eq 'classlists') {
- $output .= &print_classlists('middle',$cdom,$settings,$itemtext,\$rowtotal).
+ $output .= &print_classlists('middle',$cdom,$settings,$itemtext,\$rowtotal,$crstype).
'
</table>
</td>
@@ -360,7 +424,7 @@
}
$rowtotal ++;
if ($action eq 'courseinfo') {
- $output .= &print_courseinfo($cdom,$settings,$ordered,$itemtext,\$rowtotal);
+ $output .= &print_courseinfo($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype);
} elsif ($action eq 'localization') {
$output .= &print_localization($cdom,$settings,$ordered,$itemtext,\$rowtotal);
} elsif ($action eq 'feedback') {
@@ -368,19 +432,19 @@
} elsif ($action eq 'discussion') {
$output .= &print_discussion($cdom,$settings,$ordered,$itemtext,\$rowtotal);
} elsif ($action eq 'classlists') {
- $output .= &print_classlists('bottom',$cdom,$settings,$itemtext,\$rowtotal);
+ $output .= &print_classlists('bottom',$cdom,$settings,$itemtext,\$rowtotal,$crstype);
} elsif ($action eq 'appearance') {
- $output .= &print_appearance($cdom,$settings,$ordered,$itemtext,\$rowtotal);
+ $output .= &print_appearance($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype);
} elsif ($action eq 'grading') {
- $output .= &print_grading($cdom,$settings,$ordered,$itemtext,\$rowtotal);
+ $output .= &print_grading($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype);
} elsif ($action eq 'printouts') {
- $output .= &print_printouts($cdom,$settings,$ordered,$itemtext,\$rowtotal);
+ $output .= &print_printouts($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype);
} elsif ($action eq 'spreadsheet') {
- $output .= &print_spreadsheet($cdom,$settings,$ordered,$itemtext,\$rowtotal);
+ $output .= &print_spreadsheet($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype);
} elsif ($action eq 'bridgetasks') {
- $output .= &print_bridgetasks($cdom,$settings,$ordered,$itemtext,\$rowtotal);
+ $output .= &print_bridgetasks($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype);
} elsif ($action eq 'other') {
- $output .= &print_other($cdom,$settings,$allitems,\$rowtotal);
+ $output .= &print_other($cdom,$settings,$allitems,\$rowtotal,$crstype);
}
$output .= '
</table>
@@ -391,7 +455,7 @@
}
sub process_changes {
- my ($cdom,$action,$values,$item,$changes,$allitems,$disallowed) = @_;
+ my ($cdom,$action,$values,$item,$changes,$allitems,$disallowed,$crstype) = @_;
my %newvalues;
if (ref($item) eq 'HASH') {
if (ref($changes) eq 'HASH') {
@@ -530,18 +594,23 @@
} elsif ($entry =~ /^default_enrollment_(start|end)_date$/) {
$newvalues{$entry}=&Apache::lonhtmlcommon::get_date_from_form($entry);
} elsif ($entry eq 'rolenames') {
- my $crstype = &Apache::loncommon::course_type();
my %adv_roles =
&Apache::lonnet::get_course_adv_roles($env{'request.course.id'},1);
- my @stds = ('cc','in','ta','ep','ad','st');
+ my @stds;
+ if ($crstype eq 'Community') {
+ @stds = ('co');
+ } else {
+ @stds = ('cc');
+ }
+ push(@stds,('in','ta','ep','ad','st'));
my (@replacements,@regulars);
foreach my $role (@stds) {
if ($values->{$role.'.plaintext'} ne '') {
- push(@replacements,$role);
+ push(@replacements,$role);
} else {
push(@regulars,$role);
}
- }
+ }
foreach my $stdrole (@stds) {
my $ext_entry = $entry.'_'.$stdrole;
my $stdname = &Apache::lonnet::plaintext($stdrole,$crstype,
@@ -789,14 +858,18 @@
}
sub store_changes {
- my ($cdom,$cnum,$prefs_order,$actions,$prefs,$values,$changes) = @_;
+ my ($cdom,$cnum,$prefs_order,$actions,$prefs,$values,$changes,$crstype) = @_;
my ($chome,$output);
my (%storehash,@delkeys,@need_env_update);
if ((ref($values) eq 'HASH') && (ref($changes) eq 'HASH')) {
%storehash = %{$values};
} else {
- $output = &mt('No changes made to course settings.');
- return;
+ if ($crstype eq 'Community') {
+ $output = &mt('No changes made to community settings.');
+ } else {
+ $output = &mt('No changes made to course settings.');
+ }
+ return $output;
}
my %yesno = (
hidefromcat => '1',
@@ -832,9 +905,15 @@
foreach my $key (@settings) {
if ($key eq 'rolenames') {
my $displayname = $prefs->{$item}->{'itemtext'}{$key};
- my $crstype = &Apache::loncommon::course_type();
my $msg;
- foreach my $role ('cc','in','ta','ep','ad','st') {
+ my @roles;
+ if ($crstype eq 'Community') {
+ @roles = ('co');
+ } else {
+ @roles = ('cc');
+ }
+ push(@roles,('in','ta','ep','ad','st'));
+ foreach my $role (@roles) {
next if (!exists($changes->{$item}{$key.'_'.$role}));
my $stdname = &Apache::lonnet::plaintext($role,$crstype,undef,1);
my $newname = $changes->{$item}{$key.'_'.$role};
@@ -939,7 +1018,11 @@
}
$output .= '</ul>';
} else {
- $output = &mt('No changes made to course settings.');
+ if ($crstype eq 'Community') {
+ $output = &mt('No changes made to community settings.');
+ } else {
+ $output = &mt('No changes made to course settings.');
+ }
}
}
}
@@ -947,8 +1030,13 @@
if (&Apache::lonnet::put('environment',\%storehash,$cdom,$cnum) eq 'ok') {
if (@delkeys) {
if (&Apache::lonnet::del('environment',\@delkeys,$cdom,$cnum) ne 'ok') {
- $output .= '<br /><span class="LC_error">'.
- &mt('An error occurred when removing course settings which are no longer in use.').'</span>';
+ $output .= '<br /><span class="LC_error">';
+ if ($crstype eq 'Community') {
+ $output .= &mt('An error occurred when removing community settings which are no longer in use.');
+ } else {
+ $output .= &mt('An error occurred when removing course settings which are no longer in use.');
+ }
+ $output .= '</span>';
}
}
if (@need_env_update) {
@@ -958,8 +1046,13 @@
&Apache::lonnet::coursedescription($env{'request.course.id'},
{'freshen_cache' => 1});
} else {
- $output = '<span class="LC_error">'.
- &mt('An error occurred when saving changes to course settings, which remain unchanged.').'</span>';
+ $output = '<span class="LC_error">';
+ if ($crstype eq 'Community') {
+ $output .= &mt('An error occurred when saving changes to community settings, which remain unchanged.');
+ } else {
+ $output .= &mt('An error occurred when saving changes to course settings, which remain unchanged.');
+ }
+ $output .= '</span>';
}
return $output;
}
@@ -990,7 +1083,7 @@
}
sub display_disallowed {
- my ($item,$disallowed,$prefs) = @_;
+ my ($item,$disallowed,$prefs,$crstype) = @_;
my $output;
if ((ref($disallowed) eq 'HASH') && (ref($prefs) eq 'HASH')) {
if (keys(%{$disallowed})) {
@@ -1006,7 +1099,7 @@
my $msg = '<b>'.$disallowed->{$error}.'</b>, '.&mt('reason').' - '.
$lt{$error};
if ($error eq 'newuser') {
- $msg .= '<br />'.&mt('Please [_1]add the user(s)[_2] before returning to the [_3]Course Configuration[_2] to add as potential cloners.','<a href="/adm/createuser">','</a>','<a href="/adm/courseprefs">');
+ $msg .= '<br />'.&mt("Please [_1]add the user(s)[_2] before returning to the [_3]$crstype Configuration[_2] to add as potential cloners.",'<a href="/adm/createuser">','</a>','<a href="/adm/courseprefs">');
}
push(@fails,$msg);
}
@@ -1037,11 +1130,19 @@
} elsif (($item eq 'feedback') || ($item eq 'discussion') || ($item eq 'localization')) {
$output .= '<span class="LC_warning">';
if ($item eq 'feedback') {
- $output .= &mt('Unable to include as a recipient of course feedback for:');
+ if ($crstype eq 'Community') {
+ $output .= &mt('Unable to include as a recipient of community feedback for:');
+ } else {
+ $output .= &mt('Unable to include as a recipient of course feedback for:');
+ }
} elsif ($item eq 'discussion') {
$output .= &mt('Unable to include in user-based access control for:');
} elsif ($item eq 'localization') {
- $output .= &mt('Unable to include in course localization:');
+ if ($crstype eq 'Community') {
+ $output .= &mt('Unable to include in community localization:');
+ } else {
+ $output .= &mt('Unable to include in course localization:');
+ }
}
$output .= '</span><ul>';
foreach my $key (sort(keys(%{$disallowed}))) {
@@ -1181,12 +1282,11 @@
sub print_courseinfo {
- my ($cdom,$settings,$ordered,$itemtext,$rowtotal) = @_;
+ my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype) = @_;
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) {
return;
}
my ($cathash,$categoriesform);
- my $crstype = &Apache::loncommon::course_type();
my %domconf =
&Apache::lonnet::get_dom('configuration',['coursecategories'],$cdom);
if (ref($domconf{'coursecategories'}) eq 'HASH') {
@@ -1198,11 +1298,17 @@
}
}
if (!defined($categoriesform)) {
- $categoriesform = &mt('No categories defined for this domain');
+ $categoriesform = &mt('No categories defined in this domain.');
}
my ($can_toggle_cat,$can_categorize) = &can_modify_catsettings($cdom,$crstype);
+ my $replace;
+ if ($crstype eq 'Community') {
+ $replace = &mt('To replace the standard title for a course role, enter a title, otherwise leave blank');
+ } else {
+ $replace = &mt('To replace the standard title for a course role, enter a title, otherwise leave blank');
+ }
my %items = (
'url' => {
text => '<b>'.&mt($itemtext->{'url'}).'</b>'.(' 'x2).
@@ -1227,13 +1333,13 @@
},
'cloners' => {
text => '<b>'.&mt($itemtext->{'cloners'}).'</b><br />'.
- &mt('Course Coordinators included automatically'),
+ &mt('Coordinators included automatically'),
input => 'textbox',
size => '40',
},
'rolenames' => {
text => '<b>'.&mt($itemtext->{'rolenames'}).'</b><br />'.
- '('.&mt('To replace the standard title for a course role, enter a title, otherwise leave blank').')',
+ '('.$replace.')',
input => 'textbox',
size => '20',
},
@@ -1345,7 +1451,14 @@
&Apache::loncommon::end_data_table();
} elsif ($item eq 'rolenames') {
$datatable .= &Apache::loncommon::start_data_table();
- foreach my $role ('cc','in','ta','ep','ad','st') {
+ my @roles;
+ if ($crstype eq 'Community') {
+ @roles = ('co');
+ } else {
+ @roles = ('cc');
+ }
+ push (@roles,('in','ta','ep','ad','st'));
+ foreach my $role (@roles) {
$datatable .= &Apache::loncommon::start_data_table_row().
'<td align="left"><span class="LC_nobreak">'.
&Apache::lonnet::plaintext($role,$crstype,undef,1).
@@ -1418,7 +1531,7 @@
}
sub assign_course_categories {
- my ($r) = @_;
+ my ($r,$crstype) = @_;
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
my $hascats = 0;
@@ -1438,7 +1551,12 @@
}
my $catwin_js;
if ($hascats) {
- my $alert = &mt("Use 'Save' in the main window to save course categories");
+ my $alert;
+ if ($crstype eq 'Community') {
+ $alert = &mt("Use 'Save' in the main window to save community categories");
+ } else {
+ $alert = &mt("Use 'Save' in the main window to save course categories");
+ }
$catwin_js = <<ENDSCRIPT;
<script type="text/javascript">
@@ -1507,7 +1625,7 @@
'onclick="javascript:updateCategories()" /></form><br />';
}
} else {
- $categoriesform .= &mt('No categories defined in this domain');
+ $categoriesform .= &mt('No categories defined in this domain.');
}
$r->print($start_page.$categoriesform.$end_page);
return;
@@ -1783,8 +1901,7 @@
}
my %items = (
'plc.roles.denied' => {
- text => '<span class="LC_nobreak"><b>'.
- &mt($itemtext->{'plc.roles.denied'}).'</b>'.
+ text => '<span class="LC_nobreak"><b>'.&mt($itemtext->{'plc.roles.denied'}).'</b>'.
&Apache::loncommon::help_open_topic("Course_Disable_Discussion").'</span><br />'.
&mt('(role-based)'),
input => 'checkbox',
@@ -1797,8 +1914,7 @@
},
'pch.roles.denied' => {
- text => '<span class="LC_nobreak"><b>'.
- &mt($itemtext->{'pch.roles.denied'}).'</b>'.
+ text => '<span class="LC_nobreak"><b>'.&mt($itemtext->{'pch.roles.denied'}).'</b>'.
&Apache::loncommon::help_open_topic("Course_Disable_Discussion").'</span><br />'.
&mt('(role-based)'),
input => 'checkbox',
@@ -1865,8 +1981,13 @@
}
sub role_checkboxes {
- my ($cdom,$cnum,$item,$settings,$showsections) = @_;
- my @roles = ('st','ad','ta','ep','in','cc');
+ my ($cdom,$cnum,$item,$settings,$showsections,$crstype) = @_;
+ my @roles = ('st','ad','ta','ep','in');
+ if ($crstype eq 'Community') {
+ push(@roles,'co');
+ } else {
+ push(@roles,'cc');
+ }
my $output;
my (@current,@curr_roles,%currsec,@sections);
if ($showsections) {
@@ -1903,7 +2024,7 @@
if (grep(/^\Q$role\E$/,@current)) {
$checked = ' checked="checked" ';
}
- my $plrole=&Apache::lonnet::plaintext($role);
+ my $plrole=&Apache::lonnet::plaintext($role,$crstype);
if ($showsections) {
$output .= &Apache::loncommon::start_data_table_row();
} else {
@@ -1974,7 +2095,7 @@
}
sub print_classlists {
- my ($position,$cdom,$settings,$itemtext,$rowtotal) = @_;
+ my ($position,$cdom,$settings,$itemtext,$rowtotal,$crstype) = @_;
my @ordered;
if ($position eq 'top') {
@ordered = ('default_enrollment_start_date',
@@ -1985,6 +2106,22 @@
@ordered = ('student_classlist_view',
'student_opt_in','student_classlist_portfiles');
}
+ my %lt;
+
+ if ($crstype eq 'Community') {
+ %lt = &Apache::lonlocal::texthash (
+ disabled => 'No viewable membership list',
+ section => "Membership of viewer's section",
+ all => 'List of all members',
+ );
+ } else {
+ %lt = &Apache::lonlocal::texthash (
+ disabled => 'No viewable classlist',
+ section => "Classlist of viewer's section",
+ all => 'Classlist of all students',
+ );
+ }
+
my %items = (
'default_enrollment_start_date' => {
text => '<b>'.&mt($itemtext->{'default_enrollment_start_date'}).'</b>',
@@ -2003,11 +2140,7 @@
'student_classlist_view' => {
text => '<b>'.&mt($itemtext->{'student_classlist_view'}).'</b>',
input => 'selectbox',
- options => {
- disabled => &mt('No viewable classlist'),
- section => &mt("Classlist of viewer's section"),
- all => &mt('Classlist of all students'),
- },
+ options => \%lt,
order => ['disabled','all','section'],
},
'student_opt_in' => {
@@ -2024,14 +2157,20 @@
($settings->{'student_classlist_view'} eq 'section')) {
$settings->{'student_classlist_view'} = 'disabled';
}
- return &make_item_rows($cdom,\%items,\@ordered,$settings,$rowtotal);
+ return &make_item_rows($cdom,\%items,\@ordered,$settings,$rowtotal,$crstype);
}
sub print_appearance {
- my ($cdom,$settings,$ordered,$itemtext,$rowtotal) = @_;
+ my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype) = @_;
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) {
return;
}
+ my $mathdef;
+ if ($crstype eq 'Community') {
+ $mathdef = &mt("None specified - use member's choice");
+ } else {
+ $mathdef = &mt("None specified - use student's choice");
+ }
my %items = (
'default_xml_style' => {
text => '<b>'.&mt($itemtext->{'default_xml_style'}).'</b> '.
@@ -2059,7 +2198,7 @@
tth => &mt('TeX to HTML'),
},
order => ['jsMath','mimetex','tth'],
- nullval => &mt("None specified - use student's choice"),
+ nullval => $mathdef,
},
'tthoptions' => {
text => '<b>'.&mt($itemtext->{'tthoptions'}).'</b>',
@@ -2067,11 +2206,11 @@
size => 40,
},
);
- return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal);
+ return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype);
}
sub print_grading {
- my ($cdom,$settings,$ordered,$itemtext,$rowtotal) = @_;
+ my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype) = @_;
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) {
return;
}
@@ -2120,11 +2259,11 @@
input => 'radio',
},
);
- return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal);
+ return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype);
}
sub print_printouts {
- my ($cdom,$settings,$ordered,$itemtext,$rowtotal) = @_;
+ my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype) = @_;
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) {
return;
}
@@ -2163,11 +2302,11 @@
input => 'radio',
},
);
- return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal);
+ return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype);
}
sub print_spreadsheet {
- my ($cdom,$settings,$ordered,$itemtext,$rowtotal) = @_;
+ my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype) = @_;
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) {
return;
}
@@ -2199,21 +2338,29 @@
input => 'radio',
},
);
- return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal);
-}
+ return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype);
+}
sub print_bridgetasks {
- my ($cdom,$settings,$ordered,$itemtext,$rowtotal) = @_;
+ my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype) = @_;
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) {
return;
}
+ my ($stumsg,$msgnote);
+ if ($crstype eq 'Community') {
+ $stumsg = &mt('Send message to member');
+ $msgnote = &mt('Message to member and add to user notes');
+ } else {
+ $stumsg = &mt('Send message to student');
+ $msgnote = &mt('Message to student and add to user notes');
+ }
my %items = (
task_messages => {
text => '<b>'.&mt($itemtext->{'task_messages'}).'</b>',
input => 'selectbox',
options => {
- only_student => &mt('Send message to student'),
- student_and_user_notes_screen => &mt('Message to student and add to user notes'),
+ only_student => $stumsg,
+ student_and_user_notes_screen => $msgnote,
},
order => ['only_student','student_and_user_notes_screen'],
nullval => &mt('No message or record in user notes'),
@@ -2233,11 +2380,11 @@
input => 'radio',
},
);
- return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal);
+ return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype);
}
sub print_other {
- my ($cdom,$settings,$allitems,$rowtotal) = @_;
+ my ($cdom,$settings,$allitems,$rowtotal,$crstype) = @_;
unless ((ref($settings) eq 'HASH') && (ref($allitems) eq 'ARRAY')) {
return;
}
@@ -2258,7 +2405,7 @@
input => 'textbox',
size => '30',
};
- my $output = &make_item_rows($cdom,\%items,\@ordered,$settings,$rowtotal);
+ my $output = &make_item_rows($cdom,\%items,\@ordered,$settings,$rowtotal,$crstype);
}
sub get_other_items {
@@ -2275,7 +2422,7 @@
unless (($parameter =~ m/^internal\./)||($parameter =~ m/^metadata\./) ||
($parameter =~ m/^selfenroll_/) || ($parameter =~ /_selfenroll$/)
|| ($parameter eq 'type') ||
- ($parameter =~ m/^(cc|in|ta|ep|ad|st)\.plaintext$/)) {
+ ($parameter =~ m/^(cc|co|in|ta|ep|ad|st)\.plaintext$/)) {
push(@ordered,$parameter);
}
}
@@ -2363,7 +2510,7 @@
}
sub make_item_rows {
- my ($cdom,$items,$ordered,$settings,$rowtotal) = @_;
+ my ($cdom,$items,$ordered,$settings,$rowtotal,$crstype) = @_;
my $datatable;
if ((ref($items) eq 'HASH') && (ref($ordered) eq 'ARRAY')) {
my $count = 0;
@@ -2371,7 +2518,7 @@
$count ++;
$datatable .= &item_table_row_start($items->{$item}{text},$count);
if ($item eq 'nothideprivileged') {
- $datatable .= ¬hidepriv_row($cdom,$item,$settings);
+ $datatable .= ¬hidepriv_row($cdom,$item,$settings,$crstype);
} elsif ($item eq 'print_header_format') {
$datatable .= &print_hdrfmt_row($item,$settings);
} elsif ($items->{$item}{input} eq 'dates') {
@@ -2401,7 +2548,7 @@
}
sub nothidepriv_row {
- my ($cdom,$item,$settings) = @_;
+ my ($cdom,$item,$settings,$crstype) = @_;
my ($cnum) = &get_course();
my %nothide;
my $datatable;
@@ -2469,7 +2616,11 @@
}
$datatable .= '</table>';
} else {
- $datatable .= &mt('No Domain Coordinators have course roles');
+ if ($crstype eq 'Community') {
+ $datatable .= &mt('No Domain Coordinators have community roles');
+ } else {
+ $datatable .= &mt('No Domain Coordinators have course roles');
+ }
}
return $datatable;
}
@@ -2573,7 +2724,7 @@
&position_selector($pos,$currnum,$maxnum).
'<b>'.&mt('New').'</b></span></td><td align="left">'.
&substitution_selector($currnum).'</td>'.
- '</tr>';
+ '</tr>';
$pos ++;
$currnum ++;
$output .= '<tr>'.
@@ -2586,7 +2737,7 @@
'<input type="hidden" name="printfmthdr_maxnum" value="'.
$maxnum.'" /></td>'.
'</tr>'.
- '</table>';
+ '</table>';
return $output;
}
@@ -2606,10 +2757,18 @@
}
sub substitution_selector {
- my ($num,$subst,$limit) = @_;
+ my ($num,$subst,$limit,$crstype) = @_;
+ my ($stunametxt,$crsidtxt);
+ if ($crstype eq 'Community') {
+ $stunametxt = 'member name';
+ $crsidtxt = 'community ID',
+ } else {
+ $stunametxt = 'student name';
+ $crsidtxt = 'course ID',
+ }
my %lt = &Apache::lonlocal::texthash(
- n => 'student name',
- c => 'course ID',
+ n => $stunametxt,
+ c => $crsidtxt,
a => 'assignment note',
);
my $output .= &mt('Substitution').'<br />'.
--raeburn1262483966--