blob: 78a024e7e2662e6bae14690f3efcf96293011098 (
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
<?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");
}
protected function setupIliasSidebar($num_definitions = 0)
{
$ilias = new \LinksWidget();
$ilias->setTitle(_('ILIAS'));
$ilias->addLink(
_('Test als Leistung hinzufügen'),
$this->url_for('course/gradebook/lecturers/new_ilias_definition'),
Icon::create('add')
)->asDialog();
if ($num_definitions) {
$ilias->addLink(
_('Ergebnisse aus ILIAS importieren'),
$this->url_for('course/gradebook/lecturers/import_ilias_results'),
Icon::create('refresh')
);
}
\Sidebar::Get()->addWidget($ilias);
}
}
|