-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Propagate "draft" status to owner objects #72
Comments
Removing from Zenhub epic, since that's closed now. |
@unclecheese Can you check these ACs and see how much of that we're covering in https://app.zenhub.com/workspace/o/silverstripe/silverstripe-versioned/issues/195, and through https://github.com/open-sausages/silverstripe-versioned-snapshots? |
@unclecheese @dnsl48 When this card is done, is there anything in custom code that we'd need to move over to versioned-admin or another core repo later? So in other words: Do we need another variation of this card for the core implementation, on top of the project focus of this current PoC work? |
To retest & fix:
|
The publish button is going to a separate issue silverstripe/silverstripe-versioned-snapshots#5 |
Overview
Authors deal with more versioned, nested relationships in SilverStripe 4. In order to simplify the mental model, many authors will still think about publication around the "main" types: Pages, and optionally Blocks. With the ownership and cascading publish abilities already in place, authors effectively regard the "main" record as changed if any of it's owned relations are changed (have an unpublished draft). The CMS needs to effectively communicate this draft status at a level that makes sense to authors, without forcing them to click through dozens of editing UIs for owned relations to determine individual draft status of these.
Example
Page
has_many and ownsContentBlock
Page
many_manyWatcher
GalleryContentBlock
has_many and ownsGalleryItem
GalleryItem
has_one and ownsImage
Effect:
Image
(without publishing) would markGalleryItem
,GalleryContentBlock
andPage
as changed.GalleryItem
would markGalleryContentBlock
andPage
as changedGalleryItem
would not mark any records as changedWatcher
would not mark any records as changedAcceptance Criteria
GridFieldand Page (GridField update is separate: Edit form action buttons improved. #222)Notes
ChangeSet
adds owns relations (recursively) throughChangeSet->findReferenced()
, regardless of they're changed or not.ChangeSetItem
records will haveVersionBefore = VersionAfter
ChangeSet
is auto-created when a record gets published (but not before)ChangeSet
indicates a collection of records that should be published together, so we can't add "owners" here (e.g. changing anImage
in the example above doesn't imply addingGalleryItem
andGalleryContentBlock
in a campaign to be published)ChangeSet
to determine changes on records: The set doesn't exist early enough (before publish), and should only include objects that can be published.Pull Requests
The text was updated successfully, but these errors were encountered: