This is an obscure one... :-)
Currently, when editing an event node, event instances are regenerated for any future instances. However, we only resave instances that changed for some reason. This is normally good.
However, if used in conjunction with the inheritedformatter module (recommended) then child instances do not actually have their own data; they just reference back to the parent event node. This is also normally good.
However, if you're syndicating event instances using all of those rules and the views_atom/feeds_atom combination (which was the original intent of this module) then those unaltered event instances are not resyndicated, because they were not edited. Why is this a problem? Because if you change a field on the event node, the instance nodes do implicitly change. That is fine on the generating site because those are recomputed at runtime on node view, but it doesn't work for syndicated events because those need to be immediately recompiled and resyndicated. So syndicating sites never get updates.
The solution, given the rules-dependency of icalinstance, is to add another Rules event that bulk fires on "these instance nodes (that are in the future) were not altered." Then we can simply hook up the "syndicate this set of instances" rules action that already exists to that event. That will bulk regenerate and re-syndicate those instance nodes.
We're working on a patch now. :-)
| Comment | File | Size | Author |
|---|---|---|---|
| #1 | 1142512_Fire_event_for_non_updated_instances_1_D6.patch | 1.71 KB | stevector |
Comments
Comment #1
stevectorHere's the patch.
Comment #2
stevectorComment #3
stevectorhttp://drupal.org/commitlog/commit/13684/3619afa621a21192512636a3370d18a...