-
Notifications
You must be signed in to change notification settings - Fork 52
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
Project pages #1074
Comments
Possible resolutions:
|
Should pages allow comments or not? Open question. (Decision: NO) |
There are three distinct expectations here:
A post can be represented as a workflow state: Draft, Submission, Post, etc. These new states replace the existing workflow states (like Confirmed) that are better represented by labels. A submission can be converted into a post and vice versa. A page can also be such a workflow state, or it can be an independent flag. TBD. |
Updates have visibility state options of public and restricted (participants only). This flag also needs to be available on Session and Proposal. However, on Proposal it still has the problem of deciding who gets access to set this flag: editors or proposers. |
"Post" in the sense of a blog post is the same thing as an Update. We could add comments to updates instead of stretching the definition of a Proposal. Similarly, Page should possibly be a separate data type because it's functionality diverges from Proposal. Pages have URL slugs and arguably should also allow Mustache templating so they can communicate the state of a project (number of submissions, etc). |
End of comment history for the original issue ticket. We've established Page as a distinct content type. |
Possible Page models with revisioning: Page:
PageRevision:
To retrieve a page given a URL, query
This spec is missing a clean way to edit, because there are two separate concerns here:
|
If it's okay to have multiple revision heads, then they also need to be labeled. Options:
|
Editing across devices will require a three-way merge. This has to be implemented in a PageDraft model on the client side:
When the client is ready to autosave, it sends the edited content along with the reference timestamp.
This draft model cannot be implemented server-side because it cannot be bound to an edit form. The user may abandon the edit or may open a second tab, causing a connection to the server that is indistinguishable from the first. It may be possible to achieve it by (a) inserting a random draft identifier into the form and (b) removing the draft if unused in a timeout period (say 1 day, to account for the client's intermittent connectivity). Update: this scheme is has a name and a proper spec: differential synchronization. What we call "reference" here is called "shadow" there, and a proper implementation needs a shadow in both the client and the server. Additional constraints:
|
Revising the Page models for a single-head scenario: Page:
PageRevision:
In this model, a URL is still accessed by looking up via PageRevision, but the access logic is simpler. However, we have previously had trouble with bi-directional fkeys in Organization <-> Team, back when there were mandatory Owners and Members teams. They make SQL backup/restore hard. If this is an okay risk, this approach may have better performance. |
More considerations:
|
Project page names should be based on the stable URL generator described in hasgeek/coaster#301. This is required for wiki links. |
Projects need a new model named Page. This will be the third content type in a project after Proposal (third party submission) and Update (editor's blog), and addresses the gaps of the existing two. Characteristics:
Nice to have (check-off when these features are implemented in later PRs):
[[Page name]]
syntax. There will be an implementation detail to convert from relative URLs to absolute URLs based on where the page content appearsProposal.description
field should be migrated into an index Page, thereby acquiring all these nice featuresOriginal text of this issue ticket:
Proposals were renamed to Submissions in December 2020, to switch to a more generic term. However, this is not generic enough for projects with editor-only content. They need:
While there has been a long-pending desire for wiki-like pages, that remains on the wishlist and is not being implemented here. Wiki-style
[[page title]]
links remain unrealized.The following comments are responding to this original text and not the newer Page spec.
The text was updated successfully, but these errors were encountered: