This afternoon I was able to get event loading working for individual swim meets. The system allows the definition of a standard set of events. These events can be loaded into a swim meet to seed the swim meet and then tweaked for the needs of the specific meet (e.g. running the 6 & under groups early).
In the process I fixed a couple other broken things, the most important one being the controls on the GUI Data Lists widgets didn’t work on the ones which had a drop down menu. Now that the events are loaded, I can start working on bringing the results of a swim meet back into the system
Before I do that, I will probably work on the volunteer system as that is something I need for our own swim team soon.
Development, Progress
events, results, volunteers
It has taken me a little longer (ok, a lot longer) than I had expected but I have drag and drop event ordering working for the default events. Now that it is working, I need to clean it up and style it. The jQuery Table DnD plugin I found works great – it does exactly what I need it to do.
AJAX, Development, Progress
Drag and Drop, events, jQuery, Table DnD
Today I got the first part of Ajax based Drag and Drop Event Ordering working. A few weeks ago when I was skimming the Internet looking for some Ajax tips I found this interesting jQuery demo called Portlets. You really need to see the example to get the idea of how it works. When I found it I knew it was exactly what I was looking for to do event order (and hopefully heat sheets at some point).
I finally got some cycles to work on it yesterday and earlier today I got the first phase of it working. I can display the events to the user and they can drag and drop them to order them however they see fit. This part of it works as I hoped it would. Now that it is working, I need to get Ajax handshaking worked out so the database gets updated with the new sort order. Hopefully that won’t be to difficult but working with this type of Ajax problem is new ground for me.

Drag and Drop Event Ordering
Development, Progress
AJAX, events
It is interesting to go back and revisit code which I wrote early in this project. When I go back and look at it, I ask myself why I implemented things the way I did. The change to the tabbed menu bar has required me to go back and visit almost every page which is presented as a menu to a user of the system.
Some of the early functionality like Age Groups and Seasons had a clunky implementation of the decision tree logic and resulted in processing the same variables to make decisions repeatedly. I have migrated the code I developed latter on for things like the Roster and Events pages and implemented “Guidance” for all pages as well.
Now that I have all of the code cleaned up, at least I think I have it all done, I need to return to the Events functionality. I need the ability to add events to a meet and then re-order them. The standard events can be used to seed the events for a meet and reordering works although it is clunky. This should probably be done with AJAX so events can be dragged and dropped into the desired order.
Development, Progress, Software
Age Groups, AJAX, events, Roster
This afternoon I committed a bunch of changes which complete (I hope) the standard event functionality. Standard Events are the events a team would typically run at every meet. I envision them being set up for a team’s home pool so the course should be set to match the home pool but it is up to the end user. Once defined, the meets can be reordered to match the typical order of events.
The next phase will allow creating of meet specific meets and the standard events can be used to initialize the events for a meet. When creating meet events, the the course for the pool is different than the standard events, the meet events will be adjusted acordingly. This will allow a team with a home pool in meters to easily set up a meet at yards pool – if the same events are used in the same order, it will be a simple task.
Once the events are created for meet, the order can be changed on a per meet basis and other events can be added or deleted.
Development, Progress
events
In order to keep a history of swim times (aka results), the events the times are associated with need to be defined. I guess technically that isn’t true, a simple time history could be kept but as long as I am going to import times and keep them as a history, might as well associate them with a meet too.
To do this I started working on defining the events for each meet. Since most teams swim the same events in the same order at most of their meets, I have established a “default” set of events. I have this new functionality working now. What is left to do is to elegantly re-order the events (since re-ordering them is inevitable) and to use them as a basis for populating the events for an actual meet.
This functionality is also the basis of Opt-in/Opt-out because I have decided to let swimmers opt in or out of individual events and as well as entire meets. This is a need for the MacDolphins because we many of our swimmers are in year round school and since our league swims on Tuesday nigths, for some portion of our team, it is a school night. We have a fair number of swimmers who opt out of the later events because of it being a school night.
Development, Progress
events, history, results, times