-
Notifications
You must be signed in to change notification settings - Fork 340
/
StudentList.php
111 lines (85 loc) · 2.95 KB
/
StudentList.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
<?php
// GET ALL THE CONFIG ITEMS FOR ELIGIBILITY
$eligibility_config = ProgramConfig( 'eligibility' );
foreach ( (array) $eligibility_config as $value )
{
${$value[1]['TITLE']} = $value[1]['VALUE'];
}
// Day of the week: 1 (for Monday) through 7 (for Sunday).
$today = date( 'w' ) ? date( 'w' ) : 7;
$start = time() - ( $today - $START_DAY ) * 60 * 60 * 24;
if ( empty( $_REQUEST['start_date'] ) )
{
$start_time = $start;
$start_date = date( 'Y-m-d', $start_time );
$end_date = date( 'Y-m-d' );
}
else
{
$start_time = $_REQUEST['start_date'];
$start_date = date( 'Y-m-d', $start_time );
$end_date = date( 'Y-m-d', $start_time + 60 * 60 * 24 * 7 );
}
DrawHeader( ProgramTitle() );
if ( $_REQUEST['search_modfunc']
|| User( 'PROFILE' ) === 'parent'
|| User( 'PROFILE' ) === 'student' )
{
$tmp_PHP_SELF = PreparePHP_SELF();
echo '<form action="' . $tmp_PHP_SELF . '" method="POST">';
$begin_year = DBGetOne( "SELECT min(date_part('epoch',SCHOOL_DATE)) AS SCHOOL_DATE
FROM ATTENDANCE_CALENDAR
WHERE SCHOOL_ID='" . UserSchool() . "'
AND SYEAR='" . UserSyear() . "'" );
if ( is_null( $begin_year ) )
{
ErrorMessage( [ _( 'There are no calendars yet setup.' ) ], 'fatal' );
}
$date_select = '<option value="' . AttrEscape( $start ) . '">' . ProperDate( date( 'Y-m-d', $start ) ) . ' - ' . ProperDate( DBDate() ) . '</option>';
for ( $i = $start - ( 60 * 60 * 24 * 7 ); $i >= $begin_year; $i -= ( 60 * 60 * 24 * 7 ) )
{
$date_select .= '<option value="' . AttrEscape( $i ) . '"' . ( ( $i + 86400 >= $start_time && $i - 86400 <= $start_time ) ? ' selected' : '' ) . '>' . ProperDate( date( 'Y-m-d', $i ) ) . ' - ' . ProperDate( date( 'Y-m-d', ( $i + 1 + ( ( $END_DAY - $START_DAY ) ) * 60 * 60 * 24 ) ) ) . '</option>';
}
$date_select = '<select name="start_date">' . $date_select . '</select>';
DrawHeader( $date_select . ' ' . Buttons( _( 'Go' ) ) );
echo '</form>';
}
$extra['SELECT'] = ",e.ELIGIBILITY_CODE,c.TITLE as COURSE_TITLE";
$extra['FROM'] = ",ELIGIBILITY e,COURSES c,COURSE_PERIODS cp";
$extra['WHERE'] = "AND e.STUDENT_ID=ssm.STUDENT_ID AND e.COURSE_PERIOD_ID=cp.COURSE_PERIOD_ID AND cp.COURSE_ID=c.COURSE_ID AND e.SCHOOL_DATE BETWEEN '" . $start_date . "' AND '" . $end_date . "'";
$extra['functions'] = [ 'ELIGIBILITY_CODE' => '_makeLower', 'FULL_NAME' => 'makePhotoTipMessage' ];
$extra['group'] = [ 'STUDENT_ID' ];
Widgets( 'eligibility' );
Widgets( 'activity' );
Widgets( 'course' );
if ( ! $_REQUEST['search_modfunc']
&& User( 'PROFILE' ) !== 'parent'
&& User( 'PROFILE' ) !== 'student' )
{
$extra['new'] = true;
Search( 'student_id', $extra );
}
else
{
$student_RET = GetStuList( $extra );
$columns = [
'FULL_NAME' => _( 'Student' ),
'COURSE_TITLE' => _( 'Course' ),
'ELIGIBILITY_CODE' => _( 'Grade' ),
];
ListOutput(
$student_RET,
$columns,
'Student',
'Students',
[],
[ 'STUDENT_ID' => [ 'FULL_NAME', 'STUDENT_ID' ] ]
);
}
/**
* @param $word
*/
function _makeLower( $word )
{
return ucwords( mb_strtolower( $word ) );
}