bethlakshmi / gbe-divio-djangocms-python2.7

3rd try is the charm - Divio Cloud, Django CMS, Python 3.x, Django 3.x
Apache License 2.0
6 stars 1 forks source link

Make Volunteer Events Volunteerable #19

Closed bethlakshmi closed 4 years ago

bethlakshmi commented 4 years ago

Taking down notes from discussion in the car on the way to rehearsal, so @burlexpo can update later:

bethlakshmi commented 4 years ago

Questions:


SAMPLE IDEA:

A table with the following columns:

Volunteer: Elizabeth Kelly (ie, profile name) (link to full proposal) Volunteer Event: Registration Lead (link to full event details including current volunteers) Time: 8AM-12PM Number Slots: 1 of 2 (1 is free, out of 2 total)


Next Q: Would we remove anything from the current volunteer info?

We have a times available/not available - do we still want them? And interests...
And other stuff....


Also - do we let volunteers create overlaps if they are "interested" in something? Should that just be a warnable condition?

bethlakshmi commented 4 years ago

OK Stopping.

burlexpo commented 4 years ago

Would we remove anything from the current volunteer info?

Yes, everything. I don't think we care what people's interests or availability are. They're showing us them by signing up for a particular role at a particular time.

burlexpo commented 4 years ago

Also - do we let volunteers create overlaps if they are "interested" in something? Should that just be a warnable condition?

Yes, they can create overlaps with "interests". No, we don't need to warn them.

bethlakshmi commented 4 years ago

Got it. Starting on this for offline work as I can...

bethlakshmi commented 4 years ago

ok, there's a lot here, so I am planning out how to do a series of tickets that optimizes us towards getting the volunteer recruitment part out FAST, and then follows up after with the management parts. Here's my work breakdown, it'll probably evolve:

1 - Ground work - make event schedule items have a approval-needed flag

2 - Set up volunteer signup:

3 - Make it easy (or at least sane) to configure approval on a volunteer event

4 - Make it possible to approve people.

5 - Clean up loose ends?

With this many moving parts, I'll have some.

burlexpo commented 4 years ago

A thought on How To Display Volunteer Shifts Instead of wrestling with the "I can't deal with dates" bug, how about we display volunteer shifts like we do classes (and other BurlExpo events)? Instead of Locations as column headers we use Staff Area, so you would go to Friday, April 17 and see

vol examples

bethlakshmi commented 4 years ago

I'm trying to code this out and the calendar is subtly different than you're saying. The existing calendar code is organized by start time - so events that start at 6PM are in the 6PM row. If another event starts at the 7PM slot, then that event is on the 7PM row (that's the way classes work).

Our volunteer events are fewer and more far between, but show stuff starts all at the same time.

Looking at GBE 2017 is an example:

https://burlesque-expo.us.aldryn.io/calendar/Volunteer?day=02-11-2017

This is Volunteer events on Saturday in 2017 (I skipped 2018 in case it was weird).

I mapped this page out into a column per track format and came up with this:

Screen Shot 2020-01-03 at 8 29 03 PM

That's a LOT of white space. The kicker is really all the one offs - our drop ins each have a volunteer option. And there's many gaps because we only show a option during it's start hour, we don't fill it like a grid (look at registration as an example).

Proposal - it would be easier - pretty easy actually - to use the same format we have, but let people sign up by selecting a cell just like we do for "interested" - and then do the approval needed logic that way.

That would save be the complexity of trying to sort out columns.

It turns out, I also don't sort out columns on classes anymore - they are all just in the given hour.

burlexpo commented 4 years ago
  1. As I recall, we did the display of start time only to avoid situations of having display issues in the cells where events overlapped.
  2. The Drop-in classes are a weird, special case. Creating them as Volunteer Slots was the best way I could handle them (they're not really classes and they're not always taught by the same person). I guess we can have them displayed along with other Volunteer shifts; we'll just need to make them all Approval Needed.

Proposal - it would be easier - pretty easy actually - to use the same format we have, but let people sign up by selecting a cell just like we do for "interested" - and then do the approval needed logic that way.

Since this is exactly what I suggested, I feel like you might be saying something else -- or are you just confirming we can do it this way?

bethlakshmi commented 4 years ago

OK... let's talk. I've got two prototypes worth looking at posted on the test server. To simulate our typical data load, I cloned our GBE 2017 staff areas over to this year. I didn't port drop in classes, figuring we'd talk about them. NOTE - this is only test data.

I also took the liberty of volunteering you for 3 events, so you could see what that looks like:

1 - the first way I tried:

https://burlesque-expo-stage.us.aldryn.io/volunteer/signup

2 - a calendar based approach that is strikingly similar to "interested" behavior:

https://burlesque-expo-stage.us.aldryn.io/calendar/Volunteer

I chose a little hand, since it looked volunteer-y

Questions:

For either of these, the alerting and email notifications aren't 100% what I have mind. That's about the limit of what I prototyped before pausing to get input.

bethlakshmi commented 4 years ago

OK took notes from yesterday... here's attempt 3:

https://burlesque-expo-stage.us.aldryn.io/scheduling/volunteer_signup/?day=04-18-2020 (this is Saturday - so the busiest day)

burlexpo commented 4 years ago

The shadow events don't line up with the initial event. I know changing the size of the screen will impact on this anyway, but right now because they don't line up, they don't solve the problem we're trying to fix, they're just adding ore confusion

Clicking on one of the shadow events threw an error --

Request Method: GET

https://burlesque-expo-stage.us.aldryn.io/scheduling/volunteer_signup/1014/ cms.views.details

burlexpo commented 4 years ago

Iconography thought -- I understand that the little hand is like "raising your hand" to volunteer but it also comes across as "stop".

How about we use a checkmark?

I don't mean using simplelineicon; I mean using option-v ()

burlexpo commented 4 years ago

Checkboxes. I went with yellow for "needs approval" because of the "yellow=caution". If you hate it, I can change the color. They're GIFs, so should have transparent backgrounds. They are 64x64px. There are 5: Needs Approval - Gray Check Needs Approval - Green Check Needs Approval - No Check No Approval Needed - Green Check No Approval Needed - No Check

  1. No approval Needed - No Check (plain white checkbox; Volunteer shift does not need approval; user has not volunteered)
  2. No approval Needed - Green Check (white checkbox with green check; Volunteer shift does not need approval; user has volunteered; approved automatically)
  3. Needs Approval - No Check (plain yellow checkbox; Volunteer shift needs approval; user has not volunteered)
  4. Needs Approval - Gray Check (plain yellow checkbox; Volunteer shift needs approval; user has volunteered; pending admin action)
  5. Needs Approval - Green Check (plain yellow checkbox; Volunteer shift needs approval; user has volunteered; admin has approved)
bethlakshmi commented 4 years ago

Got it. For the record, your "yellow" checkbox is green. Very vibrant, lime green. Which means that (to me) it's hard to see that the grey checkbox is grey. I think the general look works, so I'll get the gifs coded into the site, and then we can replace the files as we like.

Also - they are huge, so I will force scale them down to a typical icon size (typical size ~16X16 px)

NEVERMIND GOT IT = Also - I need the background outside the box to be transparent. If you have the tools for that, it would be helpful... I'm also trying...

bethlakshmi commented 4 years ago

https://whentohelp.com/cgi-bin/w2h.dll/emptradeboard?SID=11991582214250&lmi=&Date=06/29/2020

I THINK THIS IS IT

I was going to give you other options, but I think this is what you want.

We could do basically this. I would advocate:

This would mean you can't signup directly on the calendar. With bars this narrow, that feels right to me - we don't want people accidentally withdrawing/adding events!

I'm questioning on - "do we want to show full events?" - the navigation in this site suggests they do NOT - they only show available. I think I agree, it reduces the load.

burlexpo commented 4 years ago

So... what do we do with this? Embed it in our site? Can we still communicate with volunteers with automatically triggered events and messages? Can we still use our internal email system to contact volunteers?

bethlakshmi commented 4 years ago

I know I said I'd just proceed... but since I hit a stopping place for the night:

https://burlesque-expo-stage.us.aldryn.io/scheduling/volunteer_signup/?day=04-17-2020

NOTE: Because this is a very long list, I DID NOT show:

bethlakshmi commented 4 years ago

Taking a pause for tonight...

TO DO:

(test site is in sync with all this - volunteer forms can now be kicked off from home page)

burlexpo commented 4 years ago

Three new icons Needs Approval - Gray Check Needs Approval - Green Check Needs Approval - No Check

bethlakshmi commented 4 years ago

AWESOME!!!! Probably getting 'em in tonight!!! .... DONE!

bethlakshmi commented 4 years ago

FYI - all changes are up to date on test server:

https://burlesque-expo-stage.us.aldryn.io/gbe

Not too much more code is left but there is a LOT of testing to do here. I took the old way apart a bit, and so I have a lot of tests to update.

bethlakshmi commented 4 years ago

Pull request for the volunteer side of this is ready.

Moving on to management side. First things on next effort: - make sure that the email template for the email to the volunteer coordinator/staff leads is editable in our normal way. - it was so easy, I did it in ~10 min on the original PR (and it's deployed on the test server)

PR will get reviewed and hopefully approved by me on Thursday, ideally with a target go-live of Friday or Saturday.

bethlakshmi commented 4 years ago

@burlexpo - Working on the next step - I think we don't need the "volunteer type" anymore. This was a fixed list, that you set for each volunteer event, and then the volunteer can also set it in their bid as an interest - so it helps with match making.

Volunteers now pick based on event title & description, so I figure I can remove it. That means it won't show up here:

https://burlesque-expo.us.aldryn.io/scheduling/manage ("Volunteer Type" filter)

Or here:

https://burlesque-expo.us.aldryn.io/scheduling/show_edit/GBE2020/4605? Under "Manage Volunteer Opportunities"

The latter is what I want to remove most - because it takes up a bunch of space on the table, which is already crowded and getting bigger with a checkmark for "Approval". You'd think a checkmark wouldn't take up much space, but it actually makes a big difference.

I won't pull the old data just yet, but I think I need to cleanup.

bethlakshmi commented 4 years ago

OK... now that step 1 & 2 are live!!

The test server has my work on making it easy to manage setting whether an event needs approval. Things to play with:

Special Menu -> Schedule -> All Events

And under the list of volunteer events you'll see that "volunteer type" is gone, but "Approve" is there. Click any checkbox on and off and press the pencil button to save the row.

Duplicate also works - the Approve setting will persist from copied event to target.

Same starting place -- edit any Volunteer Event

Same starting place -- Create button

If you pick a volunteer opportunity to create, and choose to make an opportunity w/out a staff area or parent event - you should see the same screen as the Edit Volunteer Event. If you pick a staff area or show, it will appear the same way as editing a staff area or show does (in a row of events)

The last thing I need to check/fix is whether or not copy works. Obviously copying a volunteer event should result in the same state approve/need to approve.

BONUS:

On the Special -> Schedule -> All Events page, -- any event with approval needed now has current volunteer and max volunteer cells appearing in yellow. Current only shows actual volunteers (not pending). Volunteer type is now gone from this side of the system.

Also - copy is finished and now preserves approval state.

All this is up on test.

And so I'm done with item 3 on my big to do list. Wrapping up testing and will have a PR today. Ready to deploy probably Monday.

Next - item 4 - make a way to approve pending volunteers

bethlakshmi commented 4 years ago

Everything from the comment above is now merged and updated on production. No need to use the /admin any more, although I don't have a search set up yet for "needs approval" events in the pages I built.

Now I'm posting the first part of step 4 - approve pending - on the test server. Go to Special -> Review -> Volunteers (same as before) and now you'll see the list of Pending, Waitlisted, and Rejected volunteers. Any of them can be approved, waitlisted or rejected. When you do that:

I want to:

And I need to write tests.

That will likely be the stopping place for this pull request.

After that, I think it's useful to replace the area in the volunteer event edit that lets a staff lead take a bidding volunteer and assign them, to taking a pending/waitlisted volunteer and assign them. But that's a separate piece of work, so deserves a separate ticket.

bethlakshmi commented 4 years ago

Approve of pending volunteers as a review list is ready as a pull request. Will review and push to site over the weekend. Starting clean up and dead code removal. - first target is all the Volunteer Bid assignment stuff. Not review list, review, or edit.

The approval code is totally up to date and as it will be published on the test server, so it's available to play with. Go to Special -> Review -> Volunteers and there it is. It has a link to the old review page for old conferences, as well, so the old data is still available.

bethlakshmi commented 4 years ago

Review and approve pending volunteers is installed on the live site!!

I have a pull request pending on a bunch of cleanup code. And I want to finish up with sorting out the event management list that we mentioned.

The site should now be 100% functional with the new volunteer signup scheme.

bethlakshmi commented 4 years ago

OK, I'm very close to finishing the 4th part of this - making it easy to see and manage the volunteers in all of their states in the volunteer opportunity schedule management pages.

So... I'm thinking out what we need for reporting. We currently have some decent (if I do say so myself) reports hidden away here:

https://burlesque-expo.us.aldryn.io/reports/staff_area

I think they need the following:

1 - put this very link as a menu item under "Reports" in the special menu, to increase it's availability.

2 - put a link to the menu items in the scheduling area, so a person working on a show, or staff area can quickly see what staff is already assigned... I propose an easy way - put a link to the follow on page, ie:

(examples from GBE 2018) and put them as a link on the scheduler pages, such as:

So that the user can see what volunteers are signed up.

I don't want to make the data appear ON this page - not only is it visual overload... but loading these reports is still a bit slow and I don't want to make the user frustrated waiting for the page to load. I can review loading this data in a less horrible way, but that is a BIG refactor and deserves it's own priority

3 - refactor the report so that we are showing the same visual organizaiton but NOT showing users that are Rejected.

QUESTIONS:

bethlakshmi commented 4 years ago

4th update is live - all volunteer schduling makes note of the new feature!

bethlakshmi commented 4 years ago

Ahhh..... I think I'm done!!!

At least any new work deserves a new ticket, as the spirit my to-do list above is now DONE!

Just introduced the new reporting code on the live server. And I deleted a fair amount of the old code.

I'll open up a later ticket for further cleanup. But I recommend I do it after this expo.