 It's working. Yeah. Rupa. Oh, we have quite a good turnout here in the chat, too. If anybody else thinks they might want to talk, then you can find the Hangout on Google Meetings at gmail.com. I'm not sure. Can you see it on the profile? And can you try and join us? We have to visualize you. Yeah. David, you should have one. I did send one to you. Yeah, Huam, where's that? Thanks, Huam. Perfect timing. Anybody else need an invitation? Can you take up tonight? Some of the people from the depth chat come connect here. Not like in the usual meetings where everybody can. These are people that have access to the depth chat. Well, so I might as well say hello and welcome. We'll explain what's going on. So we've got the YouTube. The main YouTube video is streaming out live to anybody. Should be clear. Good. If you want to make any comments, the back channels on Moodle Dev on Twitter, hashMoodleDev. If you already have access to the Dev chat, then in Java, then BioMain's getting there. And there's a lot of people here already. And we can chat more freely there. But tweets as well. The interesting thing, maybe we'll see some stats later on how many people are watching via YouTube and Twitter later on. But actually, if you're hearing this now, and you aren't in the Dev chat, it'd be quite nice to send a tweet to the tag just to let us know you're there. And we'll get started. Helen says it's Michael D writing notes. I am writing notes. Could you do a roll call? Could you ask for a roll call? Well, I'm going to ask for a roll call. Can everyone who's in Dev chat just say hello? We have 32 people. What do you want to do? What do you want to do? Ah, excellent. They realized we knew that they were there. So they disappeared. Just going to get through to hello tomorrow. That's fine. At least we know who's there as a record. Cool. OK, so let's move on. We've got a little agenda here where the page is. And we'll mostly be focusing on 2.5. Let's get back. So it's what we're talking about today. If there's time at the end, any other issues, please bring them up. It's a little difficult to interrupt, probably, but try and interrupt if something bad seems to be happening. And we'll try and make it all work. This is all a bit of an experiment, trying this way of doing things. But let's see how we go. So I just wanted to start off with a little bit of news from HQ, which is pretty new. But I started talking about it to Moots, so I thought probably should talk about it here as well. So as you know, for the past couple of years, we've had this rough arrangement of the teams in Moodle HQ. So we have basically a dev team for new developments, and we have a stable team looking after maintenance of all the branches that are in support. And the integration team that takes the fixes out of those and also from contributors, which comes from all of you and everyone else around the world, and gets in Moodle eventually. So we had a bit of a, we're having some issues with some of this, and the lines were starting to blow between the two teams. And I think there wasn't really a balance of things going on. So we're trying something a bit new, which is to reorganize the teams into a front-end team and a back-end team. And both of them will handle new stuff and bugs. Because we find often when you are working on big new features that there's kind of a big trail of bugs that comes after them after you've sunk the main thing. So it makes sense for the same team to be handling those for a while. And we'll see how this works. We haven't started this year. We'll be starting in the next week or two about the time of the two-fight release. And we'll keep you informed. Actually, this managed circle here, and I was talking to the New Zealand Moodle this morning, and I called it at Manaja Toa. Because there's three teams there. But I'm not sure that worked. So I changed it. So let me just talk a bit more about the details of these teams. There's a front-end team, it's not just the definition of front-end that you might be thinking of in a classical description of what happens on the web. It's just roughly like that. So what I'm thinking about is the front-end team focuses on usability issues, especially mobile as a big focus right now, and features and affordances. So that's basically things you can see. So it includes all the activity modules and most of the plugins that you can see. The back-end team focuses on most of the stuff you can't see, the logging, reporting, APIs, performance stuff, Moodle as a development platform. So making it better as a platform to develop on and ensure you know all the kinds of things that fit in there, that we're always fixing and improving. There will be some crossover, but it doesn't matter too much. That what matters is people are mostly working on the same kinds of areas and getting skilled in those areas. And that these two teams will be having daily scrums to talk about those things and working together on big new features as a group, rather than too many people splitting off doing a feature each. The integration team is mostly unchanged, but I've sort of wrapped up testing and integration together because they are very related. And there's testing at all stages through integration. And so as well as the reviews that the integration team still do, they're for standards and QA. And the last team is the sites team, which focuses on the Moodle websites and managing plug-ins, as well as marketing and education. I know that's a horrible word, but we do need to talk about what we're doing, so that's what that is. And I go down into even more detail still, but probably don't need to too much. Probably the rough priorities, as I'm seeing them, like this, but they may change once the scrums get ahold of them. But logging is pretty much the first thing for back-end people. The first big project. And these are some of the other ones, notifications and so on. And front-end stuff. Moodle rooms right now are working on outcomes too, but there's going to be a lot of work for Moodle HQ getting that into core and fleshing it all out for 2.6. And mobile interfaces, mobile app. Brian's going to talk about that later on today. Course management. Sam's almost pretty much done that. It didn't quite make 2.5, so that'll come in 2.6. All the activities, analytics, things like that. But a lot of it's going to be getting this bootstrap interface working awesomely across all platforms. Integrators doing pretty much what they've always done. Integration testing. David's going to talk about his BAT stuff, which is awesome. There's loads of new tests getting added to the CI server all the time by the integrators. And that's quite interesting too. I don't think anyone's talking about that today, but if you go to integration.moodle.org, you can see the Jenkins site there and so on. And lastly, the main priority right now is Moodle.org. We've got to finish off this reband that we started about a year ago. Get it out there. Make a much cleaner site. Moodle got renamed to Moodle.net, and that's going to be the name it's known by for the future. So all content goes there. All OER stuff. Plugins, obviously a big focus, and APU is now pretty much full time on that. And you'll see just today that some of the new stuff that he was working on landed. So the install buttons for Moodle 2.5 are now on Moodle.org. And you can see them down here on the bottom. Is someone talking about that later? And yeah, Moodle docs. And we've got some videos playing as well. We're going to be making more videos over the videos at Moodle. And that's all I wanted to talk about. So moving on to 2.5, you may or may not have seen that there is a new features page. So this complements the release notes, the release notes of all the details, the technical stuff, and you really should look at them if you want to get the full details on what's new, what might be breaking, any API changes, et cetera. But this is a new page that's going to be coming out with every release, which is just the skimming about the new features with some screenshots for showing people or getting a quick overview of what's going on. So if anyone's blogging about it or tweeting about it, this is probably the page to link to. And Mary Cooch is doing a great job putting this together and without this helping. So that's a pretty good quick overview. But now we're going to go into a bit more detail and talk about it more from a technical point of view, I guess. So first up here, we've got the Open Badges stuff, which is awesome from Totara or Totara. And Simon Colganes is online. So over to you, Simon. OK, hi there. Just checking that everyone can hear me, OK? Yeah. Yep, yeah. Cool, OK. So I'm going to do this presentation. Most of the work for Open Badges was actually done by one of our developers called Yulia. And I'm hoping she's available on the group chat, but I didn't quite realize it was going to be the developer chat. So is there someone able to see if she's in conference and start with a little org? Yes, she's there. She's there, OK. So yeah, so the plan is I'll give the talk today because she's feeling a bit sick and probably has a bit of a croaky voice. But if you've got any questions in the dev chat, then Yulia will get back to you. And hopefully that'll all work really well. And can you see my screen OK? Yeah. You can, cool. OK, right. So I'll get started. So the Open Badges project is actually a Mozilla project. And I thought I'd just give a little bit of background on that first. It's basically a project by Mozilla designed to kind of be an open standard for achievements across the web. So the idea is that when you're doing things on the web, like online courses and anything you're doing online, really, you might learn stuff. You might get achievements. But there's no real way of kind of gathering together those achievements and sharing them in a single place. So basically, it's this open infrastructure. The main website's openbadges.org. You can find out more. And the system works that organizations issue badges and users can earn those badges. And they have this concept, which is got a slightly strange name called a backpack, which is basically a place where you can collect all your badges together. You can group them. And you can choose who you share them with. So it's basically a repository for your badges that you earn across the web. One of the really cool things about badges is that they're kind of really easy to share. They're basically just a PNG image file at this stage that they're going to add SVG soon. So you just get a regular PNG file. So you can email it. You can upload it to your website. You can share it on LinkedIn or your Facebook page. And it just looks like a normal PNG. But embedded within the metadata of that PNG is actually a mechanism to allow that badge to be verified. So if you show off your badge on your web page, someone can download that image file. And they can check that that badge belongs to you and that you did earn it from the institution that you're claiming you're earning from. And that's done basically by a sort of assertion that's built into that metadata. And I think that's really key. And one of the really interesting things about this, it's not just this idea of awarding badges for achievements and the kind of gamification of education. It's actually more like a digital certificate. You can actually prove that you've got this thing for what you say you have. So it could be more than just well done gold staffer for your gaming achievements. It could be this is my degree certificate or my university certificate. And taking it beyond that in the future, perhaps it could even get to the point where instead of doing a degree from one university, you could kind of look out and see what modules, all these different universities are doing online and pick and choose the learning that you wanna do from lots of different places. And the idea of the badges could kind of allow you to do that and do the learning on your terms rather than having to get a whole degree from one institution. So that's a little bit sort of beyond in the future. There's still a lot of work to be done. It's still quite early days, but I thought I'd show you what we've done, which is basically integrate open badges into Moodle, which means Moodle can issue badges and it can also sort of display badges that people have got from other sites. So we've got a demo site actually up and running. It's at openbadgestotra.elearning.catalyst.net.nz. So that's online now and there's a couple of test accounts. It does occasionally get reset the data and they're just a teacher and a student account so there's not really full access, but you can have a play and you can issue badges. You can create badges as a teacher and you can issue them. And that'll keep that live until 2.5 is out and the Moodle demo is up. So if people want to have a play with it in the meantime, they can. So I'm gonna just walk you through a very kind of quick run of what it might be like using open badges in Moodle. Okay, so the first thing that we have in Moodle that is kind of relevant is we have this concept of the type of badge. Badges can either be a site-wide badge or a course badge. And the purpose here really is that site badges can be awarded for achievements that extend beyond a single course. So maybe completing a set of courses or doing something at a site-wide level. Course badges on the other hand can be, they can be delegated, the responsibility for them can be delegated to whoever's managing the course like the teacher. So they can issue achievements within the course that they have control over. The site badges, the main place to manage badges is here in the site, having many under badges. Whereas the course badges is inside the course administration. So really those are the only two differences. One more, the criteria that you can use to create badges is slightly different between site badges and course badges because you've got access to different things. So I'm not gonna show you the site badges although it's basically the same functionality just at a site level. I'll focus on what it might be like for a teacher and a student. So just log in as a teacher. Okay, so I've created a course here and I've just got a couple of activities in there. I'm actually using activity completion here for this course. So one of the criteria you can use is you can award badges when people achieve particular activities within the course. So I've got that enabled and I've set up a forum here that you need to post to in order to complete that activity. So I did that beforehand. So let's say we want to create ourselves a badge. So here we are, we've got our badges menu and I'll add a new badge. So the teacher basically gets to define what their badges like. So let's say social participation. And at this stage you basically need to provide an image badge to exist. At some point in the future we might add some kind of authoring abilities to allow you to design your badge within the interface. And especially once the SVG format is supported it'd be possible to customize it with the user's name and things like that. But at this stage badges are just an image. So you can also do things like badge expiry. So you can have the badge only last a certain amount of time. I'll just create a regular badge here. So the first thing you have to do when you've created your badges is define the criteria. So what do people need to do to earn it? There's a few options here. Within the course you can have it manually issued by the teacher or a different role. You can have a badge that's for completing the whole course or in this case we're gonna use single activity or you can have multiple activities. So just to keep things simple I'm gonna say, okay you need to post it into the forum and you can combine these, you can have multiple. So you've got to do lots of activities but we'll just do that one. And you can also have multiple sets of criteria. So here I've just got one but we could combine others together to make sort of more complicated criteria. But that'll do for now. Okay so you'll see here it's not currently available before you can issue the badge to anyone you need to enable access which is a bit like sort of show hide for courses. And the reason for that is you might be building your criteria and you might have more criteria to add but then someone could meet the criteria immediately. If the badge was active straight away you could end up issuing it before you're meant to. So you have to take the step to make it live. Just look at the other settings before we do that. You can have email sent out to the recipients and because it's just a PNG file we can actually attach the badge to that email so if you have a hard copy offline. As the badge creator you can either get an email every time someone earns it or you can have a digest so you get informed every so often that there've been some new badges awarded. And you can also see who's awarded the badge on this page which no one has yet. So I'll just enable access to this one. Okay, so that badge should be live. When you enable it it checks to see if anyone immediately meets the criteria and if they do they'll just get the badge straight away. So I've got a student account here which I'm plugged into. So I'm already enrolled on this course. So as a student if I want to see what badges are available within the course there's a new page here called course badges. There's an equivalent of the site level as well on the site pages for site badges. So I can see here this badge exists. I get a description name and I get to see what criteria I need to meet in order to achieve this badge so I can immediately see whether something I might be able to do. If I've already been issued the badge should appear here and link to my copy of it. So let's say I'm really interested in this badge and I want to earn it on my site. So to do that I need to post it to the forum. So I'll just do that now. So the criteria for this is all actually set up within activity completion. So it's the same as if you're doing activity completion for course. And we're trying to kind of keep it that way because it feels like we'd be reintroducing or duplicating the same functionality if we have lots of kind of details about how you achieve things inside the badge criteria. So for activity completion and course completion you can use the existing settings. There are cases where there's different types of completion that kind of sit outside that and for that we've got our own criteria and we can extend those criteria quite easily. So let's see. Okay, so I'll post that to the forum. So it should be instant. It's all kind of hooked into activity completion so I should get an email. I think this is the right account. I don't know what email I set up. Ah, there we go. Okay so I get an email which is based on that template. I've got the badge attached and I can just download that and that's a real fully baked badge that meets the open badges spec and I can upload it to my backpack if I want or do whatever I want with it. Okay so just going back as a teacher now. Yeah, if I reload this page. So I can see someone's received my badge now. I can see when it was issued and I can view the details as the teacher and see who got it, the criteria, what evidence they achieved in order to get that badge. So as a student, when I own badges, the main area for kind of managing them is this My Badges page under my profile. So you can see here, this uses got a couple of badges I owned one earlier. So you can see all the badges that you've received here and control what you do with them. You can download them all, you can search for them. You can download the file or change the visibility. The visibility affects who can see it on your profile. So if you want people to see your badges, you make them visible and then they appear on your profile page. The other thing we've got here is the concept of a backpack. So this is, as I was saying, Mozilla have this concept and what you can do is you can connect your backpack. So if you have this, if you've got an account with an external backpack, you can choose to connect it to your middle site as a user. And that allows you to first push the badges you earned on this side out to your backpack so you can share them across the whole web. And secondly, it allows you to pull badges in. So if you've earned badges from outside that you won't show people within Mozilla, you can do that too. So to do that, you connect to a backpack. And this is hooking into the, use my personal account here and you can see as I'm connected there. So when I go back to my badges page, I now have an extra option. When I view this badge, I can say add to backpack. So I'm gonna give this a go and see if it works. So as I said, this is kind of, this is the Mozilla interface for this kind of thing. They use persona for the login for open badges. So I'm sure if you've heard about open auth, I guess. It's quite cool actually. Stuff you can turn off. So if you've got a site with kids and they're not able to create external accounts or anything like that, you can turn all this off. We are hoping to actually make Mahara, which is a e-portfolio system into a badge, a backpack provider maybe at some point, which would allow you to kind of do single sign on and not require this external service. So I can see the details of this badge that I'm talking about, and I'm gonna accept it. And you see that I've sent it to my backpack site. I'm gonna go here now to the backpack. So this backpack, this is the kind of Mozilla reference implementation of the backpack. And the idea is that this is a sort of federated thing, but because it's new, there aren't any other backpack providers yet, but in the future, there could be lots of different backpack providers. So here you can see my social participation badge has come into my backpack and they have this concept of collections here. You can group badges together. And importantly, you can make collections public. So I'm gonna create myself a new collection here. And I'll call it. This is gonna be a bit weird because I'm kind of pushing badges to my backpack and then I'm gonna pull them back into my backpack. Normally you probably have different badges in here because I don't have any other badges from other sites yet. I'm doing it this way. So I've just created this group. You can drag badges in and decide which ones you want people to see and you can make certain groups public. So you see here, I've got a couple of public groups with a badge in each. So as a student, if I go back to the site here, you see here, I can show badges from other websites. So I'm gonna add some collections. And because I've made this connection, this area here appears. So I can, I'm gonna choose to show my little badges on the external area as well, so save that. And so then you can see, I've got this connection. I can modify my settings. And if you view my profile, so you'll see in this case, you'll see the badges appearing twice. But so these are your internal badges and these are your external badges. And as I said, if you don't want to show some of the badges you've earned, you can choose to hide a badge. So we'll say we're not gonna show that one on our profile. And it will disappear. And you can also, there's a profile under here and the profile settings you can choose to make that the default. So when you earn new badges, they don't appear by default and you have to enable one. So that's really just a really quick walkthrough. It's still in its early sort of days. There's still lots more stuff we could do and hopefully we'll do. But I think it's quite an exciting project. It's gonna be quite interesting to see how people choose to use it. And hopefully there'll be a much, with Moodle supporting open mergers, there'll be a much bigger sort of marketplace for badges. There's a lot more sites that can issue than they previously were. So that's it. I think I'm just really gonna quickly thank Yulia for all her work who did all the development of this and also Moodle HQ for getting it integrated into 2.5 and helping with all the reviews and fixing bugs and stuff like that. So thanks very much, guys. And that's all I've got. That's a good overview. Thanks. I had two questions. One was about Mahara, which you already answered that integration. And the second one was, have you had any thoughts about, is there really about making something inside Moodle maybe? I mean, could plugins generate badges? Does that make sense? Yeah, I hadn't really thought about that. It's an interesting idea. And I don't see why not. I mean, the badges library is pretty independent of the thing that actually generates the badges. So probably if people, probably at this stage a developer could do it just by hooking into the badges functions. But yeah, definitely an interesting idea to make that more accessible through web services or something so that people could actually issue badges. Yeah, as for the Mahara side, that's the next part of this project, really. Our intention is initially to make Mahara a display of badges. So it would do the kind of pulling in from an external backpack, which would at least let you kind of link badges you've earned by going via an external backpack. But after that, we'd really like to maybe be able to issue badges through Mahara. And the idea of making it a backpack and a central location for storing your badges is quite an interesting one. Yeah, there's more to do. Absolutely, yeah. Very cool. Well, thanks a lot, Simon. And Yulia, of course, you remain silent to us. But that's, no, it's good. Well, I'm really glad we got that into it. Very cool. Thanks a lot for staying up, too. It's a pike-out and you totally understand. OK. Thanks, heaps. Is there any other questions from anyone else? Or while they're here? There's some in the dev chat. Are you in there, Simon? I'm not, no. Yeah, Yulia's answering in there. OK, cool. I'll quickly just check Twitter. See if anyone else is... There's an image down here. Which one? The one with us. No. With us? Yeah. OK. Well, plenty of questions. You can go to the... If you look at the docs and try the demos. I think Simon answered all the questions. I hope you... Thank you. Well, the next thing on the list is bootstrap themes. Well, I put myself down there only because I definitely also wanted to talk about it. But I haven't done most of any of the programming. So there's been a bunch of people involved in that. Bass Brands, of course. Dave Scottson, Mary Evans. And a cast of dozens growing to participating now. So let me just summarise in short what's happened. Bootstrap is a framework for HTML CSS development that's very popular with designers. Half the websites in the world these days seem to be using that framework. It originally comes from Twitter. Very popular. There was a bootstrap theme developed last year that sort of fits this framework on top of Moodle as best as possible without changing core much. And so what we've done is basically bring that into core. But we've brought it into core as a new base theme. So with the themes we have a base, we used to always have a base and everything inherited from that generally. And there was a very plain one called Standard, which was the default and many other themes that inherited from base. And developers generally, when they change something in Moodle, add something to the core would add CSS and HTML to base. Well, now Bootstrap is a new base theme and it allows this new base theme to have some renderers to override bits of core that need overriding. So changing the HTML. And in future, over time and we've already started it, the core renderers, the default renderers in Moodle will be improved and extended so that's not as necessary. So that Moodle will produce nicer and nicer HTML over time and bootstrap in mind without breaking other themes. So there's going to be a new family of themes coming up now based on the Bootstrap theme and that's the future. We'll maintain support for the old themes for I'm guessing a year or two, two years maybe from now. But it is going to be deprecated over time because the old themes just are very hard to make work properly, responsibly to theme all the bits of the corners and forms quite as easily as it is on Bootstrap. Bootstrap's the direction for now. So that's the general approach. At the moment the name of the Bootstrap core theme is actually about to change. It's currently called Bootstrap. It's probably going to be called Bootstrap base. And as well in Moodle 2.5 there will be one theme, kind of equivalent to standard as it used to be. This new theme will be the one that you can actually select in the interface. Right now in Git it's called Simple, but there already was a theme called Simple so that name is going to have to change very soon this week. But this new theme is like a template theme. It doesn't really add any CSS to itself. It just implements Bootstrap as a parent and adds a few more settings. You can add a logo to the theme and a bit of random CSS and a footer. And that'll be a nice sort of default basic theme to have. But if you want to make a new theme in Moodle now, a good start would be to take that theme and just clone it and change the name of it and start hacking the way on it. So it's meant to be like a template theme that you can use to get started. And that's an overview of themes. Is there any questions or anything else like to talk about it? So Bas is answering some questions in the dev chat about the grids. Yes, we're using Bootstrap grids, but really Bas, do you want to talk on Gmail at all about it? Or Mary? If you look at the bug you'll see the discussions going on and the various issues that are spun off from it. It's quite a complex issue overall. I think we're just about there. Gareth probably, I would say tomorrow, today, will change the Bootstrap base name. So Rex has mentioned the less issue. So another thing that's new about the core Bas Bootstrap theme is that the CSS is written using something called less. You may be familiar with it. It's a way of writing CSS in a more programmatic way so you can define variables and you write your CSS that way and then you need a program to compile it into ordinary CSS. It's pretty simple I think once we get the hang of it but we're all having to learn it. But it does let us be more powerful with CSS. The themes based on Bootstrap don't have to use less. It's purely on a theme by theme basis. But seen as the core, the Bas theme is so important. It's good to have something more programmatic. Rex just mentioned it's like UiShifter in terms of the new JavaScript stuff. So someone else asked in the dev chat about the will the core renderers be rewritten to match Bootstrap? And Tim's got an answer there. Generally no, we're not like making little match Bootstrap but if it makes sense to rewrite a core renderer to make it to add a class or make it consistent because generally the HTML that Bootstrap wants is all very sensible and as simple as possible like it's hard to simplify it any further so it tends to be sensible HTML anyway. So where we can do it without breaking themes or adding a class we'll do it in core renderers. But if it's something very Bootstrap specific then we'll do it in a renderer in the Bootstrap base class. Mary asked who's just out of the picture in the room whilst this is Barbara and it's Damien and Jerome's over here and Fred's just out of the picture leaving Fred. Michael Derrath's down here, Adrian Greaves up here and W Monlour over here. Nothing to see here but he's moving the camera. So Bas mentioned Boot Swatches. Boot Swatches are kind of like themes within themes basically. It's like a lump of CSS you can throw on top of the Bootstrap theme would that be a fair thing to say, Bas? And if you look at Boot Swatch you can see a lot of people are making themes Bootstrap type themes that way. So Moodle themes could use them too. Also variables in CSS he's saying. Can a plugin that uses Bootstrap plus less be used with a theme that isn't based on Bootstrap? I don't know, I can't pass that sentence. I'm not sure what you mean. Plugins don't use Bootstrap plus less. I'll leave that question. So you can see the link on the dev chat. So this issue here was the main issue. But it's now a sub-task of the bigger meta and you can see the various sub-tasks sprung out of this change and many, many things. So look I'd say at this time it looks really good. There are still enough small problems that I wouldn't make Bootstrap the default theme of Moodle just yet. I would say 2.6 definitely. But right now it's probably still slightly experimental. But certainly worth playing with and looking at and it's a good thing. And if you haven't seen... I can't show you because I haven't got a site here right this second. But the most awesome thing about it is its responsiveness. The way it folds down into an iPhone interface is the medium sizes in the tablet interface. So medium sizes. It works like you expect on a touch device. Okay, let's move on. So David Mudrak is going to talk about the new installation of plugins. So David and Apu both worked on this. Most of the Moodle side of things and take it away, David. Hello. Hello, we can hear you. That's good. That's a good start. Okay, I just shared my screen to demonstrate the thing a bit. So can you see my screen? Yeah, we can see it. Okay, excellent. So actually this new feature is a part of a bigger project as HQ likes to think of Moodle more as a platform or a framework for developing features and things via plugins. Then it was decided or there was a bigger project to support this ecosystem of plugins more. And the first part of it was implemented in 2.3 where we started with checking for available updates. Then in 2.4 we added automatic updates deployment and the new feature in 2.5 is then the administrators can install new add-ons, new plugins directly from Moodle administration interface without having to access FTP or their file system. So there is a new admin tool called add-on installer implemented and this new tool is able to deploy a plugin from uploaded zip package or to fetch zip packages from Moodle or plugins that register your directory directly and deploy them. The web server apparently has to have right access to required locations to be able to deploy these packages and after the package is deployed standard upgrade procedure is going to happen. Let me demonstrate this new feature right now. So I will just visit the new tool in site administration sections which is located at site administration plugins install add-ons. At the tool screen there are basically 2 sections the first one with the big button is used to browse Moodle plugins directory and install plugins from there directly. The second part is used for deploying or installing plugins from uploaded zip file. I will demonstrate first installing a plugin from Moodle plugins directory. So by clicking a button what basically happens is that the browser is redirected to Moodle plugins directory where I can search for some plugins to install let's say I want to install some workshop module extension so I can browse through them and at this screen I found a plugin that I want to install to my site it's available for Moodle 2.5 so just by pressing the install button I'm redirected back to my site with the information about the plugin to be installed. Basically this link contains some basic information about the plugin so now if I continue the information about the zip and the zip itself will be downloaded for validation nothing will be installed yet so if I continue my Moodle site fetches the zip from the repository from the Moodle plugins directory and validates it. I'm sorry for my internet connectivity it takes a while apparently for unknown reason. The zip was fetched and validated correctly there are a couple of criteria that must pass before the plugin is deployed we can add more rules for this validation or throw some warnings if let's say malicious functions are used in the code etc and if I agree and continue with installing add-on the zip package is extracted into appropriate location and Moodle starts upgrading to a new version containing the plugins as we know so I can just upgrade Moodle database now and the plugin is installed pretty easily it takes couple of clicks and it's there the other functionality that is there can be used for installing plugins from manually uploaded zip package as we can see at the next screen or at the next section of this new tool we can basically upload any zip package in the same format that is being uploaded to Moodle plugins directory so let's say I have my zip package downloaded from Moodle plugins or even provided by some external source I want to install activity module called stamp collection I already prepared it in my private files but it's basically the zip package that was downloaded from Moodle plugins directory or it can be fetched from GitHub or whatever okay so I will use this file I will check that I understand all eventual consequences of installing add-ons to my site and again from now on the procedure the procedure is still the same the package is validated if the validation passes I can install the add-on as if I manually deployed it on my site while working on this couple of bits in Moodle core and Moodle plugins management screens were improved as well so for example things like uninstalling plugins and these things were improved a bit and we will continue working more on this overall ecosystem of supporting plugins and Moodle core itself actually as the next stage of this bigger project I mentioned is to be able to update the whole Moodle just from admin interface as we know from WordPress for example okay so if there are any questions Jason, does this support putting in packages from a source other than Moodle or at the moment you can the admin has to upload the zip manually as I demonstrated the alternative is sort of sort of hacking that you can actually in config PHP file you can you can set an alternative provider of packages but it's it's mainly used for testing only as all the API communication everything has to be the same as with the official server and yes this is the same process as with normal download, unzip and upgrading Moodle yeah the project is pretty clever it does a lot of things we reuse the validator that is used at Moodle plugins site itself with couple of making it couple of more strict or extending some more checks yes if I uninstall a plugin for example this participation credit plugin what's new is that not only the plugin is removed from the database but as the Moodle has right access to these directories it offers you to get rid of the files from the file system as well so if I continue now the plugin folder will be removed from the file system as well and so I just installed and uninstalled the plugin with no trace in the file system there is one thing to mention maybe as developers are here your Moodle site is not communicating directly with Moodle.org slash plugins to save some performance to load of the main server but there is sort of proxy server called download Moodle.org which fetches information from the main database and distributes it to all Moodle sites and because this proxy service updated like every hour or so so at the moment if you upload a new version to Moodle plugins directory it can take up to one hour before you are able to install it this way we can improve it in the future a bit but there is this small lack at the moment yet reading other questions here no there is no way to roll back any updates at the moment because Moodle itself does not any automatic backups of or snapshots of the database and Moodle data directory so it still administrates the responsibility to have these backups prepared just in case something goes wrong these validation functions they do things like checking if version PHP is correct if version PHP file correctly declares or required information if the plugin name matches the plugin type of what admin chose and other aspects thanks David I think got most of the questions there one thing we were thinking about for the future was to even automate the connection from github to Moodle plugins that possibly trusted developers could tag their plugin appropriately and that Moodle.org could automatically pick that up and update the plugins in the database that's going to take that a bit the next day we'll take some thinking but it would be kind of cool to be sitting there on your computer finished development you're sure about it you hit send push it to github and all around the world everyone on their Moodle sites all the admins get a little note saying there's a new update available of this plugin but there's a lot of issues to work through there it'll be nice to have you roll back or something maybe you could do that on cloud system but David thanks for all the work on that there's kind of really finishes off the picture and up who's getting the install buttons on Moodle.org now and it'll only be improved so okay anything else you want to say David no thanks alright well thank you so next up we have now the short form stuff so if you've looked at Moodle 2.5 lately maybe you're familiar with the short forms Ruslan we didn't really get to talk to you before but you did most of the original development on all that do you want to talk about it's at all or is it pretty self-explanatory hopefully you're hearing me no maybe not okay well yes sorry Rus we didn't really get in touch with you I kind of threw your name up there just in case you wanted to talk about something but anyway it's a fantastic thing for the interface I think so I can demo it alright find the site yeah yeah yeah that'll be better oh thanks Damien so I like the subject of this website so basically it's on anywhere there's big forms you'll see it and not this one why not this one it's a bit old yeah okay there is an update to this particular form basically the big forms are all broken into sections well they already were into sections but now they can collapse and basically that's the feature there's an expand all button to see that collapse all button but by default it only shows the second section the field sets it shows field sets that contain required fields by default validation or anything that has been set in code by default but while we're working on them we're trying to do our fields at the top really so so here's a quiz it's only open the first one and it lets you get really into things as you need them also seeing the bootstrap theme in action at the same time so that's basically it did you want to say anything about the assignment what's interesting that's got your patch oh yeah I don't really have many things to do about it well probably one thing is that it's going to affect all forms all the time by default so that's in all your plugins as well what's interesting here well I didn't have to change anything it would have still worked but in the short form it does change the way that you look at the forms a little bit really pushing all the lines of the fields at the top of the form I've reorganized the assignment settings page so that you get these three sections open by default and change the order of things just to try and make it really simple when you open the first time or when you open fields exactly it's just to eliminate that sticker shock that people get when they first open up Google and they get this big form in the face so I think that's a good thing but you should check your own forms in your own code to make sure they make sense because some forms kind of assume that everything's going to be displayed and don't quite look right and so that's the case with the code set expanded set expanded on that the main problem is that we didn't really spend time thinking about the names of the fieldsets themselves so you could have them selling this and you don't have no idea what it means so you have to expand it and that's what you probably want to re-order yes that's what we're doing in the core I think that's that's that finish on forms and then we'll talk about the editor because I can see people want to talk about that editor okay so this is a new thing that can be enabled on a per instance basis there is a new thing I should have mentioned before we now have the concept of a policy bug so if there's any development that gets held up by a policy needing to be decided then there is a new component in the tracker called policy and one of the first ones is actually about this it's the policy of should we make all editors in forms be collapsed by default so if you're interested in that go look in the policy component in the tracker it's pretty cool so you know should all the elements look like that thanks Dan for the link I'll show it to the video people as well enjoy well that's what you need to do maybe it'll be okay oh yeah Tim says to thank Colin Chambers for the collapsed editor I didn't realise Colin had done that so thanks Colin okay we should probably move on so we don't go too long so mixed up thanks to Ruslan again for doing the bulk of the work on that and going through a bunch of iterations in the beginning that you don't even see Ruslan is there anything else you want to say on chat I can relay it to you I'll pass it on if you're saying anything there Marina are you going to talk a little bit about the course listing stuff and I probably need to add you to this chat I thought I did so Marina are you getting some email or something can you get into the hangout can you just type well no you could call if you could show us something but I can also just do the demo here if you like while you're talking about it only one course here so you'll see on the front page settings alright we we've got some screenshots here the Firefox so to save lots of reconfiguring to see different things this is as good as any so let's talk for you Marina then so all the course listings now are rendered they go through a renderer and they use consistently so everywhere where we list the courses on the page it's all done the same way so good for styling and there's more options as well and things have been cleaned up somewhat here's a little site with two courses course files right so this course here has what we call course summary files you can add images and the images are shown actually on the page but if you add things like PDFs then they become clickable links so you could have you know some description of the course a longer description of the course for people to download and look at before they actually enter or pay for it or something here's a page with a lots and lots of courses and categories and you can see them all nested and collapsible they're collapsed I assume already tested it with 1000 courses Tim it reversed it let's do a search box when you go over a course limit and that setting can be set in the other way we had that before before it was hard graded to 200 now it's a setting so so anyway you get the idea so depending on the size of the course 1000 or a couple of courses it has you can adjust the front page to display them in the best possible way and they should work on all themes properly and style nicely the important thing to mention though is that it has changed from before so if you've done anything funky with CSS and HTML with CSS around the course listings in your theme it could break on 2.5 but if you've just inherited from a base theme and you haven't touched that bit too much you should be fine is that fair summary Marina? and Marina has written a document documenting all the changes yeah it's 2 from here there so that's linked to from the release notes and it's probably the most breaking thing we have in 2.5 is this it's a very nice doc too she's got side-by-side comparisons down here of different code and it's pretty clear I think so it's good docs thanks Marina because I know that work touched so many messy very old areas of Moodle which Marina seems to be a specialist at so that was a lot more work than it probably looks like and that's the basics of that one. Is there anything else to mention Marina? No? Okay you've even given up on chat alright well let's move on to the thank you Marina though for all that Marina is saying it was not possible to keep the old CSS and that's true we don't take breakage lightly I mean it had to be done because it wasn't consistent between the different course listings so to make them consistent we had some great stuff but that won't happen again I assume Andrew mentions that there is some new JavaScripts loading on category listings for very large listings I assume you can load as you're drilling down a collapsed listing you can load them with Ajax hasn't landed yet I don't know the status of it okay maybe there is a bit of lag actually Dan I didn't think of that that's why okay the next thing is to look at the B-hat test so Dabi it's going to talk about those and it's over to have we lost them again? are you ready? no yeah okay we'll skip you microphone problem so Peta are you there? can you jump on early and say today you talk about jQuery stuff so hello everybody I'm not going to talk for long it's just a little reminder that we have now jQuery as part of the standard installation it's not intended for standard features it's designed only for people that are coming to Moodle, they are starting with development they don't know UI but they understand jQuery pretty well it's for them it's not for us so please don't submit any pull requests with jQuery in it and what does it solve it helps especially if you have multiple plugins that are using jQuery we are distributing one stable version with each major release, we are going to upgrade it for Moodle 2.6 2.7 and there is included the basic jQuery library then the jQuery user interface plugins and a migration plugin for older jQuery versions so if you have something written for jQuery 1.7 you need to include the migrate plugin so that it works with the current jQuery version we have in Moodle I do not expect that we would be importing jQuery 2.0 something of what's the latest release we'll be sticking with the one that is compatible with internet explorer 1.789 oh it's not 1.679 so if you want any information just go to the developer docs and there is one page called jQuery it's here I tried to describe it with examples so that especially new developers understand how to use it and there is one FHQ at the end which should hopefully explain everything or answer all your questions so here it is don't use it and if there is a new developer who insists on jQuery it's for them that's all thank you Peter any questions we can't see you we just hear silhouette any questions I suppose jQuery 2.0 anything in like two years because I suppose that we will be somehow supporting Moodle the internet explorer 8 for at least two more releases it will not be officially supported but we are not going to remove all the support we have there any more non-internet explorer questions I hate internet explorer we've been saying that for so long but it almost has no meaning anymore yeah it's good it's been saying that for 10 years but of course if you really want the light as jQuery there is a feature where you can override the built-in jQuery with anything else so in theory your plugin could supply jQuery 2 and all the other plugins would be forced to use it too it should work in internet browsers but it's possible if you want it I was just about to say actually while you're there that W needs two more minutes could you talk about UI changes, UI shift or does Andrew want to I don't know much about this it's just the post-processing of the Moodle channel script files and the aim is to use similar processes the UI team is using so instead of just compressing it on the fly we are now relying on external tools and it's adding some metadata because UI itself is written in one file and then it's compiled into the debug file, standard file and well the developer file so it's not really important I suppose, you just learn to run the tools after you finish making changes and it's done it didn't change in any way from the from the PHP side it's just the change when you are writing the JavaScript itself I was trying to add you there Andrew yes we will be able to use a lot more tools for documentation, testing and everything so it's moved a bit more towards UI coding style from our old Moodle coding style and those are not big changes and the benefits are relatively big so I hope it's worth it and now that the beginners will be probably using jQuery more so the call team should be using more advanced teams and if you look at the bootstrap team and everything you will be using the command line during development a lot more because you need to compile this, build that compress this thing so it's just a trend towards a bit different development okay anything you want to add Andrew? throw you in the deep end you are on the air can you hear me? only other things we need to add though hopefully by I think Pedro covered most of it but with moving to shifter and getting the minified files it means that we can start adding documentation to our JavaScript and stuff like that so we will be able to produce some great documentation rather like the UI API docs in fact I've already got some stuff started in proof of concept for that we can also start writing unit tests for the JavaScript that we have in core for things like the new help popups are based on something called the tooltip and anyone can use that tooltip anywhere within Moodle the same goes for all of the dialogues so the notification and that kind of stuff we will be writing various unit tests for that and we can hopefully start adding some performance tests as well to the JavaScript and again it's something I've had a quick look at already it will let us work out which bits of making our JavaScript slower which is always a good thing and that will hopefully help us to improve the performance across Moodle one of the other things with using shifter is that it adds we've started passing all of our JavaScript all of our shifter to JavaScript which is a JS hint which is like a JS lint bit a little bit more configurable and it catches a few more things and one of the things that we'll do will hopefully mean that we can improve our compatibility for older versions of internet explorer which is one of the biggest issues with IE7 and IE8 other versions is that they don't handle things like trailing commas in arrays so we'll be rejecting any code which doesn't pass through the linting properly in the future and hopefully that will mean that we pick up issues which would affect internet explorer much more easily and also other browsers so that's most of the bits and pieces we've also made some changes to the way that we do debugging you can use instead of using console.log in your JavaScript you can use y.log from the YUI library and that basically lets you do things like all the console logging and there's y.error and a few other bits and pieces but you can those automatically filter out of the production code so that you only get those when you have the JS web set to minus one for doing JS development so you can add those useful bits of debugging which I think Tim Hunk was using recently for doing some of the quiz auto-saving so he might have some thoughts on that one already lots of things like that just to try and make the way that we're using and distributing JavaScript to Moodle just that bit easier it does however obviously add a step because now rather than just submitting JavaScript you need to build it make some changes to the way that we structure it so there's a slightly different file structure and then you need to run it through the tool which is called shifter but that's relatively easy to install and to run so hopefully that's good I think that's everything I have anyway any other questions so let's have a look at I think Sandra that was a lot of dense information I think a lot of people were focusing on your hair in the chat so apparently some people are weak at the knees so that's a good thing just and hair so that's really cool there is some really good docs about it written on Moodle docs yeah I'll post the links to those in the dev chat for you yeah maybe add them to the dev well they'll be in the notes add them to the dev page that one I was showing before yep sure getting some questions about your shampoo now so fuck cool thanks so anyway the good thing is that we made you blush across the world and the second thing is that JavaScript has this good framework now hopefully improving the quality of it a lot over time and making development faster so super cool so next if you don't mind we'll move on to is David here I don't know if the microphone will work but I can show a couple of links and then I'll move there and we'll try with the microphone otherwise I can share the screen unless we you won't share how it works alright so let me share the screen here so David focusing on testing is test engineer and took to spend we had the mouse now we are sharing this yeah well I don't know how much of you know what this is a testing framework to run functional test this is the main the main website and is oriented in behavior driving development so instead of unit testing you are supposed to write things like this feature you describe the feature you you are testing and then a list of steps to describe the expected behavior so we can say given I am logged in as admin and I access course one I should see activity one if there is some regression we will detect it with this because the test will fail so what we have done is integrate this beautiful framework that manages the dependencies with Composer inside model so each plugin can define its own features files and also what the these steps that are PHP code for example we don't have I follow XXX link and then we will work through the DOM of the page looking for a link and a tag called with the text that you add in the placeholder so an example of what we currently have more or less is this we have the feature login with a quick description of what this is supposed to do and a scenario that are like the test cases of a unit test on this behavior drive and development things are split in three parts given where we set up the context like can be the setup of PHP unit when that represents the action we perform and then what we assert against the outputs we see for example I am on login index I fill a couple of typical fills and I press login button then I should see this course because this is an existing user otherwise we try with an existing user and we are not supposed to see it well this is an example that I think that is not very correct but anyway this is what is supposed to look like one of those files it's just more or less human so at some point not only developers can write this test like happens with PHP unit which is very good and we have all this documentation here writing this feature it's a bit long but well it's a new thing so like a new thing at the beginning there is a lot of information to get but then it's more easy right now I've been these last weeks I've been writing lots of tests per day so when you get used to it's not that hard and then this is the other part that is adding a state definition is like this example I add a forum post with blah blah blah as a description so we write a regular expression I add a forum post a placeholder in here as a description this is a PHP it's an adaptation in the PHP doc so we had what does is gets this kind of regular expressions and the steps that matches a regular expression runs them runs the PHP continued on them and this PHP what does is interact with a Selenium instance once or goods or well there are different drivers but these kind of drivers are sending requests to web servers and they interact like a real user is supposed to do all this is better explain it in all this long file and what could be useful because it's a lot of information at the same time is a quick start so you have the quick steps you have to follow to set up this is more or less like PHP unit a prefix because it uses an alternative test environment with the prefix and data root how to install the dependencies or what is like install the PHP unit dependencies and then usually you want to run the Selenium because is what usually users do they interact with Firefox, Internet Explorer or whatever so you need to install this and you just run it is a Java jar and with this open you have we are sending petitions to localhost to the port 4444 and this opens an instance of Firefox or the browser you specify on your config it begins to perform actions like can be click in here, check that in the dome we find this I don't know if right now those are the definitions but basically you will not understand anything because it's PHP but it's calling all the hard methods I guess you can guess what this one for example I log in as a user name so what it does is the example we saw before this one is calling different other steps definitions I fill the form I fill this form so it looks at the dome for this fill and it fill it with this bar that is the only argument of this step so here you will write I log in as admin, admin between quotes when it's between quotes it's a bar so it gets as an argument by the function and it's the one we are passing to other steps and to see another step definition that maybe helps you more to understand it this the general file all these basic things are here click link find link so this means that we have is interacting all the time with selenium we have the dome of the page we are looking in and it just passes the dome looks for an expat matching a link with the submitted text and then the action is to click on it there are all sorts of actions we can do interact with buttons click links and the work we have been doing is to provide these step definitions so other developers, third writers third parties whatever people that wants can use them to write their own test we know that the set of step definitions is big enough to write test because we have written more or less a hundred of the we have automated more or less a hundred of the mdl key waiters so of course that you will miss things because I miss them too but it's a a good start I think and in fact I'm happy to see that open badges came with a few big things including the blood of files which was a bit tricky because if you are running the selenium instance in a remote server you cannot block files because they are not in the local server so it's a bit tricky but anyway it's good to see that things begins to come new features begins to come with the link that Dan the inside middle 2.5 is the page that shows all the definitions yes there's one of those tabs that I'm too fast on so this is acceptance test site this is a regular model site but it's using the test environment and it doesn't matter because it has the same features a normal site has but empty it's completely empty what we provide for the writers to write test easily is this interface is site administration development acceptance testing well this is only you can only see this if you previously installed the dependencies of Behaten of this because we require the Behat framework to parse all the files we have spread along model code base and this is the list of the current step definitions with a quick description so you can know more or less for what they are that are common to common block well there are these all mixed it's not filtered so here you can have the component even if you are going to automate something related with blocks you can check in model blocks what kind of steps and you'll find to help you there's something related with it in this case it's only I add the block name stream block in the documentation it's at the end it's only information for the writers it's all oriented for users that are not developers not nerds like us and part of the stream island part of the text is what kind of param it expects I'm explaining this quickly now but it's only in the documentation most of the time what we will be using is general because in here there is a lot of general things like clicking buttons I know it's in form this one here I'm clicking here and click is a big tricky because you can click everywhere so if you have two links with users you are in trouble then we can have other step definitions like this one to say I click on edit edit link in the LDAP tab and row so in the plugins here for example settings if you want to click in settings well Selenium is not as smart as we are and he doesn't know where he's supposed to click and most of the time it's in the first one this all the other I click on I'm trying to restrict where you want to click to parts of the DOM you can specify it with CSS selectors with text path selectors or to provide a more human language thing it's like this one so I click whatever in the table row then it looks for a table row with that text on it or whatever in the activity and it looks in the course page in one activity well the first time you are writing a test more or less is keep trying because you will see that this link doesn't match you have to see in the instance that you are running to see where is the mistake we have also tried hard to provide good exceptions so if you are beginning writing test you can know where is the problem and you can try to find it quickly otherwise you can get lots trying to know what's wrong and maybe better than see all that I can try to show you show one test running my microphone it seems that it is not working or it is not set up properly so maybe you can not hear me we will just commentate from here I will cry do you want to run yes I don't know if I can reply later or now I guess start running the test what is running you can come back here yes I will not run anymore I feel off now so it is pretty cool to see this test running it will be good if we can get that see anything yet Davy can you share the screen I think it was about so as you can see with the blank screen it is incredibly easy to test he is back holding our breath will he or won't he will he identify the loy will he identify the loy oh you saw his turn oh we can see it maybe it is just us can you guys see we can't but others can can you see him now it is going to be a slight delay some people are seeing it we can't run run run run we cannot walk in there we have clicked on his window we are just seeing pure white he is gone all right well we are not I don't think it is working it is always starting it is starting what the machine is it working all right is it working okay they can see you they can see you we can't but they can so it is just like using normal mode but sped up and nobody is running the mouse they can you can't we can't oh you can't and maybe maybe it will be gone out on youtube as long as it is working so so they are seeing the test running on the mouse somebody is seeing it right now I open a client and I run the command you can find it in the documentation and it with the selenium instance running it automatically starts at 5 fox instead of full browser it starts at 5 fox instance and 5 fox begins to run like a user though so you can see the cursor moving around the screen and clicking on links and following around the following clicks or presses buttons around model pages and during these clicks we are asserting against the contents to ensure that we can find what we want to find this is the kind of test we can do with this we cannot have smart eyes and check that the css looks good we can try but it's a lot of of time to do it and it's really hard and probably we cannot do anything good at the end but to ensure that they are not aggressive the elements are what they are supposed to be that the tests are working if you know cool I think that's coming through they are seeing it also so the nice thing is with this people who if you write a plugin and you have tests then you can have your own plugin tested and secondly you can run it on your own site if it's heavily modified and test every change to make sure that you are growing something yourself yes maybe it will help with the upgrades to other model versions because usually you create a big diff you apply the big diff to another site with the last version of model maybe it fades you don't detect the conflict Jason is asking can you just run tests for one plugin sure it's all so when you create a test the first thing to do is to tag the test you have to add if it's a model mod if it's a model assignment and then you can add whatever you want if it's something not in core you can add crazy things that don't need to be very politically correct and just run one test just in field is asking if this takes screenshots Marina came with the idea because she needed to have screenshots of one set of steps to ensure that it was working properly on the browsers but of course you cannot assert if it looks good so she thought of having screenshots after we need to step and we added another new step to switch the theme so combining both of them Marina created a new administration tool that is in his GitHub account I don't know if you can find the link or not and what it does is basically this so you run the test you specify a set of steps and it runs all these steps in all the themes of the themes you specify and saving a screenshot after each step I don't know if this answers Rick asked how many environments right now we are working on this on running on Internet Explorer 8 9 Safari in Mac and Firefox in Linux we are using a cloud based service to do that and these steps will be running in the CI server and passing every week and if somebody breaks it they will have to source labs for open source projects they have free accounts but they provide the Selenium infrastructure for everything although I think they have 86 combinations of browsers and operating systems including Android and iPad and iPhone but of course all is true and later so depends on what do you want to test it can be a bit tricky cool, well I think that's covered it all and it's a very very cool system that has been built there to do anything like on any other project not that detailed so check it out thank you very much David that's just awesome and move on because I'm conscious of the time coming up for two hours so Damien can we talk a bit about the cyber changes the screen maybe it's cracking up maybe it doesn't need to come I understand there we go I might just get rid of this one maybe you can recommend everyone to leave it at try because it's more or less easier and it's cool to see how they run absolutely so I just wanted to quickly talk about what's changed since in the assignment module and then at the end I'll touch on what didn't quite make it in 2.5 for the assignment module so the first thing that I did is went through and made sure that all of the assignment code passed as code checking now so if you're doing new development for anything for the assignment module you have to run your code through code checking so I'll be checking that as part of peer reviews second thing is that there's a whole lot more unit tests as part of the assignment and those are also going to be required for all new features in the assignment module it is getting more complicated with all the features that are in there like group assignments and line marking and things like that so the unit tests should pick up if you've accidentally broken anything in a lot of cases and they're actually a really good way to write new features is to actually write the unit tests first and then add a little bit and then make sure that the unit tests passed and then write the next bit and that way you can build out the feature and make sure that all the tests passed all the way along yes there is a pending backboard issue for 2.4 assignment tests which is pretty much the same set of tests minus a couple so it would be good to get them in stable 2.4 as well I think you're always just trying to ignore you actually well they're sitting there yeah so the major feature for 2.5 is this submission attempt history so these slides won't go for very long and I'll bring up a demo site but thanks to Devo Smith and Fernando who kicked off this work they voted the first version and sent it through and Fernando funded that work as well so thanks to them you've already seen a little bit earlier the cleanup of the assignment settings UI but that was one of the other things that has changed the other thing is that there is no update for developing docs for writing assignment submission and feedback plugins so I'm glad I've done that now and the list of things which didn't make it for 2.5 is there is a a ticket there with a whole bunch of web services which covers submitting assignments and setting things to blindmark students and things like that so basically anything within the assignment is covered in those web services but they didn't make it for 2.5 marking workflow is something that's already been submitted from Dan Marston and that's a really cool feature and depending on how much time it is I've got that on my demo site which I can show you now but it's not in 2.5 and then we are talking about the best way to build some concept of grading interface which is more unified across the activities so there's a lot of these grading features which are coming into assignment and will be good to be able to get them into other activities as well but with writing specifications and working out what we're going to do exactly and my site is this one so I'm just going to show you the assignment submission history so how it works is when you add a new assignment in the settings for the assignment settings you have these two new options here which is attempts reopened and there's a few different options there so you can never reopen assignment attempts which is the old behavior and that's the default you can manually reopen attempts for a student or you can automatically reopen attempts so the difference between the last two is manually the teacher has to reopen an assignment attempt and automatically just means that the student can keep adding new attempts until they reach the grade to pass which is in the grade book and you can also set a maximum number of attempts so you can say that the teacher can reopen attempts for a student until they get to four attempts and then they can't reopen it now what this actually means as a teacher those are Fred's names so you blame him so this student has submitted an assignment and everything looks the same except now you can see what attempt number we're currently looking at when we're grading it this is the submission, this is the latest submission from the student but down here under the normal settings we can say when we're grading it we can allow the student another attempt or not allow them another attempt and right down the bottom we can see a list of their previous attempts to the assignment and any feedback that was attached to those previous attempts so basically what happened before is a student would make their submission and then the teacher would give them feedback and then they would edit their submission and resubmit it and the teacher would have no way to go back and see what their first submission was and what had changed between the two submissions but now basically as the student adds more attempts and the teacher gives them feedback they give this long list of attempts which shows at the bottom for both teachers and students so that they can see what's happened over time so when a student goes to their submission if it's been reopened they have the option of adding a new attempt based on their previous submission or just adding a new attempt the difference between those two is whether all the files and all the content that they've provided for the first attempt is copied to the new submission so the other thing that they can see down here is the student sees the same list of previous attempts that the teacher can see that was the last one that we did that's copied their previous attempt and then we just make some changes and submit it so why is that content hanging out of the edge like that that's bootstrap doing that new bootstrap oh thanks a lot that's awesome this module's really powering along any thoughts or questions for anyone about that there's a lot of big requests coming later in the assignment the last six months this one had lots of votes it was about 50 votes okay well let's get on to poor Juan I think who's languishing there in Spain Juan are you awake yes excellent so we well it'd be great if you could talk a bit about the mobile app and what's been happening over the last few months with the team where things are we haven't really officially announced it properly yet on noodle to all but we will this week I would say any day so go for it okay did you see my screen can you see it on youtube because we're having some issue here and we can't see it ourselves okay okay okay well as Martin said I'm going to talk about the new official mobile app for model that is called model mobile well first of all I'm going to introduce myself my name is Juan Leiva and I work as a consultant developer in cba consulting that is the model partner based in Barcelona and also an ad wants developer you may know configurable configurable reports on the LTA provider plugin well model mobile is an android and also a nice application that works in both phones and tablets the first version has the same features that the previous my mobile application that was available only for ios and for model 2.2 well from model 2.1 to model 0.4 the main difference are that this new application is an HTML5 application and that requires model 2.4 you can download the application from the android play store or apple app market yes you have to just search for model mobile and the plan is to release a new version of the app with two months including backfixes and new features and we are going to integrate also code contributed by the community and this app should be used in combination with our mobile theme like bootstrap for getting a full mobile experience the current version of the app is 1.2 and the next version will be available in June and 1.4 will be releasing almost and including support for push notifications that i think will be the cool feature very cool feature of this application my plan is that every time a mobile major version is released i will try to include functionalities that relies on new web services added in mobile core the evp is mainly a web service client so we have to use of course mobile core web services the main technical features are that the new application support plugins you can create your own customizations and you can override the application api some app specs can be configured remotely in your model site you can translate the application in your model installation using just a custom model.php file and you can also customize the style you need to have there is a new setting in the mobile in plugins web services mobile where you can add a valid css file containing your custom styles we are using some technologies that are well known by any javascript developer like phone gap we are using phone gap for cross compiling the application to native code to iOS and Android we are using jQuery jQuery some jQuery plugins like jQuery jQuery user interface and touch swipe initially we were thinking in using jQuery mobile but finally we found that was an overkill so we just use plain HTML5 and javascript we are using also backmon that is very well known javascript delivery that we use for models we use for controllers and we also use the templating system that use backmon finally we are using also require.js that is javascript delivery for handling dependencies and require, write include your javascript files we also using google closer link that is like a code checker for checking the code we are using also some cool CSS3 features like transitions that makes the app feel native in iOS we use hardware accelerate effects for transitions, for animations and it's pretty cool and well this is how looks the application for a form you can do the application from the google play store on android ppa market just search for mobile mobile if you enter here student or teacher this is automatically pointing to mobile demo site so you are automatically loaded so you can set the application and well the first version is pretty simple but it works very very well I think we did a very good job for this initial version as Martin said there are the the storage we are thinking that this application is going to be focused in offline notifications and also using the phone hardware features like the camera and the audio recorder we are not going to create a model in your pocket model in your hand this is just a very small application for flying and mainly for notifications so we we can we can use a mobile theme like bootstrap or my mobile in combination with this application so you have good experience using a mobile theme in mobile and you have a native application for android and for iOS for notification and offline we are going to support the application for iOS and for android but the application can be also we use it in Windows Phone and other mobile operating systems because since we use PhoneGuard for building there is a cross compilation to multipliers operating systems so it's very interesting and that's all. Any question? No? No, there might be one, it's just there's some lag so give it a little few seconds Well thanks to Jerome and Barbara as well we did an awful lot over the past few months but Juan did the bulk of the coding. Thanks Juan thanks for the overview it's really good, it's so good to have it up in the stores now it's in iTunes store files and on android so google play and keep building it and encouraging community to add on to it as well and it's a whole project like the Moodle really and it's all under the Apache license it's all open source and you can take it and modify it you don't have to give anything back so it's more open than gpl actually Rex don't know about that link you posted the yeah you're right Tim the the push notifications as well, Jerome do you want to talk about it Yes, post notification it use air modifier so when you send the push notification from Moodle it goes through the messaging API and the messaging provider send it to software that we created the air modifier and the air modifier send it to Apple and later I think you will send it to google as well and then apple or google send it back to your mobile that's it all right cool with the hostess what do you think Jerome no what is going good and what the trees that would be good looking are yeah the interface is really really nice a nice interface I actually would like Moodle to look more like that app of coming months it's a pretty good example of a simple interface on this touchscreen okay well the last thing on the list but not the least is Michael Durar talking about google summer code yeah so I guess I can't switch off the screen sorry so do you want the mouse to put anything up no no I just previously mentioned that so we've been accepted for the google summer code this year I guess the stage that we're up to is receiving applications so those applications should be coming in from students over the next week in a bit we we've got more projects this year than we have had in the past I don't know how many applications we'll end up with as a result hopefully we'll get some good students this year it's always the main thing is doesn't matter how many applications we get the main thing is that we get some good students yeah you may have seen students already around asking questions if you're not involved in the projects you can probably ignore that although you're also welcome to give a hand to students that are involved yeah and then when the projects start after the students are accepted please be supportive of the students as they go through the google summer code they may ask for at various points community input on proposals and perhaps in testing of code so that'll happen mostly between June and September and that's about it cool the very next day was so accepting the yes so the applications are due on the 3rd of May US oh wow cool okay well we're probably all tired we'll wrap it up it was a long meeting what do you think about this mode for the experiment of broadcasting of this way plus 1 minus 1 yes the live stream is saved on YouTube there so we'll leave it there well I'm not dissing at all in fact they're just putting out a new version with a lot of improvements I'll try that again as well I mean I like to support that open source project but this we have a peak of 70 viewers there or more and quite a lot of things sort of interesting looking at how that works but I have to say after running it for 2 hours the interface on the macOS X in Chrome started to crumble a bit certain buttons are not working but we're still broadcasting so we haven't killed it yet okay everyone well thank you all for coming we have a couple of weeks of intense polishing and 2.5 will be out and it's on to 2.6 definitely I think we need a party after this release so so thanks all thanks for coming along see ya do you want to say anything thank you we need a catchphrase some sort of a having a hit more than a rules more than a rules we actually do have a gang sign which I can't show you in the video because it's not I can't see which one anymore see ya thanks all but