Handy Student Course Assignment Page Fragment
Richard Moeller
I created a page fragment for the All Enrollments page that can be used to make it easier to fill in the student course assignments when you end up having to manually enter the data (such as for a student who has left and returned or has multiple enrollments in the same class and the state reporting report is not working). Here is an example of what it looks like (yes, this student attended two days then withdrew to a private school, then re-enrolled about a month later...). We don't have a high school so I didn't bother with a lot of those fields, you would need to add them. I also haven't gotten around to figuring out how to pull the state grade mappings since we just do Pass/Fail/Withdrawn here. Dropped sections have a red section id, and future exit dates are grayed out since ISBE SIS won't accept a future date. Just in time for the January course assignments due date.
"/admin/students/allenrollments.d63_il_sca.content.footer.txt" ~[if#SEC9.security.inrole=9]
<p>CC.STUDENTID: ~([students]id)</p>
[/if#SEC9]
~[if#SEC.security.inrole=1,9]
<!-- start of content area -->
<div class="box-round">
<h2>IL Student Course Assignment Info - ~(yearname): SID# ~([students]state_studentnumber)</h2>
<table class="grid">
<thead>
<tr>
<th>School ID</th>
<th>State Course Code</th>
<th>Term</th>
<th>Local Course Code</th>
<th>Local Course Title</th>
<th>Credit</th>
<th>Section ID</th>
<th>Course Level</th>
<th>Course Setting</th>
<th>Start Date</th>
<th>Exit Date</th>
<th>Language</th>
<th>Grade Override/Stored Grade</th>
</tr>
</thead>
<tbody>
~[tlist_sql;
SELECT
cc.SCHOOLID,
ilcou.STATE_COURSE_CODE,
trm.ABBREVIATION,
CC.COURSE_NUMBER,
cou.COURSE_NAME,
to_CHAR(cou.CREDIT_HOURS,'FM0.000'),
CASE
WHEN cc.SECTIONID < 0
THEN 'red'
ELSE ''
END,
ABS(cc.SECTIONID),
DECODE(ilcou.COURSE_LEVEL,'01','Remedial','02','General','03','Enriched','04','Honors')L,
DECODE(ilcou.COURSE_SETTING,'01','Traditional School Day Program','02','Night or After School','03','Online Learning','04','Distance Learning','05','Alternative Placement','06','Other'),
to_char(CC.DateEnrolled,'MM/DD/YYYY'),
CASE
WHEN CALENDAR_EXITDATE.EXITDATE<=TRUNC(SYSDATE)
THEN ''
ELSE 'gray'
END,
TO_CHAR(CALENDAR_EXITDATE.EXITDATE,'MM/DD/YYYY'),
lang.DESCRIPTION,
COALESCE(ilcc.COMPLETION_STATUS_CODE,sg.GRADES)
FROM
CC
LEFT OUTER JOIN S_IL_CC_X ilcc ON CC.DCID = ilcc.CCDCID
INNER JOIN COURSES cou ON cc.COURSE_NUMBER = cou.COURSE_NUMBER
LEFT OUTER JOIN S_IL_CRS_X ilcou ON cou.DCID = ilcou.COURSESDCID
INNER JOIN TERMS trm ON ABS(cc.TERMID) = trm.ID AND cc.SCHOOLID = trm.SCHOOLID
LEFT OUTER JOIN SECTIONS sec ON ABS(cc.SECTIONID) = sec.ID
LEFT OUTER JOIN S_IL_SEC_X ilsec ON sec.DCID = ilsec.SECTIONSDCID
LEFT OUTER JOIN (
SELECT
STUDENTID,
SECTIONID,
LISTAGG(STORECODE || '-' || GRADE,' ') WITHIN GROUP (ORDER BY STORECODE) GRADES
FROM
STOREDGRADES
GROUP BY STUDENTID, SECTIONID
) sg ON CC.STUDENTID = SG.STUDENTID AND ABS(CC.SECTIONID) = SG.SECTIONID
LEFT OUTER JOIN PS_COMMON_CODE lang
ON lang.CATEGORY = 'IL_LANGUAGE_CODES'
AND COALESCE(ilsec.LANGUAGE_COURSE_TAUGHT,ilcou.LANGUAGE_COURSE_TAUGHT) = lang.CODE
LEFT OUTER JOIN (
SELECT
CC.DCID CCDCID,
MAX(CALENDAR_DAY.DATE_VALUE) EXITDATE
FROM
CC
JOIN CALENDAR_DAY
ON CC.SCHOOLID = CALENDAR_DAY.SCHOOLID
AND CALENDAR_DAY.INSESSION=1
AND CALENDAR_DAY.MEMBERSHIPVALUE=1
AND CALENDAR_DAY.DATE_VALUE >= CC.DATEENROLLED
AND TRUNC(CALENDAR_DAY.DATE_VALUE) < TRUNC(CC.DATELEFT)
GROUP BY
CC.DCID
) CALENDAR_EXITDATE ON CC.DCID = CALENDAR_EXITDATE.CCDCID
WHERE
CC.STUDENTID = ~(curstudid)
AND FLOOR(ABS(CC.TERMID)/100) = ~(curyearid)
AND COALESCE(ilcou.STATE_EXCLUDEFROMREPORTING,0) <> 1
ORDER BY
cc.TERMID,
cc.dateenrolled,
ilcou.STATE_COURSE_CODE
;nonemessage=<tr><td colspan="100%">No Data Found.</td></tr>;]
<tr>
<td>~(schoolid)</td>
<td>~(ilcode) <button type="button" title='Copy "~(ilcode)" to clipboard.' onclick="d63SCAInfoCopy('~(ilcode;js)')" style="float:right;">📋</button></td>
<td>~(term)</td>
<td>~(coursenumber) <button type="button" title='Copy "~(coursenumber)" to clipboard.' onclick="d63SCAInfoCopy('~(coursenumber;js)')" style="float:right;">📋</button></td>
<td>~(coursename) <button type="button" title='Copy "~(coursename)" to clipboard.' onclick="d63SCAInfoCopy('~(coursename;js)')" style="float:right;">📋</button></td>
<td>~(credit) <button type="button" title='Copy "~(credit)" to clipboard.' onclick="d63SCAInfoCopy('~(credit;js)')" style="float:right;">📋</button></td>
<td style="color: ~(sectionidcolor);">~(sectionid) <button type="button" title='Copy "~(sectionid)" to clipboard.' onclick="d63SCAInfoCopy('~(sectionid;js)')" style="float:right;">📋</button></td>
<td>~(courselevel)</td>
<td>~(coursesetting)</td>
<td>~(startdate) <button type="button" title='Copy "~(startdate)" to clipboard.' onclick="d63SCAInfoCopy('~(startdate;js)')" style="float:right;">📋</button></td>
<td style="color: ~(exitdatecolor);">~(exitdate) <button type="button" title='Copy "~(exitdate)" to clipboard.' onclick="d63SCAInfoCopy('~(exitdate;js)')" style="float:right;">📋</button></td>
<td>~(language)</td>
<td>~(grade)</td>
</tr>
[/tlist_sql]
</tbody>
</table>
</div>
<script>
function d63SCAInfoCopy(copytext) {
var promise = navigator.clipboard.writeText(copytext);
}
</script>
[/if#SEC]
-- Richard Moeller Data Manager East Maine School District 63 Des Plaines, Illinois PS 22.10 - Self-hosted Windows Server 2016 3500 Students, 7 Schools |
|
C Albright
Very handy – thanks for sharing!!
Cindy Albright Data Systems Manager WARREN TOWNSHIP HIGH SCHOOL 34090 Almond Road Gurnee, IL 60031 847-548-6775
From: psug-il@groups.io <psug-il@groups.io> On Behalf Of
Richard Moeller via groups.io
Sent: Friday, December 16, 2022 11:08 AM To: psug-il@groups.io Subject: [psug-il] Handy Student Course Assignment Page Fragment
I created a page fragment for the All Enrollments page that can be used to make it easier to fill in the student course assignments when you end up having to manually enter the data (such as for a student who has left and returned or has
multiple enrollments in the same class and the state reporting report is not working). Here is an example of what it looks like (yes, this student attended two days then withdrew to a private school, then re-enrolled about a month later...). We don't have
a high school so I didn't bother with a lot of those fields, you would need to add them. I also haven't gotten around to figuring out how to pull the state grade mappings since we just do Pass/Fail/Withdrawn here. Dropped sections have a red section id, and
future exit dates are grayed out since ISBE SIS won't accept a future date. Just in time for the January course assignments due date. ~[if#SEC9.security.inrole=9] <p>CC.STUDENTID: ~([students]id)</p> [/if#SEC9]
~[if#SEC.security.inrole=1,9] <!-- start of content area --> <div class="box-round"> <h2>IL Student Course Assignment Info - ~(yearname): SID# ~([students]state_studentnumber)</h2> <table class="grid"> <thead> <tr> <th>School ID</th> <th>State Course Code</th> <th>Term</th> <th>Local Course Code</th> <th>Local Course Title</th> <th>Credit</th> <th>Section ID</th> <th>Course Level</th> <th>Course Setting</th> <th>Start Date</th> <th>Exit Date</th> <th>Language</th> <th>Grade Override/Stored Grade</th>
</tr> </thead> <tbody> ~[tlist_sql; SELECT cc.SCHOOLID, ilcou.STATE_COURSE_CODE, trm.ABBREVIATION, CC.COURSE_NUMBER, cou.COURSE_NAME, to_CHAR(cou.CREDIT_HOURS,'FM0.000'), CASE WHEN cc.SECTIONID < 0 THEN 'red' ELSE '' END, ABS(cc.SECTIONID), DECODE(ilcou.COURSE_LEVEL,'01','Remedial','02','General','03','Enriched','04','Honors')L, DECODE(ilcou.COURSE_SETTING,'01','Traditional School Day Program','02','Night or After School','03','Online Learning','04','Distance Learning','05','Alternative Placement','06','Other'), to_char(CC.DateEnrolled,'MM/DD/YYYY'), CASE WHEN CALENDAR_EXITDATE.EXITDATE<=TRUNC(SYSDATE) THEN '' ELSE 'gray' END, TO_CHAR(CALENDAR_EXITDATE.EXITDATE,'MM/DD/YYYY'), lang.DESCRIPTION, COALESCE(ilcc.COMPLETION_STATUS_CODE,sg.GRADES) FROM CC LEFT OUTER JOIN S_IL_CC_X ilcc ON CC.DCID = ilcc.CCDCID INNER JOIN COURSES cou ON cc.COURSE_NUMBER = cou.COURSE_NUMBER LEFT OUTER JOIN S_IL_CRS_X ilcou ON cou.DCID = ilcou.COURSESDCID INNER JOIN TERMS trm ON ABS(cc.TERMID) = trm.ID AND cc.SCHOOLID = trm.SCHOOLID LEFT OUTER JOIN SECTIONS sec ON ABS(cc.SECTIONID) = sec.ID LEFT OUTER JOIN S_IL_SEC_X ilsec ON sec.DCID = ilsec.SECTIONSDCID LEFT OUTER JOIN ( SELECT STUDENTID, SECTIONID, LISTAGG(STORECODE || '-' || GRADE,' ') WITHIN GROUP (ORDER BY STORECODE) GRADES FROM STOREDGRADES GROUP BY STUDENTID, SECTIONID ) sg ON CC.STUDENTID = SG.STUDENTID AND ABS(CC.SECTIONID) = SG.SECTIONID LEFT OUTER JOIN PS_COMMON_CODE lang ON lang.CATEGORY = 'IL_LANGUAGE_CODES' AND COALESCE(ilsec.LANGUAGE_COURSE_TAUGHT,ilcou.LANGUAGE_COURSE_TAUGHT) = lang.CODE LEFT OUTER JOIN ( SELECT CC.DCID CCDCID, MAX(CALENDAR_DAY.DATE_VALUE) EXITDATE FROM CC JOIN CALENDAR_DAY ON CC.SCHOOLID = CALENDAR_DAY.SCHOOLID AND CALENDAR_DAY.INSESSION=1 AND CALENDAR_DAY.MEMBERSHIPVALUE=1 AND CALENDAR_DAY.DATE_VALUE >= CC.DATEENROLLED AND TRUNC(CALENDAR_DAY.DATE_VALUE) < TRUNC(CC.DATELEFT) GROUP BY CC.DCID ) CALENDAR_EXITDATE ON CC.DCID = CALENDAR_EXITDATE.CCDCID WHERE CC.STUDENTID = ~(curstudid) AND FLOOR(ABS(CC.TERMID)/100) = ~(curyearid) AND COALESCE(ilcou.STATE_EXCLUDEFROMREPORTING,0) <> 1 ORDER BY cc.TERMID, cc.dateenrolled, ilcou.STATE_COURSE_CODE ;nonemessage=<tr><td colspan="100%">No Data Found.</td></tr>;] <tr> <td>~(schoolid)</td> <td>~(ilcode) <button type="button" title='Copy "~(ilcode)" to clipboard.' onclick="d63SCAInfoCopy('~(ilcode;js)')" style="float:right;">📋</button></td> <td>~(term)</td> <td>~(coursenumber) <button type="button" title='Copy "~(coursenumber)" to clipboard.' onclick="d63SCAInfoCopy('~(coursenumber;js)')" style="float:right;">📋</button></td> <td>~(coursename) <button type="button" title='Copy "~(coursename)" to clipboard.' onclick="d63SCAInfoCopy('~(coursename;js)')" style="float:right;">📋</button></td> <td>~(credit) <button type="button" title='Copy "~(credit)" to clipboard.' onclick="d63SCAInfoCopy('~(credit;js)')" style="float:right;">📋</button></td> <td style="color: ~(sectionidcolor);">~(sectionid) <button type="button" title='Copy "~(sectionid)" to clipboard.' onclick="d63SCAInfoCopy('~(sectionid;js)')" style="float:right;">📋</button></td> <td>~(courselevel)</td> <td>~(coursesetting)</td> <td>~(startdate) <button type="button" title='Copy "~(startdate)" to clipboard.' onclick="d63SCAInfoCopy('~(startdate;js)')" style="float:right;">📋</button></td> <td style="color: ~(exitdatecolor);">~(exitdate) <button type="button" title='Copy "~(exitdate)" to clipboard.' onclick="d63SCAInfoCopy('~(exitdate;js)')" style="float:right;">📋</button></td> <td>~(language)</td> <td>~(grade)</td> </tr> [/tlist_sql] </tbody> </table> </div> <script> function d63SCAInfoCopy(copytext) { var promise = navigator.clipboard.writeText(copytext); } </script>
[/if#SEC]
|
|