-
Notifications
You must be signed in to change notification settings - Fork 749
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
[Enhancement]: Integration of Content Workflow API #6115
Comments
WIP. In the dnn-workflow feature branch, I’ve implemented minimal code to enable content workflow on the site:
In
To demonstrate the In Editors can now search for Workflow actions can be executed within notification messages. Finally, the draft TODO:
|
This is really impressive, great work! |
I love this, very useful. We are really looking forward to this. One thought I had - it might be there already but I am not sure - a common use case (step) in most workflow processes is to be able to send a Preview Link of the not-yet-Published page to someone so they can see it even if they are not logged in. Is that covered somehow? |
@jeremy-farrance as of now and very likely the MVP scope of this work, this will not be possible. The workflows (relevant for publish a draft) are tightly coupled with the permission system. The versioning system is I guess a separate topic. This could theoretically be done with a link, but there would be quite a bit of effort to ensure that such a link is secure and can't be guessed (like when switching skins in DNN), since that would leak potentially vulnerable data. Imagine a company which is preparing an stock-relevant update info on their website, where the release of information must be timed according to regulatory rules. If people could just preview the next version of the page with a ?version=draft or something, this could lead to serious problems. So basically I believe it can be done, but would need a lot of consideration to figure out what should be done and how. This will take time and discussions, so should not be in the initial release - and could also be contributed by others ;) |
Sharing DNN love ❤️ and respecting the work of @valadas and other giants 🏆 since the beginning of DNN time. 👏 |
WIP In the
Here is a demonstration:
TODO:
|
This is AWESOME! |
I would like to double down on @mitchelsellers comment - this is INSANE on so many levels (incl. the question: why did we wait so long!). @tvatavuk this is amazing! |
🎉 All planned tasks for this PR are complete! 🎉 The last three planned activities were:
🧪 Tested with:
📝 Side note: A huge thanks to everyone who helped with this PR! 🙌 |
@tvatavuk THANK YOU! for this amazing contribution! I will try to get things tested/reviewed as soon as I can, and I know others will as well |
@tvatavuk I believe some of the buttons for approve etc. were still optimized. |
This describes a typical use case of the "Content Approval" workflow on a page:
Additional Features:Content ManagersAdvanced Page Search:Users can utilize Advanced Page Search to find a list of all pages filtered by workflow state, type, and other criteria. Administrator Workflow Settings:An Administrator can control workflow settings for the entire site by navigating to: Page-Level Workflow Settings:Workflow settings can also be adjusted on a per-page basis by going to: |
@tvatavuk really looks great. |
ContentWorkflowDNNModule is example of DNN module with content workflow integration. This module offers a straightforward implementation of a tab content workflow, facilitating content creation, editing, approval, and publishing within a DNN environment. |
Is there an existing issue for this?
Description of problem
The Content Workflow API within DNN Platform has been developed but remains underutilized because it is not fully integrated and user interface is missing. This limits the ability of Content Editors and Content Managers to efficiently manage and publish content.
Description of solution
@iJungleboy and @tvatavuk have been analyzing the current state of the Content Workflow API within the DNN Platform and determining what is needed for minimal integration to allow users to utilize the Content Workflow API, enhancing the overall content management experience within DNN Platform.
Key aspects of the solution include:
Workflow Configuration:
TabActions - Implement IWorkflowAction:
Web API
User Interface Development:
The proposed enhancement focuses on making the Content Workflow API accessible and usable by Content Editors and Content Managers through a user interface within DNN Platform. This will empower these users to effectively manage and publish pages, streamlining the content management process.
Description of alternatives considered
No response
Anything else?
Here is some info related to Content Workflow API implemented in DNN Platform.
Introduction
DNN Platorm includes a content workflow system primarily reliant on a
ContentItem
that may be associated with a Tab, Module, or File. Additionally, there is a standalone workflow engine in the Html module, which currently does not integrate with the general DNN workflow system and needs to be integrated.Standard Workflows
Three primary workflows are pre-configured in DNN for immediate use in any new portal setup:
Workflow Management Classes
System and Workflow Managers
Detailed Workflow Types
Direct Publish
Enables immediate content publication without intermediate steps.
States:
Save Draft
Allows content to be saved as a draft, undergoing further edits before final publication.
States:
Content Approval
Allows an author to manage content and then have it reviewed by other users before it is published.
States:
Workflow Engine Features
Core Classes and Interfaces
Workflow Actions and Extensions
Workflow Action Types
WorkflowActionTypes Enum
Represents the workflow action types.
StartWorkflow = 4
: Starts a workflow for a Content Item.CompleteState = 3
: Completes a state, moving the workflow forward to the next state. If the next state is not the last one, it sends notifications to the reviewers of the next state; otherwise, it sends a notification to the user who submitted the draft once the workflow is complete.DiscardState = 2
: Discards a state, moving the workflow backward to the previous state. If the previous state is not the first one, it sends notifications to the reviewers of the previous state; otherwise, it sends a notification to the user who submitted the draft when the workflow is in the draft state.CompleteWorkflow = 1
: Completes the workflow, no matter what the current state is. It also sends a system notification to the user who submitted the workflow to inform them about the complete workflow action.DiscardWorkflow = 0
: Discards the workflow, no matter what the current state is. It also sends a system notification to the user who submitted the workflow to inform them about the discard workflow action.Tab Workflow Settings
ITabWorkflowSettings
Manages workflow settings at the tab level, providing methods to enable/disable workflows and set default workflows for specific tabs or the entire portal.
int portalId, bool enabled
): Enables or disables the tab workflow for the entire portal. Corresponds toTabWorkflowEnableKey
in Portal Settings.int portalId, int tabId, bool enabled
): Enables or disables the tab workflow for a specific tab. This won't enable the workflow of a tab if the tab workflow is disabled at the portal level. Corresponds toTabWorkflowEnableKey
in Tab Settings.int portalId, int workflowId
): Sets the default workflow for a portal. Corresponds toDefaultTabWorkflowKey
in Portal Settings.int portalId
)int portalId, int tabId
)Tab Workflow Tracker
ITabChangeTracker
Tab Version Builder
ITabVersionBuilder
Null
if the Tab has no unpublished version.ModuleInfo
objects associated with the unpublished version of a page.Content Workflow Service Controller
NotificationDTO postData
)NotificationDTO postData
)Note: This controller is not very useful due to complications related to Notification.
Model
ContentItems
Tabs
Modules
Files
Data Model and Database Schema
A comprehensive data model supports the workflow system, detailing the associations between
ContentItems
and their respective Tabs, Modules, or Files, including publication states.Future Enhancements and Research
To fully realize the potential of the DNN workflow system, further enhancements are necessary, particularly in UI development and the integration of orchestrated job functions. These would provide a more intuitive and automated workflow experience.
Other Info
Do you be plan to contribute code for this enhancement?
Would you be interested in sponsoring this enhancement?
Code of Conduct
The text was updated successfully, but these errors were encountered: