Roles and Relationships in Events

Events happening in the community are now at Drupal community events on www.drupal.org.
drob's picture

I'm copying out jimw's recent comments (http://groups.drupal.org/node/465#comment) to begin a separate thread.

jimw brings up a couple of issues that has been talked about at some length. Specifically he is interested in roles like "volunteer", "presenter" etc. as they relate to Events:

As was touched on in the above irc chat, it seems that a user can have multiple relationships to a given event, based on different roles. So, for example, you could be a definite attendee at an event and also a volunteer and also a presenter. You could be any of those 3 things (roles), and the status on each could be different, as well as the reply time.

By role here, I don't necessarily mean login role, just the concept of a role at an event, or event_role

So, this could be kept in a central table, but unique key would be uid + nid + erid (event_role_id)

CREATE TABLE event_user (
uid int(10) unsigned NOT NULL default '0',
nid int(10) unsigned NOT NULL default '0',
erid int(10) unsigned NOT NULL default '0',
reply_time int(10) unsigned NOT NULL default '0',
reply int(2) unsigned NOT NULL default '0',
UNIQUE KEY uid_nid_erid (uid,nid,erid)
);

I think the concept of presenter is an important one to get into the overall event area Presenter could be modelled as a user; or have it's own table; or be a category; or an organic group, I'm not sure ...

I say this because a presenter at an event is often not a single human, but a band (music), a group (theater), a team of some kind. But perhaps requiring that it be a user is not a bad thing, since organizations can always have a user account if they want. For many sites which publicize events to the general public, like online newspapers, etc, the presenter is the most important piece of data. You can currently put this info into the text description of the event, but this makes searches inconsistent, provides no accessible list of all presenters, no easy view of all events a given presenter will be holding (their tour schedule) etc. Also, some events have multiple presenters (2 bands at a show, 3 speakers at a discussion, etc).

The above table could hold a variety of roles, while also letting you query by nid and uid alone, to see the various aspects of the event a user is involved with. Other event roles are things like coordinator, food-provider, ticket-seller, whatever. This kind of structure will let the event creator define the total structure of the event, all the roles that need to be filled, and then see how they are doing.

So, you might want an additional table, that declares what event_roles are in use at the event and how many of each are needed or allowed (in the case of attendees, for example):

CREATE TABLE event_role_quantity (
nid int(10) unsigned NOT NULL default '0',
erid int(10) unsigned NOT NULL default '0',
min_quantity int(10) unsigned NOT NULL default '0',
max_quantity int(10) unsigned NULL default '0',
UNIQUE KEY nid_erid (nid,erid)
);

I'm fairly new at Drupal, so perhaps you all can better comment on whether to make the master list of possible event roles correspond to login roles, or to keep a separate, master event_role table.

also there was this comment:

I wrote a comment on another thread which has some ideas about presenters (performers, speakers, etc) and other roles at events
http://drupal.org/node/52895#comment-119869

Wondering how that could be modelled here.

Seems like you could add an EventRole class specifying what roles/jobs must be filled for an event, including simple attendees; volunteers (people who do specific work); presenters; etc ... and what quantities of each of these are required for the Event. Different EventEmails can be allowed for each EventRole (one email text is used for inviting regular attendees; another for requesting volunteers).

Then can add an EventRoleID (erid) to EventParticipant as you have it above. This would mean one User could have > 1 EventParticipant instances for a given Event, if they are doing > 1 significantly different things in relation to the Event. You might say, well, everybody is at least an attendee; but in many Events in real life, the various flavors of staff and presenters are not counted in the attendance numbers, they don't receive a ticket, etc.

Modelling the Administrator separately as you have it seems to make sense in that it's a Drupal function online they are performing
Whereas the actual onsite organizer at the physical Event would correspond to an EventRole.

It seems like this is all good. My interest would be in figuring out the specific use cases having to do with those roles. Ideas? Comments?

Comments

Volunteer match form

Amazon's picture

Here's a good target for what a volunteer form should look like.

Only local images are allowed.

To seek, to strive, to find, and not to yield

< a href="http://www.youtube.com/watch?v=COg-orloxlY">Support the Drupal installer, Install profiles, and module install forms
<a href="http://ia310107.us.archive.org/1/items/organicgroups_og2list/dru

Nice layout

Walt Esquivel's picture

I like the "Details" link next to "Organization" which keeps all the organization's details neatly tucked away until a visitor clicks on the link.

I like the "Great For" and "Interest Area" info which, IMO, helps the potential volunteer quicly determine whether or not this opportunity "fits" them. I also like the "I want to help" field, but what happens when one checks the box? Does the organization, MDA in this case, presumably receive a notification that someone wants to volunteer to help and then MDA, at their discretion, contacts the volunteer?

The map is excellent.

I take it further down on your screen there is a "Submit" button? Is there anything else we can't see below the "Description"? If significant, how about a screen shot of that as well? :)

Thanks,
Walt

Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing

http://volunteermatch.com

Amazon's picture

Hi, go ahead and sign-up for http://volunteermatch.com

Kieran

To seek, to strive, to find, and not to yield

< a href="http://www.youtube.com/watch?v=COg-orloxlY">Support the Drupal installer, Install profiles, and module install forms
<a href="http://ia310107.us.archive.org/1/items/organicgroups_og2list/dru

Walt Esquivel's picture

Thanks for the suggestion. I signed up and now see the I want to help! text is actually a hyperlink to your other image. Nice.

Another good example I use here in Central Texas is the United Way Capital Area.

United Way's Search for an Opportunity
United Way's Event Calendar

Walt Esquivel, MBA, MA, Captain - U.S. Marine Corps (Veteran)
President, Wellness Corps, LLC

Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing

Charity Event - volunteer interface

despatches's picture

Hi Amazon,
This is a very intuative and clear interface.
I'm assunimg that this isnow fully opeational.
Could you let me know whether you have this running in a Drupal-6 or a D-7 template? I'm trying to solve a problem (pro-bono) for a group of charities to raise volunteers in this way. Perhaps you could let me know if we could collaborate on developing this fature further. Are you using a Googlemaps api too on this? Could you point me to the site to have a look through to get up to speed and also confirm whether this is an open source project that we could impliment to test and develop?
Many thanks
Despatches

Event registration roles on upcoming.org

Amazon's picture

Only local images are allowed.

Note the attending and watching roles for event attendance

To seek, to strive, to find, and not to yield

< a href="http://www.youtube.com/watch?v=COg-orloxlY">Support the Drupal installer, Install profiles, and module install forms
<a href="http://ia310107.us.archive.org/1/items/organicgroups_og2list/dru

Volunteer opportunity on volunteermatch.com

Amazon's picture

Prepopulated form for volunteer opportunity with the opportunity for a message.

Only local images are allowed.

To seek, to strive, to find, and not to yield

< a href="http://www.youtube.com/watch?v=COg-orloxlY">Support the Drupal installer, Install profiles, and module install forms
<a href="http://ia310107.us.archive.org/1/items/organicgroups_og2list/dru

a few real-life use-cases from my world

dww's picture

it's late and i'm tired, but here are a few event-role use cases from my world (the one where i direct a brazilian percussion ensemble):

for san francisco carnaval, i'm directing a huge contingent of ~35 drummers, ~15 dancers, ~10 people in a "royal court" (we're doing this rhythm/dance called "maracatu" which is traditionally about mocking the portugese colonial court), and ~10 support people (carry water, help musicians with their gear, whatever). so, when people sign-up, we need to know what role they're going to play on the parade, so we know what kind of costume they need, what other events (i.e. which rehearsals) they need to be invited to, etc, etc.

no brilliant insights tonight, just sharing some food for thought. ;)

Yup

drob's picture

Good stuff. So it sounds like the signup module - as-is would suffice for this right?

not exactly

dww's picture

signup kinda works for this now, however, there's no really good way to handle this. either you "theme" a custom field (which then shows up for all signups on the site) to indicate your role), or you have to make separate "events" for each role (so you can keep the total # of each separate). both suck for various reasons. it'd be nicer to have more native support for this concept. it'd be especially important to have different options for the roles for different events, even on the same site.

How complex does this have to be

drob's picture

At some point you would just want to use CiviCRM (or write your own contact manager). Couldn't you use CCK for most of this?

i refer you to my previous comments... ;)

dww's picture

yes, of course you could just use CCK for this, so long as CCK had reasonable "points to a node" and (until users are nodes) "points to a user" fields. then we could basically rm -rf modules/signup, so long as there was sufficiciently working workflow/action stuff to deal with the emails and the like. i've been saying this for months. ;)

Subscribing to this amazing

jumoke's picture

Subscribing to this amazing conversation : )

Relationships & site structuring

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: