PowerSchool Customizations... SIS-yphean

This page includes a couple enhancements to the standard report queue page. First, the page will display a 10 second count down and then refresh itself, eliminating the need to keep hitting the refresh link to see if your job has completed.  Secondly, The page will display a refresh icon next to each job which when clicked will re-submit the job.  This is just an easier way to re-run a report without having to click the report name, check the re-run check box, and click submit. Saves a bunch of clicks when testing new object reports.
The download package contains a version of the report queue to be used on the teachers side of PS.
Contributions: A fellow PowerSchool Admin Mr. Clayton Fuller from Tuacahn High School for the Performing Arts in Utah has added the code that stops refreshing the report queue once all the reports have completed. Thank you Clayton!

Version History:

2.0 - Updated for PowerSchool version 7. Formated for upload to CPM.
1.0 - Initial release.

Screen shot:

awesome_rq_v2_1.zip5.85 KB

The class roster feature in powerschool is a great way to get class information out of the system in a nice printable format.  However... try explaining to your office staff that after they took the time figuring out all the parameters, field names, and column widths, to create the roster, they cannot save it for future use!
This custom class roster page allows a powerschool admin to pre load all the parameters into a javascript allowing the office staff to simply pick which roster they would like to run through a drop down box.  After selecting a roster to load, they could then go and alter the parameters, or just click submit as is.
The page also includes another handy little javascript which will calculate the width of the fields you have specified, and display the total underneath the field input box.  The first sum being just the column widths specified, and the second sum takes into account the page margins or padding that has been applied.  This was included to get around the annoying task of running a report to see if your column widths where okay.
Now updated to blend with PowerSchool version 7.
For those updating from the old version, you only need to replace the classrosters.html page. Your previous roster setups will work just the way they where.

I realize that this customization is very tricky.  If you are not familiar at all with javascript writing the code for pre-defined rosters can be daunting.  Often I find people want to use this customization to facilitate running grade verification rosters.  So I have put together two class roster packages which already has the code setup for for these grade verification reports.


Version History:

2.1 - Fixed an issue with page orientation, and width not updating when selecting rosters. Thanks Leslie! Made the zip download CPM friendly.
2.0 - Updated for PowerSchool version 7.
1.0 - Initial release.

Everyone who has surfed the web for a while is familiar with the "email me" link (I have one toward the bottom of this page). The following will show how you can create a supped up form of these links within your custom PowerSchool pages. This makes for easy sharing of information between those that administer PowerSchool, and others in the district without access or in need of notification.
For example: One of the school secretaries has just finished enrolling a new student named Johnny. It is incumbent upon her to notify...
The Librarian - So Johnny is entered in the library circulation system
The Tech Department - Johnny needs a server folder
The Nurse - So a lice-check appointment can be made
The Special Ed Folks - Who fill out a lot of complex paperwork
So on and so on...
It would be much easier to remember all that if it was contained in a single click.

How It Works :

Lets break down the following code:

<a href="mailto:person1@school.org,person2@school.org,person3@school.org
?subject=New Student at the middle school
&body=Last Name: ~(last_name)
%0AFirst Name: ~(first_name)
%0AStudent Number: ~(student_number)
%0AGrade: ~(grade_level)
%0AHome Room: ~(home_room)">
Send New Student Email</a>

This example code would be used inside a student page. When clicked it would generate an email to persons one two and three with the subject "New student at the middle school" and a handful of student information in the body.
The link is wrapped inside the ~[if.~([01]schoolid)=1002] tag so it will only show up if the current school your in has the ID 1002.  This allows you to format the email link differently by school simply by repeating the entire code for each school ID.
The next line starting with "<a href" is just your typical mailto tag with each email address separated by a comma. "?subject=" is where the subject of the email starts. Finally the body of the email is defined after "&body=". The "%0A" preceding each line in the body inserts a line break (actually, I found this will not work with every email client, some will just ignore the breaks).
I'm sure there are a bunch of interesting uses for email links in PS. I would love to hear how people use them...

Screen shot:

I once had a teacher in my district relate to me how she painstakingly copy/pastes every student and parent email address from PowerTeacher into her Google Contacts. She got me thinking, "about 10 classes  X  25 students  X  4 quarters  X  however many teachers do this  =  There has to be a better way."
Enter Google Contacts Mover, a simple way for teachers to export student demographic data out of PowerSchool and import into Google Contacts.
The process looks like this.

  1. In PowerTeacher go to the Reports page for a class.
  2. Click the link at the bottom titled "Download this class for import into Google contacts" and a file named "import4google.csv" downloads.
  3. Open up Contacts in your Google account, click the More button then Import. Upload the import4google.csv file.
  4. Repeat for each class you would like to have in Google.

This process creates a two new contact groups for each class labeled "Course#-Section#-Students" and "Course#-Section#-Parents".
Each contact in the Students group will have the following contact info:

  • Student Name
  • Student email address (built in PS student email field)
  • Birthday (dob field)
  • Home phone (home_phone field)
  • Home address (street, city, state, zip fields)
  • Mother and father's name (mother and father fields)

Each contact in the Parents group will have the same info listed above except for the email address being the guardianemail field.
Having separate contact groups allows teachers to easily mass email students, parents or both.

The package contains:
import4google.csv - this is the file that makes it all happen. (Required)
reports.Google_Contacts_Mover.content.footer.txt - a page fragment that adds the link at the bottom of the class Reports page. (Required)
googlecontacts.html - instructions walking teacher through the export/import process. (optional)
googlecontacts1-6.jpg - images for the teacher instructions. (optional)
home.Google_Contacts_Mover.content.footer.txt - a page fragment that adds a link to the instructions at the bottom of the PowerTeacher home page. (optional)

Install Notes:

- Users should not run the Google function to "Find and Merge Duplicates" after importing contacts. This would combine the student and parent entries. This is stated in the included teacher directions.
- The .zip file contains a tutorial page for teachers. This is not required, it is included for convenience.
- If you import the .zip file into custom page management the tutorial images will not get uploaded. Just the way CPM behaves. So you will have to upload them individually.

Version History:

3.1 - Noticed a small problem with the page fragment that inserted the csv link on the teacher reports page. It was inserted in both frames instead of just the content part. This version corrects that.
3.0 - Ready for PS version 8! Now using page fragments to insert the links into home.html and reports.html. This means it will not interfere with other customizations and/or PowerSchool updates. See the Database Extensions Advanced User Guide for future explanation. Also updated the teacher directions to reflect Google interface changes.
2.1 - I accidentally uploaded the version that my district was using, not the one for public consumption! Who is running this site geesh! Corrected in this version to pull from the built in student email field.
2.0 - Split csv import into two contact groups instead of combining student & parent emails in the same entry. Updated teacher directions to reflect this change.
1.1 - Minor update to accommodate changes in PS version 7.8.2.
1.0 - Initial release (based on PS version 7.6.2).

google_contacts_mover_v3_1.zip153.45 KB

One of my favorite t-sirts exclaims "Go away or I will replace you with a very small shell script". This is how I feel about the family_rep field in Powerschool. Since all my district was doing to figure out which students where family reps was grouping the home_phone field and picking the youngest student within each group... I replaced this process with a small SQL query.

How Does it work?
When in the DISTRICT OFFICE a link "Select District Family Reps" appears after Stored Selections on the admin homepage. This links to a familyreps.html page that picks the youngest student at each household for the entire district BASED ON HOME PHONE NUMBER. The family reps become the current selection and you are redirected to the group functions screen.
When your in a SCHOOL the link changes to "Select [school abbreviation] Family Reps" and finds the family reps at each household just within the school.
The SQL query does take into account students who are checkmarked as a family_rep on the Modify Info screen. Those checked always get included in the student selection. This is to account for those rare instances where two or more students have the same home phone but still need individual copies of all school mailings.
Twins and triplets are taken into account when selecting family reps. The one with the highest ID number wins. Students with blank home phone numbers are also included automatically.
Version 4 is now uses a page fragment to insert the home page link. This means it will not interfere with other customizations and/or PowerSchool updates. See the Database Extensions Advanced User Guide for further explanation.

- Your school may have different way of determining student family representatives. This will only be a replacement for schools that group households by home phone.
- The home_phone field will have to be uniformly formatted for every student or this will not work. We use data validation to prevent the home_phone from being submitted if it is malformed.
- If you plan on using this customization in production you should clear the family_rep field for every student EXCEPT for students who are not the youngest of the household but still need a copy of mailers (as noted earlier).

Version History:

4.0 - Converted home page link to page fragment and therefore PS version 8 ready.
3.3 - Minor update to accommodate changes in PS version 7.8.2.
3.2 - Fixed a screw up that broke the district family rep function.
3.1 - Minor update to accommodate changed in PS version 7.8.
3.0 - Moved the sql onto it's own page to avoid the admin home page having to run the script on load. Altered the selection proccess to take twins/triplets into account. Family reps now include any student with a blank home_phone field.
2.2 - Updated for PowerSchool version 7.2.x.
2.1 - Updated for PowerSchool version 7.1 admin homepage changes.  Corrected a CSS glitch. Corrected a SQL glitch that would not select the correct school. Corrected the zip file structure to work properly when imported via CPM.
1.0 - Initial release

instant_family_rep_v4.zip1.86 KB

I created this page to accommodate my secretaries who use the List Students function all the time, but can't stand typing in the list values over and over.  Through the use of a little javascript, the commonly used list values are stored as sets and can be loaded at any time using a drop down menu on the page.  You will notice the the page is longer to accommodate more fields.
Included in the download is another custom page that can reformat the results for better printing.

Using List Sets:

There are four pages that make up the List Students Auto-Loader.
studentlist1.html -- is the source page in PowerSchool that will call the other two pages. There is no need to alter this page.
studentlist2.html -- is another customization I created that adds a formatting button to the list results page.  It's full description can be found HERE. There is no need to alter this page.
lists_menu.html -- is the code which makes up the drop-down menu at the top of the list students screen. It must be altered to include an option for each list-set you create or remove from the lists.html page.
lists.html -- contains all the settings which make up your list-sets. On this page you will see a three example list-sets that you cn alter for your own purposes. To make new sets simply copy all the code starting with "if" and ending with the close bracket, and paste this after the last set.
The first line of each set starts with if( reportType == "list name " ). On this line you must alter the list name to match what you called the list on lists_menu.html.
All the lines beginning with document.forms['aForm'].elements[1].value contain values which will be inserted into the fields on the list students page when the list-set is selected. The values are listed according to their position on the list students page starting at the top with the report title field, and ending at the bottom with the three optional sort fields.
IF YOUR INCLUDING DECODES in your list-set take special care. Due to the way javascript works they will have to be formatted like the following example:
document.forms['aForm'].elements[2].value = "decode;~" + "(gender);m;Boy;f;Girl;---";

Version History:

3.3 - Updated for Powerschool version 7.1.2. Includes fix for the endless load bar error when exporting.
3.2 - Added instructions at the top of the lists.html page for using decodes in list-sets.
3.1 - Corrected a field ordering issue that would cause list sets to be applied wrong. IF YOU HAVE BEEN USING THIS CUSTOMIZATION YOU WILL HAVE TO REWORK YOUR LIST-SETS FOLLOWING THE INCLUDED EXAMPLES. Rewrote the comments at the top of each page to better instruct how they should be altered. Rewrote the three example list-sets so it is clear which lines coincide with which fields on the list students screen. Corrected the zip file structure to work properly when imported via CPM.
3.0 - Updated for PowerSchool version 7. Had to reduce number of list columns to 20 because of limits in PS 7.
2.0 - Updated for PowerSchool Premier version 6.
1.0 - Initial release.

_list_students_autoloader_v3_3.zip6.09 KB

This customization is a small enhancement to the List Students group function. Once installed, a button named "Show Data in New Window" will appear on the list students result page. The button will reformat your results in a new browser window minus blank space and navigation frame. Perfect for printing.
If this page is of interest, you may also want to have a look at my List Students Auto-Loader.

Version History:

3.1 - Altered the page style slightly. Formatted the zip file to import properly with CPM.
3.0 - Updated for PowerSchool version 7.
2.0 - Updated for PowerSchool Premier version 6.
1.0 - Initial Release

list_in_new_window_v3_1.zip2.3 KB

