 It's actually really good to start. Now I discovered yesterday evening that this is actually a workshop and not a session. So bear with me, it's a real matter of some. So maybe fasten your seat belts. It's a lot to take in, talk to us otherwise. There are many things I want to show you around this and I tried to cut half of it out but everything is important. I know the speaker always thinks this. I hope you think so as well. So let's get started. Thank you for having us here at Drupal South and I'm really glad that I'm in the room with the brilliant views again. We are here to talk about better content workflow, moderation and audits in Drupal 8. I'm Heiker, I'm a senior producer in Wellington. I work for Sparks Interactive and I'm also the sector product owner. And I'm Daniel, I've worked at Sparks since 2014 and I'm the technical lead on our open source distribution sector. Very good. So sector is a Sparks distribution, it's open source, it's Drupal and we use it on a wide variety of public and private sector websites in Wellington. And you see like not only in Wellington. So what I want to show you today is why workflow, what's in the box. Our approach and where from here. So why workflow? The number one reason is the unfortunate events that might sometimes get you even on the headline on the newspapers. Preview, moderation and why workflows fail. So let's start with the unfortunate events. So the main reason we are now shipping all public sector sites, public sector sites in Wellington with workflow is that the day after a site is published, the content team just realizes even so there was this idea of developing content during the project, not much has happened. You have a live site, everybody starts waving their hands, they disagree, they make changes, they make more changes, they make more changes. Now they were on a pre-life staging environment before you published the site. Now every single change they make on a site goes live and they print safe. And they go like, oops, good. So this can and does lead to unfortunate events. So the main reason why we retrofit workflow onto older sites is actually preview. People just want to have the opportunity to make changes to content, have a coffee, know that the changes are safe and then have a bit of a review, a chat to the manager, to the editors and just feel safe and so that they can actually work with the system. So moderation is another point. Moderation is basically just allowing one user role to just work on their content, saving changes and another user role to actually review the changes and publish them. That's a really good thing in Siri. It is also the main reasons why workflows fail. We have all seen this many times before, like we've built all these workflows and then we go in as customer support agents and see everybody has the content moderator or content publisher role. The senior management team just looked the other way, everybody got the tick box. So you want to get your job done and it's totally fine, yeah? So, but most workflows fail even earlier, they never make it to implementation. This usually looks like, because your manager usually drew up something like this. Now workflows can do many things. They can allow your content editors to work in a safe environment where they can preview things. They actually can't resolve your organizational issues. So, why do we actually bother? Workflows can be successful. Involve your editorial team at the start, test with real people, keep it simple. So, what comes out of the box in Drupal 8? So, Drupal 8 made this promise to have content moderation and workflows in Core and it is so super easy, you wouldn't believe it. It takes you less than five minutes. All you have to do is install, sorry, enable two Core modules and you just go into the editorial workflow and tick a box. Now, we did this and we thought like, wow, wow, it's all working now. So, let's just give this a try. And sorry, I don't want to just Drupal 8 here at all. It's really awesome that we have this in Core, but we were just a bit surprised about the outcome when we tried this the first time. Oops, sorry, good. So, where is the Drupal 8 site? That looks like a Drupal 8 site. So, to be really absolutely fair, this is really just a Drupal 8 site, nothing has happened. It was just installed, it's a Drupal 8 site. We installed, we ticked the two modules and we enabled the editorial workflow. So, let me just do a couple of things. So, I now basically go in and add a page. Do I actually have my glasses? Very good, here, basic page, very good. So, I go in, this is my page, I write some lyrics in here and I go save as a draft. Wow, cool, totally looks like Drupal is pink. There's something that tells me what's going on. Wow, okay, so I now publish the page. Wow, my page is published, I think, because there's nothing pink anymore. Okay, so now let's make a change to this change and have a workflow, so I'm like super safe here and I never read anything that is on the screen, so I just click save. I just made a change to a public page. No, no, but I can edit. Okay, and this time I read what is on the screen. Okay, so let's just get rid of this. Oh my God, that's really bad, I shouldn't have done this. Okay, wow, okay, there's a draft button. Okay, so this is the latest revision, but latest means it's live. So is this live? Okay, I need to make an edit now. Okay, okay, absolutely no panic, we can do this, we can do this, okay. So I now go in here and then I go like, okay, just unpublish this, I can't unpublish this. Okay, yeah, okay, nah. Okay, good. Now, we were very sad about this to be honest when we started this. We thought like, oh yeah, it's sorted, wow, we'll just walk. Now we were waving our arms because we made all of these promises to our clients. And we were waving our arms and we were running around and we thought like, oh no, no, no, no, let's throw all of this out of the box, we use Workbench. We know Workbench works, Workbench is so good. We have it in sector seven, we can basically push our clients over to eight, they won't even see the change. Now we have this aim with the sector distribution that we reduce our technical depth. Reducing technical depth means that if it's in core, your work was core. Okay, so that was a no. Okay, so we said like, ah, we don't need to explain it, it's trooper, you're like, we don't need to apologize. I can't show this to my editorial teams, it's just not going to work. Okay, so what do you do? You use trooper, you throw more modules at it. Good, okay, couple of really good ones. Look at moderation sidebar, it's awesome. But it didn't do what we wanted to do. We wanted just to fix a couple of things to make this work, yeah. So we thought like, okay, let's just do the job. We made a long list of things that we really needed or that we thought that we needed. And we just went ahead and picked some boxes and got a developer who just basically made this all work for us. So before I show you our approach and what Daniel has done, I need to go on a bit of a tangent. I need to explain to you where we started. So the sector starter kit is a distribution. It already makes assumption. And you have this on your site as well. If you want to publish a workflow on a site that is already live, you need to work with some assumptions. Now you might have, while you set up the site, you might have set up pre-configured user roles, user profiles and permissions. You need to think about how all of this now fits into your editorial workflow. Now a sector also has a content audit add-on, which is on all our larger sites and our clients love it. We love it, it makes the world go round. So this is nothing we can just throw away or ignore. So just to explain the weight between a content audit and a content moderation workflow. So BAU, business as usual for your editorial team, is just they make changes to content. They load new content. All of this is under moderation. A content audit is something you do once a year, once every second year, before you migrate to a new system, after you migrate to a system. It's a big effort to do this. It's basically next to a business as usual approach. However, there are things that need to be fit together when you have a moderated workflow. So let me just show you what we have done here. So I hope I go in the right direction now. We have, this is just our, no, this is Workbench demo. Ha, ha, ha, sorry, I get dizzy by this as well. Very good, this is our sector demo and I just show you what the content audit does. It's absolutely not rocket science. You basically get what you have in these Excel spreadsheets that everybody is waving around, including me's for years and years and years. You just have your content and you just have a couple of more metadata that is not running the system. This is metadata for your editorial team. So this is a demo out of the box. So nothing has happened here, but I can just show you on a content page. You basically have the editorial section in the sidebar where you have all the other goodies and you have a content audit status, a content development status. If you want to talk about the difference, come to me after the talk. And you have an audit date, you have review notes and document notes. If you want to talk about the difference between review notes and documents, come to me after the talk. Very good. Now, what does this actually give you? So this is a demo of our documentation site. So this is our content audit. And before we go live for the next content push, we sign everything out of for a release. So you can see there's a content development status. So the audit prior to release, this was a big content push. So we actually audited the whole content. So it was signed off and then I said, like, ah, yeah, that's good. There's no assignee. That means nothing is to do. And plus we have a lot of tagging going on. Emma and I, we need to see this. We just need this one glance overview where stuff is at. So we can also fix things. You can also see that Emma and I, we have these little dialogues here, where we just go and restore notes and just basically pass content on. Now, if I want Emma to actually take action on something, I assign this piece of content to her. And then I want her to have a last look before I press publish. There were some time constraints I published. I still want her to have a look. So still assigned to her. And I'm totally sure she will correct all my grammar. Good. Okay. So this is a content audit and we have it and we want to work with it. Good. So the other big point that you might encounter when you put workflow on a site, is just that you have already user profiles and editorial users set up. So the sector out of the box, we have a content editor and a content administrator. So the sector starter kit is our nucleus. It's a really incredible lightweight starting point. And then we have all of these add-ons that you can just plaster on. But the starter kit is totally, it's basically the smallest side that you can imagine. It doesn't do anything else. However, you still have an editor and an administrator that just is the knowledge level of triple and confidence. So for example, the administrator can place blocks, they can access the taxonomy, but both user roles can publish because the starter kit, as of now, doesn't have workflow on top of it. Good. Okay. So we need to work with this. Now, good. Okay. Back to workflow. So what do we need? So we need to stop being sad and stop being waving around us, waving our arms around. Sorry. And just like, okay, like I know. And then we need to make a plan. We need to have a test plan. We do some configuration. We do some testing. And then we see how far we get and then we ask the developer to do some nifty stuff with minimal impact on the code base. Then we test fine tune. We have a chat. We go to clients. We show stuff around. We test, fine tune, repeat and repeat. Good. Okay. So we have a super simple plan. We have two user roles, one content editor and one content moderator. So what we do, we let the content editor create new content and draft and improve drafts. We let them make changes to already published content and draft and they can send drafts for review to the content moderator. They can no longer delete or publish content. The moderator does what a moderator does. They can do everything the editor can do because they are part of the editorial team in my perfect universe. They can send drafts back prior to publication so the editor needs to do some more work. They can publish drafts. They can fast track publication. Now, in my perfect universe, the content moderator, if you do this, the content moderator is the watcher on the wall. They actually need a lot of stuff to support them. So they need to know about best practices in online writing. They need to be supported by a content strategy, a content style guide, a publication checklist. They need to know and care about accessibility. We talk here mostly about public sector clients. They need to be aware of security and privacy compliance. They need to know about the legal framework in New Zealand. They need to know about the official information and public record acts. So these people, they actually need to be trained. They need materials. They need to be supported to do their job. Now, they have a plan. Very good. Now, in sector, everything has a test plan. If you do embark on a content moderated workflow, I highly recommend you actually develop the test plan together with your development team while you do it. In sector, we do this anyway. So we have the sector test plans. And for the publishing workflow, we like to keep our test plans like little scripts. They say what a user can do, what a user can't do. And they follow the natural flow of how the user moves through the system. So the content editor, he can do some stuff and then the content moderator, he can't do some stuff. And then the content moderator comes in and does other stuff and then it bounces back to the editor. And basically, this is kind of this, the other people call it a user journey, but it's basically just common sense workflow. Very good. So we have a test plan. Now, in the test plan, this is not a one and done at all. Like it developed the, because we don't want to work against it, we want to listen to our developers and know what they can do for us with Stuber. We don't want to work against Stuber. It's just going to come back and bite you. So we need some configuration. So with the configuration, it's really, it's really, really easy. So there's no rocket science here. If you have the right user rights on the right side, then you just go into configuration workflow. You have the workflows here. We have a names-based workflow. And basically, it's really easy. You just go in at those states. You think about the transition between the states. So what do you need? Where do you want to transition to? And you then assign a permission for each of those transitions. And then you just decide on the first content type to test this with. I really like with my teams to actually apply workflow content type by content type so that we can work with the content types and what's in them. Good. So the next thing you need to do is you need a new user role. That's like super easy as well. You just tell Drupal that you have a new user role and then you go into the permissions table. And then you need to think about what permissions you remove if you already have user roles from those existing user roles. And then you just go in and basically create this additive so that you have a comparison. So you now can see they can't do this. The content moderator can do it. So these are just the publication rules. There are a couple of other ones. I don't want to minimize this. This takes some time to get right. Yeah, very good. And then you create a couple of test users and then basically you go straight into it. So, very good. So we have done our configuration. We've done our testing. Now this is as far as we get with just pressing the buttons. Now we need to basically go to a developer and winch a bit and then he's going to sort us out. Great. Thanks, Heike. So Heike and I, we've worked together for a long time and together we architected the workbench solution for sector seven. So when we came to sector eight and we had a project that really needed workflows, we saw that it really just wasn't where we needed it to go. So Heike came to me and we started building some of these tools. The first tool was that we render the workflow overlay on published content as well as draft content. So, no worries. Just need to find the Drupal one. Here we go. I also need to rearrange my desktops. Otherwise everybody just gets like, good, very good. Here we go. So content, this is my page. Ta-da. So here on the Drupal one out of the box, there's no moderated overlay. They can't change it to a draft or unpublish it just straight from the screen. So if we go to workbench sector. I need to go in the selection. Very good. Now we are sorted. So this is a published page. It's got the moderation overlay and a custom block just rendering the form. Editor can now change to a draft. They can unpublish all just from the exact same screen. And at the same time, we just added a bit of extra love to it. So our front-end when it added the moderation state made it a bit more bold. Just looks a bit nicer. Better for the editor. Cool. And in sector, the other thing we have is we have a hide admin button. So you can be logged in and you can still see the site in a kind of anonymous kind of view. So at the same time, we extended this to hide the moderation overlay. And when you're viewing a draft, which this one doesn't have one. Doesn't matter, I can very, very quickly correct that. At the top right, we've just added this little bit of text here. You're viewing unpublished or draft content. It just gives the user a little bit more information and when it comes to content like this, more information really doesn't hurt. So out of the box, our workflow and moderation, it comes with a moderated content view. It's great. But we have a pretty large editorial team that has a well-defined workflow. We really just needed a little bit more than that. So now we've added two views. We've got a myEditView, which is really basic. It does what it says. It shows all nodes where the latest revision is made by your user. And then the second view is needsReview. Again, super obvious. It shows all content that's in the needsReview state. What it means is that your content moderators can go straight to the needsReview. They can see all the content that's ready to be published. They can review it and they can publish it if they're happy. One, okay. Yeah. So we used to work bench in Drupal 7 and saw our clients. So we came to the Drupal out-of-the-box revision form. In this form, what is really efficient? It shows you the revisions. It shows you what the current revision is if our clients are meant to understand that current revision means published. But besides that, it doesn't really give the information that we're used to. So using a form alter, we kind of clean this up a bit. We added some colors to show draft and published revisions. And we added just a lot more information. We show revision notes and we show what the revision was, what the new status, the date, the users. These people, like the editors, they need all this information. It's really valuable for them. And at the same time, we added the diff module so that the moderators can see the before and after in a node context. They can publish it and they can see what it looks like on the actual node. Really basic. We added permissions for the two new views I've made so they can be really granularly defined. I don't know if that's the right word. And the important thing is that we added a permission for the revision page because that doesn't exist in core editors and some of the lower level permission users. They can't really do anything on the revision page. So why even give it to them as an option? Now, we don't really like labels that are ambiguous for us and for our clients. When you're using moderation and workflows, view and edit, it's just not enough anymore. What are you viewing? Are you viewing something published? Are you viewing a draft? It just doesn't quite work. So you may have already seen this, but... Sorry, that's the wrong view. Oh, that's all right. Here we go. So we just changed it around a little bit. We've added a bit more context. You now get the view published or view draft based on what version of the node is being rendering. And you get edit draft if you're on... You get edit draft if there's an existing draft available or you get new draft if there isn't one that's there already. Again, it's just all about removing the ambiguity and just giving a bit more context to the user. And then the node form is one of the last areas we kind of felt that was really lacking. In Drupal 7 we did a bit of work to clean this up and we thought it made sense to bring this along to Drupal 8. It's the exact same step as before. Delete, it just doesn't mean anything in workflow. We had an incident where someone pressed the delete button when working on a draft, thinking it would delete the draft because it says delete. And what that did is it deleted the entire node and all of its revisions. After that incident we thought maybe we should clean this up a little bit and make this language a bit clearer. So what we've done is we've added delete this draft which just does exactly what it says. If you're on a draft, it deletes just that draft and then we change the language to delete node. So it says you're gonna delete the whole thing. And then while we're at it, on this form we added a bit more information that just says hey, this really means delete node and everything. Of course that relies on our clients actually reading that extra bit of information and we know they always do that. And the last little thing is a bit of JavaScript, or well the last thing for the admin form is just a bit of JavaScript to set the moderation state to draft instead of default. During Hikers demo earlier, she showed an example where a user will make a change and just scroll straight through the page ignoring everything and then the change is published. So we think publishing should always be a choice. Users should click a button that says published so they know their content is going live. So now they have to do that. It's draft by default. They click a button and makes it published. And it's everything for me so I can pass back to Hiker. Good, okay. So you've seen this long list that we basically created when we embarked on this little journey. And so we fixed all of these issues and then basically we did some testing ourselves and then we gave it to our public sector clients and they had a run-through and they, I mean you are never totally happy with Workflow ever but they really could use the system. They asked us like literally no questions. There was nothing coming back. They just got the test plan. They tested the system and said like yay. They came, that was not a single label. They wanted to be changed. So that was pretty good. So let's have a look how this looks in real life. So I'm now locked into, not the right side. Here, Opera users. Testing Workbench is really funny. You need so many tabs and so many browsers. It's just like your hand is just going to explode. Anyway, you are locked in here as the Hobart editor. So this is a user profile with content editor rights and you are locked in an Opera incognito window as the Hobart moderator. So let's just see if we have improved the situation. Good, okay. So I go add content and then I just go page and I go like yeah, I create my page. This is my page and I go and click some buttons and make some stuff happening and I write some song lyrics in here and some song lyrics in here and then I go down and I can't actually do anything else. I could send it straight to review but I actually want to look at it. So I look at it. Yeah, it tells me a lot of stuff and it tells me that I'm viewing a draft that the draft is unpublished and then I can just go and look at it and say like wow, this is really a sophisticated page. So I just go ready for review and I say review this please and then I apply that thing and I can still see the change and because we all know this once we have pressed send there's always the little thing we still want to change. We can actually do this so you can still edit your draft and you can leave little log messages here. Very good. So the moderator just goes in, comes back from a coffee, goes to content, opens the needs review and goes like ah, yeah, I got the send so let's have a look. Metadata is ticked, yeah, that looks good. This all looks good. Okay, seems to know what he's doing. So let's look at it. Yeah, very sophisticated, very elaborate. Yeah, I like the look of this. Okay, so I basically now publish this and then apply publish. Okay, and now the marketing people come and say like, you know what? This page there just have a totally different idea. That needs to be a second line of lyrics. So we go oh yeah, okay, I can do this. I do a new draft. I'm told that this is a new draft and I go and say yeah, totally do this. Very good, and it stays in draft. I don't need to worry about this. And then I go, this is my page. And I can see I'm now viewing the draft and it's unpublished. So I have all these confirmation. I can just take a breather and see yeah, this looks good. Yeah, and I'm now can send this back to review and say this one please, very good. Apply and then the moderator comes in and back again, moderators of lots of coffee breaks. So I go in and they also get little ping messages. You can do this with all kinds of tools. So they go like, yeah, okay, there's something coming from this guy. Okay, not much in a review notes. Okay, I will totally figure this out. Oh, he made two drafts, that's interesting. So let's just see. Duh-duh-duh-duh-duh. Oh yeah, oh, okay, somebody told him to write some more text so I can deal with this. So that looks good, let's just do a visual check. Visual check looks good. Yeah, yeah, I totally published this, very good. Oh no, actually there's something wrong. There's, no, no, I don't like this. I want to like the third line here. So I just go and say, make some more changes. Very good, good. Now, the page is still in its old process. I have a draft and it's on, oh, now I get confused. You draft, should be on ready. Oh no, no, no, sorry, I send it back. Sorry, use case, I send it back. It's no longer on needs review. I send it back to the editor as a draft, very good. I did the right thing, very good. So now I go in here and yeah, I need to refresh my desk. So now I see I've gotten us back and I have a bit of note and then I go in as edit draft and then I go and say, yep, very good and I save this, very good. And I go like, mm, yeah, looks good. And then I apply and I've sent this to ready for review. I've made no changes here and this looks good, very good. So I'm happy with this and the moderator, just this time it goes in, looks at the page again. Yeah, now it looks better. And I just publish this change now and I have the Lolo up here, good. Okay, also unpublishing is like super easy. I just go unpublish and unpublish the page and there's no longer a published version of the page. I have a view draft, it doesn't remove the whole page and I can now create a new draft and work some more on the content and then I can publish it again. So you can already see even with all of those fixes, workflow is a bit hard, but you can now see everybody actually can work in a safe and secure environment. And the changes Daniel has made to the overall code base on big. So we're really trying to just use what is there. The only thing where we actually needed to write code were the tabs, the override for the tabs and there are just business rules for this and for the little buttons that just keep you safe. Very good. So they're from here. Now you have seen through the demonstration, I've glossed over a couple of things. So we are still working through this. So what we now want to do is we want to combine the content audit status and the moderation overflows. We also want to have even more messaging displayed on the screen. So in our perfect world, this kind of dialogue you have seen on the audit screen should actually be displayed somewhere on the published note. So we're just working through these just to have the dialogue between the two editorial roles just on the screen, more visible. We also want to have that other way around. If I do a content audit and I have moderation in place, I need to combine moderation messages with audit messages so that everybody knows what is actually under audit and what is under BAU. This is actually quite an undertaking. And then we also want to have just these dashboards. These views that Daniel has built are really, really good. But I want this dashboard that tells me like everything including all the review messages. Now for that, we need to dig a bit deeper and just attest to some more with our clients. And there's also, as you have seen in workflow, seeing that now all entities or more entities than in Drupal 7 can be put on the workflow because there are now full entities like media and blocks. We also need to think about this. So at the moment, this was just our little fixes to get our first editorial team up and running. And as I said, there came no questions back, which was really good. So we need to work through a very, very long list of backlogs and we just work through this. And then it's why we were doing this. We also had a second client that went live and went like, oh, yeah, now I need workflow. So we've done it twice. And in sector, the rule is if you have done it twice, the third time you need to publish. So we are just trying to figure out in our heads how this actually figures into everything and how this connects really well with the starter kit architecture. Very good. Now, a big shout out to all the people who have done this before. The workbench team, as I said, so Drupal Core basically put part of the workbench stuff into core, so they already suffered under this. We stole some more visual cues from workbench. They are really great. We basically, this is basically standing on shoulders of giants. So big shout out to workbench. You can look at the workflow sidebar. It's definitely worth a look. It just basically puts the dialogue into the sidebar. It just didn't work for us because you still have these discrepancies between what the tab says and what workflow sidebar said. But please check it out, it's really good. A totally different approach to workflows and working in teams as taken by the thunder distribution from Boulder. So check those things out. As I said, our approach is not the only one. If you want to embark into something and you want to work this, want to have this work consistently across client, have a look at what other people have done. Very good. Are there any questions? Yes, please. Yes, we don't have a track lead, so. Thanks very much for your talk. Can we just go back to... What was the module that showed the difference between your last draft and your new draft? Oh, that's called this. And that's called... Okay, cool. And does that work with complex content, such as images and tables? Yes, it's really, really good. So Diff has just one thing that it does that interferes with our bootstrap theme. I glossed a bit over this, but I'm totally happy to show you this. Let's just see that we get back into a revision. Oh, no, I could have just used the revisions tab. So the Diff module, what you basically can do is, you can compare any two revisions, and you can, sorry, oops, you can scroll down and compare the selected revisions. And I'm really afraid that this doesn't do much, but you can use this visual compare. I think what you are after is more something like the splits, split field set. And if you have media or attachments on the node, they are listed there. So this shows basically the changes to the body content, but whatever you would have done, it's actually there. Yes, Daniel, sorry. Yeah, I'll check for this one. I have two questions. One is when you do the moderation, you put the log message, where does it go? And this is the first question. And the second one is you use the JavaScript to change the default value when you publish or save as a draft. Why do you use JavaScript instead of the form API? The JavaScript one, I can answer really quickly, and it's quite easy. I just already had the JavaScript there basically from another project, so I just built it across, but in the same way you could definitely do it with PHP as well. There are also other things we haven't fully figured out and there are, because the node edit form, as soon as workflow is on there, it actually draws stuff from different modules. So we also still have the problem. I told, oops, no, that's not what we want. We just want content, motivated content. This is my page. It's really, really quite hard to get rid of some of these messagings here. I still find this very, very hard to understand where I actually come from and where I go, so when you play around with this bit, just with a tuple out of the box, it's really, really strange. Yeah, that's actually triggering some memories of mine. Yeah, yeah, I meant it. I may have had that JavaScript sitting around already because I ran into issues using the form here, API and workflow and moderation, that yeah, it's triggering something in my brain I can't quite remember, because we did it, we built it quite a while ago, but yeah, it's something to have another look at, but I think I did run into issues when I tried to do it just with a traditional kind of form auto. Yeah, so they're different, they're basically, as you've seen in the backlog, there are some issues we still need to address before we can, before we are on publication status. This goes, this is the default log message, that's up here. So that's the default log message and this is exactly this that we need to decide how this actually sits with our review notes. Yeah, so that's just using that default field, but as you also have seen in the moderation, and I hope I skipped around this too quick to notice, but there are also some discrepancies on when you use the moderation overlay block and you're on a published note, you're actually editing a draft. So you're adding, you're publishing the draft, not the published note, but this is all coming from core and we are just trying to work around it at the moment. And there's another thing that is also in Drupal core, which we still need to totally figure out why that is. We think we understand it, which is just content. If you just go to the moderated content view and you use those links, you lose the edit tabs. And this is something we just inherited from core and we just need to dig deeper, but it's just an URL thing because it doesn't say latest revision, yeah. So it's not a real bug, but if you go edit and then go view the, sorry, latest revision, you have the tabs and the tabs remain there. But if you go onto the standard note seven revision number URL, those tabs fall away. But as I said, so this is just something we inherited from core. We just need to dig deeper what the syncing is behind this and then talk to some people. And just super quickly, the revision log message, it is shown on the revision tab as well. So you can see things that you enter in there. Yes, you can see in there, but I would still want to have it in different places. I haven't done any, sorry. Yeah, if they were done. If it was done, that would show on the left next to unpublished, like the state. It would show the note and then the state. See, this is the thing where the drafts over the tabs on there. But we can just go the long way around. Then you know, are you sure about this? Yes. Okay, okay, okay. Let's just trust him. If we don't have anybody to tell us, oh God. Okay, it's 12 o'clock as well, but we take this question. Okay, thank you. My first question is, can we have different moderation roles? And if so, can we have an order of moderation? Like the reviewer from role one to role two? Oh, yes, yes, you can do this. You just need to sit down with a spreadsheet before you scope the transitions. So for example, I just show you a very quick example here. Are we in, yeah, we are in ours workflow. So those workflows, and this is a big change from workflow, sorry, from workbench moderation. So basically you can have multiple forms to a single two. So for example, if I don't want the content moderator to be able to step over the review step, so if you don't want fast track publishing, if I want to do another role to be able to do the fast track publishing, I can do this. I can create another role. And then I just basically shorten this that they can only go, that the one role can only go from ready to review to publish. And another role can fast track from draft to published. And also a big tip, when you do your moderation rules, make them additive. Like basically our moderators at the moment, they are content editors and they are content moderators. If you have context workflows, the easiest way is to not lose face in the permissions is to go, yes, you can do level one publishing, level two publishing and level three publishing. So you just assign this user all three roles, not at all at the moment. So the custom code I've read in is transferable across to replay sites and the goal is to open sourced it as well, I just haven't had the time yet and I want to clean up a few things. So we'll definitely be building something for sector, like a sector workflow add-on. And what's probably going to happen is that that add-on will just rely on the custom module that I'll open source. Oh, there. The content audit. The content audit is tied to sector, like it's a sector add-on, which just means it builds on top of our distribution. So how tightly coupled is that? It's tightly coupled, yeah. It essentially relies on sector being there, yeah. Yeah, but those views, so if you look into the configuration settings for the sector content audit add-on, you can find those just on sector and Z. It's super easy to reproduce. So you can totally make this work just with our site building documentation. You can super easy reproduce this on your site, which is what we've done before we built the add-on. So if you just go audit, this is the, yeah, this is the site building reference. So basically you have all of these, all of the things that we created and just the taxonomy, the overview, admin structure types. So basically all the fields, everything is here. So it's really easy to reproduce. Yeah, and most add-ons are all just standard Drupal config that rely on some things from sector being there, but there's not really much custom code that says this will only work for sector kind of thing. You can recreate all of this stuff on your own site and it will work, just a lot more button clicking. And the only thing which we are not 100% sure about with the content audit, I really, really like it to be in the sidebar block where all the modules sit, but to keep it in the sidebar block, you need a developer. Yeah, this is nothing where we can just in Drupal where we can just say put this in the sidebar. This doesn't work. This means, for example, if I decide on a page that I want an assignee or that I want 10 more taxonomies because I can, then I can create those fields and put them under managed form. But then Daniel has to go and extend the script that puts it into the sidebar, so he has to code. I really don't like this. We tried it with a field group as well, but at the moment we can't configure field groups. There's no configuration that we have found where we can just say, or we just make you a nice field set, make it a bit different color, throw it in the admin seam into the content body. We couldn't do this either, so our fields would just float around so at the moment they are parked to the side. Yes, thank you all.