How do you create signup lists?
Asked by Hendrik Klindworth:

We often use signup lists where people enter their name when they want to take part at events

These lists look like this:

1. Han Solo

2. Darth Vader

3. ...

and everybody adds his name to take part.

This approach works but has two major disadvantages:

1. You automatically watch this page when you signup. Everytime someone else signs up and forgets to remove the notification checkmark, everyone on the watch lists gets an email

2. When two people signup at the same time, this leads to conflicts

Do you know a better workflow or a plugin which helps in such situations? A perfect solution would provide this

1. Avoid notifications when someone signs up

2. Avoid conflicts

3. Make signup even easier


Answers:
author: Josch Bencke
body: Hmm ... Avoiding Conflicts - all are about saving the wikipage or "to the wikipage".

Watching - you could change the space-default to "not watch" a page.

But I have another idea:

Design a template as "entryform". Then use the "add-page" macro to install a "click here to enter your name" button on your listpage. Once the user clicks, (s)he has to fill out the template form and save it.

Upon saving, a childpage is created below your "listpage". Each user is only subscribed to "his own" page and dozens pages can be created simultaniously. You could even "comment" on the page or edit the page to communicate with the user.

And if you sort the pages by "creationtime", you can make a "first come first serve" decision.

Example: Listpage
> Welcome to your list: {add-page macro...}Click here to enter your name{/add-page}"
>
> -------
>
> {children:excerpt=true;style=bullet}

Example: Template
> Name: {excerpt}\<enter name here\>{excerpt}
>
> email: \<email\>
>
> donation to the host: \<jelly donuts/veggiemate/chocolate\>

Update:

Another idea :) , together with the Checklist macro, you could edit properties and tags of the childpages from within the listpage e.g. with the tags "approved", "waitinglist", "not-today-sorry"), so you do not even have to "open" each childpage to confirm the booking.  

Have fun :D


author: Stephen Deutsch
body: I ended up writing a user macro to support this functionality. I think it fulfills all of your requirements. I'm not sure how many names it will hold, as I have not been able to test it on a huge instance, but be careful with anything above 250 names.

You can find it [here](https://bitbucket.org/stephendeutsch/confluence-user-macros/src) by clicking on "signup list", "signup list macro.vm" and then copying and pasting into the user macro field. Let me know if you have any issues.

**EDIT:**I forgot to mention that right now the automatic parsing of user profiles only works for English, German, French and Spanish.

comments: author: Davin Studer
body: This is probably one of the best user macros I've seen ... gonna pick it apart and see how you made it. Nice job sir.


author: Davin Studer
body: This is why I think there needs to be a marketplace-like site for user macros. There are some pretty cool ones out there, but no authoratative place to go to find them.


author: Stephen Deutsch
body: Hi Davin,

Thanks a lot for your feedback! I actually learned a lot from your questions and answers here on Atlassian Answers, so thanks back at ya!

Actually it is possible to put user macros on the Atlassian Marketplace (or at least bundle them into a plugin), it's just a little more complicated (although there are some issues with including other macros in XHTML format). I want to test this one out a little bit more, but maybe I'll put it up there so it can get a bigger audience.


author: Josch Bencke
body: How about the tasklists macro ?

comments: author: Hendrik Klindworth
body: I think this does not help with avoid conflicts and notifications when someone puts his name in the list


author: Josch Bencke
body: Or if the list of spots avai?able is known: checklists macro from comalech


Tags: confluence-administration