action=jadeproposeorendorse
A Catch all, routing method that tries to *do the right thing* @param title (str) The encoded entity name. (E.g. "Jade:Diff/123456") [required if entitytype or entityid are not set] @param entitydata (json) The type of Jade entity (E.g., {"type": "diff", "id": 3245678}) [required if title not set] @param facet (str) The facet of the entity being labeled [required] @param labeldata (json) The relevant new label data [required] @param notes (str) Notes to save when creating a new proposal (A warning will be raised if a proposal already exists. Notes will not be automatically overwritten.) @param endorsementcomment (str) Comment to leave with the endorsement. Defaults to "As proposer" if not set and creating new proposal. @param origin (str) A structured string representing what the user was looking at when they made this judgment [required] @param comment (str) Revision summary @param token (str) [required] @warning endorsingnonpreferredproposal -- This action resulted in creating an endorsement for a proposal that is not flagged as preferred.
Decision tree
- Does the entity page exist at all?
- Yes
- Does the target facet already have a proposal with the target labeldata?
- Yes
- Has the user already endorsed a proposal within the target facet?
- Yes
- Has the user already endorsed the target proposal?
- Yes: update endorsementcomment if set & warn existingproposalnotesnotoverwritten (comment: /* jade-updateendorsement */)
- No: move endorsement to target proposal & warn existingproposalnotesnotoverwritten (comment: /* jade-moveendorsement */)
- Is the target proposal preferred?
- No: warn endorsingnonpreferredproposal
- Is the target proposal preferred?
- Has the user already endorsed the target proposal?
- No: create endorsement & warn existingproposalnotesnotoverwritten (comment: /* jade-endorseproposal */)
- Is the target proposal preferred?
- No: warn endorsingnonpreferredproposal
- Is the target proposal preferred?
- Yes
- Has the user already endorsed a proposal within the target facet?
- No
- Has the user already endorsed a proposal within the target facet?
- Yes: create proposal and move endorsement with updated endorsementcomment (comment: /* jade-createproposalandmoveendorsement */)
- No: create proposal and endorsement (comment: /* jade-createandendorseproposal */)
- Is the target proposal preferred? (Note that if any other proposal existed at this time, then "No")
- No: warn endorsingnonpreferredproposal
- Has the user already endorsed a proposal within the target facet?
- Yes
- Does the target facet already have a proposal with the target labeldata?
- No: create proposal and endorsement (comment: /* jade-createandendorseproposal */)
- Yes
4 major cases
- The entity page doesn't exist at all. (comment: /* jade-createandendorseproposal */)
- Create the page, create the relevant proposal
- Add an endorsement from the user.
- The entity page exists but proposal with matching labeldata and the user has not already endorsed a proposal for this facet (comment: /* jade-createandendorseproposal */)
- Create the relevant proposal.
- Add an endorsement from the user.
- If another proposal exists for the target facet: Raise a endorsingnonpreferredproposal warning and leave the preferred bit alone
- The entity page exists and there's a proposal with matching labeldata. (comment: /* jade-endorseproposal */)
- Add an endorsement from the user.
- Raise an existingproposalnotesnotoverwritten warning
- If the proposal is not preferred: Raise a endorsingnonpreferredproposal warning and leave the //preferred bit alone
- The user already has an endorsement for this facet but it is for a different proposal. A. If the target labeldata is not represented in any proposal: Create the proposal (comment: /* jade-createproposalandmoveendorsement */)
- Move the user's endorsement to the target proposal and update the endorsementcomment.
- If the proposal is not preferred: Raise a endorsingnonpreferredproposal warning and leave the preferred bit alone B. Otherwise, if the target labeldata exists, just move the endorsement. (comment: /* jade-moveendorsement */)
- Raise an existingproposalnotesnotoverwritten warning
- If the proposal is not preferred: Raise a endorsingnonpreferredproposal warning and leave the preferred bit alone