FlightPath 6.x-6.10

Referenced project: 
Release version: 
Release type: 
Bug fixes and new features
Release notes: 

Changed how we cache the course inventory. Now using a file to cache to hard disk, making it much faster to read into memory than using multiple database queries.

When applying draft changes, the courses cache file is automatically deleted and re-written.

Added indexs for courses and draft_courses for the exclude and delete_flag columns.

Added new cache variable which lets us know when course cache was last generated. Users will check that variable in key places to see if they need to reload
their course inventory from file.

Moved the logic for generating and saving the course inventory to the system module, to make it easier to work with.

Altered prereqs module to better explain how it's hook system works. Added prereqs.api.php to describe hooks.

Added new column to advising sessions: most_recent_session. This will be set to 1 (one) if this is the most recent advising session (across multiple terms)
for the student. Otherwise, will be zero. This helps in certain queries and reports.

Removed code which was adding the "course inventory" to the SESSION. This was only being used in 2 places, and never when actually loading a course. Therefor,
it seems it is not needed.

Added new column to student_courses: course_id. This makes it much easier to search for specific courses in this table. Defaults to zero (0).

For menu items, if there is an icon, give it an ALT tag of whatever the title of the menu is.

Made sure the logo image for FlightPath had an alt tag.

Made the 'Welcome to FlightPath' message on login page use the system_name variable.

Added new modal dialog for "loading" and "updating", which dims screen and is more visible than old method that showed
when logging in or waiting on dialogs to save (like subs or moving courses).

Cleaned up way that scrollTop was calculated for pages. Will eventually use window.scrollY if no other method can be found. Also, placed into system.js so it is always
available in one spot, as function fpGetScrollTop().

Made it so that if "scroll_top" is in the $_REQUEST when we submit a form, it includes that value when the form does an fp_goto and reloads.

Added new feature to function get_term_structures, where "term_suffix" is now one of the values returned, instead of just being
in the key of the array.

Altered functions in stats so that we can override the default breadcrumbs on the form where we select the school.

Made sure course_search also excluded courses with delete_flag set.

Modified course_search_dislay_search to use render array system, so other modules can make modifications.

Added weights to course_search edit form, making it easier for other modules to make modifications.

Added abiility to filter by degree level (UG or GR) on the admin console -> degree list screen.

Changed comments and removed old code from hook.api.php.

Fixed a bug when sending the "Contact the FlightPath Production Team" email, where the last selected student CWID was not appearing.

Removed the outdated "addslashes" to the msg of the email from the Contact link. Also added a "close window" button on the "Thank You" page.

Advising history changed slightly to have a "minimal" text option, specifically for the "email events" module.

Made it to where emails for mysql and PHP errors first convert times into system (or user) timezone, as well as display which user
triggered the error.

Added watchdog debug statement any time we send an email via fp_mail() function. Added logic to prevent infinite loops if mysql server is down.

Fixed typo in code which was causing advisor name not to show on the advising history tab.

Added code so that the system can have a default tab to load for students, if not overridden by the individual user's settings.