forked from UFSC/moodle-report-unasus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
lib.php
88 lines (75 loc) · 3.02 KB
/
lib.php
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
<?php
defined('MOODLE_INTERNAL') || die;
/*
* Lista contendo todos relatórios
*/
function report_unasus_relatorios_validos_list() {
// Função usda no report_unasus_factory para validações
return array_merge(report_unasus_relatorios_validos_tutoria_list(),
report_unasus_relatorios_restritos_list(),
report_unasus_relatorios_validos_orientacao_list());
}
/*
* Apresenta somente os relatórios válidos para a capability tutores
*/
function report_unasus_relatorios_validos_tutoria_list() {
return array(
'estudante_sem_atividade_avaliada',
'estudante_sem_atividade_postada',
'modulos_concluidos',
'avaliacoes_em_atraso',
'atividades_nota_atribuida',
'atividades_concluidas_agrupadas',
'entrega_de_atividades',
'atividades_vs_notas',
'boletim',
// 'potenciais_evasoes',
);
}
/*
* Apresenta somente os relatórios válidos para a capability orientadores
*/
function report_unasus_relatorios_validos_orientacao_list() {
return array(
'tcc_consolidado',
'tcc_entrega_atividades',
'tcc_concluido');
}
function report_unasus_relatorios_restritos_list() {
return array('acesso_tutor', 'uso_sistema_tutor');
}
/**
* @param navigation_node $navigation
* @param stdClass $course
* @param context_course $context
*/
function report_unasus_extend_navigation_course($navigation, $course, $context) {
$reports = array();
//Caso usuário seja tutor
if( ($course->id != SITEID && has_capability('report/unasus:view_all', $context)) ||
($course->id != SITEID && has_capability('report/unasus:view_tutoria', $context))
) {
$reports = array_merge($reports, report_unasus_relatorios_validos_tutoria_list());
}
//Caso usuário seja coordenador
if( ($course->id != SITEID && has_capability('report/unasus:view_all', $context))
) {
$reports = array_merge($reports, report_unasus_relatorios_restritos_list());
}
//Caso usuário seja orientador
if( ($course->id != SITEID && has_capability('report/unasus:view_all', $context)) ||
($course->id != SITEID && has_capability('report/unasus:view_orientacao', $context))
) {
$reports = array_merge($reports, report_unasus_relatorios_validos_orientacao_list());
}
if( ($course->id != SITEID && has_capability('report/unasus:view_all', $context)) ||
($course->id != SITEID && has_capability('report/unasus:view_tutoria', $context)) ||
($course->id != SITEID && has_capability('report/unasus:view_orientacao', $context))
) {
$unasus_node = $navigation->add(get_string('unasus_navigation_name', 'report_unasus'), null, navigation_node::TYPE_CONTAINER);
foreach ($reports as $report) {
$url = new moodle_url('/report/unasus/index.php', array('relatorio' => $report, 'course' => $course->id));
$unasus_node->add(get_string($report, 'report_unasus'), $url, navigation_node::TYPE_SETTING, null, $report, new pix_icon('i/report', ''));
}
}
}