bethlakshmi / GBE

Code repository for the Great Boston Burlesque Expo
3 stars 0 forks source link

Events need to display in columns by location on schedule #120

Open burlexpo opened 10 years ago

burlexpo commented 10 years ago

All events that take place in the same location should appear in the same column on the schedule.

In the screenshot, you can see two events, both scheduled to be in the location "Thomas Paine" in consecutive timeslots; they should be listed one after another in the same column.

screen shot 2013-12-09 at 9 24 44 pm

jonkiparsky commented 10 years ago

I can think of one simple algorithm to do this, which is not computationally intractable. However, this looks to me like it could lead to some difficult layout problems. The algorithm that I'm using now is guaranteed to use the minimum number of columns required to display all of the regular events without overlap, and next to them all of the volunteer events without overlap. If we have to preserve columns for rooms, we're inviting situations where we have many columns, sparsely populated. Consider that for any two rooms, if they both have a regular event at the same time, they must always have separate columns. It's very easy for this to lead to 9 columns in a block, and we have two blocks (schedule and regular). Furthermore, minimizing the column spread is computationally quite expensive. (remember, this schedule is calculated each time someone calls the events list)

So the upshot is, we can probably do this, and it'll probably end as a schedule of rooms in the columns against times in the rows. If we can count on 900 pixels across for the table - which is pushing it - that gives us 100 pixels per column if we don't split the volunteer events or less if we do. Is that what you want? Under the current model, you'll have enough columns to fit the maximum number of overlapping events at any one time. What do you expect that number to be?

On Mon, Dec 9, 2013 at 9:27 PM, Scratch notifications@github.com wrote:

All events that take place in the same location should appear in the same column on the schedule.

In the screenshot, you can see two events, both scheduled to be in the location "Thomas Paine" in consecutive timeslots; they should be listed one after another in the same column.

[image: screen shot 2013-12-09 at 9 24 44 pm]https://f.cloud.github.com/assets/5369404/1711034/89869400-6142-11e3-9328-c9d3ccac95ca.png

— Reply to this email directly or view it on GitHubhttps://github.com/bethlakshmi/GBE/issues/120 .

burlexpo commented 10 years ago

So, my desire -- and I don't if this is possible -- is that The Conference (classes plus Master Classes) are all displayed on one table, special events are displayed in a second table, and volunteer opportunities in a third table.

Having one master table that displays all events going on at The Expo is going to be insanely large.

The Conference Table would be six columns wide. From left to right:

1) Time 2) Thomas Paine 3) Wm Dawes A 4) Wm Dawes B 5) Molly Pitcher 6) Crispus Attucks

The Events table would be 5 (or 4) columns wide. From left to right:

1) Time 2) Theater 3) Vendor Hall 4) Crispus Attucks 5) Pool <-- and we could drop this if we wanted; only one event goes on up there.

The Volunteer table would be 5 (or 4) columns wide. From left to right:

