PA Interview Assignment Portal
Slate Instance | TUP |
Requestor | Helen Williams |
Date | 5/1/2024 |
Status | completed |
Summary Description | Create a portal that can be used by the admissions staff to schedule individual PA interviews. |
[ADD LINK TO SUITCASE]
Detailed description of desired deliverable:
A user-scoped portal that can be used by the admissions counselor/staff in TUSMGP to assign individual interview timeslots to interview candidates as well as the faculty or other program staff who will be interviewing the student that day. The goals are to:
Reduce workload of admissions staff in scheduling 72 individual appointments per day
Have information saved in Slate for the interview timeslot and the interviewer, so it can be displayed in the Reader, exported in queries, etc.
Have an application-scoped field tied to the User prompt base in Slate so that automations can run to assign files to the queue of the interviewer without this being an additional step for the admissions staff to do.
Research:
2024 Timeslots:
11:15 AM
11:47 AM
1:15 PM
1:47 PM
2:30 PM
3:02 PM
Outcome:
Portal Components
Portal Settings/Details
The portal scope and security should be set to User.
Other Components
Scheduler Template
Create a template to use to create subsequent events (or scheduler slots). Will use this template in the queries for the portal to determine if records have registration(s) for this event
<tbody>{% for item in awaiting limit:50 %}
<tr>
<td>{{item.interviewee_name}}</td>
<td><label for="timeSelect{{ forloop.index }}">Choose a time:</label><select class="timeSelect" id="timeSelect{{ forloop.index }}"><option value="">Select a Time</option> {% for time in distinct_times %}<option value="{{time.time}}">{{time.time}}</option> {% endfor %} </select>
<table>
<tbody>{% for slot in slots %}
<tr class="timeSlot hidden" data-time="{{ slot.time }}">
<td>Time: {{slot.time}}<button data-href="?cmd=assign_slot&person={{ item.app_guid }}&slot={{ slot.guid }}" href="#" onclick="return (FW.Lazy.Popup(this, {width: '500px'}));">Assign</button></td>
</tr>
{% endfor %}
</tbody>
</table>
</td>
</tr>
{% endfor %}
item.app_guid = the application GUID for the application record returned by the app-scoped query where the node is set to be “awaiting.”
<div class="content" style="height: 350px;">
<div id="form_{{slot_guid}}">
Loading...
</div>
<script>var script = document.createElement('script'); script.async = 1; script.src = 'https://tusmgp.admissions.tufts.edu/register/?id={{slot_guid}}&person={{application}}&output=embed&div=form_{{slot_guid}}' + ((location.search.length > 1) ? '&' + location.search.substring(1) : ''); var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(script, s);</script>
</div>
application = the application GUID for ??? returned by the app-scoped query where there is a filter on GUID is equal to the @person variable?