CHANGELOG.txt

FlightPath 4.x Changelog
========================


2014-03-20
  Added rounding logic to FlightPath class, when applying subs, to compensate for weird floating point
  arithmetic errors.  Adjusted it and Student class to round to 6 places, instead of 5.

  Added ability to filter by role in the User management module.  Also did some minor display tweaking
  to make things fit better.
  
  Fixed a minor bug in User module, where the list of students would select a major code if a search
  were performed.  Due to re-use of a variable name.

  Fixed a bug in CourseList and FlightPath classes where GPA and hours wasn't being calculated correctly, 
  especially for subs split more than once.
  
  Added a new hook to AdvisingScreen class, after build_screen_elements(), so other modules
  can hook in and add to the screen once that function is called.  See advise.module's listing
  for hook_advise_build_screen_elements() for description and example of use.
  
  
----------------
RELEASED 4.4.1
----------------


2014-03-19
  Added the ability for FlightPath to calculate cumulative hours and GPA on the fly, instead of
  relying on what is in the database.

  Added new settings to the School data settings form, for configuring what quality points each grade
  is worth, as well as enabling the on-the-fly calculations for hours and gpa.
  
  Moved more settings from the System Settings form to the School Data form.
  
  Made variable_get and variable_set more efficient by taking advantage of a global variable for caching.
  
  Tweaked advise.js, to reducee the hour options for subs if they are already decimals (just use
  manual for that)
  
  Added a new function, fp_truncate_decimals(), which lets gives you back a float with a truncated
  number of decimals, instead of rounded (as number_format does).
   
  Added the ability for modules to require that FlightPath core be a certain version.  In the
  .info file, use "requires core version = 4.5", for example.  If the user is not running that version
  for FlightPath core or higher, they will not be able to enable the module from the modules page, and
  a warning will be displayed next to the module's listing.
  
  Tweaked wording on user form for students, to make it clear that the cumulative hours and gpa
  might be getting replaced if you have that set.
  

2014-03-13
  Fixed display bug where, for some transfer courses, an eqv might show up more than once
  in the popup window.


2014-03-12
  Tweaked math that splits substitutions.  If a split happens for certain decimals, the
  result isn't expected.  For example, 2.001 - 2 should equal "0.001"  Instead, we get
  "0.000099999999".  This is due to binary math.  So, I added a round() statement, which rounds
  to the 5th decimal point, which should be sufficient, since the database only allows for 4 decimal
  points anyway.
  
  Also tweaked javascript in advise.js to not show substitution hour selections if we're dealing with
  a course with decimals to begin with-- only give them "Max (Default)" or "Manual" selections.


----------------
RELEASED 4.4
----------------

2014-03-10
  Changed hour fields in FlightPath to allow for decimal values.  The rule is that hours
  may not be larger than 9999 hours, and have no more than 4 decimal places.  For example,
  2.25 hours is acceptable.  2.33334 would be truncated to 2.3333.
  
  Added alias to form_api system for "no_please_select" to much more descriptive "hide_please_select",
  for select fields.
  
  Added ability to control whether or not course titles are auto-capitalized based on a capitalization
  scheme.

  Fixed a bug in last release (4.3.4) where the students table no longer had the is_active column.


2014-02-27
  Added ability to specify College Code for each degree, through new settings page "School Data," with
  new permission.
  
  Moved "subjects" setting under the new settings page as well, for simplicity.
  
  Cache gets automatically cleared when we run DB updates.


----------------
RELEASED 4.3.4
----------------


2014-02-25
  Fixed a bug in blank_degrees.module, where future draft catalog years couldn't be selected for
  viewing.  Also changed wording on admin.module's form, which sets the draft catalog year, to make
  it clear that it only affects the Blank Degree Search feature, not What If.

  Made various changes to some of the core code, in preparation of a new module, "audit", which
  required extra calculations for quality points.  Also, made slight changes to the core comments
  module, so it can accomodate more access_types (again, will be used by the upcoming "audit" module).  
  

2014-02-20
  Fixed bug with "ghost hours" in _DatabaseHandler.php.  When a course has zero hours for
  either min or max hours, it was changing into 1 hours when duplicated to a new catalog year.
  

2014-02-06
  Made minor documenation changes to various functions.


----------------
RELEASED 4.3.3
----------------


2014-02-05
  Tweaked _Semester.php so it's easier to override the default semester names at a code level,
  and updated admin.module to use those semester names from _Semester.php, rather than hard-coded the way
  I had it.


2014-1-8
  Fixed bug in db_query function, which caused dollar values ($10.75) to be converted to ".75", due to the dollar sign
  not being escaped correctly.

  Added extra verbage on student user edit form, to make it clear that a rank code from the Allowed Student Ranks field
  must be entered for the student to be searchable.

----------------
RELEASED 4.3.2
----------------


2013-12-12
  Added Content-Type meta tags to classic theme template files, specifying the charset as UTF-8, for 
  simplicity.
  
  Altered menu.inc functions so that, after retrieving from the DB, menu items have their titles and
  descriptions run through the t() function, so they can be translated at run-time.
  
  Altered the fpm() command in misc.inc to output strings with htmlentities(), if FALSE is passed with fpm().
  Ex:  fpm("<b>Hey</b>", FALSE); will output the <b>, instead of actually making the string bold.
  
  Tweaked format_date() function to let it default to the current time, if none is specified.
  
  Fixed bug in form submission, where if a file field was required, it failed validation every time.
  

2013-12-11
  Tweaked _DatabaseHandler.php.  Now, if a mysql error is reported which shows that the connection
  to the database has been lost, execution of the script will terminate immediately (with a friendly
  error message displayed to the user).  This is to prevent email recipients from being spammed
  by error messages if the server crashes (or goes offline) in the middle of a script with lots
  of queries to execute.
  

2013-12-09
  Tweaked _Student.php, load_student_tests.  If a test code wasn't yet in the standardized_tests
  table, the query failed (because of a join).  Now, we will show test scores for anything in the
  student_tests table, even if there is no description in standardized_tests.  It just shows the code
  itself in that case.
  

----------------
RELEASED 4.3.1
----------------

2013-11-14
  Fixed a bug where the grade "E" was hard-coded at one spot to mean "enrolled", instead
  if that being a setting.  Added a new field "default_enrolled_grade" to the System Settings form
  for this purpose.
  
  Added code to facilitate language translations through the t() function, once the locale module
  is fully implemented.
  
  Fixed bug in form api where #redirect should be ignored if the form failed validation.
  

----------------
RELEASED 4.3
----------------

2013-11-12
  Fixed javascript bug in admin.js file, which prevented courses and groups from being
  deleted.  
  
  Modified _Student.class so that if the rank code isn't recognized, it will display whatever
  code the student has.
  
  Fixed bug in menu.inc, where the file_system_path was not being added to a module's path, even
  when requested.
  

2013-11-02
  Updated README.txt file to contain extra information about the icon sets used in FlightPath.
  Updated COPYRIGHT.txt file for minor clarifications.
  

----------------
RELEASED 4.2.3
----------------


2013-10-31
  Modified Users core module, to be able to edit/create/delete both Faculty/Staff and Student users.  Includes
  a new user.js file to facilitate user deletion.
  
  Set "user" module to be enabled by default on a fresh install.
  

----------------
RELEASED 4.2.2
----------------


2013-10-30
  Fixed error in system module install, where "is_active" field not added to student
  table.

2013-10-04
  Updated announcements module to show "Updated" date in block, instead of "Posted" date,
  if the announcement had been updated recently.

  
----------------
RELEASED 4.2.1
----------------
  

