[LON-CAPA-cvs] cvs: loncom /interface lonmodifycourse.pm
raeburn
raeburn at source.lon-capa.org
Fri Mar 1 00:01:26 EST 2013
raeburn Fri Mar 1 05:01:26 2013 EDT
Modified files:
/loncom/interface lonmodifycourse.pm
Log:
- DC can modify course default credits value if domain configuration set
to show credits for official or unofficial courses.
-------------- next part --------------
Index: loncom/interface/lonmodifycourse.pm
diff -u loncom/interface/lonmodifycourse.pm:1.59 loncom/interface/lonmodifycourse.pm:1.60
--- loncom/interface/lonmodifycourse.pm:1.59 Sat Jan 15 18:24:16 2011
+++ loncom/interface/lonmodifycourse.pm Fri Mar 1 05:01:26 2013
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# handler for DC-only modifiable course settings
#
-# $Id: lonmodifycourse.pm,v 1.59 2011/01/15 18:24:16 raeburn Exp $
+# $Id: lonmodifycourse.pm,v 1.60 2013/03/01 05:01:26 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -39,18 +39,22 @@
use LONCAPA;
sub get_dc_settable {
- my ($type) = @_;
+ my ($type,$cdom) = @_;
if ($type eq 'Community') {
return ('courseowner');
} else {
- return ('courseowner','coursecode','authtype','autharg');
+ my @items = ('courseowner','coursecode','authtype','autharg');
+ if (&showcredits($cdom)) {
+ push(@items,'defaultcredits');
+ }
+ return @items;
}
}
sub autoenroll_keys {
- my $internals = ['coursecode','courseowner','authtype','autharg','autoadds','autodrops',
- 'autostart','autoend','sectionnums','crosslistings',
- 'co-owners'];
+ my $internals = ['coursecode','courseowner','authtype','autharg','defaultcredits',
+ 'autoadds','autodrops','autostart','autoend','sectionnums',
+ 'crosslistings','co-owners'];
my $accessdates = ['default_enrollment_start_date','default_enrollment_end_date'];
return ($internals,$accessdates);
}
@@ -114,6 +118,10 @@
|| $type eq "autharg" || $type eq "coursecode"
|| $type eq "crosslistings") {
$enrollvar{$type} = $settings{$item};
+ } elsif ($type eq 'defaultcredits') {
+ if (&showcredits($cdom)) {
+ $enrollvar{$type} = $settings{$item};
+ }
} elsif ($type eq 'courseowner') {
if ($settings{$item} =~ /^[^:]+:[^:]+$/) {
$enrollvar{$type} = $settings{$item};
@@ -225,7 +233,11 @@
} else {
$categorytitle = 'View/Modify Course Settings';
$setquota_text = &mt('Total disk space allocated for storage of portfolio files in all groups in a course.');
- $setparams_text = 'View/Modify course owner, institutional code, and default authentication';
+ if (&showcredits($dom)) {
+ $setparams_text = 'View/Modify course owner, institutional code, and default authentication and credits';
+ } else {
+ $setparams_text = 'View/Modify course owner, institutional code, and default authentication';
+ }
$cat_text = 'View/Modify catalog settings for course';
}
my $anon_text = 'Responder threshold required to display anonymous survey submissions';
@@ -300,6 +312,9 @@
} else {
$menu_html .= '<li>'.&mt('Course owner (permitted to assign Course Coordinator roles in the course).').'</li>'.
'<li>'.&mt("Institutional code and default authentication (both required for auto-enrollment of students from institutional datafeeds).").'</li>';
+ if (&showcredits($dom)) {
+ $menu_html .= '<li>'.&mt('Default credits earned by student on course completion.').'</li>';
+ }
}
$menu_html .= '<li>'.$setquota_text.'</li>'.
'<li>'.$anon_text.'</li>'."\n";
@@ -357,7 +372,7 @@
}
my $cctitle = &Apache::lonnet::plaintext($ccrole,$type);
my $dctitle = &Apache::lonnet::plaintext('dc');
- my @modifiable_params = &get_dc_settable($type);
+ my @modifiable_params = &get_dc_settable($type,$cdom);
my ($internals,$accessdates) = &autoenroll_keys();
my @items;
if ((ref($internals) eq 'ARRAY') && (ref($accessdates) eq 'ARRAY')) {
@@ -389,9 +404,13 @@
' <span class="LC_nobreak">'.$cdesc.'</span></h3>'.
'<form action="/adm/modifycourse" method="post" name="viewparms">'."\n".
'<p>'.$lt{'cose'}.'<ul>'.
- '<li>'.&mt('Settings modifiable by a [_1] via the [_2]Automated Enrollment Manager[_3] in a course.',$cctitle,'<a href="'.$escuri.'">','</a>').'</li>'.
- '<li>'.&mt('Settings modifiable by a [_1] via [_2]View/Modify course owner, institutional code, and default authentication[_3].',$dctitle,'<a href="javascript:changePage(document.viewparms,'."'setparms'".');">','</a>')."\n".
- '</li></ul></p>'.
+ '<li>'.&mt('Settings modifiable by a [_1] via the [_2]Automated Enrollment Manager[_3] in a course.',$cctitle,'<a href="'.$escuri.'">','</a>').'</li>');
+ if (&showcredits($cdom)) {
+ $r->print('<li>'.&mt('Settings modifiable by a [_1] via [_2]View/Modify course owner, institutional code, and default authentication and credits[_3].',$dctitle,'<a href="javascript:changePage(document.viewparms,'."'setparms'".');">','</a>')."\n");
+ } else {
+ $r->print('<li>'.&mt('Settings modifiable by a [_1] via [_2]View/Modify course owner, institutional code, and default authentication[_3].',$dctitle,'<a href="javascript:changePage(document.viewparms,'."'setparms'".');">','</a>')."\n");
+ }
+ $r->print('</li></ul></p>'.
'<p>'.$lt{'cour'}.'</p><p>'.$disp_table.'</p><p>'.
'<a href="javascript:changePage(document.viewparms,'."'menu'".')">'.$lt{'back'}.'</a>'."\n".
&hidden_form_elements().
@@ -639,14 +658,21 @@
&Apache::loncommon::help_open_topic('Modify_Course_Instcode').
' '.&mt('Course Code'))."\n".
'<input type="text" size="10" name="coursecode" value="'.$enrollvar{'coursecode'}.'" />'.
- &Apache::lonhtmlcommon::row_closure().
- &Apache::lonhtmlcommon::row_title(
- &Apache::loncommon::help_open_topic('Modify_Course_Defaultauth').
- ' '.&mt('Default Authentication method'))."\n".
- $authenitems."\n".
- &Apache::lonhtmlcommon::row_closure().
- &Apache::lonhtmlcommon::row_title(
- &Apache::loncommon::help_open_topic('Modify_Course_Owner').
+ &Apache::lonhtmlcommon::row_closure());
+ if (&showcredits($cdom)) {
+ $r->print(&Apache::lonhtmlcommon::row_title(
+ &Apache::loncommon::help_open_topic('Modify_Course_Credithours').
+ ' '.&mt('Credits (students)'))."\n".
+ '<input type="text" size="3" name="defaultcredits" value="'.$enrollvar{'defaultcredits'}.'" />'.
+ &Apache::lonhtmlcommon::row_closure());
+ }
+ $r->print(&Apache::lonhtmlcommon::row_title(
+ &Apache::loncommon::help_open_topic('Modify_Course_Defaultauth').
+ ' '.&mt('Default Authentication method'))."\n".
+ $authenitems."\n".
+ &Apache::lonhtmlcommon::row_closure().
+ &Apache::lonhtmlcommon::row_title(
+ &Apache::loncommon::help_open_topic('Modify_Course_Owner').
' '.&mt('Course Owner'))."\n");
}
$r->print($ownertable."\n".&Apache::lonhtmlcommon::row_closure(1).
@@ -657,7 +683,7 @@
} else {
$r->print('javascript:verify_message(this.form);"');
}
- $r->print('value="'.$lt{'gobt'}.'" /></p></form>');
+ $r->print(' value="'.$lt{'gobt'}.'" /></p></form>');
return;
}
@@ -718,12 +744,15 @@
unless ($type eq 'Community') {
push(@items,('internal.coursecode','internal.authtype','internal.autharg',
'internal.sectionnums','internal.crosslistings'));
+ if (&showcredits($cdom)) {
+ push(@items,'internal.defaultcredits');
+ }
}
my %settings = &Apache::lonnet::get('environment',\@items,$cdom,$cnum);
my $description = $settings{'description'};
- my ($ccrole,$response,$chgresponse,$nochgresponse,$reply,%currattr,%newattr,%cenv,%changed,
- @changes, at nochanges, at sections, at xlists, at warnings);
- my @modifiable_params = &get_dc_settable($type);
+ my ($ccrole,$response,$chgresponse,$nochgresponse,$reply,%currattr,%newattr,
+ %cenv,%changed, at changes, at nochanges, at sections, at xlists, at warnings);
+ my @modifiable_params = &get_dc_settable($type,$cdom);
foreach my $param (@modifiable_params) {
$currattr{$param} = $settings{'internal.'.$param};
}
@@ -742,7 +771,7 @@
$sections[0] = $settings{'internal.sectionnums'};
}
}
- unless ($settings{'internal.crosslistings'} eq'') {
+ unless ($settings{'internal.crosslistings'} eq '') {
if ($settings{'internal.crosslistings'} =~ m/,/) {
@xlists = split/,/,$settings{'internal.crosslistings'};
} else {
@@ -781,6 +810,12 @@
$changed{'code'} = 1;
}
}
+
+ if (&showcredits($cdom) && exists($env{'form.defaultcredits'})) {
+ $newattr{'defaultcredits'} =~ s/[^\d\.]//g;
+ $newattr{'defaultcredits'}=$env{'form.defaultcredits'};
+ }
+
}
if ( exists($env{'form.courseowner'}) ) {
@@ -1345,7 +1380,7 @@
$phase = $env{'form.phase'};
}
my $js = qq|
-<script type="text/javascript">
+
function changePage(formname,newphase) {
formname.phase.value = newphase;
if (newphase == 'processparms') {
@@ -1353,29 +1388,32 @@
}
formname.submit();
}
-</script>
+
|;
if ($phase eq 'setparms') {
- $js .= qq|
-<script type="text/javascript">
-$javascript_validations
-</script>
-|;
+ $js .= $javascript_validations;
} elsif ($phase eq 'courselist') {
$js .= qq|
-<script type="text/javascript">
+
function gochoose(cname,cdom,cdesc) {
document.courselist.pickedcourse.value = cdom+'_'+cname;
document.courselist.submit();
}
-</script>
+
+function hide_searching() {
+ if (document.getElementById('searching')) {
+ document.getElementById('searching').style.display = 'none';
+ }
+ return;
+}
+
|;
} elsif ($phase eq 'setquota') {
my $invalid = &mt('The quota you entered contained invalid characters.');
my $alert = &mt('You must enter a number');
my $regexp = '/^\s*(\d+\.?\d*|\.\d+)\s*$/';
$js .= <<"ENDSCRIPT";
-<script type="text/javascript">
+
function verify_quota() {
var newquota = document.setquota.coursequota.value;
var num_reg = $regexp;
@@ -1387,14 +1425,14 @@
}
return true;
}
-</script>
+
ENDSCRIPT
} elsif ($phase eq 'setanon') {
my $invalid = &mt('The responder threshold you entered is invalid.');
my $alert = &mt('You must enter a positive integer.');
my $regexp = ' /^\s*\d+\s*$/';
$js .= <<"ENDSCRIPT";
-<script type="text/javascript">
+
function verify_anon_threshold() {
var newthreshold = document.setanon.threshold.value;
var num_reg = $regexp;
@@ -1411,17 +1449,23 @@
}
return true;
}
-</script>
+
ENDSCRIPT
}
+
my $starthash;
if ($env{'form.phase'} eq 'ccrole') {
$starthash = {
add_entries => {'onload' => "javascript:document.ccrole.submit();"},
};
+ } elsif ($phase eq 'courselist') {
+ $starthash = {
+ add_entries => {'onload' => "hide_searching();"},
+ };
}
$r->print(&Apache::loncommon::start_page('View/Modify Course/Community Settings',
- $js,$starthash));
+ &Apache::lonhtmlcommon::scripttag($js),
+ $starthash));
my $bread_text = "View/Modify Courses/Communities";
if ($type eq 'Community') {
$bread_text = 'Community Settings';
@@ -1497,6 +1541,7 @@
'notifylist' => 'Course Coordinators to be notified of enrollment changes',
'sectionnums' => 'Course section number:LON-CAPA section',
'crosslistings' => 'Crosslisted class:LON-CAPA section',
+ 'defaultcredits' => 'Credits',
);
}
return %longtype;
@@ -1507,11 +1552,19 @@
&Apache::lonhtmlcommon::echo_form_input(['gosearch','updater','coursecode',
'prevphase','numlocalcc','courseowner','login','coursequota','intarg',
'locarg','krbarg','krbver','counter','hidefromcat','usecategory',
- 'threshold'])."\n".
+ 'threshold','defaultcredits'])."\n".
'<input type="hidden" name="prevphase" value="'.$env{'form.phase'}.'" />';
return $hidden_elements;
}
+sub showcredits {
+ my ($dom) = @_;
+ my %domdefaults = &Apache::lonnet::get_domain_defaults($dom);
+ if ($domdefaults{'officialcredits'} || $domdefaults{'unofficialcredits'}) {
+ return 1;
+ }
+}
+
sub handler {
my $r = shift;
if ($r->header_only) {
More information about the LON-CAPA-cvs
mailing list