that the old functionality remains)
- Run the action handler separately in the tour annealer and judge annealer
config so that the page can be refreshed immediately after an update, so
the config variables (that may have changed) are reloaded.
- Skip updating config variables that haven't changed.
number, and an option to create numbers automatically
- Completely remove all references (hopefully) to the Tour ID
- Add a Tour type report
- Rework the student report query so it actually makes sense. It really should
be a whole bunch of left joins based on the students. Using comma (cross)
joins creates situations where if the right side of the join doesn't have
information, it wipes out the left side. (Happened before with emergency
contact info).
- Remove the (two) old custom tour reports
- Add 4 new tour reports to the database:
- ALL tours for the committee, tour list for students,
student emergency contact info for tour coordinators, and
a list of tour assignments for students
activity and percent.
- Add the status update and links to automatically start the "tour assigner".
(Didn't want to call it a scheduler, because someone might thing it's for
assigning tours to timeslots or something)
- Prevent the user from setting zero, or more than one, primary contact.
- Add a primary column to the contacts table, so they can see the automatic
set/unset operations on the primary contact.
- Add a designate field to the schools, to indicate an independent, standard,
private, etc. school. It's not editable yet, but.. eventually.
- Fix generatePassword to use proper string indexing, and remove the
possibility of indexing beyond the end of the string.
- Add "Invite" and "SinglePassword" modes for volunteer registration.
- Update the admin section, add a new volunteers page to contain links to all
volunteer options
reports require admin access) can define a list of reports out of all the
reports, and tag each one with a category and comments.
- Add all except the ceremony scripts as "Custom" reports. The My Reports
system can handle links to custom reports now, but not the ceremony scripts.
They're too special. I think they should be moved out of the Reports Area.
- Clean up some report variables to avoid collisions with local names
($options, and $stock)
- Implment a new screen for report generation that lets the user set the
format, stock, and year of the report.
- Change the report generator to accept an 'sid' (system report id)
- Use the sid, not the report id, for the custom reports that aren't custom
reports anymore.
- Use the generator's school access report, not the custom one.
function in the config editor to one that checks where ALL variables marked
with year=-1 exist for FAIRYEAR. If it doesn't, it creates them. This
function gets called in three places:
- On installation
- On rollover
- Whenever the database is updated
We should, now, be able to just insert new variables with year=-1, and they
will be automatically updated for the current year with the default value.
(no more going into the variable editor to make sure the copy is done).
- Fix the superuser account creation in the install script
saying that the report can only be saved as a new report.
- Add checks to the report_save and report_delete fucntions to ensure system
reports cannot be saved/deleted.
- Allow user_personal.php to handle committee members
- Add password field if the editer in user_personal has access_super
- Allow a committee member to edit anyone in user_personal.php
- Convert auth_required to user_auth_required, and check for both a user type
and an access level (if committee)
- Convert the committee to the new user system (BIG change :)
- Remove the ^M from admin/committees.php
Add ability to specify an award type to only generate a script for that type
Add ability to specify a year to get the awards ceremony script for that year
Add links to the new options on the main reports page
Add a function to get the email recipients for a given registration id, for now, it just gets the students, but downt eh road it should check if teachers, parents, emergency contacts, mentors, etc should receive fair updates as well.
Implement the code/replacement tags for the two new emails, one for 'forms received, with payment' and the other for 'forms received, without payment'
Whipe out all 'from' of info@sfiab.ca (the old default, we dont want others using it!)
When sending emails, if 'from' is empty, use the $config['fairmanageremail']
Add a warning on the communication page if the fair manager email has not been set
Set the default 'from' for new emails to be the fair manager email
NOTE/FIXME: i added the hooks for the two new emails to be sent, but still
need to fill in the substitution values as well as the "to" - no time now,
will do that tomorrow
Judge manager - delete now deletes the judge completely
Judge list only shows judges active for current fairyear
Clarify a few issues on the judge registration page
Factor XML functiosn out of cwsfregister into separate xml.inc.php
Add xml functionality to ysfstats, and fudge the male/female stats to include "not specificed" genders
Add submit functionality to ysfstats to actually send data to YSF
- Add prize names to the report generator
- Change award name to sort by name, if you want to sort by order, use the
Award--Order column. (Specifying a sort by prize name, and it actually
sorting by order doesn't make sense)
- Only report complete students
- Use tour names instead of numbers
- Not use $email as a temp varaible because that actually overwrites the
$_SESSION['email'], and logs us out, wtf?
- Sort by first tour selection
Add award criteria to getJudgingTeams() result
Modify CUSTOM report judges teams proejcts, to show each award and the criteria/eligibility for each award that the team is assigned to judge.
More ease of use cleanups to awards interface
Add new field award order to student report generator
- Creates a judging team for each special award
- Assigns judges to special awards based on the number of students self
nominated.
- Obeys the judges special award preferences (if enabled), and also
judges that specify if they are a judge for a specific special award
(if enabled).
- Add 2 new config variables.
- Enable the special award scheduler
- Specify the max. number of projects each special award judge can
handle (default: 20)
- Delete an extra blank line in register_participants_students.php
- Overhauled the report generator.. It's more versatile now
- Added 'filter' option to the generator, so you can filter any column by (=,
<=, >=, <, >, IS, IS NOT, LIKE, NOT LIKE). It doesn't support AND or OR
combinations, but that should cover what we need for now. Example: We can
filter "Award Name" LIKE "%Gold%" to generate a report of just the Gold medal
projects.
- Wipe out the report database, and create it again from scratch.
update.48.sql contains an example of how to add additional reports to the
system without knowing the report_ids, because after regions start adding
their own reports, we won't be able to just wipe out the whole report system
to add one.
- We handle more reports now, specifically nametags and table labels, so remove
those files, and update the reports.php file to link the old links to the new
report generator (so people don't get too confused in this transition).
- Beginnings of moving the report generator to proper LEFT JOIN style
constructs instead of just one big massive EQUALS JOIN.
- Add committee member generator
- It is now possible to generate ALL nametags the old system could generate
(needs a DB update before that happens... actually, the report generator
isn't as stable as I hoped.. I'll probably just nuke the report tables the
next upgrade and recreate them all.. I'm probably the only one who has tried
generating a custom report. :)
enough.. Currently we can't produce both a list of judges and a list of awards for each
team with the generator (how the heck would we express that with an SQL statement)
- Add an editor for that generator.. it's not flawless, but it's not hard to
use either.
- Add 19 default reports
- Replace several reports on the report page with the new generator versions
(they pretty much look the same, same info, same sort order, same pagination)
- Add a pulldown menu to the report pages so any report can be generated
- Hardcode add a special award to the top of the list "I do not wish to
nominate for any special awards". Allow the
project_specialawards_link.award_awards_id field to become NULL, and set it
to NULL if the student selects this award.
- Fix the display of the award status based on whether the student has or has
not specified that they do not wish to nominate for special awards.
- Add an option to the project editor to regenerate the project number
- Fix a bug in the project number generation. Include YEAR in the project
number check (and in the number generation) so we don't find a project from
last year (that already has a number), and decide not to generate one for a
project from this year. The $checkNumQuery was returning 2 rows.. one from
2006, one from 2007. Two projects from different years had the same
registrations.num (665983) in my test.. about 10% of the projects at the VDSF
collided with numbers from previous years.
the table, we call a method in the table helper class. That method returns 3
things.. an array of SELECT columns, an array of FROM tables, and an array of
WHERE clauses. The table editor takes these, adds ORDER, LIMIT, etc, and
runs the sql.
- Update the table editor to allow variables to be set. THe helper class reads
these variables to do pretty much anything it wants.. In this commit, it
reads the judges_show_what variable, to determine how to format the SQL for
selecting the table of judges (so the calling php can now know NOTHIGN about
the database, it just sets a variable and expects the data to be formatted
correctly.
- Update the judge manager, show all judges should now SHOW ALL JUDGES.
have admin access to access the committee editor)
- Put a "My Profile" link on the main nav bar once a committee member logs in,
so they don't have to find themselves thorugh the committee editor. It takes
them right to editing their own profile.
- Admin can use the tour manager to add tours
- Admin can use the config variables to enable tours, and select the min/max number of tour choices.
- Students will see a "Tour Selection" section of registration, which is incomplete until the student has selected at least a minimum number of tours.... actually, this may be broken.. Need to look at it further..
Add ability to create access codes for all schools and to remove access codes from all schools
Update generatePassword to accept a password length as a parameter, defaults to 8
Add two new projectnumber options: c=category shortform, d=division shortform, eg (JLS01 = Junior, Life Science, Project #01)
Add shortform field for age category
Fix bug in config editor where it was updating values for ALL years, instead of just the current year!
Bump version number to development version
table
- Add complete and year options to the judge manager, filter by ALL, active and
inactive for the current year, or active only.
- Add the "complete" status the the judge info page (the judge info popup page
needs to be integrated with the new judge manager, somehow.. so we can remove
the judges_judges list page).
- Put a total at the top of the judge manager list
- Add to the table editor:
- Change the filter to accept a single argument, so we're not
restricted to the `$k`='$v' syntax, we want to be able to filter on a
table JOIN.
- Add a additionalListTable variable, and additionalListTable()
function, to specify additional tables that should be part of the
table select statement. I guess ideally the class would implmenent
their own if alternative behaviour was desired. But this way is
pretty generic. The table editor can now, for example, select judges
by year.
should be SELECTED in the select type. If the keys are 0, and there is no
data, PHP does a numeric compare and matches them, when they shouldn't
actually be matched.
- Add Load/Save for the judge category preferences
- Enable saving to mysql. It works.
- Update the tableeditor css to use the same colours as sfiab
that allows you to customize the size of the labels to suit _ANY_ label
stock paper.
Add to label generator the option to get judge mailing labels, and award
sponsor mailing labels, and make it easy to add more mailing labels
down the road (students? committee? etc?)
Add two default label stocks (Avery 1"x4" and Avery 2"x4")
- Added a "multicheck" input type for languages (english, french)
- Added a proof of concept cross reference to the judge class, it pulls the
languages out of the judges_language database
- Completely broke the save mechanism.
- Converted the tableeditor edit routines to read from the input class
- Converted the tableeditor edit routines to use assoc arrays, instead of ->
(easier to pull from mysql and then add cross references to it.
- Add the table editor style sheet, and load it in the header (needs editing)
- Add a judge class (not complete)
- Add a judge manager php file that doesn't interfere with what's already in the system
THis is a proof of concept, it sorta works, but the table editor is still reading directly from the judges class. It will be updated to make calls only into the calling class type, thus abstracting away all the SQL stuff, and allowing the group class (judge in this case) to hide
all the cross table references we need to make for loading, saving, deleting, etc.
should contain. If the config doesn't find those variables for the current
year, they are automatically copied in from year=-1. This means that
we can update a database and add new config variables and not have to manually
add each variable to the current year. It also means someone can't mess
up the system and accidentally delete config variables, because they
will be recreated.
looking any further. This significantly reduces the timeslot scheduling time.
In most cases we reach 0 in a couple thousand iterations, but we need high
effort because some timeslot scheduling problems are hard to assign.
prevent a project from getting too many judges in a row, and also a judge from
judging 2 projects at the same time (which would be more of a problem).
Still need to write a verifier to check all the results. But the annealer
tests look pretty good. Unfortunately it takes a pretty long time to run. :(