2013-08-14
  Added a settings page to student_search module, moved settings specific to its functioning
  to there.
  
  Made it so that the user's permissions are re-calculated on every page load, so if the admin
  grants or takes away permissions/roles from a user, they do not have to log out and back in before
  changes are affected.
  
  Added a new form element type, "checkbox" which saves as either NULL or boolean TRUE, depending
  on if the checkbox was checked.  Before this, you had to specify multiple "checkboxes" in an
  array structure, and it wasn't as conveinient for a single on/off checkbox.


----------------
RELEASED 4.2
----------------


2013-08-12
  Fixed bug in _AdvisingScreen.php, where the current student was lost when changing filters
  in the Admin Toolbox
  
  Fixed bug involving addition substitutions, where the max hours avail wasn't being calculated
  correctly.
  
  Added a safeguard when saving substitutions, so that you can never save for more hours than
  the subbed course is worth.
  
  Modified the db_error function in _DatabaseHandler.php, so we get a timestamp as well
  as the backtrace emailed when an error occurs.
  
  Added functions in db.inc for getting/setting individual user settings, which is required
  for the changes to Student Search.
  
  Updated student_search module, to have a major search tab, where advisors can see all students
  in a major.  Their selections are remembered in user settings.  Also, added new permissions
  for fine-level of control over who can see which subtabs.



----------------
RELEASED 4.1
----------------


2013-07-25
  Tweaked student_search.module to display "advanced search tips" on all sub tabs.
  
  Changed schema of the faculty table, and updated the system.install file to make those
  changes on update.
  
  Fixed a bug in user module, where roles were not showing up.  Also, added where is_faculty=1
  to search queries, to reduce duplicate users who are both faculty and students.


2013-07-19
  Added new watchdog (log entry) viewer to admin module
  
  Added warning message that displays on admin console if cron hasn't been run in over 7 days
  
  Added new function fp_get_module_details to misc.inc
  
  Modified system.install so that core modules get the version of "core" when first installed.
  
  Changed maintenance mode message slightly in system.module
  
  Tweaked update_status module to make it more clear, and added a "check now" url and link,
  so users can check for new modules instead of waiting for cron.
  
  Limited search results (student_search.module) to 300, and display message if 300 is reached.
  
  Fixed bug in db.inc, function variable_get().  If what you were getting was boolean TRUE, then it would
  show as FALSE!  Kind of a nasty bug!
  
  Added new "short" date format to format_date function, in theme.inc
  
  Updated documentation in hook.api.php


----------------
RELEASED 4.0
----------------

  First full release of FlightPath as an open source project (though, it's been in constant
  production use at ULM for 6 years ;)

2013-07-17
  Updated system.install to create a better transfer_eqv table, made term_id a varchar instead
  of int.
  
  Updated _Course.php to fix some documentation issues, and removed a check for valid_term_id
  in the load_descriptive_transfer_data function.
  
  Updated _Student.php so that we do not require a match on valif_term_id when looking for
  transfer eqv's.
  
  Added a new report to the Stats module, to show all of a student's courses, and cleaned up
  the source code for that module, removing old code and adding comments.

  Added descriptions to most of the core's menu items which appear on the admin page.


2013-07-15
  Updated system.install to handle changes to the students table.


2013-07-13
  Updated student_search module to use the is_active field in the students table by default as
  its "extra student search conditions".  Updated the system settings form to reflect that
  as well.
  

2013-07-12
  Added is_active field the the students table, and as such modified the system.install file
  to include that change.
 

----------------
RELEASED 4.0-rc5.1
----------------

2013-07-09
  Fixed a small bug in the settings file template (in install.php) where modules were not
  being sorted in a logical way, causing some modules to load before others when they had the same
  weight.

----------------
RELEASED 4.0-rc5
----------------

2013-07-08
  Made changes to system.module, to sort modules page correctly.  Also, gave new
  ability to execute arbitrary PHP code from the admin menu (for admins only, obviously).
  
  Minor change to bootstrap.inc's comments.

   
2013-05-02
  Fixed bug in system module which was causing "system forms" to not accept
  form values which had been modified by a form's hook_validate function.
     
  Created new hook:  hook_exit().  Called last as FlightPath is shutting down, at the end
  of index.php
  
  Added GLOBALS variable so we can tell that the bootstrap has indeed finished loaded.
  
  Added new hook, hook_student_load(), which is called after a new student object is created.
  This lets modules hook in and change the student object, w/o needing to override the class file.
  
   
2013-04-26
  Added programming to the example_helper module which ships with FlightPath,
  to better demonstrate basic module development.
  
  Fixed bug in format_date, where it was not handling non-integer values gracefully.
  
  Tweaked update_status.module to state if Cron has never been run before.
     
   
2013-03-14
  Modified a query in student_search module, to not give warning when attempting
  to search by major code (major=CODE hack).


2013-03-13
  Changed the form which sends an email when someone clicks the "Contact link" to not
  specify the "From" address.  This was causing some email clients to flag the email
  as spam.
    

----------------
RELEASED 4.0-rc4
----------------

2013-03-11
  Fixed bug in update_status module, where it always reported FP needed updating.
  
  Modified system module's hook_status to report FP's version number
  
  Fixed bug in system.install, where student_transfer_courses table's primary key
  wasn't set up correctly.


2013-03-10
  Adding a hook_status hook, and page to view system status information.
  
  Modified invoke_hook() function to return possible results of invoking the hook.
  
  Finished update_status module, so that it effectively talks to getflightpath.com,
  to discover which modules need updates.
  

2013-03-09
  Fixed unclosed <a> tag in install.php.
  
  Modified the places where call_user_func was being called with a referenced variable;
  changed it to a more PHP 5.4 friendly technique, so FP will be compatible with PHP 5.4.
  
  Updated hooks.api.php file to contain all of the hooks in FP, with explanations.
  

2013-03-08
  Fixed bug in advising history, where the term_id displayed for a recent advising
  popup might not have been correct.
  
  Modified bootstrap.inc so that it can be easily manipulated by getflightpath.com's upload
  script.
  
  Added an extra mysql_real_escape_string to _Databasehandler's db_query() command, to make
  sure that slash's (\) get escaped properly.

  
------------------
RELEASED 4.0-rc3.1
------------------
  
  
2013-03-01
  Tweaked TinyMCE module to give more options.
  
  Fixed bug in student_search.module where searching for both first
  and last name caused a mysql error.
  
  Added TinyMCE module to core, so it is now built in to FlightPath by default.
  
  Updated installation to install TinyMCE by default.
  
  Modified descriptions of some form elements.
  
  Modified system.module and install.php to better reflect how cron should be set up.
  
  
2013-02-28
  Fixed announcements.install so that a sample announcement is inserted by default.
    

2013-01-14
  Changed the order in which advised courses are added to groups.  They are now
  added FIRST instead of LAST.  This is so that an advised courses will never be "overwritten"
  by a fulfilled course, and the fulfilled course will just go to the next group.  (There was
  a bug).


2012-12-17
  Modified user.module, so role headers on permissions form appear for every module.
  Otherwise, it was confusing when the list of permissions was very long.
  
  Moving FlightPath version from dev to 4.0-rc1, signifying "release candidate" status.


2012-12-14
  More work on Course Search, making the rotation schedule entry more closely
  follow the established term_id structure.


2012-12-13
  Added jQuery UI plugin to core, as well as its CSS file.
  
  Expanded Course Search's edit abilities, to make it easier to
  update large numbers of courses.


2012-12-10
  Fixed bug in the report bug popup, where a user couldn't submit
  more than one report per session.
  

