Apologies if this has been asked before, I could not find anything related in the issue queue.
I am seeking a method to schedule the publishing of specific revisions of nodes. Scheduler works very well for the nodes themselves, but for our use, where many people collaborate and schedule content for publication all the time, scheduling a specific revision of a node to go "active" is an important feature.
Is it viable to build this feature into the architecture of Scheduler? The UI would need thorough care, so as not to clutter and confuse a user with permissions to schedule revisions. One would also need to consider how many revisions could be scheduled, and how to avoid overlapping scheduling timeframes, and so on.
In short: has anyone considered this as an extension of Scheduler, or are there other more obvious choices that would work alongside?
Cheers,
Achton
Comment | File | Size | Author |
---|---|---|---|
#4 | revision_scheduler.png | 8.24 KB | achton |
Comments
Comment #1
Eric-Alexander Schaefer CreditAttribution: Eric-Alexander Schaefer commentedI think somebody needed something like this before, but that was a couple of years ago.
How do you publish revisions? The status of a node is the same for all revisions of that node. Do you want to switch between revisions? I don't think this would work at all as far as I understand revisions and your workflow. But maybe I am misunderstanding something. Could you explain your workflow more detailed. (What do you want to achieve and what is blocking you?)
Comment #2
achtonThanks for your reply, Eric.
I want to allow an editor to prepare a new revision of a node (e.g. an article) and schedule the updated article for publishing on a specific date and time. Ideally, the contents of CCK field could also be versioned in this manner.
With Scheduler, I would go for the simplest possible solution, which would be to add a
vid
column to thescheduler
table. Its purpose would be to maintain information about which node revision to publish at the given time.As far as I can tell, an immediate side effect would be that you could schedule CCK fields to be updated at specific times, since they are also controlled by the core revisioning system.
Even though that sounds simple, I can see many gotchas that need to be addressed for such an addition to work. A state diagram for the whole thing would probably be a good idea.
What do you think?
Comment #3
Eric-Alexander Schaefer CreditAttribution: Eric-Alexander Schaefer commentedCan you "publish" a node revision? How would you do that?
Comment #4
achtonYou would set a publish date for a node revision (or several revisions), and a cron job would "publish" that revision of the node at the set time, thus replacing the current published revision.
I attached a (very crude) prototype of a UI to illustrate my point.
Comment #5
Nico Heulsen CreditAttribution: Nico Heulsen commentedLet's fix this in the 7 version and port this back to the 6 version.
Instead of checking the node Id, we should check both node ID and revesion ID of the node.
Comment #6
jonathan1055 CreditAttribution: jonathan1055 commentedIn relation to Eric's questions in #1 and #3 I also do not understand how you can publish a revision. Scheduler currently changes the node status from unpublished to published, or vice versa. Can a node version be altered forwards and/or backwards and the content get changed accordingly?
Comment #7
Nico Heulsen CreditAttribution: Nico Heulsen commented@jonathan In drupal 7 a revision also has a status field. But nevertheless we need to change the revision id of the node to set this revision active.
I think it should be possible to achieve this. There are indeed some questions to ask, like what if 2 revisions are scheduled and they cross eachother. But these are things we could solve by providing settings I guess.
Comment #8
jblumenfeld CreditAttribution: jblumenfeld commentedThis would be very useful for my company site as well.
Our content creators currently clone nodes and then schedule the new node to publish and the old one to unpublish. This usually also means a manual step to update the URLs and makes node relationships difficult to work with.
Comment #9
recidive CreditAttribution: recidive commentedIs there anyone working on a patch for this?
The publishing, people are talking about here, is actually replacing the published revision with the one scheduled to be published, in other words, change the vid of node table to point to the revision scheduled to be published.
This makes sense only if user is editing a node or a revision. So I think the UI for this should be in node/revision editing form.
Here is how I see this implement:
By doing this we cover several use cases, we can even handle edge cases where someone need old revisions to be published after newer ones.
What do you guys think about it? Am I missing something? If you are ok with the approach I've outlined here, and no one else is working on a patch for this, I'll take a crack at it.
Comment #10
skwashd CreditAttribution: skwashd commented@recidive I like this plan.
Just to clarify. If revision scheduling is enabled, then the scheduling options would be listed in the revision section of the node form. Can you please confirm this how you were planning to implement this.
Disclaimer: recidive is working on my team.
Comment #11
Eric-Alexander Schaefer CreditAttribution: Eric-Alexander Schaefer commentedI don't like this idea at all. This feature is actually a module by its own. It would share almost no code with the current features of scheduler. Why not make it a separate module?
Comment #12
recidive CreditAttribution: recidive commentedWe just came across this sandbox project, and will evaluate it to see if it meets our requirements. Perfect timing BTW.
http://drupal.org/sandbox/merlinofchaos/1349690
Comment #13
Dave ReidWe also wrote http://drupal.org/project/revision_scheduler and were only able to post it a couple days before merlinofchaos posted his sandbox. We're trying to coordinate on what's the best solution going forward for revision scheduling.
Comment #14
rickmanelius CreditAttribution: rickmanelius commentedIt appears there are 3 separate projects trying to tackle this problem...
scheduler_workbench and revision_scheduler have issues with scheduling revisions while having a published version. In fact, they will either prevent it from being scheduled (scheduler_workbench) or simply unpublish the current revision (revision_scheduler).
Entity Revision Scheduler is interesting and does combine the aspects of workbench moderation and revision scheduler such that you can schedule from a draft, but the UI needs some work because there are situations where workflow can come to a halt and there is no easy way to address/fix the situation.
With respect to Eric's question in #11. The issue is evolving content. We're seeing more client requests where they want the same node to change, but want to do it with moderation/approval and then schedule said change so they are not having to hit publish at midnight on a Sunday. So combining it all together, scheduling + drafts + moderation is becoming more important, but there isn't an easy way to do this yet using the available modules. And I'm not sure if it's a simple modification or if the changes would be more extensive.
Comment #15
rickmanelius CreditAttribution: rickmanelius commentedMy apologies for my comment in #14. I have further tested revision_scheduler and it does allow for the node to remain published while scheduling the draft.
Comment #16
shlapa CreditAttribution: shlapa commentedFYI, there is one more module called revisioning_scheduler which is part of Revisioning module. I'm currently using it, but it has limitations - only one revision could be scheduled at a time. I'm looking for more flexible solution where several revisions could be published/unpublished at any time.
Comment #17
jonathan1055 CreditAttribution: jonathan1055 commentedClosing this issue now. No activity for 6 months. As Rick said there are plenty of other projects tackling this issue, and I am fairly certain that we will not be implementing it in Scheduler.
Jonathan
Comment #18
RavindraSingh CreditAttribution: RavindraSingh as a volunteer and at Srijan | A Material+ Company commentedThe issue is still exist in the system with workflow system
Steps to reproduce -
Comment #19
RavindraSingh CreditAttribution: RavindraSingh as a volunteer and at Srijan | A Material+ Company commentedComment #20
jonathan1055 CreditAttribution: jonathan1055 commentedHi RavindraSingh,
Thanks for your interest in Scheduler. However, as stated by three of Scheduler's maintainers in the above thread (Eric Schaefer, Rickmanelius and me) this feature request will not be added to Scheduler 7.x. There are four other modules tackling this problem. Scheduler also has good API functions allowing you to write custom processing when a node is scheduled or published - see #2083277: integration with hidden nodes and #2221671: Integrate Scheduler and Hidden Nodes for example.
By the way, status = 'Needs work' is when a patch has been submitted and the changes needs working on. See https://www.drupal.org/issue-queue/status
Jonathan
Comment #21
jonathan1055 CreditAttribution: jonathan1055 commentedFour weeks have passed. Setting status back to 'closed as designed' for the reasons explained above.