1) Time 2) Theater 3) Vendor Hall 4) Crispus Attucks 5) Haym Solomon 6) Pool (and it'd be nice to have a location that is "Registration", but we can fake our way around this, I think).

Is this doable?

-=S.

On 12/9/13 10:17 PM, Jon Kiparsky wrote:

I can think of one simple algorithm to do this, which is not computationally intractable. However, this looks to me like it could lead to some difficult layout problems. The algorithm that I'm using now is guaranteed to use the minimum number of columns required to display all of the regular events without overlap, and next to them all of the volunteer events without overlap. If we have to preserve columns for rooms, we're inviting situations where we have many columns, sparsely populated. Consider that for any two rooms, if they both have a regular event at the same time, they must always have separate columns. It's very easy for this to lead to 9 columns in a block, and we have two blocks (schedule and regular). Furthermore, minimizing the column spread is computationally quite expensive. (remember, this schedule is calculated each time someone calls the events list)

So the upshot is, we can probably do this, and it'll probably end as a schedule of rooms in the columns against times in the rows. If we can count on 900 pixels across for the table - which is pushing it - that gives us 100 pixels per column if we don't split the volunteer events or less if we do. Is that what you want? Under the current model, you'll have enough columns to fit the maximum number of overlapping events at any one time. What do you expect that number to be?

On Mon, Dec 9, 2013 at 9:27 PM, Scratch notifications@github.com wrote:

All events that take place in the same location should appear in the same column on the schedule.

In the screenshot, you can see two events, both scheduled to be in the location "Thomas Paine" in consecutive timeslots; they should be listed one after another in the same column.

[image: screen shot 2013-12-09 at 9 24 44 pm]https://f.cloud.github.com/assets/5369404/1711034/89869400-6142-11e3-9328-c9d3ccac95ca.png

— Reply to this email directly or view it on GitHubhttps://github.com/bethlakshmi/GBE/issues/120 .

— Reply to this email directly or view it on GitHub https://github.com/bethlakshmi/GBE/issues/120#issuecomment-30196257.

jonkiparsky commented 10 years ago

Yes, we can do that. This is actually much simpler than what we're doing now.

We can make this a little smoother by generating all three grids at once and using javascript to show and hide them - this should save some transit time, which will be nice for the users. I'll start by just generating them as individual pages, though, and work from there.

On Mon, Dec 9, 2013 at 10:38 PM, Scratch notifications@github.com wrote:

So, my desire -- and I don't if this is possible -- is that The Conference (classes plus Master Classes) are all displayed on one table, special events are displayed in a second table, and volunteer opportunities in a third table.

Having one master table that displays all events going on at The Expo is going to be insanely large.

The Conference Table would be six columns wide. From left to right:

1) Time 2) Thomas Paine 3) Wm Dawes A 4) Wm Dawes B 5) Molly Pitcher 6) Crispus Attucks

The Events table would be 5 (or 4) columns wide. From left to right:

1) Time 2) Theater 3) Vendor Hall 4) Crispus Attucks 5) Pool <-- and we could drop this if we wanted; only one event goes on up there.

The Volunteer table would be 5 (or 4) columns wide. From left to right:

1) Time 2) Theater 3) Vendor Hall 4) Crispus Attucks 5) Haym Solomon 6) Pool (and it'd be nice to have a location that is "Registration", but we can fake our way around this, I think).

Is this doable?

-=S.

On 12/9/13 10:17 PM, Jon Kiparsky wrote:

I can think of one simple algorithm to do this, which is not computationally intractable. However, this looks to me like it could lead to some difficult layout problems. The algorithm that I'm using now is guaranteed to use the minimum number of columns required to display all of the regular events without overlap, and next to them all of the volunteer events without overlap. If we have to preserve columns for rooms, we're inviting situations where we have many columns, sparsely populated. Consider that for any two rooms, if they both have a regular event at the same time, they must always have separate columns. It's very easy for this to lead to 9 columns in a block, and we have two blocks (schedule and regular). Furthermore, minimizing the column spread is computationally quite expensive. (remember, this schedule is calculated each time someone calls the events list)

So the upshot is, we can probably do this, and it'll probably end as a schedule of rooms in the columns against times in the rows. If we can count on 900 pixels across for the table - which is pushing it - that gives us 100 pixels per column if we don't split the volunteer events or less if we do. Is that what you want? Under the current model, you'll have enough columns to fit the maximum number of overlapping events at any one time. What do you expect that number to be?

On Mon, Dec 9, 2013 at 9:27 PM, Scratch notifications@github.com wrote:

All events that take place in the same location should appear in the same column on the schedule.

In the screenshot, you can see two events, both scheduled to be in the location "Thomas Paine" in consecutive timeslots; they should be listed one after another in the same column.

[image: screen shot 2013-12-09 at 9 24 44 pm]< https://f.cloud.github.com/assets/5369404/1711034/89869400-6142-11e3-9328-c9d3ccac95ca.png

— Reply to this email directly or view it on GitHubhttps://github.com/bethlakshmi/GBE/issues/120

.

— Reply to this email directly or view it on GitHub https://github.com/bethlakshmi/GBE/issues/120#issuecomment-30196257.

— Reply to this email directly or view it on GitHubhttps://github.com/bethlakshmi/GBE/issues/120#issuecomment-30197024 .

jonkiparsky commented 10 years ago

@burlexpo For the volunteer table, would you prefer to have Registration and lose the pool? I think both might be pushing it for some screens, but 5 cols + time matches the conf table, so it should work also.

burlexpo commented 10 years ago

Yes, add Reg Desk and lose pool.

Thanks!

On 12/14/13 1:34 AM, Jon Kiparsky wrote:

@burlexpo https://github.com/burlexpo For the volunteer table, would you prefer to have Registration and lose the pool? I think both might be pushing it for some screens, but 5 cols + time matches the conf table, so it should work also.

— Reply to this email directly or view it on GitHub https://github.com/bethlakshmi/GBE/issues/120#issuecomment-30561624.

bethlakshmi commented 10 years ago

Hi Jon,

How is this going? Scratch is really eager for the fix, and I expect to have time between the holidays. Is there a way I can help here? What's the state of the code? are you around or should we do a handoff?

-Beth

jonkiparsky commented 10 years ago

Checked in code displays tables for each day, formatted as requested. Working on some jquery to show one day at a time. So: relearning javascript, then we're done.

On Thu, Dec 19, 2013 at 5:28 PM, bethlakshmi notifications@github.comwrote:

Hi Jon,

How is this going? Scratch is really eager for the fix, and I expect to have time between the holidays. Is there a way I can help here? What's the state of the code? are you around or should we do a handoff?

-Beth

— Reply to this email directly or view it on GitHubhttps://github.com/bethlakshmi/GBE/issues/120#issuecomment-30972820 .

burlexpo commented 10 years ago

Jon -- got an ETA?

Betty, if you took this over, when do you think you could go live with it?

On 12/19/13 5:34 PM, Jon Kiparsky wrote:

Checked in code displays tables for each day, formatted as requested. Working on some jquery to show one day at a time. So: relearning javascript, then we're done.

On Thu, Dec 19, 2013 at 5:28 PM, bethlakshmi notifications@github.comwrote:

Hi Jon,

How is this going? Scratch is really eager for the fix, and I expect to have time between the holidays. Is there a way I can help here? What's the state of the code? are you around or should we do a handoff?

-Beth

— Reply to this email directly or view it on GitHubhttps://github.com/bethlakshmi/GBE/issues/120#issuecomment-30972820 .

— Reply to this email directly or view it on GitHub https://github.com/bethlakshmi/GBE/issues/120#issuecomment-30973271.

jonkiparsky commented 10 years ago

It's a pretty small task, and I've done something like it before. I won't be able to start on it until ~ 11 tonight, but with any luck it shouldn't take very long from there.

On Thu, Dec 19, 2013 at 5:57 PM, Scratch notifications@github.com wrote:

Jon -- got an ETA?

Betty, if you took this over, when do you think you could go live with it?

On 12/19/13 5:34 PM, Jon Kiparsky wrote:

Checked in code displays tables for each day, formatted as requested. Working on some jquery to show one day at a time. So: relearning javascript, then we're done.

On Thu, Dec 19, 2013 at 5:28 PM, bethlakshmi notifications@github.comwrote:

Hi Jon,

How is this going? Scratch is really eager for the fix, and I expect to have time between the holidays. Is there a way I can help here? What's the state of the code? are you around or should we do a handoff?

-Beth

— Reply to this email directly or view it on GitHub< https://github.com/bethlakshmi/GBE/issues/120#issuecomment-30972820>

.

— Reply to this email directly or view it on GitHub https://github.com/bethlakshmi/GBE/issues/120#issuecomment-30973271.

— Reply to this email directly or view it on GitHubhttps://github.com/bethlakshmi/GBE/issues/120#issuecomment-30974861 .

jonkiparsky commented 10 years ago

Okay, I've got it selecting the day. I'd like to be able to select event type as well, that's still a little tricky.

The stylesheet is available to work on.

On Thu, Dec 19, 2013 at 6:09 PM, Jon Kiparsky jon.kiparsky@gmail.comwrote:

It's a pretty small task, and I've done something like it before. I won't be able to start on it until ~ 11 tonight, but with any luck it shouldn't take very long from there.

On Thu, Dec 19, 2013 at 5:57 PM, Scratch notifications@github.com wrote:

Jon -- got an ETA?

Betty, if you took this over, when do you think you could go live with it?

On 12/19/13 5:34 PM, Jon Kiparsky wrote:

Checked in code displays tables for each day, formatted as requested. Working on some jquery to show one day at a time. So: relearning javascript, then we're done.

On Thu, Dec 19, 2013 at 5:28 PM, bethlakshmi notifications@github.comwrote:

Hi Jon,

How is this going? Scratch is really eager for the fix, and I expect to have time between the holidays. Is there a way I can help here? What's the state of the code? are you around or should we do a handoff?

-Beth

— Reply to this email directly or view it on GitHub< https://github.com/bethlakshmi/GBE/issues/120#issuecomment-30972820>

.

— Reply to this email directly or view it on GitHub https://github.com/bethlakshmi/GBE/issues/120#issuecomment-30973271.

— Reply to this email directly or view it on GitHubhttps://github.com/bethlakshmi/GBE/issues/120#issuecomment-30974861 .

jonkiparsky commented 10 years ago

Okay, I think the schedule is good. The css needs to be better, but the code works.

@bethlakshmi can you buid this somewhere and give it an idiot check? @burlexpo you can review on kiparsky.net. If you want to start working on style, I can give you ftp access there.

bethlakshmi commented 10 years ago

It's synced to testexpo, but I'm getting behavior I don't understand... I don't get the fields that Scratch references above for columns at all, I keep getting:

Time Theater Vendor Hall Crispus Attucks Pool

for every set.

And I get stuff showing up in REALLY odd places - for example Tech for the Late Night show (volunteering, Friday) is in Crispus Attacks, not the vendor hall.

Lastly, when I gave the database pulls, I hid a certain type of volunteer event - ActRehearsal Slots by "Runs.Viewable is NULL" - to keep these from showing up on the schedule. They are only for performers, and we let performers sign up a diferent way, so there's no reason to put them on the main schedule. I'm guessing you are pulling from the database differently, so you rewrote the SQL somewhere?

Is there something I should have done to the text expo database to get this to display correctly? The code has been transported from GitHub to TestExpo's file store, so there shouldn't be any rebuilding required??

bethlakshmi commented 10 years ago

OK, update, I'm playing with it and mixing debug with data cleanup. I found that:

I've still got some debugging, namely:

jonkiparsky commented 10 years ago

Awesome. Thanks for the review/fixes. I hadn't even noticed the rooms showing wrong, too wrapped up in getting all the other pieces in place. I also realized that I hadn't implemented the "with counts" part, so I've got a little more work to do there.

On Sat, Dec 21, 2013 at 6:51 PM, bethlakshmi notifications@github.comwrote:

OK, update, I'm playing with it and mixing debug with data cleanup. I found that:

-

I could fix some of my display issues with a bug fix - testing the $item in write_events_table for === NULL as well as === 0 cleaned up a bunch of PHP Notice errors and also made some of my display work right...

I found that write_events_table was hard coding the rooms on the first line of the function. Now the rooms change for each schedule type.

when I (duh) have events with no room in the system, they don't show up on the schedule. Duh. Fixing data in my local repository.

— Reply to this email directly or view it on GitHubhttps://github.com/bethlakshmi/GBE/issues/120#issuecomment-31075288 .

bethlakshmi commented 10 years ago

?what's the "with counts"? Is that an admin view?

So... I figured out the weirder one - there was a missing "else" clause causing some weird display stuff.

Also - I fooled with the style sheets more. I wasn't getting much of any style because the table didn't render as schedule_grid... but when I found I set the table to schedule_grid, it disappeared utterly (I'm assuming jquery).

The trick is - we really don't want all the schedules on one page - it's a huge ton on information. Scratch wants:

I don't think we need them selectable, scrolling down the page is OK.

Can you separate into three sets? if you give me the URLs with the Get info, I can splice into the menu system....

jonkiparsky commented 10 years ago

display_schedule_with_counts is an admin view that shows signup counts to privileged users. I assume it's important, and so I assume we want it back. That shouldn't be really difficult - it's why that big block of commented code is still in Schedule.php. I just have to go trawling through that and find the pieces I need. :)

I think you should take a look at what I'm seeing on kiparsky.net, and maybe we can figure out why it's not working for you on your server.

I've set you up an admin account under blaze@kiparsky.net, using the same password you gave me on testexpo (list of undergarments)

Go in and muck about and tell me if it looks different.

On Sat, Dec 21, 2013 at 7:49 PM, bethlakshmi notifications@github.comwrote:

?what's the "with counts"? Is that an admin view?

So... I figured out the weirder one - there was a missing "else" clause causing some weird display stuff.

Also - I fooled with the style sheets more. I wasn't getting much of any style because the table didn't render as schedule_grid... but when I found I set the table to schedule_grid, it disappeared utterly (I'm assuming jquery).

The trick is - we really don't want all the schedules on one page - it's a huge ton on information. Scratch wants:

-

Events at GBE -> (submenu) Schedule -> the schedule of events for Fri, Sat, Sun

The Conference (new menu... Scratch has probably posted the issue of wanting new menus already...)-> Schedule - the conference schedule for Fri, Sat, Sun

Volunteering (?new menu?) -> Schedule - the volunteer schedule.

I don't think we need them selectable, scrolling down the page is OK.

Can you separate into three sets? if you give me the URLs with the Get info, I can splice into the menu system....

— Reply to this email directly or view it on GitHubhttps://github.com/bethlakshmi/GBE/issues/120#issuecomment-31076137 .

burlexpo commented 10 years ago

I believe display_schedule_with_counts is an artifact of Intercon.

It's a 'nice to have', but assuming we're using the min/max number of sign-ups function, we should be able to tell which volunteer slots are full and which aren't just by looking. Full slots change color.

On 12/21/13 8:00 PM, Jon Kiparsky wrote:

display_schedule_with_counts is an admin view that shows signup counts to privileged users. I assume it's important, and so I assume we want it back. That shouldn't be really difficult - it's why that big block of commented code is still in Schedule.php. I just have to go trawling through that and find the pieces I need. :)

I think you should take a look at what I'm seeing on kiparsky.net, and maybe we can figure out why it's not working for you on your server.

I've set you up an admin account under blaze@kiparsky.net, using the same password you gave me on testexpo (list of undergarments)

Go in and muck about and tell me if it looks different.

On Sat, Dec 21, 2013 at 7:49 PM, bethlakshmi notifications@github.comwrote:

?what's the "with counts"? Is that an admin view?

So... I figured out the weirder one - there was a missing "else" clause causing some weird display stuff.

Also - I fooled with the style sheets more. I wasn't getting much of any style because the table didn't render as schedule_grid... but when I found I set the table to schedule_grid, it disappeared utterly (I'm assuming jquery).

The trick is - we really don't want all the schedules on one page - it's a huge ton on information. Scratch wants:

Events at GBE -> (submenu) Schedule -> the schedule of events for Fri,

Sat, Sun

The Conference (new menu... Scratch has probably posted the issue of wanting new menus already...)-> Schedule - the conference schedule for Fri,

Sat, Sun

Volunteering (?new menu?) -> Schedule - the volunteer schedule.

I don't think we need them selectable, scrolling down the page is OK.

Can you separate into three sets? if you give me the URLs with the Get info, I can splice into the menu system....

— Reply to this email directly or view it on GitHubhttps://github.com/bethlakshmi/GBE/issues/120#issuecomment-31076137 .

— Reply to this email directly or view it on GitHub https://github.com/bethlakshmi/GBE/issues/120#issuecomment-31076301.

bethlakshmi commented 10 years ago

Hey Jon,

Sorry to be a stick in the mud, but I don't really need the query, I need to be able to display subsets of the calendar on different pages, so I'm adding a quick switch into schedule that makes that possible and not messing more with jquery right now...

Let's do the folowing

jonkiparsky commented 10 years ago

Okay, but have you actually looked at what's working on my test server? Because I think the problem is that the latest version of one file didn't get committed. That's why I asked for an idiot check - not a complete rewrite.

On Sun, Dec 22, 2013 at 12:19 AM, bethlakshmi notifications@github.comwrote:

Hey Jon,

Sorry to be a stick in the mud, but I don't really need the query, I need to be able to display subsets of the calendar on different pages, so I'm adding a quick switch into schedule that makes that possible and not messing more with jquery right now...

Let's do the folowing

  • skip counts (I just commented it out of the navbar)
  • cleanup code
  • move on to Scratch's other requests - he's got a fairly urgent one for a news posting capability that he should be posting shortly.

— Reply to this email directly or view it on GitHubhttps://github.com/bethlakshmi/GBE/issues/120#issuecomment-31079289 .

bethlakshmi commented 10 years ago

Hey @burlexpo - can we close this?

burlexpo commented 10 years ago

On 1/22/14 11:37 PM, bethlakshmi wrote:

Hey @burlexpo https://github.com/burlexpo - can we close this?

— Reply to this email directly or view it on GitHub https://github.com/bethlakshmi/GBE/issues/120#issuecomment-33096491.

Yep.