2012-12-07
  Fixed bug which caused user roles to not be editable from form.


2012-11-30
  Fixed a few minor bugs around FP, mostly related to display.
  
  Course descriptions have non-UTF8 chars stripped out by default.  This
  might need to be something I re-think for version 5.x, so other languages can
  use it.
  
  Changed Modules page to make it more clear when a core module is overrided.  What
  was being displayed was somewhat confusing.
  

2012-11-28
  Corrected bug where forms couldn't be submitted via js when an element (like a button)
  was named "submit".  Simply auto-renamed elements named "submit" to "btn_submit".
  
  Fixed bug where $form var wasn't being passed by reference to submit handlers.
  
  Fixed several bugs introduced to admin degree, course, and group entry by changes
  to the Form API.
  
  Made a big change to Announcements, to use the content module instead of being
  its own module.
  

2012-11-27
  Added roles as CSS classes to table rows in the user management area, to help
  with themeing.
  

2012-11-20
  Added "loading" message when pulling up a new student.
  
  Corrected display bug on the admin degree entry page, when listing
  degrees it did not show track titles correctly.
  
  Adjusted CSS for degrees and courses listings (for admin).
  
  Created ability for users to manage the "subjects" table directly
  from admin settings screen.  Also, fixed bug in course_search where 
  a subject wouldn't show up if it didn't have a title set in the subjects
  table.
  

2012-11-09
  Added new "confirm" option for submit buttons in form API.  So you can have a
  javascript confirm popup when a submit button is pressed (to handle deletes, per se).
  
  Added concept of "body classes" to theme, and new function "fp_add_body_class()"
  
  Made it to where menu items will not be displayed if the user doesn't have access to them.
  
  Content module is somewhat rough, but acceptable.
  
  Menu router paths can now have wildcards!  As in, content/%/edit is what will be executed
  if the user visits content/17/edit.  This works in a very similar way as Drupal's menu system.
  

2012-11-08
  Fixed bug on Blocks admin page where you couldn't switch past the first
  selected section.
  
  Started work on Content module, allowing users to create generic bits of HTML
  content, like the "node" idea in Drupal.
  
  Made it so you can pass arguments to callbacks with fp_render_form.
  

2012-10-16
  Fixed bug where test scores from different attempts were all showing
  as having come from the same test.
  
  Implemented hook_update system, for when its time to update a module and
  that module requires DB updates to be made.


2012-07-30
  If a term_id doesn't have a matching description, just display the term_id itself (instead
  of the text "unknown term.")
  
  Added a not_released_grades_terms field to the advising settings.
  
  Added to the hook.api.php file, to help document hooks in FlightPath.
  

2012-07-15
  The default submit and validate handlers are explicitly added to all forms now.
  
  On the admin page, the current catalog year being edited is controlled through
  a pull-down menu.


2012-07-14
  When searching, major=MAJORCODE now displays a list of students with that major.
  
  Also, if you enter an asterisk (*) with your search, it will bypass the
  extra search conditions and rank checks.
  
  Also, if there is only one result, it immediately redirects to the View
  tab with that student's degree plan loaded.


2012-07-13
  Added "cwid" field to watchog, users, faculty, staff table.  Advising records need to be
  saved off this cwid instead of the auto-increment user_id.
  

2012-07-10
  Moved user functions into its own module, user, and enabled on install by default.
  Also fixed a few bugs int he user module.
  

2012-07-09
  On install, insert basic permissions for the authenticated user.
  

2012-07-06
  Enabled announcements and update_status modules on FlightPath first install,
  and created a new sample announcement when the announcement module is installed
  the first time.

  Added check to install.php to make sure custom directory was writable, displaying
  error if it is not.
  
  Made it to where tabs don't show up for advisors until they select a student.
  
  Little search in the corner doesn't show up unless you have permission to search.
  
  Fixed bug where "objList" was being required instead of "ObjList".  It caused a fatal
  error on Linux, but not on Windows, interestingly enough.  Difference in PHP versions?
  
 
2012-07-05
  Started update_status module.
  

2012-06-30
  Finalized COPYRIGHT.txt file, and removed old copyright notices from individual source files.
  
  Added token check to advising submissions, as well as hook so users can hook in when it is submitted.
  
  Removed old files from the repository.
  
  index.php checks to see that FlightPath is installed, if not, it redirects to install script


2012-06-27
  Completed the install script for the most part, as well as made various changes in other
  files in the pursuit of making the install script work.


2012-06-26
  Working on creating an install script for FlightPath; moving database creation statements
  into system.install file, under the system module.


2012-06-10
  Finished the stats module for now.  It could use some more reports, but is OK for now.
  
  Got mobile version back to working state.


2012-06-09
  Beginning work on the stats module.
  
  Changed comment form to be proper FlightPath form, with form api.
  

2012-06-08
  Student developmentals and standardized tests are now in core.
  
  I have officially done away with the concept of the "flightpath_extra_data"
  additional database.
  
  Added in a depricated_message function, to help me track down problems after
  I depricate a function.

  Moved to new watchdog() table and function, instead of the old log table.

  Got rid of old PHP split() function.
  

2012-06-07
  Removed the old AdvisingScreen::draw_curved_title function, in favor of the new
  fp_render_curved_line function.
  
  Got transfer credits & eqv's working correctly.
  

2012-06-05
  Worked with course_search module.  It has now merged with the courseinfoentry module.  Removed
  the courseinfoentry module as a result.
  

2012-06-04
  Removed old references to SESSION["user_type"], replaced with newer check on permissions instead
  
  Renamed old files to have a z__ in front of filename, in preparation to delete.
  
  Popup contact/report a bug is now part of the system module, not its own php file.
  
  Removed references to old admin_debug statement.  Also cleaned up some old comments along
  the way.
  
  Added blank_degrees module and reworked various bits of code to make it work.
   

2012-05-28
  Made sure user has access to submit a form after they've submitted.
  
  Refined permissions, made sure permissions were working correctly for tabs.
  
  Tabs don't show if you don't have permission.
  
  Worked on "student" view, when they can only see their own degree plan.
  
  Fixed bug where show/hide pie charts stopped working.
  
  Login form is now a proper "fp" form, so it can have
  custom submitters/validators
  
  Created hook_user_login and hook_user_logout
  
  Made fpm() function VERY fancy, with click-to-open
  folding, like Krumo.  Great for debugging.
  
  Blocks don't show up if there is no content in the body.  

2012-05-24
  Removing the concept of the separate flightpath_extra_data database
  
  Switched datetime field type to "posted" timestamp integer in tables
  
  Added idea of validate_handlers to forms, like in Drupal.

2012-05-21
  Created Blocks module, and method of establishing block regions and blocks offered by a module.

2012-05-19
  Working on modules page. Installing, enabling, uninstalling, etc.  Created system
  of hooks that go in a .install file, like Drupal.
  
  Created various other enhancements to admin, uncluding user management and roles.

2012-04-21
  Enabled small search box in corner.

2012-04-15
  Print view working, change terms, change tracks

2012-04-13
  Added ability to change tracks & terms on Degree Plans.

2012-04-12
  Finished the History tab

2012-04-11
  Worked more on Admin, the variable system, and converting the concept of System variables
  over to the variable system, to eliminate the extra "settings" tables which are unneeded.

2012-04-01
  Created permissions page, where users can set which rolls have which permissions.
  

2012-03-31
  Added Rolls management page to admin module.


