Hola!

Recurring events feature is A MUST for a new project I'm doing consulting for. Repeat Date API seemed to fill the gap, but then I found that, without integration with the signup module, the use cases cannot be fulfilled.

I'm posting this as a feature request, as I couldn't make Signup work with recurring dates. I'm using Date (not Event) and it seems that signing up is limited to signups for the cck node, and not for the (node + date occurrence) pair.

I haven't seen this feature request listed or even mentioned anywhere, could you please tell me:

  1. Is this possible/available already? If so, how?
  2. If not, are there any plans to add this feature?
  3. If there are no plans yet, how can we cooperate in order to add this feature? I'm just needing something that looks like a plan for now. I could help develop this feature afterwards.

Thanks in advance. Salud!

Comments

mariano.barcia’s picture

going with Event for the moment...

shanefjordan’s picture

Version: 5.x-2.4 » 5.x-2.x-dev

I'm going to test this and see where it really stands. Since signup is on a per node basis, my initial guess is that it will only work for the first node and not each additional node that is created by repeat. If it does not work and copy the signup to each node, I think there should be an option to copy to each node if that option is choosen. I'm actually trying to move off of event and go towards date/calendar. I've had too many issues with event not doing the things I need.

- Shane

briggsm’s picture

Hey guys, do you have any new updates regarding this topic? I also have a need for this functionality.

Is it possible to use "Event" to be reminded of Recurring events (each time the event happens in the future)? I didn't think it was possible, but if so, at least it would be a temporary solution....

Thanks,
Mark

drfuzetto’s picture

I am using Dupal 6.x

I have the sign up feature enabled on a node that repeats and when a user signs up, there are signed up to every instance. How do I change it so they only sign up for that one instance?

I am using a cck date field with Repeat options.

My Date field to use with signup is set to .
I don't really understand this field.

MM10’s picture

Exact ditto on #4 by drfuzetto.
There must be some mechanism for allowing a user signup for each repeat instance, I just haven't figured it out.
Any suggestions or pointers would be really appreciated.

dww’s picture

Version: 5.x-2.x-dev » 6.x-2.x-dev

There's no mechanism. No one has written any code for this. Signup assumes each node is a unique event. The Date Repeat API stuff breaks that assumption. It's a rather large can of worms to change signup to deal with this, and no one has either written the code, or come up with funding to sponsor my time to do so. Hence, this is a "feature request" to add this code, not a "support request" about how to configure the existing code to make it work. ;)

At this point the 5.x-2.* series is supposed to be in feature freeze. I'm not really planning to do big changes there anymore. This should really happen in the D6 port. If the required changes for signup are large, it'll probably have to be in the 6.x-2.* series, in fact, since 6.x-1.0 is about to be released as a stable (bug-fix-only) series.

rbryer’s picture

I am using Date and Date Repeat API and for my use case it actually seems to work fine except for one issue (below)

My Use case is different from the above as I have a node 'Class' that repeats every Mon,Wed,Thurs for a month at 6pm. A user can sign up for the class which implies that they will attend all the classes i.e. I don't want to have to sign up for each individual class. This works fine, I get one email confirmation and the list of people signed up is correct. And on the actual node I can set the limit and it correctly stops when the limit is reached.

The issue arises in the 'Administer Sign Up' page. This is displaying incorrect information. If I have a sign up limit set to 10 and one person signs up, then the sign ups column displays '12' and the status is displayed as Closed. However, I can go to the node and still sign up. If I click on the 'View Sign Ups' link it only shows me the correct number of people.

For this I can deduce that
a) the '12' is being caused by the number of repeating events, in this one location the code is counting each repeat as a signup rather than the single sign up.
b) that the status column is being calculated on this page and being misrepresented, as the status calculation of the actual node is getting it write. This should be made an single function so that it is consistent.

I realise this is really a bug, but as its a bug on an integration with Sign Up .... which is not implemented but just happens to work .... I have added here for reference.

ussher’s picture

Also looking for this functionality.

It would also be cool if the scheduling date did not have to be set on each instance of the event.

eg: if i have a tour company running multiple tours every day from april til november I would like to be able to set that each days bookings open on march 1st (when the booking staff are employed from) and they close on the day of the event. so that nobody can book a tour that has already happened.

rather than having to edit each day individually to set up the dates.

reaneyk’s picture

subscribing

JamesCollier’s picture

I have a need for something similar - it's not exactly the same, but I'm not sure it warrants its own request.
I have a site with two content types that users can sign up for. Each *can* have multiple dates, which are processed using CCK and the Date field. When signing up for either type, only one date is allowed, so I need to pass the values of the date field (when there are multiple values) to the signup form by way of select list.
Any thoughts here? I'm a bit surprised I haven't been able to find someone with a similar request - if not dates, other CCK info.
Thanks for any help you can offer!

