';
if (($action eq 'feedback') || ($action eq 'classlists')) {
$output .= '
-
-
-
-
+ ';
+ if (exists $item->{'header'}->[0]->{'col1'} ||
+ exists $item->{'header'}->[0]->{'col2'}) {
+ $output .= '
+
'.&mt($item->{'header'}->[0]->{'col1'}).' |
'.&mt($item->{'header'}->[0]->{'col2'}).' |
- ';
+ ';
+ }
$rowtotal ++;
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 .= '
-
-
-
-
'.&mt($item->{'header'}->[1]->{'col1'}).' | ';
@@ -335,32 +379,34 @@ sub print_config_box {
'.&mt($item->{'header'}->[1]->{'col2'}).' |
';
if ($action eq 'classlists') {
- $output .= &print_classlists('middle',$cdom,$settings,$itemtext,\$rowtotal).
+ $output .= &print_classlists('middle',$cdom,$settings,$itemtext,\$rowtotal,$crstype).
'
- |
-
-
-
-
-
- '.&mt($item->{'header'}->[2]->{'col1'}).' |
- '.&mt($item->{'header'}->[2]->{'col2'}).' |
- ';
+ ';
+ if (exists $item->{'header'}->[0]->{'col1'} ||
+ exists $item->{'header'}->[0]->{'col2'}) {
+ $output .= '
+
+ '.&mt($item->{'header'}->[0]->{'col1'}).' |
+ '.&mt($item->{'header'}->[0]->{'col2'}).' |
+ ';
+ }
}
} else {
$output .= '
-
-
-
-
+ ';
+ if (exists $item->{'header'}->[0]->{'col1'} ||
+ exists $item->{'header'}->[0]->{'col2'}) {
+ $output .= '
+
'.&mt($item->{'header'}->[0]->{'col1'}).' |
'.&mt($item->{'header'}->[0]->{'col2'}).' |
- ';
+ ';
+ }
}
$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,30 +414,28 @@ sub print_config_box {
} 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 .= '
-
-
- ';
+';
return ($output,$rowtotal);
}
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 +574,23 @@ sub process_changes {
} 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 +838,18 @@ sub check_clone {
}
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 +885,15 @@ sub store_changes {
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};
@@ -904,15 +963,21 @@ sub store_changes {
$displayname = &mt($text);
}
if (defined($yesno{$key})) {
- $displayval = 'no';
+ $displayval = &mt('No');
if ($changes->{$item}{$key} eq 'yes') {
- $displayval = 'yes';
+ $displayval = &mt('Yes');
}
} elsif (($key =~ /^default_enrollment_(start|end)_date$/) && ($displayval)) {
$displayval = &Apache::lonlocal::locallocaltime($displayval);
} elsif ($key eq 'categories') {
$displayval = $env{'form.categories_display'};
- }
+ } elsif ($key eq 'canuse_pdfforms') {
+ if ($changes->{$item}{$key} eq '1') {
+ $displayval = &mt('Yes');
+ } elsif ($changes->{$item}{$key} eq '0') {
+ $displayval = &mt('No');
+ }
+ }
if ($changes->{$item}{$key} eq '') {
push(@delkeys,$key);
$output .= ''.&mt('Deleted setting for [_1]',
@@ -939,7 +1004,11 @@ sub store_changes {
}
$output .= '';
} 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 +1016,17 @@ sub store_changes {
if (&Apache::lonnet::put('environment',\%storehash,$cdom,$cnum) eq 'ok') {
if (@delkeys) {
if (&Apache::lonnet::del('environment',\@delkeys,$cdom,$cnum) ne 'ok') {
- $output .= ' '.
- &mt('An error occurred when removing course settings which are no longer in use.').'';
+ $output .= ' ';
+ 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 .= '';
+ } else {
+ foreach my $key (@delkeys) {
+ &Apache::lonnet::delenv('course.'.$cdom.'_'.$cnum.'.'.$key);
+ }
}
}
if (@need_env_update) {
@@ -958,8 +1036,13 @@ sub store_changes {
&Apache::lonnet::coursedescription($env{'request.course.id'},
{'freshen_cache' => 1});
} else {
- $output = ''.
- &mt('An error occurred when saving changes to course settings, which remain unchanged.').'';
+ $output = '';
+ 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 .= '';
}
return $output;
}
@@ -990,7 +1073,7 @@ sub update_env {
}
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 +1089,7 @@ sub display_disallowed {
my $msg = ''.$disallowed->{$error}.', '.&mt('reason').' - '.
$lt{$error};
if ($error eq 'newuser') {
- $msg .= ' '.&mt('Please [_1]add the user(s)[_2] before returning to the [_3]Course Configuration[_2] to add as potential cloners.','','','');
+ $msg .= ' '.&mt("Please [_1]add the user(s)[_2] before returning to the [_3]$crstype Configuration[_2] to add as potential cloners.",'','','');
}
push(@fails,$msg);
}
@@ -1037,11 +1120,19 @@ sub display_disallowed {
} elsif (($item eq 'feedback') || ($item eq 'discussion') || ($item eq 'localization')) {
$output .= '';
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 .= '';
foreach my $key (sort(keys(%{$disallowed}))) {
@@ -1073,8 +1164,8 @@ sub get_course {
}
sub get_jscript {
- my ($cdom,$phase) = @_;
- my ($can_toggle_cat,$can_categorize) = &can_modify_catsettings($cdom);
+ my ($cdom,$phase,$crstype) = @_;
+ my ($can_toggle_cat,$can_categorize) = &can_modify_catsettings($cdom,$crstype);
my ($jscript,$categorize_js);
my $stubrowse_js = &Apache::loncommon::studentbrowser_javascript();
my $browse_js = &Apache::loncommon::browser_and_searcher_javascript('parmset');
@@ -1181,12 +1272,11 @@ ENDSCRIPT
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') {
@@ -1194,15 +1284,21 @@ sub print_courseinfo {
if (ref($cathash) eq 'HASH') {
$categoriesform =
&Apache::loncommon::assign_categories_table($cathash,
- $settings->{'categories'})."\n";
+ $settings->{'categories'},$crstype)."\n";
}
}
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);
+ 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 => ''.&mt($itemtext->{'url'}).''.(' 'x2).
@@ -1213,6 +1309,7 @@ sub print_courseinfo {
'',
input => 'textbox',
size => '40',
+ advanced => 1
},
'description' => {
text => ''.&mt($itemtext->{'description'}).'',
@@ -1227,15 +1324,17 @@ sub print_courseinfo {
},
'cloners' => {
text => ''.&mt($itemtext->{'cloners'}).' '.
- &mt('Course Coordinators included automatically'),
+ &mt('Coordinators included automatically'),
input => 'textbox',
size => '40',
+ advanced => 1
},
'rolenames' => {
text => ''.&mt($itemtext->{'rolenames'}).' '.
- '('.&mt('To replace the standard title for a course role, enter a title, otherwise leave blank').')',
+ '('.$replace.')',
input => 'textbox',
size => '20',
+ advanced => 1
},
'externalsyllabus' => {
text => ''.&mt($itemtext->{'externalsyllabus'}).' ('.
@@ -1264,7 +1363,11 @@ sub print_courseinfo {
next if (!$can_categorize);
}
$count ++;
- $datatable .= &item_table_row_start($items{$item}{text},$count);
+ if (exists $items{$item}{advanced} && $items{$item}{advanced} == 1) {
+ $datatable .= &item_table_row_start($items{$item}{text},$count,"advanced");
+ } else {
+ $datatable .= &item_table_row_start($items{$item}{text},$count);
+ }
if ($items{$item}{input} eq 'radio') {
$datatable .= &yesno_radio($item,$settings);
} elsif ($item eq 'cloners') {
@@ -1345,7 +1448,14 @@ sub print_courseinfo {
&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().
''.
&Apache::lonnet::plaintext($role,$crstype,undef,1).
@@ -1394,22 +1504,31 @@ sub new_cloners_dom_row {
}
sub can_modify_catsettings {
- my ($dom) = @_;
+ my ($dom,$crstype) = @_;
my %domconf = &Apache::lonnet::get_dom('configuration',['coursecategories'],$dom);
my ($can_toggle_cat,$can_categorize);
if (ref($domconf{'coursecategories'}) eq 'HASH') {
- if ($domconf{'coursecategories'}{'togglecats'} eq 'crs') {
- $can_toggle_cat = 1;
- }
- if ($domconf{'coursecategories'}{'categorize'} eq 'crs') {
- $can_categorize = 1;
+ if ($crstype eq 'Community') {
+ if ($domconf{'coursecategories'}{'togglecatscomm'} eq 'comm') {
+ $can_toggle_cat = 1;
+ }
+ if ($domconf{'coursecategories'}{'categorizecomm'} eq 'comm') {
+ $can_categorize = 1;
+ }
+ } else {
+ if ($domconf{'coursecategories'}{'togglecats'} eq 'crs') {
+ $can_toggle_cat = 1;
+ }
+ if ($domconf{'coursecategories'}{'categorize'} eq 'crs') {
+ $can_categorize = 1;
+ }
}
}
return ($can_toggle_cat,$can_categorize);
}
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;
@@ -1418,12 +1537,23 @@ sub assign_course_categories {
if (ref($domconf{'coursecategories'}) eq 'HASH') {
$cathash = $domconf{'coursecategories'}{'cats'};
if (ref($cathash) eq 'HASH') {
- $hascats = 1;
+ foreach my $cat (keys(%{$cathash})) {
+ next if ($cat eq 'instcode::0');
+ unless ($crstype eq 'Community') {
+ next if ($cat eq 'communities::0');
+ }
+ $hascats ++;
+ }
}
}
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 = <
@@ -1461,23 +1591,38 @@ ENDSCRIPT
} 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 = ''.&mt('Categorize Course').'';
+ my $categoriesform = ''.$catcrs.'';
if ($hascats) {
my %currsettings =
&Apache::lonnet::get('environment',['hidefromcat','categories'],$cdom,$cnum);
- $categoriesform .= &mt('Assign one or more categories to this course.').'
'.
+ my $cattable = &Apache::loncommon::assign_categories_table($cathash,
+ $currsettings{'categories'},$crstype);
+ if ($cattable eq '') {
+ $categoriesform .= &mt('No suitable categories defined for this course type in this domain.');
+ } else {
+ $categoriesform .= $assign.'
'.
' ';
+ }
} else {
- $categoriesform .= &mt('No categories defined for this domain');
+ $categoriesform .= &mt('No categories defined in this domain.');
}
$r->print($start_page.$categoriesform.$end_page);
return;
@@ -1490,16 +1635,16 @@ sub print_localization {
}
my %items = (
languages => {
- text => &mt($itemtext->{'languages'}).' '.
- &mt("(will override user's preference)"),
+ text => ''.&mt($itemtext->{'languages'}).' '.
+ &mt("(overrides individual user preference)"),
input => 'selectbox',
},
timezone => {
- text => &mt($itemtext->{'timezone'}),
+ text => ''.&mt($itemtext->{'timezone'}).'',
input => 'selectbox',
},
datelocale => {
- text => &mt($itemtext->{'datelocale'}),
+ text => ''.&mt($itemtext->{'datelocale'}).'',
input => 'selectbox',
},
);
@@ -1682,7 +1827,7 @@ sub user_table {
' | '.
' | ';
}
- $output .= ''.
+ $output .= ' '.
''.
$lt->{'add'}.' '.
&select_recipient($item,$num,$cdom,$sections).
@@ -1753,8 +1898,7 @@ sub print_discussion {
}
my %items = (
'plc.roles.denied' => {
- text => ''.
- &mt($itemtext->{'plc.roles.denied'}).''.
+ text => ''.&mt($itemtext->{'plc.roles.denied'}).''.
&Apache::loncommon::help_open_topic("Course_Disable_Discussion").' '.
&mt('(role-based)'),
input => 'checkbox',
@@ -1767,8 +1911,7 @@ sub print_discussion {
},
'pch.roles.denied' => {
- text => ''.
- &mt($itemtext->{'pch.roles.denied'}).''.
+ text => ''.&mt($itemtext->{'pch.roles.denied'}).''.
&Apache::loncommon::help_open_topic("Course_Disable_Discussion").' '.
&mt('(role-based)'),
input => 'checkbox',
@@ -1835,8 +1978,13 @@ sub print_discussion {
}
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 +2021,7 @@ sub role_checkboxes {
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 +2092,7 @@ sub role_checkboxes {
}
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 +2103,22 @@ sub print_classlists {
@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 => ''.&mt($itemtext->{'default_enrollment_start_date'}).'',
@@ -1973,11 +2137,7 @@ sub print_classlists {
'student_classlist_view' => {
text => ''.&mt($itemtext->{'student_classlist_view'}).'',
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 +2154,20 @@ sub print_classlists {
($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 => ''.&mt($itemtext->{'default_xml_style'}).' '.
@@ -2029,7 +2195,7 @@ sub print_appearance {
tth => &mt('TeX to HTML'),
},
order => ['jsMath','mimetex','tth'],
- nullval => &mt("None specified - use student's choice"),
+ nullval => $mathdef,
},
'tthoptions' => {
text => ''.&mt($itemtext->{'tthoptions'}).'',
@@ -2037,11 +2203,11 @@ sub print_appearance {
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;
}
@@ -2052,14 +2218,15 @@ sub print_grading {
input => 'selectbox',
options => {
standard => &mt('Standard: shows points'),
- external => &mt('External: shows number of completed parts'),
+ external => &mt('External: shows number of completed parts and totals'),
+ externalnototals => &mt('External: shows only number of completed parts'),
spreadsheet => &mt('Spreadsheet: (with link to detailed scores)'),
},
- order => ['standard','external','spreadsheet'],
+ order => ['standard','external','externalnototals','spreadsheet'],
},
'rndseed' => {
text => ''.&mt($itemtext->{'rndseed'}).''.
- ''.' '.
+ ''.' '.
&mt('Modifying this will make problems have different numbers and answers!').
'',
input => 'selectbox',
@@ -2089,11 +2256,11 @@ sub print_grading {
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;
}
@@ -2131,12 +2298,22 @@ sub print_printouts {
text => ''.&mt($itemtext->{'disableexampointprint'}).'',
input => 'radio',
},
+ canuse_pdfforms => {
+ text => ''.&mt($itemtext->{'canuse_pdfforms'}).'',
+ input => 'selectbox',
+ options => {
+ 1 => &mt('Yes'),
+ 0 => &mt('No'),
+ },
+ order => ['1','0'],
+ nullval => 'None specified - use domain default',
+ }
);
- 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 +2345,29 @@ sub print_spreadsheet {
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 => ''.&mt($itemtext->{'task_messages'}).'',
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 +2387,11 @@ sub print_bridgetasks {
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 +2412,7 @@ sub print_other {
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 +2429,7 @@ sub get_other_items {
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);
}
}
@@ -2253,15 +2438,13 @@ sub get_other_items {
}
sub item_table_row_start {
- my ($text,$count) = @_;
+ my ($text,$count,$add_class) = @_;
my $output;
- if ($count%2) {
- $output .= '';
- } else {
- $output .= ' ';
- }
+ my $css_class = ($count % 2) ? 'LC_odd_row' : 'LC_even_row';
+ $css_class = (join(' ',$css_class,$add_class)) unless ($add_class eq '');
+ $output .= ' '."\n";;
$output .= ''.$text.
- ' | ';
+ ' | ';
return $output;
}
@@ -2332,7 +2515,7 @@ sub select_from_options {
}
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 +2523,7 @@ sub make_item_rows {
$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 +2553,7 @@ sub make_item_rows {
}
sub nothidepriv_row {
- my ($cdom,$item,$settings) = @_;
+ my ($cdom,$item,$settings,$crstype) = @_;
my ($cnum) = &get_course();
my %nothide;
my $datatable;
@@ -2438,7 +2621,11 @@ sub nothidepriv_row {
}
$datatable .= ' | | ';
} 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;
}
@@ -2542,7 +2729,7 @@ ENDJS
&position_selector($pos,$currnum,$maxnum).
''.&mt('New').''.
&substitution_selector($currnum).' | '.
- '';
+ '';
$pos ++;
$currnum ++;
$output .= ''.
@@ -2555,7 +2742,7 @@ ENDJS
''.
' '.
- ' ';
+ ' | ';
return $output;
}
@@ -2575,10 +2762,18 @@ sub position_selector {
}
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').' '.
|