1
0
mirror of https://github.com/moodle/moodle.git synced 2025-04-25 10:26:17 +02:00

MDL-72413 assign: Use the common module for setting the header

This commit is contained in:
Peter Dias 2021-09-20 11:54:42 +08:00
parent a2d8ac6eea
commit d9e0d4ed31
6 changed files with 32 additions and 131 deletions

@ -82,6 +82,8 @@ $PAGE->set_url($manager->get_management_url($returnurl));
navigation_node::override_active_url($manager->get_management_url());
$PAGE->set_title(get_string('gradingmanagement', 'core_grading'));
$PAGE->set_heading(get_string('gradingmanagement', 'core_grading'));
// We don't need to show the default header on a management page.
$PAGE->activityheader->disable();
$output = $PAGE->get_renderer('core_grading');
// process the eventual change of the active grading method

@ -230,10 +230,6 @@ class renderer extends \plugin_renderer_base {
* @return string
*/
public function render_assign_header(assign_header $header) {
global $USER;
$o = '';
if ($header->subpage) {
$this->page->navbar->add($header->subpage, $header->subpageurl);
$args = ['contextname' => $header->context->get_context_name(false, true), 'subpage' => $header->subpage];
@ -248,33 +244,24 @@ class renderer extends \plugin_renderer_base {
$this->page->set_title($title);
$this->page->set_heading($this->page->course->fullname);
$o .= $this->output->header();
if (!$this->page->has_secondary_navigation()) {
$o .= $this->output->heading($heading);
}
// Show the activity information output component.
$modinfo = get_fast_modinfo($header->assign->course);
$cm = $modinfo->get_cm($header->coursemoduleid);
$cmcompletion = \core_completion\cm_completion_details::get_instance($cm, $USER->id);
$activitydates = \core\activity_dates::get_dates_for_module($cm, $USER->id);
$o .= $this->output->activity_information($cm, $cmcompletion, $activitydates);
if ($header->preface) {
$o .= $header->preface;
}
$description = $header->preface;
if ($header->showintro) {
$o .= $this->output->box_start('generalbox boxaligncenter', 'intro');
$o .= format_module_intro('assign', $header->assign, $header->coursemoduleid);
$description = $this->output->box_start('generalbox boxaligncenter', 'intro');
$description .= format_module_intro('assign', $header->assign, $header->coursemoduleid);
if ($header->activity) {
$o .= $this->format_activity_text($header->assign, $header->coursemoduleid);
$description .= $this->format_activity_text($header->assign, $header->coursemoduleid);
}
$o .= $header->postfix;
$o .= $this->output->box_end();
$description .= $header->postfix;
$description .= $this->output->box_end();
}
return $o;
$activityheader = $this->page->activityheader;
$activityheader->set_attrs([
'title' => $activityheader->is_title_allowed() ? $heading : '',
'description' => $description
]);
return $this->output->header();
}
/**

@ -82,9 +82,13 @@ $PAGE->set_pagelayout('admin');
$PAGE->navbar->add($title);
$PAGE->set_title($title);
$PAGE->set_heading($course->fullname);
$PAGE->activityheader->set_attrs([
"title" => format_string($assign->get_instance()->name, true, ['context' => $context]),
"description" => "",
"hidecompletion" => true
]);
echo $OUTPUT->header();
echo $OUTPUT->heading(format_string($assign->get_instance()->name, true, array('context' => $context)));
if ($override->groupid) {
$group = $DB->get_record('groups', array('id' => $override->groupid), 'id, name');

@ -257,8 +257,13 @@ $PAGE->navbar->add($pagetitle);
$PAGE->set_pagelayout('admin');
$PAGE->set_title($pagetitle);
$PAGE->set_heading($course->fullname);
$activityheader = $PAGE->activityheader;
$activityheader->set_attrs([
'description' => '',
'hidecompletion' => true,
'title' => $activityheader->is_title_allowed() ? format_string($assigninstance->name, true, ['context' => $context]) : ""
]);
echo $OUTPUT->header();
echo $OUTPUT->heading(format_string($assigninstance->name, true, array('context' => $context)));
$mform->display();

@ -82,10 +82,13 @@ if ($action == 'movegroupoverride') {
$PAGE->set_pagelayout('admin');
$PAGE->set_title(get_string('overrides', 'assign'));
$PAGE->set_heading($course->fullname);
$activityheader = $PAGE->activityheader;
$activityheader->set_attrs([
'description' => '',
'hidecompletion' => true,
'title' => $activityheader->is_title_allowed() ? format_string($assign->name, true, ['context' => $context]) : ""
]);
echo $OUTPUT->header();
if (!$PAGE->has_secondary_navigation()) {
echo $OUTPUT->heading(format_string($assign->name, true, array('context' => $context)));
}
$overridemenu = new \mod_assign\output\override_actionmenu($url, $cm);
$renderer = $PAGE->get_renderer('mod_assign');
echo $renderer->render($overridemenu);

@ -4225,106 +4225,6 @@ Anchor link 2:<a title=\"bananas\" href=\"../logo-240x60.gif\">Link text</a>
];
}
/**
* Data provider for test_view_group_override
*
* @return array Provider data
*/
public function view_group_override_provider() {
return [
'Other users should see their duedate' => [
'student',
['group2'],
'group1',
'7 June 2019, 5:37 PM',
],
'Teacher should be able to see all group override duedate' => [
'teacher',
['group1'],
'group1',
'20 September 2019, 10:37 PM',
],
'Teacher should be able to see all group override duedate even if they are not member' => [
'editingteacher',
['group1'],
'group2',
'7 June 2019, 5:37 PM',
]
];
}
/**
* Test showing group override duedate for admin
*
* @dataProvider view_group_override_provider
* @param string $role the role of the user (teacher, student, etc)
* @param string[] $groups the groups the user are member of
* @param string $activegroup The selected group
* @param string $expecteddate The expected due date
*/
public function test_view_group_override(string $role, array $groups, string $activegroup, string $expecteddate) {
global $DB, $PAGE, $SESSION;
$this->resetAfterTest();
$course = $this->getDataGenerator()->create_course();
$group1 = $this->getDataGenerator()->create_group(['courseid' => $course->id]);
$group2 = $this->getDataGenerator()->create_group(['courseid' => $course->id]);
$user = $this->getDataGenerator()->create_and_enrol($course, $role);
if (in_array('group1', $groups)) {
groups_add_member($group1, $user);
}
if (in_array('group2', $groups)) {
groups_add_member($group2, $user);
}
$activegroup = $$activegroup;
$assign = $this->create_instance($course, [
'groupmode' => SEPARATEGROUPS,
'duedate' => 1558999899, // 28 May 2019, 7:31 AM.
]);
$instance = $assign->get_instance();
// Overrides for two groups.
$overrides = [
(object) [
'assignid' => $instance->id,
'groupid' => $group1->id,
'userid' => null,
'sortorder' => 1,
'duedate' => 1568990258, // 20 September 2019, 10:37 PM.
],
(object) [
'assignid' => $instance->id,
'groupid' => $group2->id,
'userid' => null,
'sortorder' => 2,
'duedate' => 1559900258, // 7 June 2019, 5:37 PM.
],
];
foreach ($overrides as &$override) {
$override->id = $DB->insert_record('assign_overrides', $override);
}
$currenturl = new moodle_url('/mod/assign/view.php', ['id' => $assign->get_course_module()->id]);
$PAGE->set_url($currenturl);
$this->setUser($user);
$_GET['group'] = $activegroup->id;
/** @var assign $assign */
$header = new \mod_assign\output\assign_header(
$assign->get_instance(),
$assign->get_context(),
false,
$assign->get_course_module()->id
);
$output = $assign->get_renderer()->render($header);
$this->assertStringContainsStringIgnoringCase($expecteddate, $output);
}
/**
* Test that cron task uses task API to get its last run time.
*/