--- loncom/homework/lonhomework.pm 2018/09/20 14:16:51 1.374
+++ loncom/homework/lonhomework.pm 2023/07/23 16:11:52 1.378
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Homework handler
#
-# $Id: lonhomework.pm,v 1.374 2018/09/20 14:16:51 raeburn Exp $
+# $Id: lonhomework.pm,v 1.378 2023/07/23 16:11:52 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -50,6 +50,8 @@ use Apache::chemresponse();
use Apache::functionplotresponse();
use Apache::drawimage();
use Apache::loncapamath();
+use Apache::loncourseuser();
+use Apache::grades();
use Apache::Constants qw(:common);
use Apache::loncommon();
use Apache::lonparmset();
@@ -369,7 +371,7 @@ sub check_slot_access {
my $probstatus = &Apache::structuretags::get_problem_status($part);
my $earlyout;
unless (($probstatus eq 'no') ||
- ($probstatus eq 'no_feedback_ever')) {
+ ($probstatus eq 'no_feedback_ever')) {
if ($Apache::lonhomework::history{"resource.$part.solved"} =~/^correct_/) {
$numcorrect ++;
} else {
@@ -378,7 +380,7 @@ sub check_slot_access {
}
if ($currtries == $maxtries) {
$earlyout = 1;
- } else {
+ } else {
$numgraded ++;
}
last if ($earlyout);
@@ -795,6 +797,9 @@ sub setuppermissions {
$env{'request.course.sec'} !~ /^\s*$/) {
$viewgrades = &Apache::lonnet::allowed('vgr',$env{'request.course.id'}.
'/'.$env{'request.course.sec'});
+ if ($viewgrades) {
+ $Apache::lonhomework::viewgradessec = $env{'request.course.sec'};
+ }
}
$Apache::lonhomework::viewgrades = $viewgrades;
@@ -812,6 +817,9 @@ sub setuppermissions {
$modifygrades =
&Apache::lonnet::allowed('mgr',$env{'request.course.id'}.
'/'.$env{'request.course.sec'});
+ if ($modifygrades) {
+ $Apache::lonhomework::modifygradessec = $env{'request.course.sec'};
+ }
}
$Apache::lonhomework::modifygrades = $modifygrades;
@@ -830,7 +838,9 @@ sub setuppermissions {
sub unset_permissions {
undef($Apache::lonhomework::queuegrade);
undef($Apache::lonhomework::modifygrades);
+ undef($Apache::lonhomework::modifygradessec);
undef($Apache::lonhomework::viewgrades);
+ undef($Apache::lonhomework::viewgradessec);
undef($Apache::lonhomework::browse);
}
@@ -932,8 +942,17 @@ sub analyze_header {
my $js = &Apache::structuretags::setmode_javascript();
# Breadcrumbs
- my $brcrum = [{'href' => &Apache::loncommon::authorspace($request->uri),
- 'text' => 'Authoring Space'},
+ my $text = 'Authoring Space';
+ my $href = &Apache::loncommon::authorspace($request->uri);
+ if ($env{'request.course.id'}) {
+ my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
+ my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+ if ($href eq "/priv/$cdom/$cnum/") {
+ $text = 'Course Authoring Space';
+ }
+ }
+ my $brcrum = [{'href' => $href,
+ 'text' => $text},
{'href' => '',
'text' => 'Problem Testing'},
{'href' => '',
@@ -1165,8 +1184,17 @@ sub editxmlmode {
&Apache::lonhtmlcommon::dragmath_js("EditMathPopup");
# Breadcrumbs
- my $brcrum = [{'href' => &Apache::loncommon::authorspace($request->uri),
- 'text' => 'Authoring Space'},
+ my $text = 'Authoring Space';
+ my $href = &Apache::loncommon::authorspace($request->uri);
+ if ($env{'request.course.id'}) {
+ my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
+ my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+ if ($href eq "/priv/$cdom/$cnum/") {
+ $text = 'Course Authoring Space';
+ }
+ }
+ my $brcrum = [{'href' => $href,
+ 'text' => $text},
{'href' => '',
'text' => 'Problem Editing'}];
@@ -1201,27 +1229,27 @@ sub editxmlmode {
unless ($env{'environment.nocodemirror'}) {
# dropdown menus
- $result .= Apache::lonmenu::create_submenu("#", "",
+ $result .= Apache::lonmenu::create_submenu("#", "",
&mt("Problem Templates"), template_dropdown_datastructure());
- $result .= Apache::lonmenu::create_submenu("#", "",
+ $result .= Apache::lonmenu::create_submenu("#", "",
&mt("Response Types"), responseblock_dropdown_datastructure());
- $result .= Apache::lonmenu::create_submenu("#", "",
+ $result .= Apache::lonmenu::create_submenu("#", "",
&mt("Conditional Blocks"), conditional_scripting_datastructure());
- $result .= Apache::lonmenu::create_submenu("#", "",
+ $result .= Apache::lonmenu::create_submenu("#", "",
&mt("Miscellaneous"), misc_datastructure());
}
- $result .= Apache::lonmenu::create_submenu("#", "",
+ $result .= Apache::lonmenu::create_submenu("#", "",
&mt("Help") . '
',
+ '" style="vertical-align:text-bottom; height: auto; margin:0; "/>',
helpmenu_datastructure(),"");
$result.="";
-
- $result .= '' .
+
+ $result .= '' .
&Apache::lonxml::message_location() .
&Apache::loncommon::xmleditor_js() .
'