A simple little customization for PowerSchool that allows an admin to post messages on the admin/teacher login screens and the parent portal header.
You can choose from four different built-in styles for your message and/or use HTML tags.
Once the custom pages are uploaded, simply navigate to District - Login Notes, format your message, pick a style (optional), and check Enable.
I've been using this customization to let people know of planned outages, changes to PS, link to new how-to videos, etc.
BONUS: Included in these custom pages is another javascript that pops up a warning when someone (admin, teacher, or parent) is entering their password and has caps-lock on. Cut down a little on the help desk calls. Laughing

Please Note:
- Obviously for this customization to work it is necessary to alter each login screen and the wildcards that produce the parent portal header. Many districts already have customized some or all of these pages with logos or other goodies. It will be up to you to merge this customization with any others your using. To make the process easier I've inserted comments around all the page alterations needed for Login Notes to work. Just open each page in a text editor and search for "Nick".
- You may ask, "Why not have the message appear on the parent portal login instead of the inside header?" This is because as much as I tried I could not get the /public/home.html page to read from the Prefs table. I'm guessing this is related to security. If you know a workaround please contact me.

Version History:

1.8 - Updated to work with PS version 8.0
1.7 - Minor update to accommodate changes in PS version 7.11.
1.6 - Fixed a minor glitch where a closing IF tag showed on certain parent portal pages.
1.5 - Had to change te way the note shows in the guardian header. PS version 7.9.1 broke the old way.
1.3 - Minor update to accommodate changes in PS version 7.9.
1.2 - Minor update to accommodate changes in PS version 7.8.2.
1.1 - Minor update to accommodate changed in PS version 7.8.
1.0 - Initial release. Based on PowerSchool version

Screen shots:

Login Notes Screenshot 1

Login Notes Screenshot 2

Login Notes Screenshot 3

login_notes_v1_8.zip10.36 KB

"The email links on Powerschool are not working for me. When I click one it tells me I need to setup Outlook Express?!"
This is why my middle school asked to have all the Mailto links disabled on the parent portal. If your school feels the same way install these custom pages and kiss the idea that everyone uses an email client goodbye.
These pages are formatted for PS version 8.

Technical details:

  • Added a jQuery script to home.html that finds every Mailto link on the page after the quicklookup stuff is rendered and takes out the href attribute.
  • Removed the Mailto links entirely from the teachercomments.html page and added a column that displays the teacher's email address as plain text.
  • Removed the Mailto link in teacherinfo.html and left the email address as plain text.

Version History:

1.5 - Updated for PS version 8. Now uses a page fragment to insert the script on home.html. This means it will not interfere with other customizations and/or PowerSchool updates. See the Database Extensions Advanced User Guide for future explanation.
1.4 - Minor update to accommodate changes in PS version 7.11.
1.3 - Minor update to accommodate changes in PS version 7.8.2.
1.2 - Minor update to accommodate changes in PS version 7.8.
1.1 - Slighlty altered for string changes in PowerSchool version 7.1. Corrected the zip file structure to work properly when imported via CPM.
1.0 - Initial release.

no_more_mailto_v1_5.zip2.78 KB
Illinois state reporting team added a PARCC tab to the state screen...
Which is nice. But I like my version better. Perhaps you will to.
This page closely mimics the PARCC Pre-ID page on IWAS/SIS. The accommodations for ELA and Math are hidden until the ela_accommodations or math_accommodations checkboxes are checked. This way it is super-easy to search for a student who is receiving ANY accommodation.
This page uses the IL state fields, so no trouble running the "IL PARCC Report". However, their are 3 custom fields you will have to create (see installation).
"IWAS/SIS" being the Illinois state student information system, I don't know if this page would be useful to anyone outside of Illinois.

WARNING: Version 1.x of this page came out before there where any official IL PARCC fields. Therefore all the fields in version 1.x where custom in a database extensions table called "U_PARCC". This new version has been converted to use the IL state fields. If you want the current values in your U_PARCC table to carry forward with this new version, you must export out all those U_PARCC fields, map them to the state fields, and import back in. Drop me a line if you need help with this.
Unfortunately there is currently no way to delete that DB extension table (vote up this enhancement request).


  1. Copy the pages to the custom web_root on your server, or upload via CPM, to the same folders like in the zip file.
  2. Navigate to a student and you will now see a "PARCC" link at the end of the Information student pages.
  3. On the PARCC page is a link at the bottom "Show Fields" which pops up a windows displaying all field names on the page.
  4. You will have to create 3 custom fields: ela_accommodations, math_accommodations, and alternative. I have these as data base extensions in a table called U_PARCC. But feel free to change those three to be whatever you like. Just leave all the state fields as is.
