Greetings, I am a developer at Wunderkraut. This is my first contribution module:
Webform event is a module that provides the following:
- Event content type
- Administrative tools to manage an event
- Event page with current participants, and possible queue to an event
- Users can opt to: Signup, queue (If event is full) and cancel their signups
- Ending date support: After set date event is closed
- Participant limit support: After certain number of signups, event turns on queue and prevents users from signing up.
- Queue protection: Queue is protected while administrator is editing it
- Re-opening event if space is freed up (Queue is protected, signups are enabled only after queue is sorted)
- Easy updating from queue
- Handling of cancelled users (Will be improved later on)
- Events page(view) also administrative tool for quick searching (ajax)
- NEW: Slots based registration
- NEW: Overbooking functionality
There is no real options for events in D7 and even Drupal 6 projects didn't offer sophisticated enough solutions so I decided to build this as my first contribution project.
Setup:
Enable module (Preferred way: drush en webform_event)
When creating event, you wont notice much difference. You will see event with due date for signups and participant limit. If you want to keep your event this way, feel free to do it but to unlock the power of the module create a webform component and view your module. Your event gets signups, option to queue to full event and cancellations. Participation can be managed easily from Manage event -tab.
Dependencies:
- Views
- Webform
- Date
git clone http://git.drupal.org/sandbox/Demoshane/1914080.git webform_event
This is a Drupal 7 -module
PAReview: PAReview
| Comment | File | Size | Author |
|---|---|---|---|
| queue_notice.png | 25.31 KB | demoshane | |
| event_page.png | 173.23 KB | demoshane | |
| manage_page.png | 177.92 KB | demoshane |
Comments
Comment #0.0
demoshane commentedAdded git clone link
Comment #1
operinko commentedNo code should live in master branch.
Always use version-specific branches.
http://drupal.org/empty-git-master
Comment #1.0
operinko commentedFixed a typo
Comment #2
demoshane commentedFixed to 7.x-1.x as working branch.
Comment #2.0
demoshane commentedGit clone link
Comment #3
klausiWe are currently quite busy with all the project applications and I can only review projects with a review bonus. Please help me reviewing and I'll take a look at your project right away :-)
Comment #4
valderama commentedJust as a side note, here is a quite fresh D7 module, which might have some overlap: http://drupal.org/project/registration
Comment #5
demoshane commentedI'm pretty sure it has some overlap but I think this module provides fairly solid tools for events like queue handling and adaptive administration pages. I'll check that module out and compare functionalities.
After quick test run I noticed following differences:
- Queue handling is different, seems registration wait list registrations eat up space (They're on wait list and people can sign up as wait list even there is space). Webform event does this differently. It enables queue only when the event is full and there is no queue to handle. Queue is also protected so that when working with signups and cancellations no one can signup if there is queue before them. Spots belong to those who queued first.
Note on registration:
https://www.evernote.com/shard/s61/sh/b8b44a89-4e35-4d5b-a13f-29510aa647...
- Webform event uses webform as base, it brings all webform functionality to users and can be extended with webform compatible modules and rules aswell as views integration from webform module later on. Webform 4 brings also nice token support. People can customize registrations as they wish.
- Register has slots, register other person/account which is very nice, good idea to bring into this.
- Register registration types create their own permissions per type, this can get very painful to manage and is hard to administer. Seems register is suited to sites that have only few different events while webform event provides per webform management fast out of the box. Imagine having 50 events that are customised, you would get around 1000 permissions to manage. Webform event is more generic and easier to maintain and familiar UI to anyone used webform before.
- Webform event handles waitlist and cancellations efficiently by providing automated admin tools (User cancels, admins get per event notification about cancels and other submissions that user has left for easy identification and handling.
- Webform is also easy to integrate to rules and uses date module for ending dates.
- Register has mass email, this can be achieved via webform easily by using contrib module (This I might add in actually).
- Also register types are tied to all content they're applied to. It might be good thing in certain cases and in other (Like add one field for this event only) you would need to create completely new type and set permissions etc because you can't change per event basis. This can be achieved via node clone in webform event but it maintains per event customisations.
In general, they're very different beasts with strengths and weaknesses. But hey, it's good to have options. I can easily see use cases for both modules where other module wouldn't produce desired effect.
Webform event is event system for webform that fits nicely within its workflow while registration is its own seperate environment.
Comment #5.0
demoshane commentedUpdated wording
Comment #5.1
demoshane commentedswitched wf_queue to webform_event. Had in progress module name left there.
Comment #6
leemako commentedHi Demoshane, Drupal 7 is in dire need of more event related modules so thank you for creating webform event. I have been looking for a similar module recently and also spent a bit of time looking at Registration (a very useful feature being tracking payment of event sign ups via commerce). Your module does seem a lot less complicated and I think would fit nicely with many use cases.
One thing that would put me off using it myself is the fact each individual webform is an event, in my use case we have multiple events a week and having to node copy the webform and configure separately seems like a lot of work. Do you think it best perhaps to have an administration page where you can quickly add dates and times of events that the webform then references? Even having the ability to repeat events such as date module allows (every Saturday etc)
This may be way out of the scope of what you want to achieve with this module but just adding my thoughts. Good luck with the project.
[EDIT] Also I just found this that seems to do a lot of the stuff I am after - http://drupal.org/sandbox/jorgensean/1529336 , seems a lot of people are trying to achieve the same thing as far as events in D7 are concerned. Perhaps a Drupal group discussion is in order
Comment #7
jwjoshuawalker commentedYou might want to add a "Similar Projects" section to your project page to help users sifting through modules decide on what will work best for them.
Examples:
Comment #8
demoshane commentedThanks drastik, will definately add them.
Comment #9
demoshane commentedHi leemako.
You can easily copy existing webforms with node clone. I will be adding more features as time goes (Reserving slots is on its way and almost ready at the moment) but we need to remember that this module is still very fresh and in queue (Comparing to registration that is standalone module with multiple devs and a year of development while this module has around 4 working days).
You got some nice ideas of features there. Keep them coming and I'll document them for myself. When I have time I will be adding more features to the module and having good feature suggestions available is handy.
Comment #10
leemako commentedI have posted on the forums for a little help with all this actually, my post here explains my specific use case and might be a good read for an idea of features you could implement: http://drupal.org/node/1929848
This sandbox is another interesting project you should have a quick look at: http://drupal.org/sandbox/jorgensean/1529336
From the look of the screenshots and description you should be proud of you four days work, its looking promising.
Comment #11
rajeevkHello,
It is nice to see new event related module. I am also working on one as I had to implement event registration with lots of variables & I did it by lots of custom coding in D6.
That time I didn't thought I would put in drupal.org but when my client started asking me about porting the project to D7, I thought why not make this module in D7 and contribute to the community as there were no solid solution for maaking paid events with custom setting.
I thought to have submodule to work with webform too...as in some event there will role specific form to be filled.
I will try other module before contributing that is for sure...
Thanks,
RajeevK,
+91-9650361380
http://drupalconnect.in
Comment #12
leemako commentedThats exciting news RajeevK, event registration seems like a simple thing but in practice there are so many variables. A few different modules catering to different use cases will be great. Webform is a very powerful and extensible module so it makes sense to leverage it for some of the registration stuff
Comment #13
demoshane commentedModule is updated to include slot registrations. On side note, please keep this thread about this module.
Comment #13.0
demoshane commentedRemoved features from dependency
Comment #14
rajeevkYeah sure we should keep this thread about this module only. Do you have any plan to implement relation with the event registration? Like I configure relation of one user to another like - Parent, Child..where parent can register his child but child can or can't register himself.
Comment #15
demoshane commentedHmm, that sounds more like fringe case as that kind of quality is not needed for all events thus it will not be included. One thing I might implement though is ability to reference events from other node types. But I'm not there yet. You can achieve something like that with webform conditionals like having select with:
1. Parent
2. Parent and Child
3. Child only
and conditioning other fields accordingly. Downside is that it's not real reference but I'm not exactly 100% sure that child would have an account?
Comment #16
demoshane commentedImproved uninstall, added hook_disable() and made module play nicely with entity_reference. Code cleanup, readability and documentation enchancements.
Comment #16.0
demoshane commentedAdded new feature
Comment #17
klausiThere are some errors reported by automated review tools, did you already check them? See http://ventral.org/pareview/httpgitdrupalorgsandboxDemoshane1914080git
Comment #18
demoshane commentedArgh, what a timing. Just pushed some major changes was fixing pareview errors :D Well, talk of bad luck... Fixed anyways.
Comment #19
demoshane commentedChanging status back.
Comment #20
demoshane commentedYou must have previewed after 2mins I pushed latest changes after coder code review and was just checking pareview notices :D
Comment #21
interlated commentedAdd CiviCRM to the 'like solutions' comment - http://drupal.org/project/civicrm.
Comment #22
leemako commentedI wouldn't class this module as 'like' CiviCRM. I used civi previously for event management but it is a huge all encompassing CRM on steroids. Webform event is specifically aimed at the event side of things, they are very different beasts in my opinion.
Comment #22.0
leemako commentedAdded overbooking
Comment #23
Noe_ commentedFor the README.txt. try to choose a style/structure for your readme file. This will improve readability.
Comment #24
demoshane commentedSeriously? Do you think this really warrants pushing module review 5 weeks further or prevents community from using the module? I recall that according to project review guidelines minor changes to documentation / styling stuff does not warrant needs work if they're only "issue". This is afterall under development and README.txt is not critical / functional or main focus.
Doesn't warrant pushing approval months away. Changing back.
No offense but it is a little bit nitpicky to delay module releases for stuff like flavor questions on stylings on non-functional stuff.
Comment #25
leemako commentedKeen to get my hands on this module
Comment #26
lias commentedAgree, would like to test the module but the URL for git returns an error. And it does seem nitpicky to hold it back due to style formatting of readme.
Comment #27
demoshane commentedhttp://drupal.org/project/1914080/git-instructions Check out from there.
I tested the url and it worked for me straight copy paste.
Comment #28
kscheirerYour README.txt needs improvement :) Refactoring webform_event_form_alter() would be nice - a 350 line function is rather large.
The module functionality looks fairly complicated, but I didn't see any security problems, RTBC from me.
----
Top Shelf Modules - Enterprise modules from the community for the community.
Comment #29
kscheirerYou have some security problems reported here: http://ventral.org/pareview/httpgitdrupalorgsandboxdemoshane1914080git. Otherwise this looks ready to go.
----
Top Shelf Modules - Crafted, Curated, Contributed.
Comment #30
demoshane commentedhttp://pareview.sh/pareview/httpgitdrupalorgsandboxdemoshane1914080git
Fixed issues (Hopefully something doesn't change again in PAReview logic before this gets another look).
Will improve the readme when this gets accepted (and I can squeeze a little bit more of time from customer projects).
Comment #31
demoshane commentedChanging status
Comment #32
demoshane commentedFixed all issues. Wrong status?. Now back in needs review state
Comment #33
kscheirerYou have several unused variables reported here: http://pareview.sh/pareview/httpgitdrupalorgsandboxdemoshane1914080git. Otherwise looks good, thanks!
----
Top Shelf Modules - Crafted, Curated, Contributed.
Comment #34
klausihttps://drupal.org/project/webform_events
This sounds like a feature that should live in the existing webform_events project. Module duplication and fragmentation is a huge problem on drupal.org and we prefer collaboration over competition. Please open an issue in the webform_events issue queue to discuss what you need. You should also get in contact with the maintainer(s) to offer your help to move the project forward. If you cannot reach the maintainer(s) please follow the abandoned project process.
If that fails for whatever reason please get back to us and set this back to "needs review".
Comment #35
demoshane commentedOk, I have to get some things clear:
1. I don't have contributor status, that might prevent me from acting as co-maintainer for the D6 version?
2. The D6 version seems to be very very simple implementation compared to this one. Also for time restrictions I would not be able to develop D6 version.
3. I'm not competiting with anyone. This is a something I built in customer project and decided to turn into contribution module because Drupal 7 lacks this kind of functionality and I though this would be useful. I fail to see how this is competing as D6 version is completely different beast and seems to be abandoned.
4. I seriously can't arrange enough time to rewrite this module in terms of the D6 webform_events nor that would make any sense (if that would be required, or is this just about getting the namespace?).
That being said: I'll contact the original creator of the module and ask what he is going to do with the project if anything.
@kschreider: Thanks, I'll check the variables.
Comment #36
james.wilson commentedIn response to the module developer, I've added Demoshane as a maintainer for the webform_events module (http://drupal.org/project/webform_events).
In regards to #35 above:
1) Added.
2) No D6 port is required. Just specify on the module page the D7 features and indicate lack of an upgrade path from the D6->D7 version. As time allows, I may try to develop an upgrade path.
3) Most modules (including my original webform_events) are built due to client needs. In my instance, we have moved forward in D7 with an entity-based solution.
4) I think it is more about the namespace. By keeping the number of modules for specific functionality down, users are less likely to be confused and have an easier time deciding on a solution.
Feel free to email me for any further clarification.
Comment #37
klausiSo I'm closing this now as you can commit your code to the existing project now (don't forget to rename everything to webform_events), thanks for the quick response james_g!
Feel free to re-open if anything is unclear.
You can come back to us whenever you have a new project that you want to promote.
Comment #37.0
klausiPAReview link