2012-03-25
  Still workin on admin module.
  Focusing on the Groups section.
  
  Got changing icon working for edit-group page.
  
  Got definitions working on the edit-group page.
  
  Add new group and delete group works.
  
  Fixed bug where groups did not redirect to exactly the correct URL by default.
  
  Process all group definitions now works.
  
  Editing/Adding/Deleting courses now fully works.
  
  Apply draft changes done


2012-03-24
  Still working on admin module.
  
  Can now add new degree plans.
  
  Implemented a new, more robust Form API system similar
  to Drupal.  You can have "required" fields, which
  automatically fail validation if no value is entered.
  
  Automatically looks for a callback_submit() function to submit to; no need
  to register a new menu hook.
  
  Have a new "form_error" function which creates an error
  message for your form. 
  
  Can now "copy" a degree plan.  I believe this basically completes the degrees portion
  of the admin section.
  
  Made some tweaks to the menus, so that in Admin there are tabs now to help the user
  keep track of what screen they are looking at.
  
  Starting on "groups" for Admin.
  
  Created concepts of "popup_description" instead of just "description" in the form_api.
  This causes a [?] link to appear in the label of the element, and, which clicked,
  will popup the text therein.  It makes forms a bit more tidy.
  
  Have basic editing of groups mostly complete.
  

2012-03-23
  Continuing work on admin module.
  
  Can actually save degrees now, and add/remove elective groups
  
  Fixed some minor tweaks to make sure it scrolled back to the correct position.
  
  Changed the way the "menu_links" array is set up in the menu items, to allow for
  more flexibility in the future.
  
  Invented a new hook.  hook_menu_handle_replacement_pattern ($st).  It will
  let you pass things like de_catalog_year=%DE_CATALOG_YEAR% to the l() function,
  which will then look for that hook to give each module the chance to act on that replacement
  pattern.
  

2012-03-18
  Continued work on admin module.
  
  Got much of the Edit Degrees displaying correctly.  At this point, have not yet wired
  it up so that you can submit changes to degree plans.


2012-03-16
  Beginning work on the Admin module today.  I expect it to be huge and complicated.
 
  Urgent message Save/Load
 
  Created simple Form API similar to Drupal (but much simpler)
 
  Created a concept of a system_settings_form which automatically writes values to the variables
  table upon save, so you don't have to create your own submit handler for forms.  Ideal for little
  one-form settings pages.
 
  New "page_setting" for menu items: menu_links.  Provides a way to place "breadcrumbs" and other
  types of links at the top of the page automatically.
 

2012-03-15
  Finished up (mostly) Comments module.
  
  Did work on getting access callback system working with permissions.  


2012-03-12
  Got switching between Year view and Type view working.

  Got What If working (I think).  Its a little bit screwy, and sometimes it seems to break when
  it wants to, but it seems to be OK for the time being.

  
2012-03-11
  Got many of the popups working on the "View" page.  Also, submitting a basic advising session works.
  
  Moved over all of the Javascript into its own file (advise.js) instead of being locked up inside the
  AdvisingScreen object.  It could be further split out into other files as well.
  
  Adding/Removing Substitutions, and removing courses from a degree plan, appear to be working
  correctly.
  
  Menus can specify a file to load as needed.  Like an additional .inc file where that page_callback is located.

  Admin toolbox and hide/show pie charts
  
  Got rid of XML in FlightPath.  Now, we just serialize or nothing.  No sense in the extra overhead.  Still need to get rid of it
  for module.info files.  Some are still .xml.  Will get to that when I do the Admin work. 
  

2012-03-10
  Continuing work on making FP more like Drupal.
  
  Created "modules" table to better keep track of modules.
  
  Created student_search module.  Working on bringing in all of its functionality.
  
  Added jquery 1.7.1 instead of 1.3.2.
  
  Added much of the Advise module
  
  Have a new concept of passing around the "current_student_id" from page to page,
  and saving all other "advising variables" to a table, rather than keeping them in the POST
  between every page.  This makes it much more tidy.
  

2012-03-09
  ** BIG CHANGE **
  I ran a script to convert from camelCase to underscore_style.
  Now, only Class names are CamelCased.  Everything else-- variables and methods and functions,
  are all going to be underscore_style (also called K&R or C++ style).
  Even though I think this isn't as pretty, it is consistent, which is what I am more
  concerned about.
  
  Fixed numerous capitalization problems.  I'm sure there's more after this.
  
  Gave important system_settings default values.
  
  Moved functions.php into other .inc files, in a new "includes" directory.


