User:Ryan52/todo

Tickets

 * #15753 install security update
 * #15784 Newfangled keyboard tester addition request/issues
 * get fgdb.rb able to be set up by new freegeeks and new coders
 * #15523 fgdb can't be set up from scratch atm (broken devel data)
 * #14227 Fix docs on how to install FGdb
 * #15885 fix up coveredness tracking
 * #15492 covered or noncovered choice added to printme
 * #15846 Make FG-PDX automatically uncovered
 * #15883 figure out if the sales screen should have a covered widget too
 * #15884 make them choose covered or uncovered
 * fix up form_has_not_been_edited
 * #15920 form_has_not_been_edited needs support for line items
 * #15921 form_has_not_been_edited isn't called on edit links, I think
 * #15922 form_has_not_been_edited shouldn't be called on destroy
 * #15702 drive testing broken on lenny
 * Staff_hours_tracking_application
 * see below for individual TODOs

Releases

 * 11-14-09 release:
 * carryover - destroy link, #15518 (plus unimportant changes in current master)
 * coveredness improvements, #15885
 * shouldn't wait until next release, this will break stuff
 * 11-21-09 release: staff hours rollout/testing?
 * has to be, FG is closed on the 28th, and it's needed before December...
 * pretty much ready now

TODOs

 * on Saturday the 14th:
 * #15885, coveredness improvements (if not done already)
 * minor improvements to staff hours
 * on Saturday the 21st:
 * #15784, keyboard tester
 * #15523/#14227, install instructions/testing
 * form_has_not_been_edited improvements, see Tickets section

What's left for staff hours
worker.workers_worker_types.sort_by(&:effective_on).each_with_siblings{|a,b,c| raise if (a && (a.ineffective_on.nil? or a.ineffective_on > b.effective_on)) || (c && (c.effective_on.nil? or c.effective_on < b.ineffective_on))} def Enumerable.each_with_siblings self.each_with_index{|b, i|    a = self[i - 1] if i > 0 # -1 does not mean what we want it to     c = self[i + 1] yield(a, b, c)  } end def worker_type_on_day(date) self.workers_worker_types.effective_on(date).first end def worker_type_today self.worker_type_on_day(Date.today) end steal named scope from VolunteerTaskType
 * make strings on interface make more sense
 * we need a way to mark "special" users like proposed and nobody. probably a db field.
 * how to do this? a "special" boolean in the workers table?
 * Then make a named_scope to find everybody who's normal
 * Then turn effective_in_range into a named scope
 * Then run this and fix places: ack 'Worker.(all|effective_in_range)' app/
 * while touching stuff, remove :include_blank from workers select, or make it an empty (illegal) option.
 * huh. so the whole point of this project is for workers comp, yes? so then why is there no workers comp report?
 * should make some metadata (the income_streams, wc_categories, and programs) effective/ineffective
 * this should be able to wait, since we aren't using this info in the frontend at all...
 * why do we need to make the jobs <-> (income_streams, wc_categories, and programs) many-to-many? for effective dates or for percentages?
 * should make workers to worker_types effective/ineffective
 * if a worker changes types halfway through a pay period, does the first half of their hours need to go into one category and the second half go into the other? (on the payroll report). or can we get away with just using what their type was at the beginning or end of the pay period?
 * edited through interface, hm. I guess this should be line item? eww. need an interface for editing effective/ineffective things when it's originally a one-to-many.
 * also need a validation. like this:
 * find a way to determine current worker type.
 * in Worker:
 * in WorkerWorkerType: