Page MenuHomePhabricator

Use ApplicationTransactions in Calendar
Closed, ResolvedPublic

Description

Calendar doesn't use ApplicationTransactions yet, but should.

Related Objects

StatusAssignedTask
Resolvedepriestley
Resolvedepriestley
Resolvedepriestley
Openepriestley
Resolvedlpriestley
Resolvedlpriestley
Resolvedlpriestley
Resolvedlpriestley
Resolvedlpriestley
Resolvedlpriestley
Duplicatelpriestley
ResolvedNone
Resolvedlpriestley
Duplicatelpriestley
Resolvedlpriestley
Resolvedlpriestley
Resolvedlpriestley
Resolvedlpriestley
Wontfixlpriestley
Resolvedlpriestley
Resolvedlpriestley
Resolvedlpriestley
Resolvedlpriestley

Event Timeline

epriestley raised the priority of this task from to Normal.
epriestley updated the task description. (Show Details)
epriestley added projects: Transactions, Calendar.
epriestley added a subscriber: epriestley.

ApplicationTransactions is the infrastructure component which creates edit logs, supports comments, and enables a lot of additional features for free or nearly-free. The major components are:

  • Create a new PhabricatorCalendarEventTransaction class, similar to classes like AlmanacServiceTransaction.
  • Create a storage patch for it, like resources/sql/autopatches/20141025.phriction.1.xaction.sql.
  • Create a new PhabricatorCalendarEventTransactionComment class, similar to classes like PhrictionTransactionComment.
  • Create a new storage patch for that, like resources/sql/autopatches/20141025.phriction.2.xaction.sql.
  • Create a PhabricatorCalendarEventEditor, like other ...Editor classes.
  • Convert the "Create Event" workflow to use your new Editor. You probably need to define four transaction types initially: status, start date, end date, description.
  • Make the event detail page show the transaction log at the bottom, so you can see, e.g., changes to the event's description.
  • (It won't automatically support comments, but we can add those later -- getting this far unblocks everything else which depends on ApplicationTransactions.)

Exciting stuff. :) I hope this includes (or it comes soon after) feed story hook implementations in PhabricatorCalendarEventTransaction...! I think creating calendar events in particular deserves surfacing to the feed.

I made that explicit in T7955, although we probably need to let you name events (T7953) first or the stories are going to be pretty iffy.