parcc_pre-id_2_0.zip5.33 KB

This customization of the student log page was created to facilitate the printing of a student's log entries for permanent record keeping. The school office also wanted the ability to have signatures print at the bottom. Hence in the upper-right of the page is a drop-down to select a signature, and a button which will reformat the student log entries in a new window with selected signature minus header, footer, and left frame.  It is also worth noting that you could use any image you want in the signatures drop-down. As an example, one could make a image which said "confidential" in big bold letters
The zip file contains three signature examples for you to experiment with.

Setup Instructions:

1. Download and unzip the pages.
2. Scan the signatures you will be using to picture files named appropriately. Try to keep them around 100x250 pixels, although there is no restriction. Put the files into the signatures folder.
3. Alter the signatures.html file so that each option listed corresponds to your signature pictures such as: <option value="John_Doe.jpg">John Doe</option>
4. Copy both the log.html page and the signatures folder to web_root/admin/student/ or re-zip and upload through Custom Page Management (download Pearson's guide to CPM).

Screen shot:

Version History:

2.0 - Updated for PowerSchool version 7.1. Signature drop-down code moved to it's own file (signatures.html). Example signatures now provided. Zip file formatted for import into CPM. Name changed from "Printable Nurse Log" to "Printable Student Log".
1.0 - Initial release.

printable_student_log_v2.zip11.81 KB

This screen is meant to be a one-stop-shop for all common data collected for a student when they register.  Some of the fields are custom. But most are built in. The screen has evolved over time to suit the needs of my district.


  • Two versions of the page for download. One with Illinois State specific fields. The other is not state specific and all the Illinois fields have been stripped out.
  • Hovering your mouse over a fields name will show the internal field name (search term) in a tool-tip.
  • Links at the top will "jump to" specific sections to save on scrolling.  In addition each section header has up/down arrows which will jump to the top/bottom of the page. An additional submit button has been added to the top of the page.
  • The Enrollment Notes link, also at the top, will open a dialog window containing guidance on filling out the registration screen. Alter for your district as needed.
  • "Copy to mailing" button copies all the home address fields to the mailing address fields.  "Copy to Mom/Dad" button copies the home_phone to mother_home_phone and father_home_phone.  "Map" links next to each address field opens the address on Google maps.


  • I've included a Page Fragment that will add the "Registration" link to the student left-hand navigation.
  • If you would like to include some "enrollment notes" for your staff just edit the file registration.Add_Your_Notes.enroll.notes.txt. If you don't need any notes just leave this file out all together.
  • This page does not incorporate PowerSchool's address validation.
  • You will have to use "page permissions" to specify which users can view and/or edit the page. Article 55267 on PowerSource explains page permissions.
  • To setup this page with the new language translation feature in PowerSchool 7 you will have to go through the process of extracting it's text as keys.  See both the Localization Administration User Guide and Custom Web Page Management User Guide on PowerSource.

Version History:

4.4 - Replaced the included more2.html page with a page fragment so as not to interfere with all the other stuff people add to the left navigation. Replaced the Enrollment Notes html page with a page fragment. CSS styling for PS version 8.
4.3 - Small update to accomidate the changes in PS 7.8.
4.2 - Had to update the IL state javascripts to work with the 12/12/12 state reporting update. Fixed a minor javascript error related to built in data validation.
4.1 - Updated more2.html page for PS 7.2. Took out javascript field validation and made the page compatible with PS 7.2 built in data validation system. Fixed the federal "default ethnicity". Improved the look of read-only access. Added area/neighborhood, Date of Entry into USA, and two more IL state fields. Added a submit button to the top of the page.
4.0 - Updated for Powerschool version 7


big_reg_v4_4.zip7.1 KB
big_reg_v4_4_illinois.zip9.97 KB