 My presentation is going to be a little more technical than Emilius And I'm going to talk about the features that we already had for a long time not just the ones that coming in 4.0 My name is Marina Glancy and I'm a technical architect of Moodle workplace. I'm not exactly the person who speaks on the presentations a lot. So bear with me And also this desk is tilted and my water slides off it Okay all right so First of all, I've noticed that there is a bit of a misunderstanding about what workplaces. So I want to Clarified in the beginning Moodle workplace is not a fork of Moodle. It's not something completely stand-alone it is Moodle LMS in the base of it plus a little bit of core modifications Plus our plugins. I think at the moment we have about 17 plugins some of them are separated because of Separating functionality some of them are separated because we need different plugin types but Most of them are not intended to work in separation from each other So yeah a lot of times people ask can we just use this plugin for workplace? and probably not unless it's Certificate plugins the plugin set that is already available as a third-party plugin All other plugins unfortunately work very closely In coordination with each other, especially with multi-tenancy and if you take it outside I'll probably break because it will call some functions from Multi-tenancy or call some something from our element library This is why Moving something from workplace to LMS takes time and especially Report build it took a lot of time and like really said we are pretty exhausted after that and we lost a lot of time But we will still be contributing to Moodle LMS all the time. We will be moving Either existing workplace features or we will be developing new features in LMS so we can use them in workplace as well because this is our commitment our agreement with Everybody I guess in the whole community so Moodle workplace has the same version numbering as Moodle LMS so Three workplace 311 is based on LMS 311 workplace for zeros best and for zero and so on And my minor releases as well. So with the minor releases we release them one day after Moodle LMS releases the minor releases So we always can have secure a product with all security fixes with the major releases. We normally delayed By a month but 4.0 Well much longer time because of a lot of changes in the UI and also Converting everything that we had to use core report build instead of tool report builder Okay, so yes another question that is being asked. So if you want to try workplace you can move your LMS site to work places and then you can move it back from workplace to LMS So this is possible. The only thing that you're losing is all the data that is in workplace plugins So everything else like course enrollments, of course Activity of users cohorts, whatever you have in LMS stays with you So i'm going to talk about Sorry, i'm going to go back to this slide. So there are a lot of features in workplace I'm not going to cover all of them today. I'm going to talk about only Multitenancy and dynamic rules and a little bit about organization structure Otherwise, I just I'll just have to show just a little bit of everything in this time and then Pretty much will be the same as showing nothing But you can come to our stand. You can come to Model stand or partner premium partners and they will give you demos on the other features that are interesting for you Right, so multi-tenancy was the very first requirement for the workplace and it's something that differentiates it very much from LMS and it's Something that requires the most of the core modifications that we have This is something that would not be possible if it was just a plugin because there are a lot of places in model LMS where You see the list of all users in the system For example, you go to the course to the manual enrollment you click the manual enroll button There is no way in model LMS to say show me only a subset of these users. You will see all users in the On the side so with the help of multi-tenancy things like that Have restrictions so they show only users that you are allowed to see Because of your tenant allocation so the requirements for multi-tenancy were separate user management so that you have several sub organizations and A tenant administrator and each of them can manage users in this sub organization Separated content content so there's like you have courses that belong to one tenant that another tenant users don't see and so forth and branding so each Users from each tenant will see the side a little bit different different colors different Blocks things like this But at the same time keeping the single code base And having shared contents that everybody can access from all the tenants and also cross tenant reporting So I hope I don't need to explain much more details on multi-tenancies I can show you what we have in the workplace So the very first thing we implemented for multi-tenancy was category level capability to browse courses so you can say that This user like for example has a role to browse Courses in this category and this user is another category and they don't see Each other's courses So this was a huge change that we contributed to LMS before we started workplace before that if you remember Each user can see either all courses browser the all courses or none. It's like you couldn't really separate it in the per user or per role Part tenant user management was another thing that wasn't from the very beginning So the tenant administrator can manage users in their tenant and per tenant theme settings the branding Over the time so the workplace will start working on workplace already over four years ago So over the time we add more and more features to multi-tenancy as you could see on the road map Emilia was showing we're going to add even more features to multi-tenancy Because this is something people keep asking so we added csv user upload for example you can Give tenant administrator permission to upload the users through csv without Seeing you're affecting other tenants you can Tenant the global administrator can upload users and allocate them to the tenants from csv file Per tenant user profile fields so you can configure which profile fields belong to one tenant which can to another or visible Per tenant authentication. This is gradual process. So at the moment we made manual Authentication method multi-tenant self-registration auth to and some or two and some or two is actually interesting one because this is not part of muddle lms a workplace. This is a separate plugin developed by catalyst and we Added hooks to their plugin that allow it to work with multi-tenancy And if it's installed on workplace it becomes multi-tenant if it's installed on muddle lms it is Like it was before um We added per tenant default dashboard. So the dashboard that every user sees when they log in it can be customized per tenant and Mobile app 4.0 will also have Possibility to have branded mobile apps per tenant I forgot to mention that i'm only talking about lms features here all workplace features They are multi-tenant from the very beginning so the dynamic rules organization structure programs certifications everything it is all multi-tenant And it was multi-tenant from the beginning Okay, so now i'm going to switch to demo so as As I mentioned we have Per tenant authentication methods and this is the demonstration how they would look on the login page They also work as multi-tenant in terms of synchronization, but I think login page is more visual So this is one of the tenant on the login page of one of the tenants on the my side as you can see it doesn't have any Buttons here and if I switch to Another ten by the way this tenant switch on the login page is optional. You don't have to have it You can see that this users from this tenant they can sign up Yeah, the self registration is enabled And if you can if you switch to yet another tenant, they don't have sales sign registration But they have google and also they ask two providers can be configured per tenant As for the user profile fields, there is another sorry um Now the difference of for example, I created different profile fields per tenant already on this side and added them to the Registration form so you can see that if user from this tenant is trying to self register that they're being asked about their favorite color and If user from this tenant tries to sign up There are different fields here. So this is out of the box in model workplace. You don't have to Install any additional plugins so you can have different profile fields per tenant um I have that my notes here um So let's um, that's an interesting complication Why is my keyboard not working? Oh my gosh Okay, sorry. I keep having technical difficulties today. You can see that I'm a technical architect. Yeah um So global administrator Can manage the tenants uh and can manage the quick login links for them. So if you give one of these Links to the individual users, uh, they when they click on it, they will immediately see the login page of their tenant they So they can have their branding from the very beginning and as you saw in emily's presentation One of the things on the roadmap is per tenant Urals so you can have even have different URLs for tenant in the future But it's already kind of possible with some work around. So I was just showing it to somebody and the our workplace stand How to configure it even right now? um For each tenant For each tenant you can have Their own branding so like their logo their site name Their authentication configuration So which authentication methods are enabled settings for individual authentication methods And so I'm not going to show all the in the gels But I'm just briefly showing you that this is how you configure it all So this is not another thing I want to show you so as a um global Administration I can administrator. Sorry. I can go to the list of all users in the system So where I will see the tenant and I'll see the profile fields for each of these tensors, but if I Go to My tenant management So the administrator also has their own tenants. So there everybody all the users belong to one tenant in workplace um I'll see less fields because I don't see the tenant field. They're all from the same tenant So as a global administrator, I can switch between the tenants So in this tenant, for example, if I go to the user management, I can see the profile fields the favorite color Assert on the dashboard that belongs to this particular tenant And this is how you create reddit users in workplace, by the way So all everything is in model pop-ups It's like less clicks less waiting time to load the page And in fact, uh, the model forms that we developed for workplace. We also contributed to model lms So this is might be something that Wasn't very visual for the users, but there's another contribution that we made Okay, so That's all I want to show today about multi-tenancy, but there's much more to it Um So now talking about organization structure. So organization structure, uh in Model workplace is designed to separate access and provide more granular reporting We're not trying to substitute hr systems. Uh, we provide some tools to integrate with them Instead so there's csv upload their web services. I think Um, some partners created their own integrations with Individual hr systems We don't ship any out of the boxing model But probably we should we just need to pick what one which one is the most used Um So it's very flexible one person can have more than one job and report to more than one manager But that doesn't have to can have no jobs at all As hierarchical structure in both departments and positions So it's like you can report if you report on department you can Include or exclude sub departments, for example There are a bunch of predefined reports that come with model workplace that are based on organization structure and emily was showing some For my teams my teams block and all the reports that are linked from it. So it's like even the manager can see reports on their Teams and like overdue programs and things like this And also you can use organization structure in the reports and this is um what I want to Show so I'm gonna I'm gonna need to have two windows for this because I'm gonna uh Log in as um Sorry, I walk away from microphone So I want to log in as a tenant administrator and as a Manager in organization so this is um tenant administrator They do not have any jobs. They don't have any courses. Um So they don't have any teams as well So you can see organize by the way, did you notice that this menu is different when I'm tenant administrator because it doesn't have the global section um So if I go to my organization structure, I can browse or edit organization structure so you can see that there is a hierarchical structure of departments and Also hierarchical structure of positions. Well, I think this is not very common It's for the demo site, but usually normally you would have either hierarchy one or another When it's both it might get confusing Um And you can see that positions Some positions have manager permissions and You see my mouse, right? and There are permissions for this Manager for example, this manager is able to allocate their team members to the programs and certifications View view their reports and receive notifications Again, I'm not going go deep into each of these functionalities, but this is Like how it's all configured and the jobs assignments is just a list of all the jobs that stuff has Um, so how the organization structure can be used. So when you go to the report build them um I missed the button When you go to the report build them So I already have a report here. This is user report. It has employee name and email address So first of all what I can do is I can add the Fields from the organization structure. So I can add the user's department or position I like this position department field. So that has both and Also, you can see that Some users have Several jobs. So I'm going to aggregate it. So it looks nicer So I'll just At comma separate value. So I have one line per user now and all their jobs um I can add a condition to the report based on the organization structure. For example, I can say that I only see people From this branch of positions or from that department Um, so this is report builder. It's up to you how I configure, but there's an interesting one Interesting condition That doesn't exist as a filter. It only exists as a condition Uh It's called a relation to the report viewer. So what I can configure here is I can say that I want Managers to see only people That report to them so this uh, so this uh report will only show people who report to me and As I said, I don't have any jobs here. So I have nobody who reports to me Okay, so now if I look in as manager And I go to Okay, and I go to my reports. I don't see anything I don't see anything here because I wasn't added to the audience It's a good mistake to make because now I'm going to show your audiences So I go to the audience tab and I say that this report Should be available to all managers So now if I go This is another window where I'm a manager and I refresh it and I can see the report And if I look at this report, I only see seven people who are on my team. I don't see anybody else from the organization um So this is one way to use the organization structure in the reports and you can also use Organization structure in the custom pages. So Emily briefly showed custom pages. That's something Sorry microphones a bit far away Um, it's something new in New feature in model 4.0 So let's say I'm creating I'm going to show you actually like five different features in this Uh, I'm creating new custom page um I'm adding um Block to it Which is a report block and then I configure this report block To show the user list Nothing to display for me because I don't have any subordinates and um I also now I will not forget to add managers to the audience and Going back to my manager you can see that in my In my top panel, I have home dashboard my courses and my teams and if I will refresh it Now I have a custom page hello world And I click on it and I can see the same report that I just created in a block on a custom page I think it's pretty cool I don't care excitement um So this is what I wanted to show you about the organization structure. Oh my gosh running out of time dynamic rules is the Wonderful functionality that actually what's designed as something significantly simpler than what it is now And then we at some moment we realized Like why not make it very flexible? So you can see that initially we were trying to call it like dynamic cohorts or automated enrollments But then we're like how about we add also this or also that and then in the end we're like How about we just create something similar to the If ttt I don't know if you're familiar with the if ttt is if this then that Yeah, I think I think that's that's what it stands for it's basically Each dynamic rule is a combination of conditions and actions and you can mix and match you can Send notifications to people who have overdue learning you can award certificates on completion of something you can Enroll users based on their country for example Um Like possibility here are endless and I've seen such interesting implementations of dynamic rules Because we probably know that we don't yet have self-enrollment to programs So what I've seen people did is that they created a portal course When they configured that Self-enrollment on this portal course and also enrollment duration of like one minute or something So then and then they set up Dynamic rules like if user is enrolled in this course allocate them to that program. So people Students will I think it was even paid course when they would pay for this portal course They would get enrolled to do they were automatically allocated to the program Then they would be unenrolled from the course after one minute So it no longer appears on their dashboard and while are they they just paid for self-enrollment in the program I thought it was very genius like what Sometimes I listen to our partners or When muddle ears tells us about what they did with their clients and I'm like, wow, I didn't I didn't even know you could use work place like this um, so I know Holding a sign for me. So rush a little bit here so, um dynamic rules, um Are not exactly the same as car horn synchronization. For example, there are only one way. So if Action is executed only when user matches condition when they unmatch There is no Unaction so they cannot they will not If your dynamic rules, for example, uh course enrollment if user is in cohort When they are no longer in the cohort they will not be unenrolled because some of the actions do not have this reverse action equivalent and also Reverse action may require completely different configurations. So and sometimes you don't want reverse action So to make it more simple. We just don't have any reverse action at all. So all dynamic rules are one way If you match when you match, uh, the action is executed for you So the cohort synchronization enrollment method if it was implemented in dynamic rules would have to be two dynamic rules If user is in cohort enroll them in the course if user is not in the cohort cohort unenroll them um I just want to have like very brief Um Demo of dynamic rule how it actually how how you can configure it So when you So I created a new uh dynamic rule there here is the list of conditions that I can choose for it There are a lot of them. So the the list I had in the presentation was very short and um, you remember, uh, one of the Tenants had a profile field displayed on the sign up form Saying that like what is the area of work? So here I can say, um That's unfortunately different tenants. So it's not here Basically what I wanted to okay. Let's let's do it on the uh country. So if your country is um If your country is spain then Unroll to a course I don't know this I picked a random course um You can also see list of matching users nobody from spain unfortunately If you when you enable it it automatic if there was somebody from spain would automatically enroll them and every new person Who changes their profile field or who is just registered? when they When they register for example, they're automatically enrolled this Very helpful for eliminating this um bank page experience. I I learned a new word in this So when you uh login for the first time, uh, you already have some content and this is content this content is personalized for you based on some Something in your profile. I wish I had more time to show dynamic rules or other features Or just remember how to switch to presentation One last thing I wanted to add about dynamic rules is that the way we design them New conditions and actions can be added in other plugins without Any dependencies or anything that just put the class in particular location and then it appears in In the selector for the conditions and actions So it's very easily extendable. So, um, I have three minutes now for For the questions Okay, thank you marina. I know marina would spend the whole day just talking about different features She's so excited as we are but unfortunately, you know, the the moodle party theme this year is time travel So that's what you are having now gaining some time to to discuss I'm afraid I think we don't have time for any question But if you have any questions, you can meet marina and all the workplace team at the moodle products bar as well as our Premium partners and partners that are around here and they are also sponsoring the event. So, thank you very much marina. Thank you