teamcfadvance / cfSpeakerList

A simple CFML application for managing a list of available speakers (e.g. for user groups, conferences, etc.)
Apache License 2.0
3 stars 3 forks source link

Revamp how programs are stored for speakers #15

Open ddspringle opened 9 years ago

ddspringle commented 9 years ago

During the initial design phase the only programs identified for cfSpeakerList by Adobe was ACP and UGM. As such these were stored as tinyint(1) (e.g. 'bit') based fields individually in the database table.

This list has now grown considerably and the number of bit based fields in the database table has grown considerably to accommodate them. This also makes the application specific to these programs, which isn't a good thing for the open source solution ;)

Solution: revamp how these are stored. Remove all existing bit based isXXX (e.g. isACP, isUGM) fields and replace it with a single field which stores a list of the selected programs.

Also, ensure the list is populated properly when editing (e.g. those programs the speaker selected during sign-up are shown checked). Sign-up and profile editing will both have to be touched to fully resolve.

ddspringle commented 9 years ago

Bonus points for an admin only program management interface and for pulling programs from the database instead of being hard-coded during sign-up and profile editing.

shawnoden commented 9 years ago

I'll try to pull this repo over the holiday and take a look at it.

I was going to get nitpicky and ask why TINYINT(1) instead of an actual BIT datatype, but MySQL has a pretty long history of not really treating a BIT field like a real bit. It seems to be better in modern versions, but still iffy. :-S

Back to the question at hand, is there a current list of additional Programs, or is the list on the website current?

ddspringle commented 9 years ago

Thanks for taking a look at this Shawn. The list on the site is current except for ACI (Adobe Certified instructor). Have a great holiday!

shawnoden commented 9 years ago

In thinking that I could wrap this up over the holiday, I fell into my own trap. "Adding a Program should be easy." Apparently not over Christmas vacation. :-)

I rolled a database model out pretty quickly. Then realized how deeply integrated to the user model some of the isXXX fields are. I see now why the desire for a change. It's gotta be fun just to add a new program.

No worries. I'm tackling the problem.