JamesCollier’s picture

Adding to my last comment, I might be able to sponsor at least part of this, if it is indeed a feature others can use.

OliverColeman’s picture

Well, I could possibly use #10, as well as what could be a variation to it: allowing selection of multiple dates with an option to select all future occurrences.

For the job I'm working on it makes a lot more sense to handle repeating events with a multi-valued Date field, because:

  • there's no need to duplicate or modify the vast majority of the information of the event, only the date (and it's far from best practice to duplicate data!);
  • Views can nicely handle displaying the event multiple times in a calendar using the multiple field values;
  • In order to handle performing actions on multiple occurrences of an event it makes it easier if all occurrences are easily referenced (eg allowing selecting all future occurrences of an event during a signup);
  • EDIT: one more: in some instances I need to be able to refer to an event in the singular fashion (in my case there are "Courses", which are comprised of Events, and I want to list Events associated with the Course when viewing the Course, but I don't want to list every single occurrence of an Event). I'm sure one could create a hack to work around this with a node-per-occurrence setup, but I don't want to use hacks :).

I'll probably write a patch for signup for this, but am a bit wary of writing a patch that might not get included, and where I'm using numerous modules that work with the module being patched (uc_signup, signup_scheduler, signup_status...)! Will need to look more into how signup works and how other modules interact with it before committing to anything, and I have other things to finish before getting around to this bit of the functionality. But it would be good to know anyones thoughts on the best way of modifying signup to handle multivalue Date fields!

dww’s picture

@Oliver: that'd be something close to a complete re-write of the signup module. It was written from the ground up to assume signups per nodes, not signups per date field values on a node. The DB schema would have to be re-designed, and probably 1/3 to 1/2 of all the functions would have to change in some way, maybe more.

For all your talk about avoiding duplication, why don't you use a level of indirection? Have a node that represents the entire course, and each instance is a separate node which has a node reference pointing to its parent course node for truly shared data, and then the instance node can handle all the things specific to each instance (the real date/time, all the signup data, anything else that might change per class).

I spoke to KarenS at DCDC about this problem, and she said there are a whole bunch of things that are going to be exceptionally hard to get working with Date Repeat API (not just signup) unless it has an option to do some sort of separate nodes for each instance...

catorghans’s picture

This thread confirmed my thoughts that signup and date repeat would mean a almost full rewrite of the signup module.

I think a module who just creates a node for every date you want repeated would solve these problems.
Module date_repeat_nodegen is a first attempt to that.

OliverColeman’s picture

Well, eventrepeat is a fairly full featured module for generating new nodes for each recurrence of events. Only problem is there's no D6 version and it seems to have become unmaintained as the new maintainer seems to be busy with other stuff. The D6 port issue states that porting will require almost a complete rewrite of the module as the D5 version is heavily dependent on num_rows which was removed from D6, and the Event timezone handling has changed.

date_repeat_nodegen uses the Date Repeat module to generate the pattern of repeating dates, which is nice. But so far it can only create new nodes, not edit the sequence of nodes once created. There's been only one dev release, in April, and nothing has happened since then; no replies to issues.

I need this for a client at some point (sooner rather than later), so will have to have a go at it myself if nothing changes soon. Not sure whether it would be better to try and finish porting eventrepeat, or extend date_repeat_nodegen. I'm leaning towards the latter as eventrepeat sounds like a bit of a beast (complex), but perhaps that's just the nature of feature rich recurring event modules!

dww’s picture

Note: I (and Karen) *fully* support solving the signup (and many other related) problems by some kind of "new nodes for future dates" solution with Date Repeat API... Y'all have our blessings to make a D6 version of that that doesn't suck. ;) Good luck!

jgoodwill01’s picture

Would love to see something worked out with this. I too am trying to find a why to have online signups for classes that have repeating dates. Any anyone figured a way to do this that has worked successfully?

jcicolani’s picture

Subscribe

This sounds like it would be a hitch-pin feature for a lot of users (myself included) where there is a single node with multiple start dates associated with it (like a class).

If anyone has found a work-around using a master node and child nodes for individual dates I'd like to hear it.

bizkarl’s picture

