--- loncom/interface/loncreatecourse.pm	2013/12/24 19:15:10	1.152
+++ loncom/interface/loncreatecourse.pm	2016/08/31 23:41:15	1.158.2.1
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Create a course
 #
-# $Id: loncreatecourse.pm,v 1.152 2013/12/24 19:15:10 raeburn Exp $
+# $Id: loncreatecourse.pm,v 1.158.2.1 2016/08/31 23:41:15 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -133,6 +133,8 @@ sub print_course_creation_page {
     } else {
         my $title_alert = &mt('A Community title is required');
         my $coord_alert = &mt('The username of the Coordinator is required');
+        &js_escape(\$title_alert);
+        &js_escape(\$coord_alert);
         $javascript_validations = qq|
 function validate(formname) {
     if (formname.title == '') {
@@ -158,8 +160,9 @@ function validate(formname) {
                     'snid' => "Section Numbers and corresponding LON-CAPA section IDs",
                     'csli' => "a comma separated list of institutional section numbers, each separated by a colon from the (optional) corresponding section ID to be used in LON-CAPA e.g., 001:1,002:2",
                     'crcs' => "Crosslisted courses",
-                    'cscs' => "a comma separated list of course sections crosslisted with the current course, with each entry including the institutional course section name followed by a colon and then the (optional) sectionID to be used in LON-CAPA, e.g., fs03ent231001:ent1,fs03bot231001:bot1,fs03zol231002:zol2",
+                    'cscs' => "a comma separated list of course sections crosslisted with the current course, with each entry including the institutional course section name followed by a colon and then the (optional) section ID to be used in LON-CAPA, e.g., fs03ent231001:ent1,fs03bot231001:bot1,fs03zol231002:zol2",
                     'ccre' => "Course credits",
+                    'crcd' => "Create six character course identifier to share with students",
                     'cred' => "the number of institutional credits students will earn by completing this course",
                     'crco' => "Course Content",
                     'cncr' => "Completely new course",
@@ -184,7 +187,8 @@ function validate(formname) {
                     'oaas' => "Open all assessments",
                     'mssg' => "Messaging",
                     'scpf' => "Set course policy feedback to Course Coordinator",
-                    'scfc' => "Set content feedback to Course Coordinator",
+                    'scfc' => "Set resource content feedback to Course Coordinator",
+                    'scof' => "Set course content feedback to Course Coordinator",
                     'cmmn' => "Communication",
                     'dsrd' => "Disable student resource discussion",
                     'dsuc' => "Disable student use of chat rooms",
@@ -230,7 +234,8 @@ function validate(formname) {
         $lt{'navi'} = &mt('Community Contents');
         $lt{'cid'}  = &mt('Community ID');
         $lt{'scpf'} = &mt('Set community policy feedback to Coordinator');
-        $lt{'scfc'} = &mt('Set content feedback to Coordinator');
+        $lt{'scfc'} = &mt('Set resource content feedback to Coordinator');
+        $lt{'scof'} = &mt('Set community content feedback to Coordinator');
         $lt{'dsrd'} = &mt('Disable member resource discussion');
         $lt{'dsuc'} = &mt('Disable member use of chat rooms');
         $lt{'dads'} = &mt('Default Access Dates for Members');
@@ -343,6 +348,12 @@ END
                      .&Apache::lonhtmlcommon::row_closure()
             );
         }
+        $r->print(&Apache::lonhtmlcommon::row_title($lt{'crcd'})
+                     .'<span class="LC_nobreak">'
+                     .'<input type="radio" name="uniquecode" value="1" />'.&mt('Yes').('&nbsp;'x2)
+                     .'<input type="radio" name="uniquecode" value="0" checked="checked" />'.&mt('No')
+                     .&Apache::lonhtmlcommon::row_closure()
+            );
     }
     # Table: New Course / Clone Course
     $r->print(&Apache::lonhtmlcommon::row_headline()
@@ -453,6 +464,10 @@ END
                  .'<input type="checkbox" name="setcontent" checked="checked" />'
                  .&Apache::lonhtmlcommon::row_closure()
 
+                 .&Apache::lonhtmlcommon::row_title($lt{'scof'})
+                 .'<input type="checkbox" name="setcomment" checked="checked" />'
+                 .&Apache::lonhtmlcommon::row_closure()
+
                  .&Apache::lonhtmlcommon::row_headline()
                  .'<h3>'.$lt{'cmmn'}.'</h3>'
                  .&Apache::lonhtmlcommon::row_closure()
@@ -639,6 +654,7 @@ sub create_course {
                endaccess => $endaccess,
                setpolicy => $env{'form.setpolicy'},
                setcontent => $env{'form.setcontent'},
+               setcomment => $env{'form.setcomment'},
                reshome => $env{'form.reshome'},
                setkeys => $env{'form.setkeys'},
                keyauth => $env{'form.keyauth'},
@@ -653,6 +669,10 @@ sub create_course {
         $args->{'defaultcredits'} = $env{'form.defaultcredits'};
     }
 
+    if ($env{'form.uniquecode'}) {
+         $args->{'uniquecode'} = 1;
+    }
+
     #
     # Verify data
     #
@@ -681,12 +701,12 @@ sub create_course {
                      ,$env{'form.course_home'}.&Apache::loncommon::end_page()));
         return;
     }
-    my ($courseid,$crsudom,$crsunum);
+    my ($courseid,$crsudom,$crsunum,$code);
     my ($success,$output) = 
 	&Apache::loncommon::construct_course($args,\$logmsg,\$courseid,
 					     \$crsudom,\$crsunum,
 					     $env{'user.domain'},
-					     $env{'user.name'},'dc_create');
+					     $env{'user.name'},'dc_create',undef,undef,\$code);
     $r->print($output);
     if ($success) {
         #
@@ -706,6 +726,11 @@ sub create_course {
 	    $r->print(
 		      '<p><a href="/adm/managekeys?cid='.$crsudom.'_'.$crsunum.'">'.&mt('Manage Access Keys').'</a></p>');
 	}
+        if ($code) {
+            $r->print(
+                      '<p>'.&mt('Course identifier to share with students: [_1]',$code).'</p>'
+                     );
+        }
         # Flush the course logs so reverse user roles immediately updated
 	$r->register_cleanup(\&Apache::lonnet::flushcourselogs);
 	$r->print('<p>'.&mt('Roles will be active at next login').'.</p>');
@@ -1142,7 +1167,7 @@ sub creation_display_filter {
                         $typename = $typenames->{$type};
                     }
                 }
-                $output .= '<option value="'.$type.'"'.$selstr.'>'.$typename.'</option>'."\n";
+                $output .= '<option value="'.$type.'"'.$selstr.'>'.&mt($typename).'</option>'."\n";
             }
             $output .= '</select></td>';
         }
@@ -1300,7 +1325,7 @@ sub handler {
                    faq=>9,bug=>'Dom Coord Interface',});
            my $js = &courserequestbrowser_javascript();
            my $start_page=&Apache::loncommon::start_page('Display Requests',$js);
-           my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Requests','Course_Request',undef,'Course_Request');
+           my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Requests','Course_Requests',undef,'Course_Requests');
            $r->print($start_page.$crumbs."\n".'<div>'.
                      &Apache::loncoursequeueadmin::display_queued_requests(
                          'domain',$env{'request.role.domain'}).'</div>'.
@@ -1322,7 +1347,7 @@ sub handler {
                  text=>&mt('[_1] Requests Updated',),
                  faq=>9,bug=>'Dom Coord Interface',},);
            my $start_page=&Apache::loncommon::start_page('Update Requests Result');
-           my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Requests Updated','Course_Request',undef,'Course_Request');
+           my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Requests Updated','Course_Requests',undef,'Course_Requests');
            $r->print($start_page.$crumbs."\n".'<div>'.
                      &Apache::loncoursequeueadmin::update_request_queue(
                      'domain',$env{'request.role.domain'}).'</div>'.
@@ -1334,7 +1359,7 @@ sub handler {
                    faq=>9,bug=>'Dom Coord Interface',});
            my $js = &courserequestbrowser_javascript();
            my $start_page=&Apache::loncommon::start_page('Display Pending Queue',$js);
-           my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Pending Queue','Course_Request',undef,'Course_Request');
+           my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Pending Queue','Course_Requests',undef,'Course_Requests');
            $r->print($start_page.$crumbs."\n".'<div>'.
                      &Apache::loncoursequeueadmin::display_queued_requests(
                          'pending',$env{'request.role.domain'}).'</div>'.
@@ -1347,7 +1372,7 @@ sub handler {
                  {href=>"/adm/createcourse?phase=requestvalidation",
                    text=>&mt('Validation Attempted'),},);
            my $start_page=&Apache::loncommon::start_page('Requests Validation Result',$js);
-           my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Validation Attempted','Course_Request',undef,'Course_Request');
+           my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Validation Attempted','Course_Requests',undef,'Course_Requests');
            $r->print($start_page.$crumbs."\n".'<div>'.
                      &Apache::loncoursequeueadmin::process_official_reqs('domain',$env{'request.role.domain'}).'</div>'.
                      &Apache::loncommon::end_page());