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.

https://tufts.box.com/s/uuymtrpfdchez8ti4u64seq5iimnr1ci

[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&amp;person={{ item.app_guid }}&amp;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?