Hi, I think this can be accomplished by using this module ( http://drupal.org/project/date_repeat_nodegen ) that is an addon to Date Repeat API. This module separates each repeat of an event into separate event nodes. Then signups are for each node instead of one signup for all the repeats in one node etc.

Cheers,
Karl

dww’s picture

@bizkarl: Yay, thanks for the pointer. That indeed sounds like exactly the approach that KarenS and I discussed about how to make stuff like this work with Date API. Sadly, there are no releases of that module at all, and it looks basically abandoned. It'd be great if someone wanted to adopt that module, give it some love, and make some releases.

Cheers,
-Derek

OliverColeman’s picture

There's also http://drupal.org/project/node_repeat which works a bit differently compared to date_repeat_nodegen. It has some facilities for administering the sets/sequences of repeated nodes it creates.

jcicolani’s picture

Node_repeat is the solution I'm looking at right now. Unfortunately, it's not fully exposed to views yet.

What I'm looking to do is have a page that displays a course description and then a list of the available start dates students can enroll into. Node_repeat will nicely create clones of the original node with the updated dates, the database field nicely connects them through a series ID, but the series ID is not available in views.

As a newb (though with EXTENSIVE database and IT background) I'm not familiar enough with the implementation of queries or views to know the best way to approach this. Any help would be appreciated.

gribnif’s picture

subscribe

hunt3r’s picture

Also something I need to solve. Subscribe.

JGonzalez’s picture

+1

gagarine’s picture

-1 for a node clone system

Date is a field, they are no logic to duplicate a node because this node have multiple dates. I think this is an ugly workaround. Look like a complete rewrite so patch is not the right way to go. Perhaps create a new branch?

EDIT I change my mind. Date repeat is nice http://drupal.org/project/node_repeat is nice too. Some times you need independent node.. sometimes not.

Ideally Signup should support the twos options but working first on node_repeat sound the fastest way to get singup and date repeat working.

shanefjordan’s picture

The signup module does work with the node repeat module. This is basically the same functionality as if it'd work with the date repeat.

pribeh’s picture

subscribe. this would be a very powerful addition to signup.

seemas’s picture

Issue tags: +signup, +CCK multiple date

subscribe.
also CCK MULTIPLE DATES (not a date repeat) and SIGNUP module integration

SandraVdv’s picture

subscribe.
I also think this would be an improvement for the signup module.
But I'm not convinced generating extra nodes for each date will be the 'best' solution...
You can get all the dates that are linked to a node, which has repeating dates, from the database.
Is there nothing that can be done with this info from the database?

Exploratus’s picture

signup.

It would be great if it could just send emails for each date in a repeat sequence.

jvieille’s picture

Any progress on this?
Looks like a classic use case: sending reminders for repeating events - Birthday for example....
Drupal cannot readily do that, quite sad. There posts on this for more than 4 years.
I spent a significant time to figure out how to implement this, and did not found any doable solution assuming a reasonable effort.
Node repeat implementation is much too complex for the users.

MM10’s picture

I don't mean to come across naive, but unfortunately I am-- do you think Rules/Trigger can give this functionality?

jvieille’s picture

I personally did not succeed with Rules - The Repeat stuff seems to need the recursive processing that is not available for D6.

pixelsweatshop’s picture

plus 1

pixelsweatshop’s picture

I am willing tp donate some funds to see this functionality implemented. I am sure others in this thread must be willing to do the same. Combined we might be able to support this getting done. Is that something you would be interested in @dww?

odegard’s picture

I'm also ready to help fund this work.

c4rl’s picture

Subscribing.

I wrote a custom module to do this for a particular project I'm working on that ties a signup to the event's nid and instance timestamp. As Derek described in comment 13 the design of the signup module is such that it assumes users are signing up for a single node, not instances of a given field on a node. Hence, I wrote my own.

Although the suggestions to create multiple nodes per date repeat instance may *seem* like a way forward, I think they could create other problems, especially as I consider how they would affect node reference fields, views relationships, node revisions, and doing SQL queries in general.

There are tricky use cases. For example, what happens if repeat rules are edited after users have already signed-up for given repeats? (My custom module doesn't yet account for this).

Event calendars beyond the most simple tend to have very specific use cases, and so creating a module/feature that would work as a one-size-fits-all is not easy. Eventually we end up with projects that don't accommodate every use case or projects that are more abstract (such as http://drupal.org/project/eventbookings) for the sake of developer flexibility.

Specificity is no exception in my custom module and so it will take some generalization to make suitable for release. I doubt it will fulfill every use case. I will consider creating a sandbox and will update this issue if or when that occurs. Cheers.

Breakerandi’s picture

For me its a good solution to put a rule with rules module and signup rules module like this:

On event "view node"
if "type=node(with signup)"
if "status=close"
do "set status open"

of course, that works only if you or your users are watching the nodes, not in views and previews..

mstef’s picture

+1 (d7)

shanefjordan’s picture

Due to how signup functions (and there are other modules functioning the same way), why not use the modules that work?

Instead of using Date Repeat, use Node Repeat and then signup will work and be on each node. You can get all the functionality that is wanted, it just may not be the exact setup you were hoping for. I originally thought I needed this to work with Date Repeat, until looking further and see it works perfect with Node Repeat.