views:

20

answers:

1

Dear all,

I am building a Drupal 6 site, with event managing feature, in particular:

  • Selling events participation
  • Recording events attendances: once the event is concluded, administrator can review attendances indicating which users have really participated

I have searched a lot, already seen different similar posts and considered different possibilities before posting, including signup module and ubercart uc_signup module, but none seem to fit my requirements. For payment I am using Ubercart.

My strategy is the following:

  1. Create a content-type "event", which holds all information about the event, including the date of the event, description, etc. This is also an Ubercart product. This is easily accomplished via CCK and Ubercart (either creating directly the product in Ubercart or creating the content-type with CCK and a product with the same machine name in Ubercart)
  2. Create an "event participation" content-type which has a field holding a reference to event node, a field holding reference to user subscribing the event, a field for "payment status" (paid or not) , a field for "attendance status" (attended or not) This can be easily done with CCK.
  3. When an user want to attend an event, she creates a node of type "event partecipation":
    • the field referencing event should be automatically filled with the event
    • the field referencing the user should be automatically filled with the current user
    • the creation of the node should be possible only if no node of this type exists for this particular event and user. if a node of this kind already exists for this event and user it should be deleted
    • The newly created node has the payment field set to "not paid" and the attendance field set to "not attended" (defaults for new node)
    I think all this points can be accomplished with hook_form_alter(). Is it possible?
  4. Once the "event participation has been created" the user is presented with a link to pay the participation. This is done adding the referenced event to Ubercart cart and redirecting user to checkout page I think this point can be accomplished with hook_form_alter() and Ubercart API. Is it possible?
  5. When the user fulfills payment, an action is triggered to set the "payment status" field of the "event participation node" referencing the bought product and the buying user is set to "paid". I think this can be achieved with Ubercart conditional actions. Is it possible?
  6. At this point, we have the possibility to create a view showing all user participating to an event, looking at "event participations" with "payment field" equals "paid" The event "participation nodes" are still there so, after event has occurred, administrators can set user attendances and present them in a view (probably the same view) This is simply done with views.

What do you think, is it feasible? I'd like to go in details of some of the above steps, but for now I am interested in discussing the overall strategy. Thanks a lot for your attention and for any suggestion.