chrisjrn / registrasion

A conference registration app, built on top of the Symposion conference management system
Apache License 2.0
18 stars 14 forks source link

You can't have mandatory ceilings and enable products by other means #4

Closed chrisjrn closed 8 years ago

chrisjrn commented 8 years ago

If you have a mandatory ceiling for a product, then you can't use vouchers or other non-mandatory conditions to selectively enable the product. The mandatory/non-mandatory approach might need some work.

chrisjrn commented 8 years ago

Design for a fix:

  1. Ditch the "mandatory/non-mandatory" approach, as it doesn't make sense if you need both.
  2. Add two condition types: ENABLED_IF_TRUE, and DISABLED_IF_FALSE
  3. If there's an ENABLED_IF_TRUE condition attached to a product, at least one must be met before the product will be displayed (this is the same as old non-mandatory)
  4. If there's a DISABLED_IF_FALSE condition attached to a product, the product will not be displayed if any condition is not med (this is the same as old mandatory)
  5. If ENABLED_IF_TRUE and DISABLED_IF_FALSE conditions are both present, then all DISABLED_IF_FALSE conditions must be met as well as at least one ENABLED_IF_TRUE condition.

Here's the use case: