[LON-CAPA-cvs] cvs: loncom /interface courseprefs.pm lonconfigsettings.pm
raeburn
raeburn@source.lon-capa.org
Thu, 29 Oct 2009 14:57:18 -0000
This is a MIME encoded message
--raeburn1256828238
Content-Type: text/plain
raeburn Thu Oct 29 14:57:18 2009 EDT
Modified files:
/loncom/interface lonconfigsettings.pm courseprefs.pm
Log:
- Accommodate Communities:
- Wording variants: course -> community, Course -> Community,
Classlist -> Membership, Staff -> Facilitators,
Student -> Member, student -> member.
- Role choices: co role instead of cc role for communities
--raeburn1256828238
Content-Type: text/plain
Content-Disposition: attachment; filename="raeburn-20091029145718.txt"
Index: loncom/interface/lonconfigsettings.pm
diff -u loncom/interface/lonconfigsettings.pm:1.6 loncom/interface/lonconfigsettings.pm:1.7
--- loncom/interface/lonconfigsettings.pm:1.6 Sun Aug 23 17:21:22 2009
+++ loncom/interface/lonconfigsettings.pm Thu Oct 29 14:57:18 2009
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set domain-wide configuration settings
#
-# $Id: lonconfigsettings.pm,v 1.6 2009/08/23 17:21:22 raeburn Exp $
+# $Id: lonconfigsettings.pm,v 1.7 2009/10/29 14:57:18 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -43,7 +43,11 @@
($pagetitle, $brcrumtitle) = ('View/Modify Domain Settings','Domain Settings');
$action = '/adm/domainprefs';
} else {
- ($pagetitle, $brcrumtitle) = ('Course Configuration','Course Configuration');
+ if (&Apache::loncommon::course_type() eq 'Community') {
+ ($pagetitle,$brcrumtitle) = ('Community Configuration','Community Configuration');
+ } else {
+ ($pagetitle,$brcrumtitle) = ('Course Configuration','Course Configuration');
+ }
$action = '/adm/courseprefs';
}
my $alert = &mt('You must select at least one functionality type to display.');
@@ -169,6 +173,10 @@
{href=>"javascript:changePage(document.$phase,'$phase')",
text=>"Updated"});
&print_header($r,$phase,$context);
+ my $crstype;
+ if ($context eq 'course') {
+ $crstype = &Apache::loncommon::course_type();
+ }
if ((ref($prefs_order) eq 'ARRAY') && (ref($prefs) eq 'HASH') &&
(ref($prefs) eq 'HASH')) {
foreach my $item (@{$prefs_order}) {
@@ -176,12 +184,12 @@
if ($context eq 'domain') {
$r->print('<h3>'.&mt($prefs->{$item}{'text'}).'</h3>'.
&Apache::domainprefs::process_changes($r,$dom,
- $confname,$item,$roles,$values,));
+ $confname,$item,$roles,$values));
} else {
$changes{$item} = {};
&Apache::courseprefs::process_changes($dom,$item,$values,
$prefs->{$item},$changes{$item},
- $allitems,\%disallowed);
+ $allitems,\%disallowed,$crstype);
if (keys(%{$changes{$item}}) > 0) {
$numchanged ++;
}
@@ -192,9 +200,13 @@
if ($context eq 'course') {
if ($numchanged) {
$r->print(&Apache::courseprefs::store_changes($dom,$confname,$prefs_order,\@actions,
- $prefs,$values,\%changes));
+ $prefs,$values,\%changes,$crstype));
} else {
- $r->print(&mt('No changes made to course configuration.'));
+ if ($crstype eq 'Community') {
+ $r->print(&mt("No changes made to community configuration."));
+ } else {
+ $r->print(&mt("No changes made to course configuration."));
+ }
}
if (keys(%disallowed) > 0) {
$r->print('<p>');
@@ -202,7 +214,7 @@
if (ref($disallowed{$item}) eq 'HASH') {
if (keys(%{$disallowed{$item}}) > 0) {
$r->print(&Apache::courseprefs::display_disallowed($item,$disallowed{$item},
- $prefs));
+ $prefs,$crstype));
}
}
}
@@ -220,7 +232,7 @@
sub display_settings {
my ($r,$dom,$phase,$context,$prefs_order,$prefs,$values,$confname,$jscript,
- $allitems) = @_;
+ $allitems,$crstype) = @_;
my %brcrumtext = &get_crumb_text();
my @actions = &Apache::loncommon::get_env_multiple('form.actions');
&Apache::lonhtmlcommon::add_breadcrumb
@@ -242,7 +254,7 @@
} else {
($output{$item},$rowtotal{$item}) =
&Apache::courseprefs::print_config_box($r,$dom,$phase,
- $item,$prefs->{$item},$values,$allitems);
+ $item,$prefs->{$item},$values,$allitems,$crstype);
}
$rowsum += $rowtotal{$item};
}
Index: loncom/interface/courseprefs.pm
diff -u loncom/interface/courseprefs.pm:1.8 loncom/interface/courseprefs.pm:1.9
--- loncom/interface/courseprefs.pm:1.8 Tue Oct 13 04:48:03 2009
+++ loncom/interface/courseprefs.pm Thu Oct 29 14:57:18 2009
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set configuration settings for a course
#
-# $Id: courseprefs.pm,v 1.8 2009/10/13 04:48:03 raeburn Exp $
+# $Id: courseprefs.pm,v 1.9 2009/10/29 14:57:18 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 Coodinators 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 Coodinators 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);
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') {
@@ -1203,6 +1303,12 @@
my ($can_toggle_cat,$can_categorize) = &can_modify_catsettings($cdom);
+ 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).
@@ -1409,7 +1522,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;
@@ -1423,7 +1536,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">
@@ -1461,21 +1579,31 @@
} else {
my $onload;
}
+ my ($crscat,$catcrs,$assign);
+ if ($crstype eq 'Community') {
+ $crscat = 'Community Categories';
+ $catcrs = &mt('Categorize Community');
+ $assign = &mt('Assign one or more categories to this community.')
+ } else {
+ $crscat = 'Course Categories';
+ $catcrs = &mt('Categorize Course');
+ $assign = &mt('Assign one or more categories to this course.')
+ }
my $start_page =
- &Apache::loncommon::start_page('Course Categories',$catwin_js,
+ &Apache::loncommon::start_page($crscat,$catwin_js,
{'only_body' => 1,});
my $end_page = &Apache::loncommon::end_page();
- my $categoriesform = '<h3>'.&mt('Categorize Course').'</h3>';
+ my $categoriesform = '<h3>'.$catcrs.'</h3>';
if ($hascats) {
my %currsettings =
&Apache::lonnet::get('environment',['hidefromcat','categories'],$cdom,$cnum);
- $categoriesform .= &mt('Assign one or more categories to this course.').'<br /><br />'.
- '<form name="chgcats" action="/adm/courseprefs" method="post">'."\n".
- &Apache::loncommon::assign_categories_table($cathash,
+ $categoriesform .= $assign.'<br /><br />'.
+ '<form name="chgcats" action="/adm/courseprefs" method="post">'."\n".
+ &Apache::loncommon::assign_categories_table($cathash,
$currsettings{'categories'})."\n".
- '<br /><input type="button" name="changes" value="'.
- &mt('Copy to main window').'" '.
- 'onclick="javascript:updateCategories()" /></form><br />';
+ '<br /><input type="button" name="changes" value="'.
+ &mt('Copy to main window').'" '.
+ 'onclick="javascript:updateCategories()" /></form><br />';
} else {
$categoriesform .= &mt('No categories defined for this domain');
}
@@ -1835,8 +1963,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) {
@@ -1873,7 +2006,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 {
@@ -1944,7 +2077,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',
@@ -1955,6 +2088,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>',
@@ -1973,11 +2122,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' => {
@@ -1994,14 +2139,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> '.
@@ -2029,7 +2180,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>',
@@ -2037,11 +2188,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;
}
@@ -2089,11 +2240,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;
}
@@ -2132,11 +2283,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;
}
@@ -2168,21 +2319,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'),
@@ -2202,11 +2361,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;
}
@@ -2227,7 +2386,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 {
@@ -2244,7 +2403,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);
}
}
@@ -2332,7 +2491,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;
@@ -2340,7 +2499,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') {
@@ -2370,7 +2529,7 @@
}
sub nothidepriv_row {
- my ($cdom,$item,$settings) = @_;
+ my ($cdom,$item,$settings,$crstype) = @_;
my ($cnum) = &get_course();
my %nothide;
my $datatable;
@@ -2438,7 +2597,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;
}
@@ -2575,10 +2738,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 />'.
--raeburn1256828238--