{"action":"created","issue":{"url":"https://api.github.com/repos/upiq/uu.task/issues/5","labels_url":"https://api.github.com/repos/upiq/uu.task/issues/5/labels{/name}","comments_url":"https://api.github.com/repos/upiq/uu.task/issues/5/comments","events_url":"https://api.github.com/repos/upiq/uu.task/issues/5/events","html_url":"https://github.com/upiq/uu.task/issues/5","id":76496585,"number":5,"title":"Architecture: evaluate scenarios for recurrence (specifying, storing state)","user":{"login":"seanupton","id":737356,"avatar_url":"https://avatars.githubusercontent.com/u/737356?v=3","gravatar_id":"","url":"https://api.github.com/users/seanupton","html_url":"https://github.com/seanupton","followers_url":"https://api.github.com/users/seanupton/followers","following_url":"https://api.github.com/users/seanupton/following{/other_user}","gists_url":"https://api.github.com/users/seanupton/gists{/gist_id}","starred_url":"https://api.github.com/users/seanupton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seanupton/subscriptions","organizations_url":"https://api.github.com/users/seanupton/orgs","repos_url":"https://api.github.com/users/seanupton/repos","events_url":"https://api.github.com/users/seanupton/events{/privacy}","received_events_url":"https://api.github.com/users/seanupton/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/upiq/uu.task/milestones/1","html_url":"https://github.com/upiq/uu.task/milestones/Requirements%20planning","labels_url":"https://api.github.com/repos/upiq/uu.task/milestones/1/labels","id":1110922,"number":1,"title":"Requirements planning","description":"Requirements planning tasks (no due date, either preliminary items or planning items spanning multiple iterations).","creator":{"login":"seanupton","id":737356,"avatar_url":"https://avatars.githubusercontent.com/u/737356?v=3","gravatar_id":"","url":"https://api.github.com/users/seanupton","html_url":"https://github.com/seanupton","followers_url":"https://api.github.com/users/seanupton/followers","following_url":"https://api.github.com/users/seanupton/following{/other_user}","gists_url":"https://api.github.com/users/seanupton/gists{/gist_id}","starred_url":"https://api.github.com/users/seanupton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seanupton/subscriptions","organizations_url":"https://api.github.com/users/seanupton/orgs","repos_url":"https://api.github.com/users/seanupton/repos","events_url":"https://api.github.com/users/seanupton/events{/privacy}","received_events_url":"https://api.github.com/users/seanupton/received_events","type":"User","site_admin":false},"open_issues":6,"closed_issues":0,"state":"open","created_at":"2015-05-14T20:54:39Z","updated_at":"2015-06-04T18:52:24Z","due_on":null,"closed_at":null},"comments":2,"created_at":"2015-05-14T21:30:11Z","updated_at":"2015-06-17T05:31:07Z","closed_at":null,"body":"Example of recurring task\r\n------------\r\n* A \"log\" form (content item) that is appended to on a regular interval; unlike a form-per-interval approach where there is a 1:1 relationship between task-occurrence and content item, this is more tricky.\r\n* A \"page\" content item in Plone that needs monthly update by the assigned party.\r\n\r\nQuestions\r\n------\r\n* Widget/UI: selecting recurrence rules.\r\n* Storing state.\r\n* Can we simply delegate to related/contained event (plone.app.event.dx) so that recurrence is not a re-invent-the-wheel problem?\r\n  * Or re-use widgets from plone.app.event ecosystem?\r\n* Indexing: plone.app.event has this problem solved to some extent, but I think we would want some kind of dedicated index (ZCatalog).\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/upiq/uu.task/issues/comments/112655345","html_url":"https://github.com/upiq/uu.task/issues/5#issuecomment-112655345","issue_url":"https://api.github.com/repos/upiq/uu.task/issues/5","id":112655345,"user":{"login":"seanupton","id":737356,"avatar_url":"https://avatars.githubusercontent.com/u/737356?v=3","gravatar_id":"","url":"https://api.github.com/users/seanupton","html_url":"https://github.com/seanupton","followers_url":"https://api.github.com/users/seanupton/followers","following_url":"https://api.github.com/users/seanupton/following{/other_user}","gists_url":"https://api.github.com/users/seanupton/gists{/gist_id}","starred_url":"https://api.github.com/users/seanupton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seanupton/subscriptions","organizations_url":"https://api.github.com/users/seanupton/orgs","repos_url":"https://api.github.com/users/seanupton/repos","events_url":"https://api.github.com/users/seanupton/events{/privacy}","received_events_url":"https://api.github.com/users/seanupton/received_events","type":"User","site_admin":false},"created_at":"2015-06-17T05:31:07Z","updated_at":"2015-06-17T05:31:07Z","body":"Maybe the question could be distilled into:\r\n\r\n(a) \"How hard is plone.formwidget.recurrence to integrate into something other than plone.app.event?\"  https://github.com/plone/plone.formwidget.recurrence\r\n\r\n(b) plone.app.event uses Products.DateRecurringIndex, which ought to be sufficient for indexing, which is a given if we are to support.  OTOH, adding extra index to portal_catalog has overhead for all content, so we may just consider choosing to store, but not index the recurrence rule (as a \"a RFC5445 compliant recurrence rule string\" generated by the widget linked above).  This might make the process that does email notifications heavier, but I think that is a reasonable cost at this point?"}}