Relatude Help

Revisions and cultures

A node has one version until it gets a second: a draft beside the published version, or a version in another culture. From then on each version is a revision, with its own id, type, culture and values. A translation starts as a copy and is then edited. Saving or publishing one revision changes no other.

  • One published revision per culture, which is what readers in that culture get. Drafts (Preliminary), revisions awaiting approval and archived ones are read in edit view, where a node with nothing published still shows.
  • Fallback. With cultureFallback, a node with nothing in the culture asked for is read in another, in the order the cultures were added.
  • All neutral, or all in cultures. Giving a neutral node a revision in a culture moves its other revisions into that culture too. So a new published revision in a neutral node's first culture is refused (409) when the node already has a published one: make a draft instead. A revision cannot be made neutral while others are in cultures (409).
  • Ids stay. A revision keeps its id when it is published, archived or moved. Name it in the context's revisions to read or write it. An editor sends the revision it has open with every read and save, so a revision published meanwhile does not end up in its form.
  • Nodes without revisions have one version with no id ($revisionId is null). create-revision and set-revision-type give such a node revisions first.

New content starts as a draft. The CMS interface inserts with draft: true, so readers see nothing until set-revision-type publishes it. The engine reads its own types itself, so they cannot be drafts: users, user groups, collections (and so sites), cultures, and the types inheriting them. A draft of one is refused (400). schema says which types can be drafts, in canBeDraft.

Cultures are Relatude.DB's ISystemCulture nodes, part of the native models that AddCmsContentModel() adds. add-culture makes one.