HomePhabricator

Generate "stub" events earlier, so more infrastructure works with Calendar

Description

Generate "stub" events earlier, so more infrastructure works with Calendar

Summary:
Ref T9275. When you create a recurring event which recurs forever, we want to avoid writing an infinite number of rows to the database.

Currently, we write a row to the database right before you edit the event. Until then, we refer to it as E123/999 or whatever ("instance 999 of event 123").

This creates a big mess with trying to make recurring events work with EditEngine, Subscriptions, Projects, Flags, Tokens, etc -- all of this stuff assumes that whatever you're working with has a PHID.

I poked at letting this stuff work without a PHID a little bit, but that looked like a gigantic mess.

Instead, generate an event "stub" a little sooner (when you look at the event detail page). This is basically just an ID/PHID to refer to the instance.

Then, when you edit the stub, "materialize" it into a real event.

This still has some issues, but I think it's more promising than the other approach was.

Also:

  • Removes dead user profile calendar controller.
  • Replaces comments with EditEngine comments.

Test Plan:

  • Commented on a recurring event.
  • Awarded tokens to a recurring event.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T9275

Differential Revision: https://secure.phabricator.com/D16248

Details

Provenance
epriestleyAuthored on Jul 7 2016, 2:19 PM
epriestleyPushed on Jul 13 2016, 2:41 PM
Reviewer
chad
Differential Revision
D16248: Generate "stub" events earlier, so more infrastructure works with Calendar
Parents
rP91a8a6d618cb: Initial cut of CalendarEditEngine
Branches
Unknown
Tags
Unknown
Tasks
T9275: Move Calendar to EditEngine
Build Status
Buildable 13043
Build 16669: Run Core Tests