/
all.php
152 lines (119 loc) · 4.78 KB
/
all.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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<?php
//===================================================
// all.php
//
// Displays a complete list of online assignments
// for the course. Rather like what happened in
// the old Journal activity.
// Howard Miller 2008
// See MDL-14045
//===================================================
require_once("../../../../config.php");
require_once("{$CFG->dirroot}/mod/assignment/lib.php");
require_once($CFG->libdir.'/gradelib.php');
require_once('assignment.class.php');
// get parameter
$id = required_param('id', PARAM_INT); // course
if (!$course = $DB->get_record('course', array('id'=>$id))) {
print_error('invalidcourse');
}
$PAGE->set_url('/mod/assignment/type/babelium/all.php', array('id'=>$id));
require_course_login($course);
// check for view capability at course level
$context = get_context_instance(CONTEXT_COURSE,$course->id);
require_capability('mod/assignment:view',$context);
// various strings
$str = new stdClass;
$str->assignments = get_string("modulenameplural", "assignment");
$str->duedate = get_string('duedate','assignment');
$str->duedateno = get_string('duedateno','assignment');
$str->editmysubmission = get_string('editmysubmission','assignment');
$str->emptysubmission = get_string('emptysubmission','assignment');
$str->noassignments = get_string('noassignments','assignment');
//TODO
//$str->onlinetext = get_string('typeonline','assignment');
$str->submitted = get_string('submitted','assignment');
$PAGE->navbar->add($str->assignments, new moodle_url('/mod/assignment/index.php', array('id'=>$id)));
//TODO
//$PAGE->navbar->add($str->onlinetext);
// get all the assignments in the course
$assignments = get_all_instances_in_course('assignment',$course, $USER->id );
$sections = get_all_sections($course->id);
// array to hold display data
$views = array();
// loop over assignments finding babelium ones
foreach( $assignments as $assignment ) {
// only interested in babelium assignments
if ($assignment->assignmenttype != 'babelium') {
continue;
}
// check we are allowed to view this
$context = get_context_instance(CONTEXT_MODULE, $assignment->coursemodule);
if (!has_capability('mod/assignment:view',$context)) {
continue;
}
// create instance of assignment class to get
// submitted assignments
$babeliuminstance = new assignment_babelium( $assignment->coursemodule );
$submitted = $babeliuminstance->submittedlink(true);
$submission = $babeliuminstance->get_submission();
// submission (if there is one)
if (empty($submission)) {
$submissiontext = $str->emptysubmission;
if (!empty($assignment->timedue)) {
$submissiondate = "{$str->duedate} ".userdate( $assignment->timedue );
} else {
$submissiondate = $str->duedateno;
}
} else {
//TODO change this with the widget
//$submissiontext = format_text( $submission->data1, $submission->data2 );
$submissiondate = "{$str->submitted} ".userdate( $submission->timemodified );
}
// edit link
$editlink = "<a href=\"{$CFG->wwwroot}/mod/assignment/view.php?".
"id={$assignment->coursemodule}&edit=1\">{$str->editmysubmission}</a>";
// format options for description
$formatoptions = new stdClass;
$formatoptions->noclean = true;
// object to hold display data for assignment
$view = new stdClass;
// start to build view object
$view->section = get_section_name($course, $sections[$assignment->section]);
$view->name = $assignment->name;
$view->submitted = $submitted;
$view->description = format_module_intro('assignment', $assignment, $assignment->coursemodule);
$view->editlink = $editlink;
//TODO
//$view->submissiontext = $submissiontext;
$view->submissiondate = $submissiondate;
$view->cm = $assignment->coursemodule;
$views[] = $view;
}
//===================
// DISPLAY
//===================
$PAGE->set_title($str->assignments);
echo $OUTPUT->header();
foreach ($views as $view) {
echo $OUTPUT->container_start('clearfix generalbox assignment');
// info bit
echo $OUTPUT->heading("$view->section - $view->name", 3, 'mdl-left');
if (!empty($view->submitted)) {
echo '<div class="reportlink">'.$view->submitted.'</div>';
}
// description part
echo '<div class="description">'.$view->description.'</div>';
//submission part
echo $OUTPUT->container_start('generalbox submission');
echo '<div class="submissiondate">'.$view->submissiondate.'</div>';
//TODO
//echo "<p class='no-overflow'>$view->submissiontext</p>\n";
echo "<p>$view->editlink</p>\n";
echo $OUTPUT->container_end();
// feedback part
$babeliuminstance = new assignment_babelium( $view->cm );
$babeliuminstance->view_feedback();
echo $OUTPUT->container_end();
}
echo $OUTPUT->footer();