blob: b77822e9635199c26b5126a3a78f98b8d7408465 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
<?php
use Grading\Definition;
trait GradebookTemplateHelpers
{
public function formatAsPercent($value)
{
return (float) (round($value * 1000) / 10);
}
public function formatCategory($category)
{
return htmlReady(Definition::CUSTOM_DEFINITIONS_CATEGORY === $category ? _('Manuell eingetragen') : $category);
}
public function getNormalizedWeight(Definition $definition)
{
return $this->sumOfWeights ? $definition->weight / $this->sumOfWeights : 0;
}
protected function getSumOfWeights($gradingDefinitions)
{
$sumOfWeights = 0;
foreach ($gradingDefinitions as $def) {
$sumOfWeights += $def->weight;
}
return $sumOfWeights;
}
protected function getGroupedDefinitions($gradingDefinitions)
{
$groupedDefinitions = [];
foreach ($gradingDefinitions as $def) {
if (!isset($groupedDefinitions[$def->category])) {
$groupedDefinitions[$def->category] = [];
}
$groupedDefinitions[$def->category][] = $def;
}
return $groupedDefinitions;
}
protected function setupLecturerSidebar()
{
$export = new \ExportWidget();
$export->addLink(
_('Leistungen als CSV exportieren'),
$this->url_for('course/gradebook/lecturers/export'),
Icon::create('export')
);
\Sidebar::Get()->addWidget($export);
}
protected function setupStudentsSidebar()
{
$export = new \ExportWidget();
$export->addLink(
_('Leistungen exportieren'),
$this->url_for('course/gradebook/students/export'),
Icon::create('export')
);
\Sidebar::Get()->addWidget($export);
}
protected function viewerIsStudent()
{
return !$this->viewerHasPerm('tutor');
}
protected function viewerIsLecturer()
{
return $this->viewerHasPerm('tutor');
}
/**
* @SuppressWarnings(PHPMD.Superglobals)
*/
protected function viewerHasPerm($perm)
{
return $GLOBALS['perm']->have_studip_perm($perm, \Context::getId());
}
protected function setDefaultPageTitle()
{
\PageLayout::setTitle(Context::getHeaderLine().' - Gradebook');
\PageLayout::setHelpKeyword("Basis.Gradebook");
}
}
|