I have been experimenting with Signup Status and Signup Status limits. Lets say you have an event with room for 10 attendees and parking for 7.

Currently, the status and limits would be:
- Attendee, parking required Signup Status limit 7
- Attendee, no parking required Signup Status limit 3

However, lets say you also need to allow for Event Coordinators that don't count towards the event attendance limit, but may need parking.

The limits would be:
- Attendee, Signup limit 10
- Event Coordinator, Signup limit 0 (unlimited)
- Parking, Signup limit 7
- No Parking, Signup limit 0 (unlimited)

The status would be:
- Attendee, parking required - counts towards Attendee limit and Parking limit
- Attendee, no parking required - counts towards Attendee and No Parking limit (or counts towards Attendee limit only)
- Event Coordinator, parking required - counts towards Event Coordinator limit and Parking limit (or counts towards Parking limit only)
- Event Coordinator, no parking required - counts towards Event Coordinator limit and No Parking limit (or counts towards none of the limits)

So during the Signup process, you would apply to more that one status group (i.e. event role & parking requirements), or alternatively Signup Status be part of an administrative group and then use Signup Status group limits.

What da ya reckon?

Comments

dww’s picture

Title: Signup Status group limits » Claiming arbitrary resources when you signup
Project: Signup Status » Signup
Version: 6.x-1.x-dev » 6.x-2.x-dev
Component: Signup status limit » Code
Status: Active » Postponed

That sounds easy to describe, but it's actually incredibly complicated to implement properly. ;) One thing you *might* be interested, which is a step in the direction of this sort of complication is #584040: Add way to define multiple status options that share a single limit.

However, what you're really asking about is the ability to claim arbitrary resources (each of which have a limited quantity) when you signup. This is the generalized case of the "seat limit".

If we were starting completely from scratch, we'd basically want a way to define arbitrary resources on each node (seats, parking spaces, steak sandwiches, vegan cookies) with a fixed number of each resource. The resources could be grouped (e.g. "lunch type" would contain both "steak sandwich" and "vegan cookie" resources). On the signup form, each resource group would show up in the UI as a form element where you can select which resources, if any, you want to claim with your signup, and perhaps # of resources to claim (if that makes sense). E.g. maybe my signup for this event would say: "1 seat, 0 parking spaces, 1 steak sandwich". The signup validation would enforce that those resources are available, and tell me if not ("sorry, we're out of steak sandwiches, please select another lunch option"). If all the resources I want are available, it'd let me signup and record the resources claimed by that signup. Then, when the next person tries to signup, it would know how many of each resource are still available...

This is an even more complicated problem than #29568: Flexible number and type of fields, since not only do you need a reasonable way to define all the resources for each node, you need to be able to specify how many of each one is available, plus all the additional rules for how to claim/consume them. All sorts of unsolved problems here:

A) What does the UI look like for defining resources and totals?

B) Where do you store this information (e.g. what's the schema look like)?

C) What's the right schema for storing what resources are claimed by each signup?

This is a pretty huge problem to solve. It should probably be blocked on a sane solution to #29568: Flexible number and type of fields -- either D7 core fields or some solution in D6 involving form builder...

All of this should live in a separate add-on module, since a lot of sites won't need this complexity. I don't think this has anything (directly) to do with signup status in fact, so I'm moving it to the main signup issue queue. Even though it's not going to get committed directly to signup.module when this finally exists, more people who care about this topic are likely to see it here and perhaps help implement it (or pool funding together to hire someone to do so).

scubasmurf’s picture

I am thinking of a less elaborate setup. Maybe create a new set of options (lets call them say Signup Substatus). In the event node rather than using the Signup Status text as the drop down options, instead give Signup Substatus text. When selected by the user, each Signup Substatus counts towards each of the Signup Status Limits by either 1 or 0. So the user would not select attendance status, or parking requirements or preferred meal as separate actions, it would be done in one action and each of the Signup Substatus would list all the available combinations of attendance, parking and meal. For me, the list would be static and small. I will have a play and see how far I get.

As you say, easy (for me) to describe...

#584040 nails what I am looking for.

Thank you for your detailed response.