2012-03-08
  Fixed a bug where definitions in groups, once entered could not be removed.
  
  Adjusted default.settings.php file to have error reporting limited by default,
  as well as additional instructions for setting up through Windows.
  
  Added "user_auth" table to flightpath database.  Implemented default login
  attempts to that table (empty it to override and use another method)
   - Created "admin" user by default.  user_id = 1, password = fpadminuser
   
  Made it so the number of courses to load (and cache) on login is configurable
  in the settings.
  
  Added menu_rebuild_cache(), pretty_print(), and db_query()
  
  Making other numerous changes, to make FlightPath more like Drupal.
  
  Changing naming convention to underscore style instead of camelCase,
  when not dealing with an object.
  
  Made a lot of progress in getting the primary display of course_search module
  to use the new menu system (piped through ?q=location/etc

--- v3.1.1

2012-01-03
  Cleaned up queries in admin.php to use new replacement pattern system.

2011-12-22
  Modified queries throughout the various classes and php files to 
  use new replacement pattern system, to make them less
  vulnerable to SQL-injection attacks.

2011-11-25
  Created new replacement pattern system for DatabaseHandler::dbQuery function,
  to help protect against SQL-injection attacks.

--- v3.1

7-14-2011
  FlightPath is now capable of handling courses with 0 hours.
  It actually, internally, tracks them as 1 hour courses, but
  displays them as 0 hour courses.  The pseudo-hour which is 
  attributed to it is known as a "Ghost hour" in the system.

5-4-2011
  Fixed a small bug relating to degree options.  If a student
  has a particular option selected, then changes catalog years,
  and that option (track code) no longer exists, then FP was just
  display no degree plan.  It will now default back to the
  base degree plan.


--- v3.0.1b

4-11-2011
  Made "deCanSwitchUsers" be its own permission, instead
  of simply testing for full_admin status.
  
  Made theme change to remove "ULM" from the default banner image.

--- v3.0b ---

4-8-2011
  This is the initial release of FlightPath as open source,
  debuting as version 3.0b.

File

CHANGELOG.txt
View source
  1. FlightPath 4.x Changelog
  2. ========================
  3. 2014-03-20
  4. Added rounding logic to FlightPath class, when applying subs, to compensate for weird floating point
  5. arithmetic errors. Adjusted it and Student class to round to 6 places, instead of 5.
  6. Added ability to filter by role in the User management module. Also did some minor display tweaking
  7. to make things fit better.
  8. Fixed a minor bug in User module, where the list of students would select a major code if a search
  9. were performed. Due to re-use of a variable name.
  10. Fixed a bug in CourseList and FlightPath classes where GPA and hours wasn't being calculated correctly,
  11. especially for subs split more than once.
  12. Added a new hook to AdvisingScreen class, after build_screen_elements(), so other modules
  13. can hook in and add to the screen once that function is called. See advise.module's listing
  14. for hook_advise_build_screen_elements() for description and example of use.
  15. ----------------
  16. RELEASED 4.4.1
  17. ----------------
  18. 2014-03-19
  19. Added the ability for FlightPath to calculate cumulative hours and GPA on the fly, instead of
  20. relying on what is in the database.
  21. Added new settings to the School data settings form, for configuring what quality points each grade
  22. is worth, as well as enabling the on-the-fly calculations for hours and gpa.
  23. Moved more settings from the System Settings form to the School Data form.
  24. Made variable_get and variable_set more efficient by taking advantage of a global variable for caching.
  25. Tweaked advise.js, to reducee the hour options for subs if they are already decimals (just use
  26. manual for that)
  27. Added a new function, fp_truncate_decimals(), which lets gives you back a float with a truncated
  28. number of decimals, instead of rounded (as number_format does).
  29. Added the ability for modules to require that FlightPath core be a certain version. In the
  30. .info file, use "requires core version = 4.5", for example. If the user is not running that version
  31. for FlightPath core or higher, they will not be able to enable the module from the modules page, and
  32. a warning will be displayed next to the module's listing.
  33. Tweaked wording on user form for students, to make it clear that the cumulative hours and gpa
  34. might be getting replaced if you have that set.
  35. 2014-03-13
  36. Fixed display bug where, for some transfer courses, an eqv might show up more than once
  37. in the popup window.
  38. 2014-03-12
  39. Tweaked math that splits substitutions. If a split happens for certain decimals, the
  40. result isn't expected. For example, 2.001 - 2 should equal "0.001" Instead, we get
  41. "0.000099999999". This is due to binary math. So, I added a round() statement, which rounds
  42. to the 5th decimal point, which should be sufficient, since the database only allows for 4 decimal
  43. points anyway.
  44. Also tweaked javascript in advise.js to not show substitution hour selections if we're dealing with
  45. a course with decimals to begin with-- only give them "Max (Default)" or "Manual" selections.
  46. ----------------
  47. RELEASED 4.4
  48. ----------------
  49. 2014-03-10
  50. Changed hour fields in FlightPath to allow for decimal values. The rule is that hours
  51. may not be larger than 9999 hours, and have no more than 4 decimal places. For example,
  52. 2.25 hours is acceptable. 2.33334 would be truncated to 2.3333.
  53. Added alias to form_api system for "no_please_select" to much more descriptive "hide_please_select",
  54. for select fields.
  55. Added ability to control whether or not course titles are auto-capitalized based on a capitalization
  56. scheme.
  57. Fixed a bug in last release (4.3.4) where the students table no longer had the is_active column.
  58. 2014-02-27
  59. Added ability to specify College Code for each degree, through new settings page "School Data," with
  60. new permission.
  61. Moved "subjects" setting under the new settings page as well, for simplicity.
  62. Cache gets automatically cleared when we run DB updates.
  63. ----------------
  64. RELEASED 4.3.4
  65. ----------------
  66. 2014-02-25
  67. Fixed a bug in blank_degrees.module, where future draft catalog years couldn't be selected for
  68. viewing. Also changed wording on admin.module's form, which sets the draft catalog year, to make
  69. it clear that it only affects the Blank Degree Search feature, not What If.
  70. Made various changes to some of the core code, in preparation of a new module, "audit", which
  71. required extra calculations for quality points. Also, made slight changes to the core comments
  72. module, so it can accomodate more access_types (again, will be used by the upcoming "audit" module).
  73. 2014-02-20
  74. Fixed bug with "ghost hours" in _DatabaseHandler.php. When a course has zero hours for
  75. either min or max hours, it was changing into 1 hours when duplicated to a new catalog year.
  76. 2014-02-06
  77. Made minor documenation changes to various functions.
  78. ----------------
  79. RELEASED 4.3.3
  80. ----------------
  81. 2014-02-05
  82. Tweaked _Semester.php so it's easier to override the default semester names at a code level,
  83. and updated admin.module to use those semester names from _Semester.php, rather than hard-coded the way
  84. I had it.
  85. 2014-1-8
  86. Fixed bug in db_query function, which caused dollar values ($10.75) to be converted to ".75", due to the dollar sign
  87. not being escaped correctly.
  88. Added extra verbage on student user edit form, to make it clear that a rank code from the Allowed Student Ranks field
  89. must be entered for the student to be searchable.
  90. ----------------
  91. RELEASED 4.3.2
  92. ----------------
  93. 2013-12-12
  94. Added Content-Type meta tags to classic theme template files, specifying the charset as UTF-8, for
  95. simplicity.
  96. Altered menu.inc functions so that, after retrieving from the DB, menu items have their titles and
  97. descriptions run through the t() function, so they can be translated at run-time.
  98. Altered the fpm() command in misc.inc to output strings with htmlentities(), if FALSE is passed with fpm().
  99. Ex: fpm("<b>Hey</b>", FALSE); will output the <b>, instead of actually making the string bold.
  100. Tweaked format_date() function to let it default to the current time, if none is specified.
  101. Fixed bug in form submission, where if a file field was required, it failed validation every time.
  102. 2013-12-11
  103. Tweaked _DatabaseHandler.php. Now, if a mysql error is reported which shows that the connection
  104. to the database has been lost, execution of the script will terminate immediately (with a friendly
  105. error message displayed to the user). This is to prevent email recipients from being spammed
  106. by error messages if the server crashes (or goes offline) in the middle of a script with lots
  107. of queries to execute.
  108. 2013-12-09
  109. Tweaked _Student.php, load_student_tests. If a test code wasn't yet in the standardized_tests
  110. table, the query failed (because of a join). Now, we will show test scores for anything in the
  111. student_tests table, even if there is no description in standardized_tests. It just shows the code
  112. itself in that case.
  113. ----------------
  114. RELEASED 4.3.1
  115. ----------------
  116. 2013-11-14
  117. Fixed a bug where the grade "E" was hard-coded at one spot to mean "enrolled", instead
  118. if that being a setting. Added a new field "default_enrolled_grade" to the System Settings form
  119. for this purpose.
  120. Added code to facilitate language translations through the t() function, once the locale module
  121. is fully implemented.
  122. Fixed bug in form api where #redirect should be ignored if the form failed validation.
  123. ----------------
  124. RELEASED 4.3
  125. ----------------
  126. 2013-11-12
  127. Fixed javascript bug in admin.js file, which prevented courses and groups from being
  128. deleted.
  129. Modified _Student.class so that if the rank code isn't recognized, it will display whatever
  130. code the student has.
  131. Fixed bug in menu.inc, where the file_system_path was not being added to a module's path, even
  132. when requested.
  133. 2013-11-02
  134. Updated README.txt file to contain extra information about the icon sets used in FlightPath.
  135. Updated COPYRIGHT.txt file for minor clarifications.
  136. ----------------
  137. RELEASED 4.2.3
  138. ----------------
  139. 2013-10-31
  140. Modified Users core module, to be able to edit/create/delete both Faculty/Staff and Student users. Includes
  141. a new user.js file to facilitate user deletion.
  142. Set "user" module to be enabled by default on a fresh install.
  143. ----------------
  144. RELEASED 4.2.2
  145. ----------------
  146. 2013-10-30
  147. Fixed error in system module install, where "is_active" field not added to student
  148. table.
  149. 2013-10-04
  150. Updated announcements module to show "Updated" date in block, instead of "Posted" date,
  151. if the announcement had been updated recently.
  152. ----------------
  153. RELEASED 4.2.1
  154. ----------------
  155. 2013-08-14
  156. Added a settings page to student_search module, moved settings specific to its functioning
  157. to there.
  158. Made it so that the user's permissions are re-calculated on every page load, so if the admin
  159. grants or takes away permissions/roles from a user, they do not have to log out and back in before
  160. changes are affected.
  161. Added a new form element type, "checkbox" which saves as either NULL or boolean TRUE, depending
  162. on if the checkbox was checked. Before this, you had to specify multiple "checkboxes" in an
  163. array structure, and it wasn't as conveinient for a single on/off checkbox.
  164. ----------------
  165. RELEASED 4.2
  166. ----------------
  167. 2013-08-12
  168. Fixed bug in _AdvisingScreen.php, where the current student was lost when changing filters
  169. in the Admin Toolbox
  170. Fixed bug involving addition substitutions, where the max hours avail wasn't being calculated
  171. correctly.
  172. Added a safeguard when saving substitutions, so that you can never save for more hours than
  173. the subbed course is worth.
  174. Modified the db_error function in _DatabaseHandler.php, so we get a timestamp as well
  175. as the backtrace emailed when an error occurs.
  176. Added functions in db.inc for getting/setting individual user settings, which is required
  177. for the changes to Student Search.
  178. Updated student_search module, to have a major search tab, where advisors can see all students
  179. in a major. Their selections are remembered in user settings. Also, added new permissions
  180. for fine-level of control over who can see which subtabs.
  181. ----------------
  182. RELEASED 4.1
  183. ----------------
  184. 2013-07-25
  185. Tweaked student_search.module to display "advanced search tips" on all sub tabs.
  186. Changed schema of the faculty table, and updated the system.install file to make those
  187. changes on update.
  188. Fixed a bug in user module, where roles were not showing up. Also, added where is_faculty=1
  189. to search queries, to reduce duplicate users who are both faculty and students.
  190. 2013-07-19
  191. Added new watchdog (log entry) viewer to admin module
  192. Added warning message that displays on admin console if cron hasn't been run in over 7 days
  193. Added new function fp_get_module_details to misc.inc
  194. Modified system.install so that core modules get the version of "core" when first installed.
  195. Changed maintenance mode message slightly in system.module
  196. Tweaked update_status module to make it more clear, and added a "check now" url and link,
  197. so users can check for new modules instead of waiting for cron.
  198. Limited search results (student_search.module) to 300, and display message if 300 is reached.
  199. Fixed bug in db.inc, function variable_get(). If what you were getting was boolean TRUE, then it would
  200. show as FALSE! Kind of a nasty bug!
  201. Added new "short" date format to format_date function, in theme.inc
  202. Updated documentation in hook.api.php
  203. ----------------
  204. RELEASED 4.0
  205. ----------------
  206. First full release of FlightPath as an open source project (though, it's been in constant
  207. production use at ULM for 6 years ;)
  208. 2013-07-17
  209. Updated system.install to create a better transfer_eqv table, made term_id a varchar instead
  210. of int.
  211. Updated _Course.php to fix some documentation issues, and removed a check for valid_term_id
  212. in the load_descriptive_transfer_data function.
  213. Updated _Student.php so that we do not require a match on valif_term_id when looking for
  214. transfer eqv's.
  215. Added a new report to the Stats module, to show all of a student's courses, and cleaned up
  216. the source code for that module, removing old code and adding comments.
  217. Added descriptions to most of the core's menu items which appear on the admin page.
  218. 2013-07-15
  219. Updated system.install to handle changes to the students table.
  220. 2013-07-13
  221. Updated student_search module to use the is_active field in the students table by default as
  222. its "extra student search conditions". Updated the system settings form to reflect that
  223. as well.
  224. 2013-07-12
  225. Added is_active field the the students table, and as such modified the system.install file
  226. to include that change.
  227. ----------------
  228. RELEASED 4.0-rc5.1
  229. ----------------
  230. 2013-07-09
  231. Fixed a small bug in the settings file template (in install.php) where modules were not
  232. being sorted in a logical way, causing some modules to load before others when they had the same
  233. weight.
  234. ----------------
  235. RELEASED 4.0-rc5
  236. ----------------
  237. 2013-07-08
  238. Made changes to system.module, to sort modules page correctly. Also, gave new
  239. ability to execute arbitrary PHP code from the admin menu (for admins only, obviously).
  240. Minor change to bootstrap.inc's comments.
  241. 2013-05-02
  242. Fixed bug in system module which was causing "system forms" to not accept
  243. form values which had been modified by a form's hook_validate function.
  244. Created new hook: hook_exit(). Called last as FlightPath is shutting down, at the end
  245. of index.php
  246. Added GLOBALS variable so we can tell that the bootstrap has indeed finished loaded.
  247. Added new hook, hook_student_load(), which is called after a new student object is created.
  248. This lets modules hook in and change the student object, w/o needing to override the class file.
  249. 2013-04-26
  250. Added programming to the example_helper module which ships with FlightPath,
  251. to better demonstrate basic module development.
  252. Fixed bug in format_date, where it was not handling non-integer values gracefully.
  253. Tweaked update_status.module to state if Cron has never been run before.
  254. 2013-03-14
  255. Modified a query in student_search module, to not give warning when attempting
  256. to search by major code (major=CODE hack).
  257. 2013-03-13
  258. Changed the form which sends an email when someone clicks the "Contact link" to not
  259. specify the "From" address. This was causing some email clients to flag the email
  260. as spam.
  261. ----------------
  262. RELEASED 4.0-rc4
  263. ----------------
  264. 2013-03-11
  265. Fixed bug in update_status module, where it always reported FP needed updating.
  266. Modified system module's hook_status to report FP's version number
  267. Fixed bug in system.install, where student_transfer_courses table's primary key
  268. wasn't set up correctly.
  269. 2013-03-10
  270. Adding a hook_status hook, and page to view system status information.
  271. Modified invoke_hook() function to return possible results of invoking the hook.
  272. Finished update_status module, so that it effectively talks to getflightpath.com,
  273. to discover which modules need updates.
  274. 2013-03-09
  275. Fixed unclosed <a> tag in install.php.
  276. Modified the places where call_user_func was being called with a referenced variable;
  277. changed it to a more PHP 5.4 friendly technique, so FP will be compatible with PHP 5.4.
  278. Updated hooks.api.php file to contain all of the hooks in FP, with explanations.
  279. 2013-03-08
  280. Fixed bug in advising history, where the term_id displayed for a recent advising
  281. popup might not have been correct.
  282. Modified bootstrap.inc so that it can be easily manipulated by getflightpath.com's upload
  283. script.
  284. Added an extra mysql_real_escape_string to _Databasehandler's db_query() command, to make
  285. sure that slash's (\) get escaped properly.
  286. ------------------
  287. RELEASED 4.0-rc3.1
  288. ------------------
  289. 2013-03-01
  290. Tweaked TinyMCE module to give more options.
  291. Fixed bug in student_search.module where searching for both first
  292. and last name caused a mysql error.
  293. Added TinyMCE module to core, so it is now built in to FlightPath by default.
  294. Updated installation to install TinyMCE by default.
  295. Modified descriptions of some form elements.
  296. Modified system.module and install.php to better reflect how cron should be set up.
  297. 2013-02-28
  298. Fixed announcements.install so that a sample announcement is inserted by default.
  299. 2013-01-14
  300. Changed the order in which advised courses are added to groups. They are now
  301. added FIRST instead of LAST. This is so that an advised courses will never be "overwritten"
  302. by a fulfilled course, and the fulfilled course will just go to the next group. (There was
  303. a bug).
  304. 2012-12-17
  305. Modified user.module, so role headers on permissions form appear for every module.
  306. Otherwise, it was confusing when the list of permissions was very long.
  307. Moving FlightPath version from dev to 4.0-rc1, signifying "release candidate" status.
  308. 2012-12-14
  309. More work on Course Search, making the rotation schedule entry more closely
  310. follow the established term_id structure.
  311. 2012-12-13
  312. Added jQuery UI plugin to core, as well as its CSS file.
  313. Expanded Course Search's edit abilities, to make it easier to
  314. update large numbers of courses.
  315. 2012-12-10
  316. Fixed bug in the report bug popup, where a user couldn't submit
  317. more than one report per session.
  318. 2012-12-07
  319. Fixed bug which caused user roles to not be editable from form.
  320. 2012-11-30
  321. Fixed a few minor bugs around FP, mostly related to display.
  322. Course descriptions have non-UTF8 chars stripped out by default. This
  323. might need to be something I re-think for version 5.x, so other languages can
  324. use it.
  325. Changed Modules page to make it more clear when a core module is overrided. What
  326. was being displayed was somewhat confusing.
  327. 2012-11-28
  328. Corrected bug where forms couldn't be submitted via js when an element (like a button)
  329. was named "submit". Simply auto-renamed elements named "submit" to "btn_submit".
  330. Fixed bug where $form var wasn't being passed by reference to submit handlers.
  331. Fixed several bugs introduced to admin degree, course, and group entry by changes
  332. to the Form API.
  333. Made a big change to Announcements, to use the content module instead of being
  334. its own module.
  335. 2012-11-27
  336. Added roles as CSS classes to table rows in the user management area, to help
  337. with themeing.
  338. 2012-11-20
  339. Added "loading" message when pulling up a new student.
  340. Corrected display bug on the admin degree entry page, when listing
  341. degrees it did not show track titles correctly.
  342. Adjusted CSS for degrees and courses listings (for admin).
  343. Created ability for users to manage the "subjects" table directly
  344. from admin settings screen. Also, fixed bug in course_search where
  345. a subject wouldn't show up if it didn't have a title set in the subjects
  346. table.
  347. 2012-11-09
  348. Added new "confirm" option for submit buttons in form API. So you can have a
  349. javascript confirm popup when a submit button is pressed (to handle deletes, per se).
  350. Added concept of "body classes" to theme, and new function "fp_add_body_class()"
  351. Made it to where menu items will not be displayed if the user doesn't have access to them.
  352. Content module is somewhat rough, but acceptable.
  353. Menu router paths can now have wildcards! As in, content/%/edit is what will be executed
  354. if the user visits content/17/edit. This works in a very similar way as Drupal's menu system.
  355. 2012-11-08
  356. Fixed bug on Blocks admin page where you couldn't switch past the first
  357. selected section.
  358. Started work on Content module, allowing users to create generic bits of HTML
  359. content, like the "node" idea in Drupal.
  360. Made it so you can pass arguments to callbacks with fp_render_form.
  361. 2012-10-16
  362. Fixed bug where test scores from different attempts were all showing
  363. as having come from the same test.
  364. Implemented hook_update system, for when its time to update a module and
  365. that module requires DB updates to be made.
  366. 2012-07-30
  367. If a term_id doesn't have a matching description, just display the term_id itself (instead
  368. of the text "unknown term.")
  369. Added a not_released_grades_terms field to the advising settings.
  370. Added to the hook.api.php file, to help document hooks in FlightPath.
  371. 2012-07-15
  372. The default submit and validate handlers are explicitly added to all forms now.
  373. On the admin page, the current catalog year being edited is controlled through
  374. a pull-down menu.
  375. 2012-07-14
  376. When searching, major=MAJORCODE now displays a list of students with that major.
  377. Also, if you enter an asterisk (*) with your search, it will bypass the
  378. extra search conditions and rank checks.
  379. Also, if there is only one result, it immediately redirects to the View
  380. tab with that student's degree plan loaded.
  381. 2012-07-13
  382. Added "cwid" field to watchog, users, faculty, staff table. Advising records need to be
  383. saved off this cwid instead of the auto-increment user_id.
  384. 2012-07-10
  385. Moved user functions into its own module, user, and enabled on install by default.
  386. Also fixed a few bugs int he user module.
  387. 2012-07-09
  388. On install, insert basic permissions for the authenticated user.
  389. 2012-07-06
  390. Enabled announcements and update_status modules on FlightPath first install,
  391. and created a new sample announcement when the announcement module is installed
  392. the first time.
  393. Added check to install.php to make sure custom directory was writable, displaying
  394. error if it is not.
  395. Made it to where tabs don't show up for advisors until they select a student.
  396. Little search in the corner doesn't show up unless you have permission to search.
  397. Fixed bug where "objList" was being required instead of "ObjList". It caused a fatal
  398. error on Linux, but not on Windows, interestingly enough. Difference in PHP versions?
  399. 2012-07-05
  400. Started update_status module.
  401. 2012-06-30
  402. Finalized COPYRIGHT.txt file, and removed old copyright notices from individual source files.
  403. Added token check to advising submissions, as well as hook so users can hook in when it is submitted.
  404. Removed old files from the repository.
  405. index.php checks to see that FlightPath is installed, if not, it redirects to install script
  406. 2012-06-27
  407. Completed the install script for the most part, as well as made various changes in other
  408. files in the pursuit of making the install script work.
  409. 2012-06-26
  410. Working on creating an install script for FlightPath; moving database creation statements
  411. into system.install file, under the system module.
  412. 2012-06-10
  413. Finished the stats module for now. It could use some more reports, but is OK for now.
  414. Got mobile version back to working state.
  415. 2012-06-09
  416. Beginning work on the stats module.
  417. Changed comment form to be proper FlightPath form, with form api.
  418. 2012-06-08
  419. Student developmentals and standardized tests are now in core.
  420. I have officially done away with the concept of the "flightpath_extra_data"
  421. additional database.
  422. Added in a depricated_message function, to help me track down problems after
  423. I depricate a function.
  424. Moved to new watchdog() table and function, instead of the old log table.
  425. Got rid of old PHP split() function.
  426. 2012-06-07
  427. Removed the old AdvisingScreen::draw_curved_title function, in favor of the new
  428. fp_render_curved_line function.
  429. Got transfer credits & eqv's working correctly.
  430. 2012-06-05
  431. Worked with course_search module. It has now merged with the courseinfoentry module. Removed
  432. the courseinfoentry module as a result.
  433. 2012-06-04
  434. Removed old references to SESSION["user_type"], replaced with newer check on permissions instead
  435. Renamed old files to have a z__ in front of filename, in preparation to delete.
  436. Popup contact/report a bug is now part of the system module, not its own php file.
  437. Removed references to old admin_debug statement. Also cleaned up some old comments along
  438. the way.
  439. Added blank_degrees module and reworked various bits of code to make it work.
  440. 2012-05-28
  441. Made sure user has access to submit a form after they've submitted.
  442. Refined permissions, made sure permissions were working correctly for tabs.
  443. Tabs don't show if you don't have permission.
  444. Worked on "student" view, when they can only see their own degree plan.
  445. Fixed bug where show/hide pie charts stopped working.
  446. Login form is now a proper "fp" form, so it can have
  447. custom submitters/validators
  448. Created hook_user_login and hook_user_logout
  449. Made fpm() function VERY fancy, with click-to-open
  450. folding, like Krumo. Great for debugging.
  451. Blocks don't show up if there is no content in the body.
  452. 2012-05-24
  453. Removing the concept of the separate flightpath_extra_data database
  454. Switched datetime field type to "posted" timestamp integer in tables
  455. Added idea of validate_handlers to forms, like in Drupal.
  456. 2012-05-21
  457. Created Blocks module, and method of establishing block regions and blocks offered by a module.
  458. 2012-05-19
  459. Working on modules page. Installing, enabling, uninstalling, etc. Created system
  460. of hooks that go in a .install file, like Drupal.
  461. Created various other enhancements to admin, uncluding user management and roles.
  462. 2012-04-21
  463. Enabled small search box in corner.
  464. 2012-04-15
  465. Print view working, change terms, change tracks
  466. 2012-04-13
  467. Added ability to change tracks & terms on Degree Plans.
  468. 2012-04-12
  469. Finished the History tab
  470. 2012-04-11
  471. Worked more on Admin, the variable system, and converting the concept of System variables
  472. over to the variable system, to eliminate the extra "settings" tables which are unneeded.
  473. 2012-04-01
  474. Created permissions page, where users can set which rolls have which permissions.
  475. 2012-03-31
  476. Added Rolls management page to admin module.
  477. 2012-03-25
  478. Still workin on admin module.
  479. Focusing on the Groups section.
  480. Got changing icon working for edit-group page.
  481. Got definitions working on the edit-group page.
  482. Add new group and delete group works.
  483. Fixed bug where groups did not redirect to exactly the correct URL by default.
  484. Process all group definitions now works.
  485. Editing/Adding/Deleting courses now fully works.
  486. Apply draft changes done
  487. 2012-03-24
  488. Still working on admin module.
  489. Can now add new degree plans.
  490. Implemented a new, more robust Form API system similar
  491. to Drupal. You can have "required" fields, which
  492. automatically fail validation if no value is entered.
  493. Automatically looks for a callback_submit() function to submit to; no need
  494. to register a new menu hook.
  495. Have a new "form_error" function which creates an error
  496. message for your form.
  497. Can now "copy" a degree plan. I believe this basically completes the degrees portion
  498. of the admin section.
  499. Made some tweaks to the menus, so that in Admin there are tabs now to help the user
  500. keep track of what screen they are looking at.
  501. Starting on "groups" for Admin.
  502. Created concepts of "popup_description" instead of just "description" in the form_api.
  503. This causes a [?] link to appear in the label of the element, and, which clicked,
  504. will popup the text therein. It makes forms a bit more tidy.
  505. Have basic editing of groups mostly complete.
  506. 2012-03-23
  507. Continuing work on admin module.
  508. Can actually save degrees now, and add/remove elective groups
  509. Fixed some minor tweaks to make sure it scrolled back to the correct position.
  510. Changed the way the "menu_links" array is set up in the menu items, to allow for
  511. more flexibility in the future.
  512. Invented a new hook. hook_menu_handle_replacement_pattern ($st). It will
  513. let you pass things like de_catalog_year=%DE_CATALOG_YEAR% to the l() function,
  514. which will then look for that hook to give each module the chance to act on that replacement
  515. pattern.
  516. 2012-03-18
  517. Continued work on admin module.
  518. Got much of the Edit Degrees displaying correctly. At this point, have not yet wired
  519. it up so that you can submit changes to degree plans.
  520. 2012-03-16
  521. Beginning work on the Admin module today. I expect it to be huge and complicated.
  522. Urgent message Save/Load
  523. Created simple Form API similar to Drupal (but much simpler)
  524. Created a concept of a system_settings_form which automatically writes values to the variables
  525. table upon save, so you don't have to create your own submit handler for forms. Ideal for little
  526. one-form settings pages.
  527. New "page_setting" for menu items: menu_links. Provides a way to place "breadcrumbs" and other
  528. types of links at the top of the page automatically.
  529. 2012-03-15
  530. Finished up (mostly) Comments module.
  531. Did work on getting access callback system working with permissions.
  532. 2012-03-12
  533. Got switching between Year view and Type view working.
  534. Got What If working (I think). Its a little bit screwy, and sometimes it seems to break when
  535. it wants to, but it seems to be OK for the time being.
  536. 2012-03-11
  537. Got many of the popups working on the "View" page. Also, submitting a basic advising session works.
  538. Moved over all of the Javascript into its own file (advise.js) instead of being locked up inside the
  539. AdvisingScreen object. It could be further split out into other files as well.
  540. Adding/Removing Substitutions, and removing courses from a degree plan, appear to be working
  541. correctly.
  542. Menus can specify a file to load as needed. Like an additional .inc file where that page_callback is located.
  543. Admin toolbox and hide/show pie charts
  544. Got rid of XML in FlightPath. Now, we just serialize or nothing. No sense in the extra overhead. Still need to get rid of it
  545. for module.info files. Some are still .xml. Will get to that when I do the Admin work.
  546. 2012-03-10
  547. Continuing work on making FP more like Drupal.
  548. Created "modules" table to better keep track of modules.
  549. Created student_search module. Working on bringing in all of its functionality.
  550. Added jquery 1.7.1 instead of 1.3.2.
  551. Added much of the Advise module
  552. Have a new concept of passing around the "current_student_id" from page to page,
  553. and saving all other "advising variables" to a table, rather than keeping them in the POST
  554. between every page. This makes it much more tidy.
  555. 2012-03-09
  556. ** BIG CHANGE **
  557. I ran a script to convert from camelCase to underscore_style.
  558. Now, only Class names are CamelCased. Everything else-- variables and methods and functions,
  559. are all going to be underscore_style (also called K&R or C++ style).
  560. Even though I think this isn't as pretty, it is consistent, which is what I am more
  561. concerned about.
  562. Fixed numerous capitalization problems. I'm sure there's more after this.
  563. Gave important system_settings default values.
  564. Moved functions.php into other .inc files, in a new "includes" directory.
  565. 2012-03-08
  566. Fixed a bug where definitions in groups, once entered could not be removed.
  567. Adjusted default.settings.php file to have error reporting limited by default,
  568. as well as additional instructions for setting up through Windows.
  569. Added "user_auth" table to flightpath database. Implemented default login
  570. attempts to that table (empty it to override and use another method)
  571. - Created "admin" user by default. user_id = 1, password = fpadminuser
  572. Made it so the number of courses to load (and cache) on login is configurable
  573. in the settings.
  574. Added menu_rebuild_cache(), pretty_print(), and db_query()
  575. Making other numerous changes, to make FlightPath more like Drupal.
  576. Changing naming convention to underscore style instead of camelCase,
  577. when not dealing with an object.
  578. Made a lot of progress in getting the primary display of course_search module
  579. to use the new menu system (piped through ?q=location/etc
  580. --- v3.1.1
  581. 2012-01-03
  582. Cleaned up queries in admin.php to use new replacement pattern system.
  583. 2011-12-22
  584. Modified queries throughout the various classes and php files to
  585. use new replacement pattern system, to make them less
  586. vulnerable to SQL-injection attacks.
  587. 2011-11-25
  588. Created new replacement pattern system for DatabaseHandler::dbQuery function,
  589. to help protect against SQL-injection attacks.
  590. --- v3.1
  591. 7-14-2011
  592. FlightPath is now capable of handling courses with 0 hours.
  593. It actually, internally, tracks them as 1 hour courses, but
  594. displays them as 0 hour courses. The pseudo-hour which is
  595. attributed to it is known as a "Ghost hour" in the system.
  596. 5-4-2011
  597. Fixed a small bug relating to degree options. If a student
  598. has a particular option selected, then changes catalog years,
  599. and that option (track code) no longer exists, then FP was just
  600. display no degree plan. It will now default back to the
  601. base degree plan.
  602. --- v3.0.1b
  603. 4-11-2011
  604. Made "deCanSwitchUsers" be its own permission, instead
  605. of simply testing for full_admin status.
  606. Made theme change to remove "ULM" from the default banner image.
  607. --- v3.0b ---
  608. 4-8-2011
  609. This is the initial release of FlightPath as open source,
  610. debuting as version 3.0b.