<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Simoncoggins</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Simoncoggins"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/Special:Contributions/Simoncoggins"/>
	<updated>2026-11-01T06:18:45Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Talk:Plugin_documentation&amp;diff=46662</id>
		<title>Talk:Plugin documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Talk:Plugin_documentation&amp;diff=46662"/>
		<updated>2014-10-30T09:47:44Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: Sorry, it seems to work fine!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Talk:Plugin_documentation&amp;diff=46661</id>
		<title>Talk:Plugin documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Talk:Plugin_documentation&amp;diff=46661"/>
		<updated>2014-10-30T09:42:52Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: Created page with &amp;quot;This page suggests plugin documentation should make use of the Infobox template, however it appears to have been deleted:  https://docs.moodle.org/27/en/Template:Infobox  Was...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page suggests plugin documentation should make use of the Infobox template, however it appears to have been deleted:&lt;br /&gt;
&lt;br /&gt;
https://docs.moodle.org/27/en/Template:Infobox&lt;br /&gt;
&lt;br /&gt;
Was it deleted in error, or should this page be updated with different instructions?&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/Work_outline&amp;diff=45157</id>
		<title>reportbuilder/Work outline</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/Work_outline&amp;diff=45157"/>
		<updated>2014-06-06T01:33:48Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* To do list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This page is a list of work required for the porting of the [[reportbuilder | Report Builder]] into Moodle.&lt;br /&gt;
&lt;br /&gt;
==Reasons for incorporating the report builder==&lt;br /&gt;
Different options were considered for custom reports in Moodle and it was decided that integrating Totara&#039;s report builder into Moodle was the best option. Some of the reasons for this decision are as follows:&lt;br /&gt;
*A lot of the community is already familiar with Totara&#039;s system.&lt;br /&gt;
*Work on porting Totara&#039;s system to Moodle has been attempted by external developers.&lt;br /&gt;
*The report builder interface is the most user friendly, with no need to create (or understand) SQL.&lt;br /&gt;
*Users do not need to understand the database structure of Moodle to create appropriate reports.&lt;br /&gt;
*General opinion is that Totara&#039;s report builder has a more Moodle feel compared to other solutions. (See MDL-30193 for comments)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==To do list==&lt;br /&gt;
This list has been arranged into roughly the order that they should be started / completed.&lt;br /&gt;
These issues are all part of the &amp;quot;Integrate report builder into core&amp;quot; epic (MDL-30193).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Create and update reportbuilder unit and behat tests (MDL-45700)&#039;&#039;&#039;&lt;br /&gt;
*Update Unit tests (Then keep them updated and passing throughout development)&lt;br /&gt;
*Add behat tests&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Structural changes to reportbuilder (MDL-45702)&#039;&#039;&#039;&lt;br /&gt;
*Change namespace &amp;amp; Frankenstyle name&lt;br /&gt;
*Use automatic class loading.&lt;br /&gt;
*Fix existing classes&lt;br /&gt;
*Work out what is commented out and why (git diff ~/git/totara/mod/scorm/rb_sources/rb_source_scorm.php mod/scorm/rb_sources/rb_source_scorm.php)&lt;br /&gt;
*Fix warnings&lt;br /&gt;
*Remove irrelevant totara data from:&lt;br /&gt;
**main plugin&lt;br /&gt;
**child classes&lt;br /&gt;
*Totara_report_manager block needs to be included (or some other way for students and teachers needs to be found to access the reports).&lt;br /&gt;
*Move language strings to plugin files&lt;br /&gt;
*Fix navigation tree for viewing reports.&lt;br /&gt;
*Change ‘Global settings’ to a more intuitive name&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Replace calls to custom totara functions.(MDL-45703)&#039;&#039;&#039;&lt;br /&gt;
*totara_set_notification()&lt;br /&gt;
*file_postupdate_standard_editor() needs to be replaced (reportbuilder/general.php)&lt;br /&gt;
*totara_feature_visable()&lt;br /&gt;
*totara_get_manager()&lt;br /&gt;
*Other yet undiscovered functions…&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Update and create &amp;quot;sources&amp;quot; for the report builder. (MDL-45704)&#039;&#039;&#039;&lt;br /&gt;
*Port over sources from Totara&lt;br /&gt;
*Remove totara specific fields (diff between the database schemas in Totara and Moodle to see what fields to remove)&lt;br /&gt;
*Remove totara specific functions&lt;br /&gt;
*Add more classes to useful areas of Moodle (More than just SCORM).&lt;br /&gt;
**Assign (submissions, summary, final grades)&lt;br /&gt;
**Site log (exists in Totara, but need to upgrade to new log system)&lt;br /&gt;
**Quiz&lt;br /&gt;
**Forum&lt;br /&gt;
*Make sure theses sources are indexed for performance&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Formatting issues in the reportbuilder (MDL-45705)&#039;&#039;&#039;&lt;br /&gt;
*Clean up formatting.&lt;br /&gt;
**Fix capitalisations.&lt;br /&gt;
**Doc blocks.&lt;br /&gt;
**Comments.&lt;br /&gt;
**multiple parameters on one line.&lt;br /&gt;
*Possibly split up report forms - Not sure that they will get through all in one file.&lt;br /&gt;
*Make a separate page for viewing the list of reports from creating reports &lt;br /&gt;
*Move add button to the next row so that it’s clear that you already are adding a field&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Update javascript for the reportbuilder (MDL-45706)&#039;&#039;&#039;&lt;br /&gt;
*Disable javascript calls (currently jquery).&lt;br /&gt;
*Create YUI/Moodle Table (Talk to Frontend)&lt;br /&gt;
*reportbuilder/filters/ remove jquery from hierarchy.php if not the whole file.&lt;br /&gt;
*reportbuilder/showhide.php remove jquery and replace with yui.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Create / update embedded reports (MDL-45707)&#039;&#039;&#039;&lt;br /&gt;
*reportbuilder/embedded/ all files need to be reviewed to determine if they are useful / relevant.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Replace add_to_log calls to event classes. (MDL-45708)&#039;&#039;&#039;&lt;br /&gt;
*update report&lt;br /&gt;
*view report&lt;br /&gt;
*dailyreport&lt;br /&gt;
*delete&lt;br /&gt;
*$type . ‘ report’ - reportbuilder/index.php line 56 (deletion of report)&lt;br /&gt;
*new report&lt;br /&gt;
*export report&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Update cron functions to use the new cron system.(MDL-45709)&#039;&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Other miscellaneous jobs.&#039;&#039;&#039;&lt;br /&gt;
*accessibility check.&lt;br /&gt;
*Review all code 50+ files, thousands of lines of code.&lt;br /&gt;
*Finish Report Builder documentation&lt;br /&gt;
*Investigate in detail the file totara/reportbuilder/db/install.php. This changes the database structure which I am sure that integrators would have some hard questions about.&lt;br /&gt;
* Review [[reportbuilder/Totara_thoughts_on_integration]]&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/Totara_thoughts_on_integration&amp;diff=45156</id>
		<title>reportbuilder/Totara thoughts on integration</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/Totara_thoughts_on_integration&amp;diff=45156"/>
		<updated>2014-06-06T01:32:11Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: Totara thoughts on integration of report builder into core&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Having previously given some thought to merging reportbuilder into Moodle, and as the original author I thought I&#039;d put down some thoughts ideas that might help with the process.&lt;br /&gt;
&lt;br /&gt;
===Areas that may need some work===&lt;br /&gt;
&lt;br /&gt;
1. Group Concat&lt;br /&gt;
&lt;br /&gt;
Report builder has some code to provide a cross-platform version of the mysql only aggregate function group_concat (which lets you aggregate text data by concatenation). As you spotted there is postgres specific code in totara/reportbuilder/db/install.php which creates a new aggregate function. In 2.6 (seedlings code) we added support for MSSQL which proved to be quite difficult. See here for how that is done:&lt;br /&gt;
&lt;br /&gt;
https://github.com/totara/seedlings/blob/totara-seedlings-2.6/totara/mssql/db/install.php&lt;br /&gt;
&lt;br /&gt;
Both the postgres and mssql solutions might be considered a bit &amp;quot;custom&amp;quot; for core moodle.&lt;br /&gt;
&lt;br /&gt;
Also Totara doesn&#039;t support Oracle at all so currently there is no Oracle compatibility. There is certainly some work there if you decide that group concat support is wanted. If not you would just need to remove any existing uses of it (activity and tag lists in course source, cohort filters, multiselect custom field type). A search for sql_group_concat should find them all.&lt;br /&gt;
&lt;br /&gt;
2. Embedded reports&lt;br /&gt;
&lt;br /&gt;
Currently all embedded report classes are stored in totara/reportbuilder/embedded/. That&#039;s fine for us but in Moodle you will want plugins to be able to define their own embedded reports which they make use of. That will probably mean using autoloading but you will also need a way for the system to discover which embedded reports exist (so you can provide a list on totara/reportbuilder/index.php).&lt;br /&gt;
&lt;br /&gt;
3. Extending sources&lt;br /&gt;
&lt;br /&gt;
This is something that would help us since once report builder is in core we&#039;ll need to be able to put back our totara-specific additions. It would be helpful if it was doable without us having to make too many core changes. One thing we will be able to do is extend the existing sources like this:&lt;br /&gt;
&lt;br /&gt;
https://github.com/totara/seedlings/blob/totara-seedlings-2.6/totara/cohort/rb_sources/rb_source_cohort_orphaned_users.php&lt;br /&gt;
&lt;br /&gt;
But it would be great if this could be kept in mind as I&#039;m sure lots of organisations would appreciate an easy way to add their own functionality into existing report sources.&lt;br /&gt;
&lt;br /&gt;
===Potential changes to consider===&lt;br /&gt;
&lt;br /&gt;
The following are all things we&#039;ve intended to do but not got around to yet. I thought I&#039;d mention them here as they involve API changes, and so if you consider any of them important it would be better to get them in from the start rather than having to make breaking changes later (requiring plugin authors to update their sources).&lt;br /&gt;
&lt;br /&gt;
1. Update filters to use GET instead of POST&lt;br /&gt;
&lt;br /&gt;
This would allow people to use a URL instead of having to create a saved search to point to a particular results set. At the same time I would refactor saved searches to use a table with key/value pairs rather than how it is done right now (serializing filter data in session/database).&lt;br /&gt;
&lt;br /&gt;
2. Modify filter UI&lt;br /&gt;
&lt;br /&gt;
Currently the report creator defines which filters are available and they are all displayed every time (with some set to advanced). We would like to change it so the user can see a list of all filters and then chooses which ones to add (more like JIRA basic search). The main advantages are a cleaner UI and it would make it possible to add extra features such as AND/OR logic and reusing the same filter multiple times in a single report.&lt;br /&gt;
&lt;br /&gt;
3. Refactor Content restrictions by merging with filters.&lt;br /&gt;
&lt;br /&gt;
For historical reasons content restrictions have completely separate code from filters. However they have ended up converging and I think the system would be more flexible if they were combined. All existing content restrictions could be converted to filters fairly easily (they are a bit more dynamic but basically the same). If item 1 above was done then the content tab could just list all available filters and the report creator would add them as a kind of pre-filter. The only difference would be that report users couldn&#039;t remove filters that the admin had setup. This would instantly make all the current filters available as content restrictions which would be great!&lt;br /&gt;
&lt;br /&gt;
4. More fine-grained management of reports.&lt;br /&gt;
&lt;br /&gt;
Currently there is one capability that controls the ability to manage all reports. As they get used more its becoming evident that this needs to be more fine-grained. Perhaps reports should use contexts to control who can manage them, or maybe each report should be &amp;quot;owned&amp;quot; by the creator and only them and site admins can edit them. I&#039;m not sure of the best approach but it is clear that the current system is a bit limited.&lt;br /&gt;
&lt;br /&gt;
Related is the list of embedded reports on totara/reportbuilder/index.php. This is already getting quite long for us as it is a site-wide list of all embedded reports. It seems like it will soon need to be split out in some way, either with categories, or separate per-component management areas.&lt;br /&gt;
&lt;br /&gt;
5. Improved support for reusing predefined &amp;quot;groups&amp;quot; of reporting functionality&lt;br /&gt;
&lt;br /&gt;
As you know report sources are quite prescriptive in that the developer must specify exactly what is available. Early on we found the need to reuse some common fields (such as user profile fields) across multiple reports and ended up with helper functions like add_user_fields_to_columns() in rb_base_source.php to achieve that. While predefined sources have got us a long way, we are starting to see requests for more flexibility - people wanting to pull in data from multiple existing sources.&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been considering how it might be possible to define a group of fields/filters along with any foreign keys that they can join against to make it easier to reuse common code.&lt;br /&gt;
&lt;br /&gt;
===Other potential future features===&lt;br /&gt;
&lt;br /&gt;
Here are a few ideas that we are looking at adding to future versions of report builder.&lt;br /&gt;
&lt;br /&gt;
1. Graphical reporting&lt;br /&gt;
&lt;br /&gt;
It&#039;s long been on our roadmap to add support for graphical reports using a front-end javascript graphing library. This is a high priority for us this year so may be something we tackle soon. With report builder going into core we would most likely do this as a contribution to Moodle so would need to go through the normal process for code contributions. Just wanted to give you a heads up that it&#039;s on the cards.&lt;br /&gt;
&lt;br /&gt;
2. Separate reporting database connection&lt;br /&gt;
&lt;br /&gt;
Particularly on large sites, big reports can take a while to generate if there&#039;s huge amounts of data and multiple complex joins. In 2.5 we added report caching which provides a way to get faster reporting at the expense of real-time results. Another approach we investigated was supported a separate database connection to a read-only slave database specifically for reporting. This has the advantage of reducing load on the main database server. We have some code that does this but haven&#039;t integrated it yet. Happy to share what we have if it sounds of interest.&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/Totara_thoughts_on_integration&amp;diff=45155</id>
		<title>reportbuilder/Totara thoughts on integration</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/Totara_thoughts_on_integration&amp;diff=45155"/>
		<updated>2014-06-06T01:31:37Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: Totara thoughts on integration of report builder into core&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Having previously given some thought to merging reportbuilder into Moodle, and as the original author I thought I&#039;d put down some thoughts ideas that might help with the process.&lt;br /&gt;
&lt;br /&gt;
===Areas that may need some work===&lt;br /&gt;
&lt;br /&gt;
1. Group Concat&lt;br /&gt;
&lt;br /&gt;
Report builder has some code to provide a cross-platform version of the mysql only aggregate function group_concat (which lets you aggregate text data by concatenation). As you spotted there is postgres specific code in totara/reportbuilder/db/install.php which creates a new aggregate function. In 2.6 (seedlings code) we added support for MSSQL which proved to be quite difficult. See here for how that is done:&lt;br /&gt;
&lt;br /&gt;
https://github.com/totara/seedlings/blob/totara-seedlings-2.6/totara/mssql/db/install.php&lt;br /&gt;
&lt;br /&gt;
Both the postgres and mssql solutions might be considered a bit &amp;quot;custom&amp;quot; for core moodle.&lt;br /&gt;
&lt;br /&gt;
Also Totara doesn&#039;t support Oracle at all so currently there is no Oracle compatibility. There is certainly some work there if you decide that group concat support is wanted. If not you would just need to remove any existing uses of it (activity and tag lists in course source, cohort filters, multiselect custom field type). A search for sql_group_concat should find them all.&lt;br /&gt;
&lt;br /&gt;
2. Embedded reports&lt;br /&gt;
&lt;br /&gt;
Currently all embedded report classes are stored in totara/reportbuilder/embedded/. That&#039;s fine for us but in Moodle you will want plugins to be able to define their own embedded reports which they make use of. That will probably mean using autoloading but you will also need a way for the system to discover which embedded reports exist (so you can provide a list on totara/reportbuilder/index.php).&lt;br /&gt;
&lt;br /&gt;
3. Extending sources&lt;br /&gt;
&lt;br /&gt;
This is something that would help us since once report builder is in core we&#039;ll need to be able to put back our totara-specific additions. It would be helpful if it was doable without us having to make too many core changes. One thing we will be able to do is extend the existing sources like this:&lt;br /&gt;
&lt;br /&gt;
https://github.com/totara/seedlings/blob/totara-seedlings-2.6/totara/cohort/rb_sources/rb_source_cohort_orphaned_users.php&lt;br /&gt;
&lt;br /&gt;
But it would be great if this could be kept in mind as I&#039;m sure lots of organisations would appreciate an easy way to add their own functionality into existing report sources.&lt;br /&gt;
&lt;br /&gt;
===Potential changes to consider===&lt;br /&gt;
&lt;br /&gt;
The following are all things we&#039;ve intended to do but not got around to yet. I thought I&#039;d mention them here as they involve API changes, and so if you consider any of them important it would be better to get them in from the start rather than having to make breaking changes later (requiring plugin authors to update their sources).&lt;br /&gt;
&lt;br /&gt;
1. Update filters to use GET instead of POST&lt;br /&gt;
&lt;br /&gt;
This would allow people to use a URL instead of having to create a saved search to point to a particular results set. At the same time I would refactor saved searches to use a table with key/value pairs rather than how it is done right now (serializing filter data in session/database).&lt;br /&gt;
&lt;br /&gt;
2. Modify filter UI&lt;br /&gt;
&lt;br /&gt;
Currently the report creator defines which filters are available and they are all displayed every time (with some set to advanced). We would like to change it so the user can see a list of all filters and then chooses which ones to add (more like JIRA basic search). The main advantages are a cleaner UI and it would make it possible to add extra features such as AND/OR logic and reusing the same filter multiple times in a single report.&lt;br /&gt;
&lt;br /&gt;
3. Refactor Content restrictions by merging with filters.&lt;br /&gt;
&lt;br /&gt;
For historical reasons content restrictions have completely separate code from filters. However they have ended up converging and I think the system would be more flexible if they were combined. All existing content restrictions could be converted to filters fairly easily (they are a bit more dynamic but basically the same). If item 1 above was done then the content tab could just list all available filters and the report creator would add them as a kind of pre-filter. The only difference would be that report users couldn&#039;t remove filters that the admin had setup. This would instantly make all the current filters available as content restrictions which would be great!&lt;br /&gt;
&lt;br /&gt;
4. More fine-grained management of reports.&lt;br /&gt;
&lt;br /&gt;
Currently there is one capability that controls the ability to manage all reports. As they get used more its becoming evident that this needs to be more fine-grained. Perhaps reports should use contexts to control who can manage them, or maybe each report should be &amp;quot;owned&amp;quot; by the creator and only them and site admins can edit them. I&#039;m not sure of the best approach but it is clear that the current system is a bit limited.&lt;br /&gt;
&lt;br /&gt;
Related is the list of embedded reports on totara/reportbuilder/index.php. This is already getting quite long for us as it is a site-wide list of all embedded reports. It seems like it will soon need to be split out in some way, either with categories, or separate per-component management areas.&lt;br /&gt;
&lt;br /&gt;
5. Improved support for reusing predefined &amp;quot;groups&amp;quot; of reporting functionality&lt;br /&gt;
&lt;br /&gt;
As you know report sources are quite prescriptive in that the developer must specify exactly what is available. Early on we found the need to reuse some common fields (such as user profile fields) across multiple reports and ended up with helper functions like add_user_fields_to_columns() in rb_base_source.php to achieve that. While predefined sources have got us a long way, we are starting to see requests for more flexibility - people wanting to pull in data from multiple existing sources.&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been considering how it might be possible to define a group of fields/filters along with any foreign keys that they can join against to make it easier to reuse common code.&lt;br /&gt;
&lt;br /&gt;
===Other potential future features==&lt;br /&gt;
&lt;br /&gt;
Here are a few ideas that we are looking at adding to future versions of report builder.&lt;br /&gt;
&lt;br /&gt;
1. Graphical reporting&lt;br /&gt;
&lt;br /&gt;
It&#039;s long been on our roadmap to add support for graphical reports using a front-end javascript graphing library. This is a high priority for us this year so may be something we tackle soon. With report builder going into core we would most likely do this as a contribution to Moodle so would need to go through the normal process for code contributions. Just wanted to give you a heads up that it&#039;s on the cards.&lt;br /&gt;
&lt;br /&gt;
2. Separate reporting database connection&lt;br /&gt;
&lt;br /&gt;
Particularly on large sites, big reports can take a while to generate if there&#039;s huge amounts of data and multiple complex joins. In 2.5 we added report caching which provides a way to get faster reporting at the expense of real-time results. Another approach we investigated was supported a separate database connection to a read-only slave database specifically for reporting. This has the advantage of reducing load on the main database server. We have some code that does this but haven&#039;t integrated it yet. Happy to share what we have if it sounds of interest.&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Developer_meeting_April_2013&amp;diff=41269</id>
		<title>Developer meeting April 2013</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Developer_meeting_April_2013&amp;diff=41269"/>
		<updated>2013-07-08T01:18:14Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Open Badges (Simon Coggins and Yuliya Bozhko) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Developer meetings]] &amp;gt; April 2013 meeting notes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Time&lt;br /&gt;
| [http://timeanddate.com/worldclock/fixedtime.html?year=2013&amp;amp;month=4&amp;amp;day=23&amp;amp;hour=13&amp;amp;min=0&amp;amp;sec=0 13:00 UTC on Tuesday, 23 April 2013]&lt;br /&gt;
|-&lt;br /&gt;
| Meeting room&lt;br /&gt;
| [http://www.youtube.com/channel/UCIVdgclkXbw47PSGqqsLccw Moodle Meetings YouTube channel]&lt;br /&gt;
|-&lt;br /&gt;
| Chat&lt;br /&gt;
| [https://moodle.org/local/chatlogs/info.php Regular Dev chat]&lt;br /&gt;
|-&lt;br /&gt;
| Twitter&lt;br /&gt;
| [https://twitter.com/search?q=%23moodledev #moodledev]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In this meeting we focused on the impending Major release.&lt;br /&gt;
&lt;br /&gt;
== Meeting video ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;mediaplayer&amp;gt;http://www.youtube.com/watch?v=DTuaUjdJQZc&amp;lt;/mediaplayer&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Meeting notes ==&lt;br /&gt;
&lt;br /&gt;
===[https://docs.moodle.org/dev/images_dev/d/d3/hq-teams.pdf News from Moodle HQ] (Martin Dougiamas)===&lt;br /&gt;
* New HQ teams are being formed: Front-end, back-end, sites&lt;br /&gt;
* New focus and priorities in teams&lt;br /&gt;
&lt;br /&gt;
===[[Moodle_2.5_release_notes|Moodle 2.5]]===&lt;br /&gt;
====[https://docs.moodle.org/25/en/New_features New features page]====&lt;br /&gt;
* Complements release notes&lt;br /&gt;
* Updated for every release&lt;br /&gt;
* Screenshots and quick overview&lt;br /&gt;
* The page to link to when sharing upcoming features&lt;br /&gt;
&lt;br /&gt;
====[[OpenBadges_User_Documentation|Open Badges]] (Simon Coggins and Yuliya Bozhko)====&lt;br /&gt;
* Initiative from Mozilla for achievements across the Web&lt;br /&gt;
* Awards a badge that is an image but also a verifiable certificate&lt;br /&gt;
* Moodle can award badges and show badges from other sites&lt;br /&gt;
* Test site at &amp;lt;s&amp;gt;[http://openbadgestotara.elearning.catalyst.net.nz openbadgestotara.elearning.catalyst.net.nz]&amp;lt;/s&amp;gt; Now decommissioned, use demo.moodle.net instead.&lt;br /&gt;
* Badges can be awarded at site-wide or course levels&lt;br /&gt;
* Create a badge in a course from the Admin menu and provide an image&lt;br /&gt;
* Awarded based on completion of course or activity&lt;br /&gt;
* Awards can be shared and connected to the Mozilla Backpack&lt;br /&gt;
* Mahara may become a Backpack provider in future&lt;br /&gt;
&lt;br /&gt;
====[http://tracker.moodle.org/browse/MDL-38016 Bootstrap themes] (Martin Dougiamas)====&lt;br /&gt;
* Framework for responsive sites&lt;br /&gt;
* Now a new base theme for a new family of themes&lt;br /&gt;
* Will replace current base themes in future&lt;br /&gt;
* Not be the default theme in Moodle yet&lt;br /&gt;
&lt;br /&gt;
====[http://tracker.moodle.org/browse/MDL-38509 Installation of new plugins from moodle.org] (David Mudrak)====&lt;br /&gt;
* Admin tool in Moodle&lt;br /&gt;
* Plugins found in the Directory can be downloaded, validated and installed&lt;br /&gt;
* Downloaded zip files can be installed and uninstalled from within Moodle without file access&lt;br /&gt;
&lt;br /&gt;
====[http://tracker.moodle.org/browse/MDL-30637 Short forms] (Ruslan Kabalin and Frédéric Massart)====&lt;br /&gt;
* Forms are broken into sections that can collapse&lt;br /&gt;
* Fieldsets with required fields, non-validating fields and forced open&lt;br /&gt;
* Developers should review all their forms to see that they still make sense&lt;br /&gt;
* Editor can be simplified to hide editor toolbars&lt;br /&gt;
&lt;br /&gt;
====[http://tracker.moodle.org/browse/MDL-37009 Consistent course listing display] (Marina Glancy)====&lt;br /&gt;
* Course listings are now rendered consistently&lt;br /&gt;
* Themes will be affected by this, but theming should be more consistent in the future&lt;br /&gt;
&lt;br /&gt;
====[http://tracker.moodle.org/browse/MDL-15727 jQuery and jQuery UI supported in add-ons] (Petr Škoda)====&lt;br /&gt;
* JQuery library now available for plugins&lt;br /&gt;
* Not use by core&lt;br /&gt;
&lt;br /&gt;
====[https://tracker.moodle.org/browse/MDL-37127 Shifting our YUI] (Andrew Nicols)====&lt;br /&gt;
* [[Javascript/Shifter]]&lt;br /&gt;
** Should help to improve documentation and allow unit tests&lt;br /&gt;
** JS can be linted for possible errors&lt;br /&gt;
&lt;br /&gt;
====[http://tracker.moodle.org/browse/MDL-35611 Behat tests] (David Monllaó)====&lt;br /&gt;
* [[Acceptance testing]]&lt;br /&gt;
* Human readable test instructions&lt;br /&gt;
* Tests can be run automatically in a browser&lt;br /&gt;
* About 100 QA tests have been now automated (more to come) https://tracker.moodle.org/browse/MDLQA-5249&lt;br /&gt;
* Some assistance for test writers is provided by a Developer tool in Moodle 2.5&lt;br /&gt;
* [https://github.com/marinaglancy/moodle-tool_behatui Behat screenshotting tool]&lt;br /&gt;
&lt;br /&gt;
====[https://tracker.moodle.org/issues/?jql=fixVersion%20in%20(%222.5%22)%20and%20component%20in%20(Assignment)%20and%20type%20%3D%20Improvement Assignment changes in 2.5] (Damyon Wiese)====&lt;br /&gt;
* Assignment code now validates with code checker&lt;br /&gt;
* More unit tests have been added&lt;br /&gt;
* Docs have been updated&lt;br /&gt;
* New feature: submission history&lt;br /&gt;
** Reattempts (manual or automatic)&lt;br /&gt;
&lt;br /&gt;
===[[Moodle_Mobile_Release_Notes | Mobile app]] (Juan Leyva)===&lt;br /&gt;
* New version released with a more versions planned every two months&lt;br /&gt;
* App can be styled&lt;br /&gt;
* Push notifications to come&lt;br /&gt;
&lt;br /&gt;
===[[GSOC|GSoC]] (Michael de Raadt)===&lt;br /&gt;
* Moodle has been accepted as a participating organisation&lt;br /&gt;
* Students are starting to submit applications to participate with Moodle&lt;br /&gt;
* Students may be found in forums now and in the future&lt;br /&gt;
&lt;br /&gt;
==Attendees==&lt;br /&gt;
Adrian Greeve, Amy Groshek, Andrew Nicols, Ankit Agarwal, Anthony Borrow, Aparup Banerjee, Barbara Ramiro, Bas Brands, Damyon Wiese, Dan Poltawski, Daniele Cordella, Darryl Pogue, David Monllaó, David Mudrak, Davo Smith, Eloy Lafuente, Frédéric Massart, Gareth J Barnard, Helen Foster, Howard Miller, Jason Fowler, Jason Hardin, Jenny Gray, Jérôme Mouneyrac, Juan Leyva, Justin Filip, Marina Glancy, Mark Nelson, Martin Dougiamas, Mary Cooch, Mary Evans, Michael Blake, Michael de Raadt, Mike Churchward, Peter Bulmer, Petr Skoda, Rajesh Taneja, Rex Lorenzo, Sam Hemelryk, Sam Marshall, Tim Hunt, Watermark Neilsen, Yuliya Bozhko... (plus many more via YouTube and Twitter)&lt;br /&gt;
&lt;br /&gt;
==Meeting chat log==&lt;br /&gt;
&amp;lt;div style=&amp;quot;height:300px;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Moodle HQ&lt;br /&gt;
| ok we are going live&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:01:28 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Moodle HQ&lt;br /&gt;
| can you see us ok?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:01:32 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mary&lt;br /&gt;
| yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:01:47 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| Yup&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:01:47 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| roger that&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:01:49 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rajesh Taneja&lt;br /&gt;
| yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:01:49 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Juan Leyva&lt;br /&gt;
| yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:01:59 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Davo Smith&lt;br /&gt;
| yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:02:04 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| Hello all&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:02:14 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| David Mudrák&lt;br /&gt;
| I&#039;m lost&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:02:17 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| David Mudrák&lt;br /&gt;
| shouldn&#039;t get an invatation to the hangout?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:02:31 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Fowler&lt;br /&gt;
| its working here&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:02:38 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Juan Leyva&lt;br /&gt;
| juanleyvadelgado@gmail.com&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:02:56 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| the youtube stream is really good here&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:03:36 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ankit Agarwal&lt;br /&gt;
| yeah no lag and clear&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:03:55 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| anyone get youtube on ipad?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:04:09 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Fowler&lt;br /&gt;
| and it.crashed...&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:04:17 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Helen Foster&lt;br /&gt;
| is michaeld writing notes?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:04:29 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Fowler&lt;br /&gt;
| trying on android&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:04:29 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| hello&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:05:13 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Hi&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:05:14 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nielsen&lt;br /&gt;
| Hello all&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:05:14 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rajesh Taneja&lt;br /&gt;
| Hello&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:05:14 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sam Hemelryk&lt;br /&gt;
| Hiya&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:05:15 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Davo Smith&lt;br /&gt;
| Hello&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:05:15 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| Hi&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:05:16 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| lo&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:05:17 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Anthony Borrow&lt;br /&gt;
| hi&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:05:18 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| hi there&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:05:18 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Juan Leyva&lt;br /&gt;
| hello&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:05:19 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ankit Agarwal&lt;br /&gt;
| hi&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:05:20 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| bye&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:05:23 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| David Mudrák&lt;br /&gt;
| hi&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:05:26 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jenny Gray&lt;br /&gt;
| hello&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:05:29 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nielsen&lt;br /&gt;
| We have some other folks from Moodlerooms watching as well&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:05:46 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nelson&lt;br /&gt;
| hi&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:05:48 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mary&lt;br /&gt;
| hello!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:05:49 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| hi&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:05:56 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Fowler&lt;br /&gt;
| can&#039;t get it working again&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:06:34 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Moodle HQ is a jelly-fish. Suddeny it all makes sense.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:07:16 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| lol&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:08:44 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| heh&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:08:47 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:08:48 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| :D&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:08:51 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| Nice bit of recursion in the bottom right there&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:08:53 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mary Evans&lt;br /&gt;
| is there no Hangout?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:09:23 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:09:29 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sam Hemelryk&lt;br /&gt;
| Sorry about that not getting there in the end&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:12:05 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| Martin: A couple of people asking in comments about how to get invites to the hangout. May be worth re-mentioning #moodledev and here again&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:12:28 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| David, hope you got your google hangout email&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:14:00 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| David Mudrák&lt;br /&gt;
| no&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:14:17 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| David Mudrák&lt;br /&gt;
| that&#039;s why I asked for it. I expect MD will add/remove people as needed to keep traffic low&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:15:04 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| clearly&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:15:07 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:15:09 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| Yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:15:12 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rajesh Taneja&lt;br /&gt;
| yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:15:12 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mary&lt;br /&gt;
| yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:15:14 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Yuliya Bozhko&lt;br /&gt;
| here&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:15:25 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| (wow i&#039;m seemingly lagging behind by quite a way)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:15:28 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Moodle HQ&lt;br /&gt;
| waves&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:15:36 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ankit Agarwal&lt;br /&gt;
| yeah me too as well&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:15:39 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| Hi Yuliya&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:15:49 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| Moodle Meetings: Few people asking about where chat is&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:16:01 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Marina Glancy&lt;br /&gt;
| ÐŸÑ€Ð¸Ð²ÐµÑ‚ Ð®Ð»Ñ&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:16:02 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| yep&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:16:32 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| (hehe I am responding to stuff which seemingly happened ages ago)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:16:44 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Dan, reload the you-tube page?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:17:03 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| then i&#039;ll miss some!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:17:12 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Moodle HQ&lt;br /&gt;
| David, invited you again&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:17:14 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| David Mudrák&lt;br /&gt;
| what email did you use? Got nothing&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:17:36 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nelson&lt;br /&gt;
| Have you tried to click on the &#039;Live&#039; wording on the video?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:17:38 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| just tried it&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:17:45 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Moodle HQ&lt;br /&gt;
| what would you like David?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:17:50 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| open2study, the Australian MOOC platform, has crazy numbers of badges for really trivial things.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:18:32 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| LOL&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:19:24 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| i&#039;m just seeing simon doing the demo now. How far behind am I?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:19:27 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| How long was that URL?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:19:28 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| can&#039;t wait for openbadges on moodle.org&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:19:44 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Moodle HQ&lt;br /&gt;
| Yes, helen you should start plannig some&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:19:58 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| it just switched to the moodlesite for me 10 secs ago&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:20:00 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ankit Agarwal&lt;br /&gt;
| Dan P: a few seconds assuming am not lagging myself&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:20:05 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| thanks&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:20:20 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| this is the url: http://openbadgestotara.elearning.catalyst.net.nz/&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:20:21 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Moodle HQ&lt;br /&gt;
| for us simon just started talking about site/course badges&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:20:28 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Anthony Borrow&lt;br /&gt;
| I wonder if MoodleRooms is working on a Common Core -&amp;gt; OpenBadges ecosystem&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:20:33 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| Rex&amp;quot; looks like it&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:20:45 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Yuliya Bozhko&lt;br /&gt;
| https://docs.moodle.org/dev/OpenBadges_User_Documentation - documentation that has links to our test site with accounts you can use to try out badges&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:21:35 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nielsen&lt;br /&gt;
| @aborrow We are not working on that atm&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:21:38 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Moodle HQ&lt;br /&gt;
| 66 viewers on Youtube&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:21:57 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Fowler&lt;br /&gt;
| @@&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:22:02 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| 41 in here&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:22:14 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| 10 of those are mine&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:22:17 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ankit Agarwal&lt;br /&gt;
| lol&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:22:40 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Is there a login we can use to access the demo site?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:24:37 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| Rex: pretty sure it was posted on the forums&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:25:00 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Yuliya Bozhko&lt;br /&gt;
| it&#039;s in the docs&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:25:00 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| looking&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:25:01 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Got it&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:25:12 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| Rex: you can also download and install 2.5&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:25:27 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| But you need to setup an open badge API&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:26:23 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| Just seen the time at the top of Simon&#039;s laptop&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:26:26 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Oh.. I can just use the default settings I guess&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:26:43 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mary&lt;br /&gt;
| wow yes Wed 1.25 am&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:26:57 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Yuliya Bozhko&lt;br /&gt;
| yeah, 1am here&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:26:59 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mary&lt;br /&gt;
| UK/Europe has the best time&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:27:12 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Moodle HQ&lt;br /&gt;
| Thanks Kiwis&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:27:15 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| youtube live streams can be played back again right&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:28:21 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nelson&lt;br /&gt;
| Rex: You can create badges without syncing them with Mozilla.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:28:22 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| hope you didn&#039;t have to come home from moodle moot party early&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:28:36 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Yuliya Bozhko&lt;br /&gt;
| nope, we have another person from out team presenting there&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:29:05 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| FYI Stacey Walker @ Catalyst Europe is working on a Persona auth integration for moodle&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:30:39 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| does this integrate with oauth for moodle?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:30:52 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Yuliya Bozhko&lt;br /&gt;
| I don&#039;t think so&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:31:41 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| its not really the same&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:31:55 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| would be cool to have users compete for a badge&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:31:57 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| bmbrands, like employee of the month stype thing?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:32:26 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| Dan P: what do you mean?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:32:44 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| @a.nicols: yes why not&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:33:02 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| And &amp;quot;Top five contributors&amp;quot; type stuff&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:33:31 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jenny Gray&lt;br /&gt;
| could be useful for reputation management stuff - a bit like our useful moodlers group too&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:34:06 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| great work!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:34:16 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Yuliya Bozhko&lt;br /&gt;
| thanks&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:34:32 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mary&lt;br /&gt;
| thanks Yuliya&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:34:44 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nielsen&lt;br /&gt;
| Do you loose course badges if a course is deleted?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:35:15 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ankit Agarwal&lt;br /&gt;
| isnt the badges like a permanent thing? can they be taken away?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:35:43 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Yuliya Bozhko&lt;br /&gt;
| no, you don&#039;t, all issued badges belong to users&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:35:48 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| does it have to be synced/sent to external site?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:36:06 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| (regularly)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:36:14 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Yuliya Bozhko&lt;br /&gt;
| no, you don&#039;t have to use anything if you don&#039;t want them in Mozilla backpack&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:36:40 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| suddenly I feel like having a pizza&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:36:51 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| Funny that&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:37:06 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| thanks yuliya&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:37:20 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| How difficult is it to maintain 2 core themes now? Is the goal to eventually move to bootstrap as the single core theme?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:37:27 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:37:36 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Yuliya Bozhko&lt;br /&gt;
| Someone asking on Twitter: If a course disappears is the badge revoked? Answer: No, there is no such thing as revocation of badges at the moment. I think Mozilla team is working on it, but currently an issued badge cannot be revoked.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:40:20 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nielsen&lt;br /&gt;
| Is bootstrap being used for the layouts as well? EG: the columns for blocks, etc&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:40:22 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| watermark: yes using bootstrap grids&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:40:46 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Yuliya, will the badge still be verified as being valid?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:41:03 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| Bootstrap can be used for plugin development too.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:41:26 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Amy Groshek&lt;br /&gt;
| Thanks everyone for your hard work on bootstrap!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:41:34 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| Not in the hangout&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:41:40 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| When will the folder name &#039;bootstrap&#039; be changed to &#039;bootstrapbase&#039;?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:41:49 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nielsen&lt;br /&gt;
| @bmbrands what do you mean in regards to plugin dev?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:41:57 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Should we bring up the less/sass issue?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:41:58 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| will the core renderers be rewritten to match bootstrap?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:42:02 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| or will they continue to be overridden by bootstrap?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:42:11 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| Thanks Martin&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:42:16 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| https://tracker.moodle.org/browse/MDL-38160&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:42:25 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| I&#039;ll be presenting about &amp;quot;beyond bootstrap&amp;quot; on the iMoot&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:42:38 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Very much like YUI shifter in terms of the new dev workflow&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:43:03 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| JAson, the way it was summarised to me: where there are sensible changes, like adding a consistent class name to all cancel buttons, they will be done in core. WHere it is a bit bootstrap-specific then it will not be done in core.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:43:13 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Amy Groshek&lt;br /&gt;
| @Rex has a good point; there is a less vs sass discussion going on there&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:43:21 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| cue questions about what Shifter is ;)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:43:28 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| There is a FireBug addon called FireLess that can be used for debugging Less.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:43:42 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| will the be used for icons?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:44:01 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mary&lt;br /&gt;
| who are just out of the picture in the Moodle meeting room?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:44:06 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Jason, that one is insane, I think.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:44:12 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| meaning moving towards the use of css icons?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:44:19 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| Bootswatches are worth mentioning too&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:44:31 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Amy Groshek&lt;br /&gt;
| Yes, what is the timeline for bootswatch import?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:44:50 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| can a plugin that uses bootstrap+less be used with a theme that isn&#039;t based on bootstrap?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:44:57 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| variables and css&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:45:07 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| very easy to us&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:45:20 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mary&lt;br /&gt;
| ah thanks&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:45:31 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| marxjohnson00&lt;br /&gt;
| Aparup Yes, but it wouldn&#039;t get the bootstrap styling&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:45:38 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| aparup: depends, if you want to use javascript elements no.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:45:55 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Marina Glancy&lt;br /&gt;
| afaik less has to be compiled anyway&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:46:06 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| I think you can used Less to generate any css either pre-compiled or client side with JS on the fly.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:46:26 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| ie: new plugin with styles.css using less + moodle site with old theme that isn&#039;t based on bootstrap.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:46:58 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| ah thanks Bas&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:47:03 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| Will the new moodle.org (theme) be based on the new bootstrap theme?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:47:06 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Amy Groshek&lt;br /&gt;
| Yes, .less files are not loaded live by the theme. It&#039;s more a matter of the development workflow.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:47:08 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Anatai&lt;br /&gt;
| both less and scss need to be compiled to css, but less can also be interpreted client side (slower) for testing&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:47:09 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Amy Groshek&lt;br /&gt;
| You can do it client side but that&#039;s not a good idea for a live site.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:47:22 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| not yet&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:48:05 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| No only pizaa&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:48:06 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| no screen&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:48:06 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| yup&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:48:07 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| I can see Martin eating Pizza&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:48:10 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| got it&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:48:10 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| But you can tinker client side with FireLess and then use &#039;recess&#039; when happy for production.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:48:12 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Git it now.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:48:13 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| ah yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:48:13 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| yep&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:48:20 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rajesh Taneja&lt;br /&gt;
| yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:48:21 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| @Bas Is there still more testing to do on Bootstrap in 2.5?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:48:56 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mary&lt;br /&gt;
| yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:48:58 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Amy Groshek&lt;br /&gt;
| I&#039;m not sure that tinkering is necessary when you can set recess to watch all of your less files for changes and automatically recompile your css.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:49:06 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Justin Filip&lt;br /&gt;
| Again, similar to Shifter, as Andrew mentioned earlier. =)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:49:21 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| @Amy but with FireLess you can debug client side to understand where to make the changes.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:49:50 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| gjbarnard: not too much, but testing with addon plugins would be interesting&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:50:11 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| just notices G+ watermark on video&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:50:12 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| @Bas Ta, I can make a start with the course format&#039;s I&#039;m responsible for,&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:50:42 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| :D&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:51:26 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| this is awesome&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:51:32 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| That would be very helpful, I think bootstrap would be very interesting for creating new courseformat too using bootstrap javascript&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:51:49 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| @Bas Interesting concept - what sort of layout do you have in mind?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:52:30 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Amy Groshek&lt;br /&gt;
| Just discovered the &amp;quot;Large player&amp;quot; button on the youtube stream (hides youtube chat and makes video larger)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:52:31 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| marxjohnson00&lt;br /&gt;
| What sever setup is required for this plugin installation to work over and above what&#039;s already required by Moodle?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:52:34 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| If malicious functions are used, I hope this woudl not get into teh plugins DB!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:52:38 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jenny Gray&lt;br /&gt;
| install adins: does it warn or could you set it to fail if the plugin isn&#039;t MATURITY_STABLE?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:52:52 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| marxjohnson00: shouldn&#039;t be anything unusual&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:52:59 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| (same as repsoitory plugins etc)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:53:06 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| If you delete a plugin, does it now delete the files? Before Moodle would tell you that you need to delete the files yourself&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:53:11 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Anthony Borrow&lt;br /&gt;
| @timhunt - yes I would like to see some type of warning/notice about installing plugins&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:53:11 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nielsen&lt;br /&gt;
| Would this installer find dependencies?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:53:21 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;@Bas PM&amp;lt;/span&amp;gt;me with idea&#039;s and I&#039;d be glad to help with a new course format.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:53:22 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| It should, plugins can define dependancies&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:53:37 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| marxjohnson00&lt;br /&gt;
| Dan P: Does it store them in moodledata dir then?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:53:39 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| @gareth: sure, lets focus on this stuff by David&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:53:54 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Anthony Borrow&lt;br /&gt;
| @jennygray - we do this with core, it seems consistent to provide a similar warning of beta quality or less for plugins&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:53:54 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Justin Filip&lt;br /&gt;
| Does this support pulling in packages from a source other than moodle.org ?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:53:56 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| marxjohnson00: ah, no. You need to allow the webserver to write the plugin directories&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:53:58 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| marxjohnson00&lt;br /&gt;
| right&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:54:02 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| marxjohnson00&lt;br /&gt;
| cheers&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:54:04 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| its the same process of a normal download and unzip + upgrade moodle&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:54:16 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| watermark.nielsen: good question&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:54:19 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Anthony Borrow&lt;br /&gt;
| excellent - glad to see the acknowledgement notice, well done!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:54:22 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| Cool&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:55:08 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Anatai&lt;br /&gt;
| I really like the pre-check before install, great touch.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:55:13 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| dependencies show up as little red requirements in upgrade screen&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:55:15 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Uninstall also deletes files, right?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:55:19 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Anthony Borrow&lt;br /&gt;
| great explanation David&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:55:20 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| Marks question^ does it auto get the the dependencies?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:55:28 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| Since almost all plugins are on Github it would be great to see some update method or standards when publishing new plugin versions&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:55:31 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| You can download github as zip&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:55:49 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Davo Smith&lt;br /&gt;
| Moodle.org can pull in from github already&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:55:58 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| Yes but the developer needs to create a zip, upload to the plugin database etc.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:56:13 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Justin Filip&lt;br /&gt;
| Okay, thanks.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:56:13 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Davo Smith&lt;br /&gt;
| Go to &#039;add new version&#039; and click on &#039;add&#039;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:56:14 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| oh nope doesn&#039;t auto get dependent plugins afaik.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:56:47 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Davo Smith&lt;br /&gt;
| bmbrands - no pull in directly from github, by using the &#039;github&#039; repo when adding a new version&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:56:48 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| bmbrands: https://moodle.org/mod/forum/discuss.php?d=222164&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:56:48 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Validator functions? Such as?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:57:06 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| Is it easy to write an uninstall script in the plugin to remove custom DB tables?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:57:42 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| @dan: Cool&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:57:43 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| is there a roll back function?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:58:05 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Very good. Easier to try out new plugins. I don&#039;t have to do our whole git workflow to put plugins on our test server.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:58:10 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| Gareth J Barnard: it is done automatically by xmldb&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:58:11 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| to keep the plugin but downgrade/&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:58:12 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Jason, cannot rollback any updates on Moodle.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:58:25 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| @Dan - Very COOL :D - Thanks.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:58:27 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nelson&lt;br /&gt;
| Downgrading requires the upgrade.php file to reverse what it has done, so no.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:58:39 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Davo Smith&lt;br /&gt;
| Gareth, or you can use: https://docs.moodle.org/dev/Upgrade_API#uninstall.php if anything is not covered&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:58:40 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| @Davo Thanks&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:59:00 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| I did not see the UI screen that gets you to sign in blood that you have made a backup before you start.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:59:03 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| timhunt: there is a tickbox&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:59:26 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| bmbrands: i think the solution there is the github repository for uploading to Plugins directory. if its just to try/test perhaps there could be an alternative url that can be entered to fetch a zip from.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:59:28 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Good&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:59:36 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| although it might not be there from the plugins directory route atm&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;9:59:39 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Davo Smith&lt;br /&gt;
| I can see that going wrong just a bit too often ....&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:00:23 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| ^ wahey&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:00:31 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| marxjohnson00&lt;br /&gt;
| That would be nice, but terrifying&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:00:35 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| hehe&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:00:40 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| Yes, could get annoying having updates weekly&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:00:45 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| marxjohnson00&lt;br /&gt;
| I&#039;d need to write a lot of unit tests before I was comfortable doing that&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:00:55 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| Cool stuff David&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:01:01 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| There can be a contact developer button about problems. Or &amp;quot;Send a crash report&amp;quot;, lol.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:01:10 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| Thanks David&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:01:23 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| David Mudrák&lt;br /&gt;
| thanks. Apu should get half of the credit for sure, this was a real team project.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:01:38 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| I have made a &amp;quot;microsoft clippy&amp;quot; block for that, still hoping it will be core one day&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:01:45 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ruslan Kabalin&lt;br /&gt;
| Sorry guys, just learned 10 mins ago that I am supposed to present something... do not have mic and did not have chance to prepare&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:01:50 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Martin, just demo it!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:02:06 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| MArtin: ^&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:02:09 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ruslan Kabalin&lt;br /&gt;
| I can comment here though&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:02:22 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| marTIN: ^^&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:02:25 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| use QA site&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:02:35 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| (or someting on integration)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:02:45 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| It may also be worth demoing the collapsed editor&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:02:45 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| hehe&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:03:27 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| try chat&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:03:43 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Or quiz&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:03:53 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| for 2.6 will there be a focus on important fields showing not the whole section?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:04:31 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Hmm.. yeah something important, but not required&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:04:52 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| right&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:05:12 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Oh, I like the collapsed editor&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:05:19 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| Demo adding a new Multiple Choice question&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:05:22 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| the idea is to initially have all the fields that are most commonly used&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:05:25 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| shown&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:05:27 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| The heuristic is: Forms with more than 2 sections: any section after the first is collapsed by default.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:05:35 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| then i expand what I need to add&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:05:36 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| ah - some in there too&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:05:37 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| David Mudrák&lt;br /&gt;
| jennygray: there is warning for anything lower than MATURITY_STABLE&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:05:44 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Right, Jason.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:05:47 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| Jason Hardin: Fred hsa been reworking a lot of the forms in addition to the other work&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:05:58 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| It is more than that Dan&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:06:16 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| I love the editor toggle&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:06:18 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Easy to override the default.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:06:19 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| If there were an api like advanced&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:06:22 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Anthony Borrow&lt;br /&gt;
| any thought to add that new tinymce option for comments?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:06:24 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| that a dev can tag a fields as &amp;quot;initial&amp;quot; or &amp;quot;important&amp;quot;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:06:39 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| Jason Hardin: I don&#039;t see it happening any time soon&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:06:51 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Jason, we already have show advanced.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:06:57 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Jason, in the assignment plugin, the submission type section is made to be opened by default, but none of those options are required. So it is possible to define what sections to leave open&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:07:03 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| vs collapsed&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:07:06 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| there is only so much we can add onto the existing forms library, this is part of the way forward&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:07:15 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| @tim yeah i know that but we dont&#039; have important or initial as a concept&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:07:21 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| advanced is used to hide settings&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:07:34 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sam Hemelryk&lt;br /&gt;
| Oh hurrah! policy bugs&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:07:34 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Dan, any followup on the idea of replacing quickforms?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:07:36 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| this would be used to show inputs&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:07:40 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Jason, re-arrange your form to move the important stuff to the top.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:07:42 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| https://tracker.moodle.org/browse/MDL/component/12733&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:07:50 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| https://tracker.moodle.org/issues/?jql=project%20%3D%20MDL%20AND%20component%20%3D%20Policy%20AND%20status%20%3D%20Open%20ORDER%20BY%20priority%20DESC&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:08:06 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Thank Colin Chambers for the collapsed editor&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:08:10 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| @tim that defeats the purpose of grouping fields by identifiable names&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:08:11 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Amy Groshek&lt;br /&gt;
| Interesting, but it&#039;s not toggling between HTML raw and wysiwyg, both are wysiwyg...&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:08:21 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Amy Groshek&lt;br /&gt;
| So to get to HTML I have to show the editor and then select HTML view... I have more steps than before...&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:08:42 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| if only politicians had bugs.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:08:45 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| @amy: would be nice to have a raw tab for that&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:09:02 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ruslan Kabalin&lt;br /&gt;
| my pleasure&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:09:18 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Marina Glancy&lt;br /&gt;
| hello&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:09:50 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Marina Glancy&lt;br /&gt;
| can I just type?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:09:58 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Petr Škoda&lt;br /&gt;
| lol&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:10:14 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Marina Glancy&lt;br /&gt;
| Basically in 2.5 all course listings will go through renderer. I made screenshots https://www.dropbox.com/sh/ytgtceoahiw5m6u/2tFpM389pW#/&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:10:36 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Why aren&#039;t they using the QA site?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:11:13 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Marina Glancy&lt;br /&gt;
| Rex, who are they?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:11:25 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Marina Glancy&lt;br /&gt;
| We still might correct some CSS things there&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:12:00 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| Great to have images there, they could be used to create icon buttons for mobile&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:12:00 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Marina Glancy&lt;br /&gt;
| By the way, screenshots are made using https://github.com/marinaglancy/moodle-tool_behatui&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:12:34 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| How does that look with 2000 courses?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:12:51 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Marina Glancy&lt;br /&gt;
| there are settings that limit the number of courses per page&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:13:06 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| @tim: isn&#039;t the limit set to 200 ?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:13:11 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Davo Smith&lt;br /&gt;
| looks like I&#039;m going to have to catch up with the rest of this later - time for the school run; see you all later&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:13:20 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| No. The OU has many courses.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:13:22 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| ciao Davo&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:13:30 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Marina Glancy&lt;br /&gt;
| more about settings: https://docs.moodle.org/dev/Courses_lists_upgrade_to_2.5&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:14:15 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Where are the developer docs for what might break?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:14:18 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Ah!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:14:19 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Thanks.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:14:20 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| hehe&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:15:17 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| There is a new JS side to it which hasn&#039;t yet landed&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:15:26 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Marina Glancy&lt;br /&gt;
| unfortunately it was not possible to keep old css because it was different everywhere&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:15:28 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Marina Glancy&lt;br /&gt;
| no, that&#039;s it. thanks&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:15:51 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| there is a bit of lag here I think Martin (you keep giving up on us saying stuff)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:16:09 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| Yup - it lets you drill down, and loads the course information on the page&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:16:22 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Hi!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:17:09 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| aergh!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:17:18 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| Hi Petr&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:17:20 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| i didn&#039;t know he was moving in that close!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:17:32 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Moodle HQ&lt;br /&gt;
| I think he&#039;s trying to look scary&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:17:36 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| It&#039;s the light that makes it particularly scary&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:18:24 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jenny Gray&lt;br /&gt;
| presumably we might move up to jquery 2.x when Moodle decides to drop support for older IE versions though?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:19:17 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| https://docs.moodle.org/dev/jQuery&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:19:37 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| I thought only IE 9+ was supported?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:19:48 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| Prototype added for 2.6?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:19:57 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| why is jQuery worried about IE 6?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:19:59 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Anatai&lt;br /&gt;
| currently IE 8+ supported&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:20:05 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| Jason Hardin, We support IE8&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:20:06 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| FYI YUI supports back to IE6&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:20:17 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| sigh&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:20:33 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| Mootools for 2.7 ?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:20:34 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| Like Petr says, we&#039;re not intentionally breaking IE support&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:20:41 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| Dojo for 2.8?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:20:42 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Amy Groshek&lt;br /&gt;
| @Eloy, ha ha&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:20:53 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| jennygray, Not necessarily, but maybe. Althoughwe&#039;ll drop support for IE8 soon, we&#039;ll still try our best to make things work&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:20:56 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| Hopefully the recent changes to use Shifter will help there too&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:21:15 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jenny Gray&lt;br /&gt;
| OU still supporting IE7 in the &amp;quot;try our best&amp;quot; mode&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:21:18 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| I can if you want&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:21:42 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Amy Groshek&lt;br /&gt;
| YUI resets/normalizr&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:21:43 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Moodle HQ&lt;br /&gt;
| gmail addres andrew?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:21:50 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Let Andrew talk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:21:50 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| andrewrn@gmail.com&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:21:55 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| though Petr has covered most of it&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:22:09 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| It will help us to write better API docs for our JS, and unit tests&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:22:39 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| nice coer of it too&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:22:43 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| *cover&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:22:47 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Andrew, what is that good YUI theatre talk about YUI modules?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:22:52 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| It is worth it!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:23:16 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| ermm...&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:23:22 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| The one from Ubuntu One?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:23:36 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| Foxxtrot&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:23:40 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:24:00 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| Moodle 2.5: &#039;we&#039;re sick of the wussy windows devs&#039; :P&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:24:01 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mary&lt;br /&gt;
| great job tweeting by tsala&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:24:07 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ankit Agarwal&lt;br /&gt;
| yes we can&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:24:09 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Shifter works fine on Windows&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:24:14 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Amy Groshek&lt;br /&gt;
| @Andrew love the haircut. Very nice.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:24:14 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nelson&lt;br /&gt;
| Wow, cut your hair.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:24:15 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| hairloss!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:24:16 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mike Churchward&lt;br /&gt;
| Holy crap! New man!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:24:27 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Justin Filip&lt;br /&gt;
| Wowâ€¦ Mod Andrew. =)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:24:35 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| If anyone wants to encorage Andrew&#039;s hair loss: http://www.justgiving.com/andrewnicols&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:24:56 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| lol, the most commented on thing so far this meeting&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:24:57 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mary&lt;br /&gt;
| I liked the poneytail! But understand the reasons for haircut&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:25:05 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mary&lt;br /&gt;
| lol&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:25:09 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Petr Škoda&lt;br /&gt;
| linting - yay!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:26:08 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sam Hemelryk&lt;br /&gt;
| (&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:26:12 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| I learned a lot from the lint output.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:26:21 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| I used to understand him better with the long hair, uhm...&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:26:30 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Well, you just add Y.log statements to you code for development.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:26:57 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Then, they don&#039;t appear in the finished code for people not in dev debug mode.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:27:09 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| Eloy: you need mod_rmaccent&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:27:30 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Petr Škoda&lt;br /&gt;
| https://docs.moodle.org/dev/jQuery is the jQuery docs page&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:27:32 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nelson&lt;br /&gt;
| What shampoo do you use?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:27:34 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Justin Filip&lt;br /&gt;
| Andrew&#039;s so dreamy!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:27:48 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| wow, thats a good colour in your face now!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:28:00 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| LOL&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:28:08 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nelson&lt;br /&gt;
| I keep thinking I am watching a shampoo commercial on youtube&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:28:15 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| I can see ruslan trying to get in the picture&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:28:20 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| with his arms&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:28:22 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mary&lt;br /&gt;
| lol&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:28:23 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| https://docs.moodle.org/dev/YUI https://docs.moodle.org/dev/Javascript/Shifter&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:28:48 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| Get LANCs to change the paint colour!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:28:51 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| And https://docs.moodle.org/dev/YUI/Modules is in progress&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:28:56 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| its gone dark&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:29:19 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| https://docs.moodle.org/dev/Acceptance_testing&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:30:56 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Martin Dougiamas&lt;br /&gt;
| Are you hearing David ok?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:31:34 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| yep&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:31:36 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ankit Agarwal&lt;br /&gt;
| yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:31:42 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| yep&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:31:43 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| best english in the season!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:31:43 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| David Mudrák&lt;br /&gt;
| yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:31:44 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| (I am used to his spanish accent )&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:31:48 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nelson&lt;br /&gt;
| season, or session?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:31:55 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| year*&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:32:01 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:32:02 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nelson&lt;br /&gt;
| lol&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:32:05 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| Martin Dougiamas, Where were you suggesting I add the links to the new docs?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:32:24 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Helen Foster&lt;br /&gt;
| David sounds great!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:32:45 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Martin Dougiamas&lt;br /&gt;
| The April 2013 dev meeting page&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:32:46 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| will do&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:32:53 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Martin Dougiamas&lt;br /&gt;
| Thanks!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:33:05 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| could this be used to create performance tests too? this looks easier than doing jmeter scripts.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:33:32 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| bmbrands: no&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:33:44 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| It wouldn&#039;t make sense to time the tests as a performance indicator?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:34:04 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| (not out of the box, I don&#039;t think.. doubting myself now)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:34:06 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| not really (there are some &amp;quot;pauses&amp;quot; here and there), and will evolve along the time/depend of the product used.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:34:13 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Martin Dougiamas&lt;br /&gt;
| Yes it can&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:34:13 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| rexlorenzo@gmail.com: they are doing pauses and all kinds of things&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:34:21 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| its not a very reliable way to do it&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:34:28 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nelson&lt;br /&gt;
| Just a note to developers: MDK (Fred&#039;s plugin) will set behat up for you.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:35:07 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Martin Dougiamas&lt;br /&gt;
| No, sure. But I think with lots and lots of tests the pauses will sort of even out.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:35:08 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Martin Dougiamas&lt;br /&gt;
| At least it would detect really stupid mistakes.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:35:23 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Marina Glancy&lt;br /&gt;
| I found another implementation recently - it is useful to run the same test across all/some themes and make screenshots&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:35:29 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nelson&lt;br /&gt;
| Whoops, when I say plugin, I mean script. It is not a moodle plugin.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:35:52 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Martin Dougiamas&lt;br /&gt;
| Post your code again marina.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:35:55 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Martin Dougiamas&lt;br /&gt;
| It&#039;s a cool idea&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:36:12 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Marina Glancy&lt;br /&gt;
| https://github.com/marinaglancy/moodle-tool_behatui&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:36:17 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Martin Dougiamas&lt;br /&gt;
| (Y)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:36:34 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| @marina: coool&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:36:49 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Marina Glancy&lt;br /&gt;
| I added there a big test for course listings, I&#039;m going to suggest it for theme developers in my course listings doc&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:36:57 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| it can be used to cover some &amp;quot;key&amp;quot; vualizations.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:37:05 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| *visualizations.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:37:11 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| If you have moodle 2.5, you can see the list of steps definitons in: admin/tool/behat/index.php&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:37:24 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| (aka the vocabulary)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:38:07 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Anthony Borrow&lt;br /&gt;
| Given Marina submits moodle-tool_behatui to Moodle plugins, Then I can automatically install with Aparup&#039;s install button&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:38:37 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| behat is not using the mink plugin to allow for other test servers other than selenium?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:39:38 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:39:43 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| in fact I want to try it against others soon (faster and headless with JS support)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:40:21 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nielsen&lt;br /&gt;
| Hrm... that can help speed up tests though. Using a headless browser, etc&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:40:42 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bmbrands&lt;br /&gt;
| have to leave, thanks all&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:40:52 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| it does help but has issues&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:41:03 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| not all headless support the same funcitonality as selenium&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:41:12 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| for non-js, non-corss-browser ones it already uses headless afaik)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:41:16 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| selenium seems to be the best supported though&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:41:21 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| nah&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:41:25 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| the others have &amp;quot;issues&amp;quot;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:41:27 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| lol, selenium has too&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:41:34 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| Mark: yes. The problem is real useers don&#039;t use javascript-less browsers&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:41:38 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Martin Dougiamas&lt;br /&gt;
| Thanks Bas!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:41:44 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| @eloy, true, but you can get the server to run&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:41:49 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| i have not gotten others to run onlinux and mac&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:42:01 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| only one or the other&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:42:06 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Oh, are you guys also running behats tests for accessibility? The idea about javascript browsers made me think about it.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:42:18 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| well, I&#039;ve tried zombie and it rocks&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:42:26 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| i tried zombie and it failed&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:42:36 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| for the purposes I&#039;m thinking about.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:42:36 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| *javascript-less&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:42:41 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| rexlorenzo@gmail.com: an interesting side effect of behat tests is that I think it helps us with accessibility&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:42:50 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nielsen&lt;br /&gt;
| @poltawski: not all tests require JS though - if I just want to confirm that some text appears after hitting a button, I don&#039;t need anything special&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:43:13 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| yeah when Eloy means javascript less it is that the testing software doesn&#039;t need aJS to run the tests&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:43:14 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| not that there is no js testing&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:43:18 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| because we spot things like multiple links with the same meaning&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:43:20 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| grr&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:43:24 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| different meaning&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:43:28 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| same heading, different meaning&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:43:43 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| @watermark.nielsen its already supported with headless browser, if itsnnot got javascript requirement&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:43:46 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nielsen&lt;br /&gt;
| ah&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:43:57 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| if you want accessibility testing there is a fireeyes plugin that works pretty well it is free&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:43:58 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| there is an @javascript tag for javascript depdendent tests&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:44:09 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| http://www.deque.com/deque-fireeyes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:44:10 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| it si produced by the consulting company Moodlerooms hired to review Moodle&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:44:20 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| and free to use as long as you are not providing consulting services around it&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:44:36 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| he&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:44:42 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| meeting interruptus?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:45:13 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| thats his screen isn&#039;t it&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:45:16 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| keep commentating!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:45:22 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| music!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:45:28 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| brasil!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:45:32 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| Ijust saw his terminal&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:45:52 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| seeing terminal snow&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:46:11 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sam Hemelryk&lt;br /&gt;
| Yip I can see it&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:46:13 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| its threre now&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:46:16 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| *now&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:46:19 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rajesh Taneja&lt;br /&gt;
| yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:46:20 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| David Mudrák&lt;br /&gt;
| finally a command line interface!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:46:23 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| its just that its at top of screen&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:46:23 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| DONT TYPE the ROOT&#039;s PASSWORD NOW!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:46:25 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ankit Agarwal&lt;br /&gt;
| lol&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:46:26 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| Martin: Click on his window at the bottom. It&#039;s based on who is talking most&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:46:27 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| get him to press enter&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:46:27 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| gone&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:46:29 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| heh&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:46:40 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| wfm ;)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:46:49 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| I see him!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:47:05 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| its there now&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:47:06 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| here we go&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:47:13 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| look you guys look!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:47:23 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| it&#039;s boring... although last time i was 80 mins looking for them to complete.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:48:01 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Helen Foster&lt;br /&gt;
| wow, how cool is that!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:48:01 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| lol&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:48:01 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| david is cheating&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:48:28 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| hes just doing it quickly&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:48:35 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| it&#039;s a recorded video! Fake!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:48:42 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:48:51 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| eh, have you seen the setType warning, Dan?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:49:07 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| He has a Raspberry Pi controlled mouse ;)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:49:09 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| suspects trained monkeys&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:49:10 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| yes!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:49:11 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| errors not detected&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:49:25 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Justin Filip&lt;br /&gt;
| Does this take screenshots at any points for making sure a page is rendered correctly?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:49:29 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| can you run just the plugin tests?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:49:36 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| yeah, we should have them caught already, grrr&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:49:38 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Justin Filip&lt;br /&gt;
| Such as: this page looks great in Chrome and FF but renders incorrectly in IE8?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:49:46 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| Jason Hardin: you can run by tag&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:49:49 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| awesome&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:49:56 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| jfilip: yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:49:56 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| by tag or by name (part of the description)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:50:07 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Justin Filip&lt;br /&gt;
| Cool, thanks.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:50:08 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jason Hardin&lt;br /&gt;
| nice&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:50:20 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Moodle HQ&lt;br /&gt;
| Justin, that&#039;s exactly what Marinas behatui thing does&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:50:25 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Are you guys running also running selenium in windows to test IE? How many different environments are you running selenium or planning to?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:50:34 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| 2.6 testing won&#039;t be QA testing anymore but &amp;quot;picture testing&amp;quot; instead, lol.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:51:15 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Justin Filip&lt;br /&gt;
| I&#039;ll take a look at it, thanks for the info.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:51:41 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Moodle HQ&lt;br /&gt;
| Sauce labs, for now&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:52:11 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Which service?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:52:14 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| https://saucelabs.com/&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:52:24 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| settype again&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:52:50 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| https://saucelabs.com/u/moodle&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:52:58 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| ^ cool&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:53:00 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| we need to catch all those notices/warnings/debuggins ASAP&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:53:34 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Very cool stuff.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:53:40 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| awesome stuff, david!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:53:56 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| now everyone else needs to start writing tests&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:54:14 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| i want to&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:54:20 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| (steam was coming out of davids ears when I was in perth)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:54:27 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ankit Agarwal&lt;br /&gt;
| Nice presentations&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:54:58 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ankit Agarwal&lt;br /&gt;
| slides&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:55:10 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| wasn&#039;t there a pending backport issue for tests to 2.4 ?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:55:12 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| (evil)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:55:18 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| (assign ones)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:55:28 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| yup&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:55:31 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| aren&#039;t they waiting on Damyon&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:56:11 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| yup: MDL-37632&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:56:31 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Moodle Bot&lt;br /&gt;
| https://tracker.moodle.org/browse/MDL-37632 - Backport unit tests for mod/assign/lib.php and mod/assign/lib.php and mod/assign/upgradelib.php to 24&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:56:31 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-V: 0, W: 3, Type: Improvement, Assignee: Damyon Wiese, Priority: Minor, Status: Reopened&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| yay people using the new drag/drop of help&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;10:59:07 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| lol&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:00:11 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| profile description from mdk&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:00:26 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Davo Smith&lt;br /&gt;
| popped back just in time&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:04:14 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| Will MDL-37490 make it into M2.5?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:04:26 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Moodle Bot&lt;br /&gt;
| https://tracker.moodle.org/browse/MDL-37490 - Display assignment due date on course page.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:04:27 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-V: 4, W: 7, Type: New Feature, Assignee: Gareth J Barnard, Priority: Minor, Status: Waiting for integration review&lt;br /&gt;
| Ankit Agarwal&lt;br /&gt;
| yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:05:21 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| Seeing it on youtube now&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:05:21 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rajesh Taneja&lt;br /&gt;
| yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:05:24 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| David Mudrák&lt;br /&gt;
| yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:05:27 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Justin Filip&lt;br /&gt;
| Yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:05:33 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sbourget&lt;br /&gt;
| yes&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:05:36 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| another perfect english speaker, yay!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:06:05 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| the orange looks &amp;quot;too much&amp;quot; for me, lol.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:09:00 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| No such thing as too much orange.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:09:12 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| will it support custom backgrounds?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:09:37 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| David Mudrák&lt;br /&gt;
| typical mobile developer - having even desktop windows resized to 200 x 300 px&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:09:53 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ankit Agarwal&lt;br /&gt;
| heh&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:10:04 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Martin Dougiamas&lt;br /&gt;
| Yes you can change backgrounds and everything via CSS&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:12:24 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Martin Dougiamas&lt;br /&gt;
| there is a new setting in Moodle 2.5 that lets you specify the URL to a CSS file&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:12:44 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| super&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:12:53 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Martin Dougiamas&lt;br /&gt;
| And the app will get this and use it&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:12:57 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| Same goes for language customisations&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:13:18 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Martin Dougiamas&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:13:23 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Martin Dougiamas&lt;br /&gt;
| And all this is cached in the app&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:13:28 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| well done1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:14:03 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| It&#039;s a nice app - well done Juan&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:14:17 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| nice! (browser appears black sometimes in youtube)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:14:49 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Is the push notifications something similar to what Moodlerooms is proposing for their alert system in here? https://moodle.org/mod/forum/discuss.php?d=223812&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:14:59 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| How can we sent push notifications? Does it use the messaging api?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:15:28 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| More open. Less free&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:15:29 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| marxjohnson00&lt;br /&gt;
| Haha oh dear&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:15:36 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| marxjohnson00&lt;br /&gt;
| lets not get into that now&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:15:40 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| rexlorenzo@gmail.com: the notification using messaging system&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:15:43 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Juan Leyva&lt;br /&gt;
| Rex, yes messaging output plugins&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:15:46 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| &amp;quot;we are legion&amp;quot;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:15:49 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Martin Dougiamas&lt;br /&gt;
| We have a server called AirNotifier that will recieve messages from Moodle&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:16:17 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| maberdour&lt;br /&gt;
| Holy crap, been trying out different jabber settings for an hour. Made it in. Thanks @anatai&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:16:18 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Martin Dougiamas&lt;br /&gt;
| via Message API&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:16:21 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| jabber is sooo simple, lol.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:16:33 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Martin Dougiamas&lt;br /&gt;
| and send it to Apple/Google and then to your phone&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:16:35 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Anatai&lt;br /&gt;
| @maberdour you&#039;re welcome&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:16:38 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| super&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:16:51 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| exciting&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:16:55 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| amazing&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:16:57 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sam marshall&lt;br /&gt;
| (yeah, how come irc works much better than jabber?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:16:58 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| Thank you&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:17:05 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| yes the notifications i&#039;ve received were cool Jerome&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:17:08 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Juan Leyva&lt;br /&gt;
| https://docs.moodle.org/24/en/Moodle_Mobile_app&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:17:19 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Juan Leyva&lt;br /&gt;
| https://docs.moodle.org/dev/Moodle_Mobile&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:17:19 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| welcom, G&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:17:21 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| We&#039;ve lost camear on youtube&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:17:22 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| Got your camera now&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:17:44 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Anthony Borrow&lt;br /&gt;
| any updates on MDL-36350 / https://docs.moodle.org/dev/Survey_2_module - it seems to keep getting pushed back - possible GSOC project?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:18:30 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Moodle Bot&lt;br /&gt;
| https://tracker.moodle.org/browse/MDL-36350 - Implement Survey 2 module&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:18:30 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-V: 12, W: 18, Type: New Feature, Assignee: Daniele Cordella, Priority: Major, Status: Open&lt;br /&gt;
| Moodle HQ&lt;br /&gt;
| AFAIK Daniele stil on it&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:19:10 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| afaik Danielle is back, hard working on it, Anthony.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:19:13 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Anthony Borrow&lt;br /&gt;
| good news!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:19:21 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| lag is tricky&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:19:54 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| hi GSOC students watching!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:19:58 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| marxjohnson00&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:05 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| and Twitter hasn&#039;t been great for it&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:06 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ankit Agarwal&lt;br /&gt;
| Brilliant&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:07 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| this is way way better&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:08 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| 0.5&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:08 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| Will this live stream be saved? +1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:09 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| +1 though&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:09 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rajesh Taneja&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:11 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Video and audio is good.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:11 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sam Hemelryk&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:13 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Justin Filip&lt;br /&gt;
| Pretty good&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:13 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Better than bbb&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:17 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| 0.2&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:17 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| David Mudrák&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:18 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Harder to see who is in the meeting and chat&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:20 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| Could do with the stream running a bit for 15 minutes before hand to give people a chance to get themselves sorted&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:24 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nelson&lt;br /&gt;
| It worked with very little effort.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:35 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:38 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Yes. Starting the stream earlier woudlbe good.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:40 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| google rocks!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:42 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Jenny Gray&lt;br /&gt;
| twitter has been surprisingly quiet.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:42 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:43 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| BBB is being used at iMoot 2013.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:20:56 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Nicols&lt;br /&gt;
| thanks&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:21:10 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| David Mudrák&lt;br /&gt;
| too many places to check for feedback&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:21:11 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gareth J Barnard&lt;br /&gt;
| Thank you all&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:21:26 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| devs rocks! C&#039;mon!&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:21:35 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tim Hunt&lt;br /&gt;
| Thanks.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:21:36 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Anatai&lt;br /&gt;
| thanks&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:21:38 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| David Mudrák&lt;br /&gt;
| thanks&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:21:40 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ankit Agarwal&lt;br /&gt;
| Cya all&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:21:42 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Justin Filip&lt;br /&gt;
| Thanks&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:21:42 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| mary&lt;br /&gt;
| thanks&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:21:44 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rex Lorenzo&lt;br /&gt;
| Thanks.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:21:44 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sam Hemelryk&lt;br /&gt;
| Cool, thanks guys&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:21:45 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mark Nelson&lt;br /&gt;
| Ciao.&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:21:49 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dan Poltawski&lt;br /&gt;
| ciao&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:21:49 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| David Mudrák&lt;br /&gt;
| (clap)&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:21:50 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| David Mudrák&lt;br /&gt;
| +1 mojito&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:21:54 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rossiani Wijaya&lt;br /&gt;
| cya&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:22:01 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rajesh Taneja&lt;br /&gt;
| cya&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:22:01 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| David Mudrák&lt;br /&gt;
| did I hear &amp;quot;meeting rums?&amp;quot;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:22:07 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Aparup Banerjee&lt;br /&gt;
| thanks! good night! moodle out yo&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:22:14 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| did i hear &amp;quot;mojito&amp;quot; ?&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:22:16 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Eloy Lafuente (stronk7)&lt;br /&gt;
| lol&lt;br /&gt;
| &amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;11:22:20 PM&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/A_Basic_Join&amp;diff=40846</id>
		<title>reportbuilder/A Basic Join</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/A_Basic_Join&amp;diff=40846"/>
		<updated>2013-06-10T14:05:56Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[reportbuilder|Back to Index]]&lt;br /&gt;
&lt;br /&gt;
Our hello world source now makes it possible to display any database fields from the course table, but currently there is no way to get data from any other table in the database. For instance, what if we wanted to add a column that displayed the course category along side the course name? The name of the course category is stored in a different table:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mdl_course:&lt;br /&gt;
id   |    fullname    |   category&lt;br /&gt;
1    |   My Course    |   1&lt;br /&gt;
&lt;br /&gt;
mdl_course_categories:&lt;br /&gt;
id   |  name&lt;br /&gt;
1    | Miscellaneous&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
We need to add a join to the joinlist, so report builder knows how to correctly connect the base table to the 2nd table. We do this by adding a join object to the joinlist array:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$joinlist = array(&lt;br /&gt;
    new rb_join(&lt;br /&gt;
        &#039;course_category&#039;,&lt;br /&gt;
        &#039;LEFT&#039;,&lt;br /&gt;
        &#039;{course_categories}&#039;,&lt;br /&gt;
        &#039;course_category.id = base.category&#039;&lt;br /&gt;
    )&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The rb_join method takes 4 required arguments:&lt;br /&gt;
* Join name. A unique string, used to identify this join.&lt;br /&gt;
* Join type. Describes the type of join (e.g. LEFT OUTER, RIGHT OUTER, INNER). This effects how the records are combined. See http://en.wikipedia.org/wiki/Join_(SQL)&lt;br /&gt;
* Table name. The full name of the table to join to&lt;br /&gt;
* Join condition. This describes which fields the tables should be joined on. Use the Join name to describe other tables, or &#039;base&#039; for the base table. In this case we are joining the &#039;category&#039; field of the base (course) table, to the &#039;id&#039; field of the course_categories table.&lt;br /&gt;
&lt;br /&gt;
See also [advanced join options] and the [rb_join documentation].&lt;br /&gt;
&lt;br /&gt;
Once the join has been defined, column options can make use of fields from the joined tables, by specifying which joined tables they will use. For example, to include a column option which displays the course category:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
new rb_column_option(&lt;br /&gt;
    &#039;course&#039;,&lt;br /&gt;
    &#039;category&#039;,&lt;br /&gt;
    get_string(&#039;category&#039;),&lt;br /&gt;
    &#039;course_category.name&#039;,&lt;br /&gt;
    array(&lt;br /&gt;
        &#039;joins&#039; =&amp;gt; &#039;course_category&#039;&lt;br /&gt;
    )&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here the field name uses the syntax &#039;[join name].[field name]&#039; to define the desired field. Any additional optional parameter &#039;joins&#039; is added which lists which joins must be made to get access to this field. The &#039;joins&#039; parameter can take a join name or an array of join names if you need to join multiple tables. You only need to include dependencies needed by the new join - report builder will automatically add the dependencies of joins you mention.&lt;br /&gt;
&lt;br /&gt;
If you add the join and column option code to the Hello World source file and save it, you should see a new column option appear when you edit the report. Add the new column to the report and should look like the report below:&lt;br /&gt;
&lt;br /&gt;
[SCREENSHOT OF REPORT]&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Moodle_2.5_release_notes&amp;diff=39520</id>
		<title>Moodle 2.5 release notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Moodle_2.5_release_notes&amp;diff=39520"/>
		<updated>2013-05-05T20:13:54Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Releases]] &amp;gt; {{FULLPAGENAME}}&lt;br /&gt;
 &lt;br /&gt;
Release date: Not yet released&lt;br /&gt;
 &lt;br /&gt;
Here is [https://tracker.moodle.org/secure/IssueNavigator!executeAdvanced.jspa?jqlQuery=project+%3D+mdl+AND+resolution+%3D+fixed+AND+fixVersion+in+%28%222.5%22%29+ORDER+BY+priority+DESC&amp;amp;runQuery=true&amp;amp;clear=true the full list of fixed issues in 2.5].&lt;br /&gt;
 &lt;br /&gt;
See [https://docs.moodle.org/25/en/New_features New features] for a user-friendly tour with screenshots&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
&lt;br /&gt;
These are just minimums.  We recommend keeping all your software updated. &lt;br /&gt;
&lt;br /&gt;
* Recommended minimum browser: Google Chrome 11, Firefox 4, Safari 5, Internet Explorer 8 (IE 10 required for drag and drop of files from outside the browser into Moodle)&lt;br /&gt;
* Moodle upgrade:  Moodle 2.2 or later (if upgrading from earlier versions, you must upgrade to 2.2.9 as a first step)&lt;br /&gt;
* Minimum DB versions: PostgreSQL 8.3, MySQL 5.1.33, MariaDB 5.2, MSSQL 2005 or Oracle 10.2 (oci_native_moodle_package.sql needs to be executed before upgrade on Oracle servers)&lt;br /&gt;
* Minimum PHP version: PHP 5.3.3&lt;br /&gt;
* New PHP extension requirements: GD&lt;br /&gt;
&lt;br /&gt;
NOTE: We will drop support for IE8 in Moodle 2.6 (to be released November 2013).  This means IE8 will probably still work for 2.6, but developers will not be required to test their new code on that browser.  Moodle, like most of the world&#039;s web sites and browser producers, encourages you to keep your browsers current to improve security and functionality while saving us valuable time.  ([http://googleappsupdates.blogspot.ca/2012/09/supporting-modern-browsers-internet.html For example see what Google is doing])&lt;br /&gt;
&lt;br /&gt;
===Highlights===&lt;br /&gt;
&lt;br /&gt;
* MDL-35073 - [https://docs.moodle.org/25/en/Badges Open Badges integration]&lt;br /&gt;
* MDL-38509 - New admin tool for [https://docs.moodle.org/25/en/Installing_add-ons installing add-ons]&lt;br /&gt;
* MDL-38016 - New themes &#039;&#039;Bootstrapbase&#039;&#039; and &#039;&#039;[[Clean theme|Clean]]&#039;&#039; with responsive design for all screen sizes&lt;br /&gt;
* MDL-30637 - Improvements to the usability of big complex Moodle forms in general&lt;br /&gt;
* MDL-37459 &amp;amp; MDL-37417 - More specific usability improvements to the forms for the assignment module, and for creating questions&lt;br /&gt;
* MDL-32652 - Block drag &amp;amp; drop now works throughout the site (not just on course pages)!&lt;br /&gt;
* MDL-36804 - Assignment resubmission system&lt;br /&gt;
* MDL-37009 - Course listings are displayed consistently throughout the site (theme [https://docs.moodle.org/dev/Courses_lists_upgrade_to_2.5 changes] may be required)&lt;br /&gt;
* MDL-37284 - Unicode support in MariaDB/MySQL is now configured automatically during installation&lt;br /&gt;
* MDL-35611 - behat integration, the framework for testing of user expectations&lt;br /&gt;
&lt;br /&gt;
===Enrolment improvements===&lt;br /&gt;
&lt;br /&gt;
* MDL-26956 - You can now search the list of users enrolled in a course&lt;br /&gt;
* MDL-36514 - New option for preventing of new self-enrolments in course&lt;br /&gt;
* MDL-7537 - Support for more currencies in PayPal&lt;br /&gt;
* MDL-32387 - Implemented expiration of PayPal enrolments&lt;br /&gt;
* MDL-37291 - Restore support for PayPal enrolments&lt;br /&gt;
* MDL-37187 - Multiple problems fixed in Flat File enrolment plugin&lt;br /&gt;
* MDL-28705 - Configurable mapping between IMS course names and Moodle course names for IMS Enterprise enrolment&lt;br /&gt;
* MDL-36504 - Complete list of all enrolment related improvements&lt;br /&gt;
&lt;br /&gt;
===Performance===&lt;br /&gt;
&lt;br /&gt;
* MDL-35716 - New performance overview report&lt;br /&gt;
* MDL-35685 - Improved login performance&lt;br /&gt;
* MDL-36809 - Support for persistent connections to MariaDB/MySQL servers&lt;br /&gt;
* MDL-34344 - CFG caching in MUC&lt;br /&gt;
* MDL-34346 - New repository caching&lt;br /&gt;
* MDL-34401 - New caching of plugin information&lt;br /&gt;
* MDL-37718 - Improved database recordset memory use&lt;br /&gt;
* MDL-38212 - Workaround for some memory issues in cron&lt;br /&gt;
* MDL-38391 - Improved YUI module loading performance&lt;br /&gt;
* MDL-37127 - Use of minified YUI modules to reduce content size&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
&lt;br /&gt;
* MDL-38166 - [https://docs.moodle.org/en/Building_Database Database activity] URL field has option to open link in new window&lt;br /&gt;
* MDL-37455 - New folder resource option to display folder contents on the course page&lt;br /&gt;
* MDL-30790 - New folder resource option to display sub-folders expanded or collapsed&lt;br /&gt;
* MDL-37602 - Overall assessment feedback support in the [[:en:Workshop module|Workshop module]]&lt;br /&gt;
* MDL-28585 - LDAP authentication password expiry handling&lt;br /&gt;
* MDL-20131 - Random glossary entry block can use a global glossary&lt;br /&gt;
* MDL-35842 - Random glossary entry block alphabetical order option&lt;br /&gt;
* MDL-37337 - Assignment settings page improvements&lt;br /&gt;
* MDL-37644 - New setting for showing course full names in the navigation block&lt;br /&gt;
* MDL-5875 - Option to show the word count of forum posts&lt;br /&gt;
* MDL-23504 - Transparency and RGB support in themes colour picker &lt;br /&gt;
* MDL-37806 - New &#039;Save and show next&#039; button for workshop submissions&lt;br /&gt;
* MDL-37728 - Role definition overview improvements&lt;br /&gt;
* MDL-37641 - Prettier names when a file already exists&lt;br /&gt;
* MDL-38538 - Option to auto-save during quiz attempts&lt;br /&gt;
* MDL-36955 - Better grading for partially correct Cloze questions with Interactive behaviour&lt;br /&gt;
* MDL-35793 - Defaults for when a question is previewed&lt;br /&gt;
* MDL-10516 - Essay questions can have a template, so the student starts answering from the template, not a blank editor&lt;br /&gt;
* MDL-36602 - mnethostid available as an upload users field&lt;br /&gt;
* MDL-34137 - Option to drag and drop a media file onto the course page to create a label&lt;br /&gt;
* MDL-33946 - Option to drag and drop text onto the course page to create a label&lt;br /&gt;
* MDL-33688 - Drag and drop file upload progress indicator in filepicker &lt;br /&gt;
* MDL-33669 - Option to access Equella site when using Equella repository&lt;br /&gt;
* MDL-32341 - Configurable calendar export date range&lt;br /&gt;
* MDL-33206 - Book resource type print dialogue link&lt;br /&gt;
* MDL-31983 - Settings block renamed &#039;Administration&#039; and reports moved there&lt;br /&gt;
* MDL-34917 - Jump to section navigation for &#039;One section per page&#039; setting in course formats&lt;br /&gt;
* MDL-38708 - Option to add images and other files to the course list&lt;br /&gt;
* MDL-36395 - New setting Maximum users per page for specifying the number of users shown in search results&lt;br /&gt;
* MDL-37596 - Scheduled maintenance mode&lt;br /&gt;
* MDL-35775 - Group import allows new groups to be assigned to groupings&lt;br /&gt;
* MDL-38494 - Upload users accepts date-time format custom profile field&lt;br /&gt;
* MDL-26649 - Date picker usability improvements&lt;br /&gt;
* MDL-37572 - Categories edit page is separated from view and does not depend any more on global editing mode&lt;br /&gt;
* MDL-37217 - Folders are now displayed in the [https://docs.moodle.org/25/en/Google_Drive_repository Google Drive repository] (renamed from Google Docs repository). An administrator must enable the Drive API in the Google APIs Console, as described in [https://docs.moodle.org/25/en/Google_OAuth_2.0_setup Google OAuth 2.0 setup]. &lt;br /&gt;
* Multiple improvements in MS SQL Server and Oracle database drivers&lt;br /&gt;
* MDL-35819 - Rewrite tooltip help to improve UI consistency, and performance.&lt;br /&gt;
&lt;br /&gt;
===API changes===&lt;br /&gt;
 &lt;br /&gt;
* MDL-34640 - Improvements to how the question engine handles uploaded files. This should make it possible to write question types that automatically grade uploaded files.&lt;br /&gt;
* MDL-37287 - 3rd party libraries updated, ex.: YUI 3.9.1, TinyMCE 3.5.8, latest tcpdf and others&lt;br /&gt;
* MDL-15727 - jQuery and jQuery UI supported in add-ons&lt;br /&gt;
* MDL-29996 - Legacy filters are not supported any more, developers need to migrate filters from modules to standard filter location&lt;br /&gt;
* MDL-35356 - Excel and ODS export improvements&lt;br /&gt;
* MDL-35434 - Theme developers may use new admin setting type for user uploaded logo images&lt;br /&gt;
* MDL-37726 - PREVIOUS and NEXT attributes are not required in install.xml files&lt;br /&gt;
* MDL-38558 - It is now possible to run local pre-upgrade script&lt;br /&gt;
* MDL-38391 - Convert YUI_config to class in lib/outputrequirements.php.&lt;br /&gt;
* MDL-35819 - JS M.util.help_icon deprecated in favour of moodle-core-popuphelp&lt;br /&gt;
&lt;br /&gt;
====Upgrade notes for developers====&lt;br /&gt;
&lt;br /&gt;
;Activity modules: http://git.moodle.org/gw?p=moodle.git;a=blob;f=mod/upgrade.txt;hb=master&lt;br /&gt;
;Assignment: http://git.moodle.org/gw?p=moodle.git;a=blob;f=mod/assign/upgrade.txt;hb=master&lt;br /&gt;
;Backup: http://git.moodle.org/gw?p=moodle.git;a=blob;f=backup/upgrade.txt;hb=master&lt;br /&gt;
;Cache: http://git.moodle.org/gw?p=moodle.git;a=blob;f=cache/upgrade.txt;hb=master&lt;br /&gt;
;Calendar: http://git.moodle.org/gw?p=moodle.git;a=blob;f=calendar/upgrade.txt;hb=master&lt;br /&gt;
;Core: http://git.moodle.org/gw?p=moodle.git;a=blob;f=lib/upgrade.txt;hb=master&lt;br /&gt;
;Course formats: http://git.moodle.org/gw?p=moodle.git;a=blob;f=course/format/upgrade.txt;hb=master&lt;br /&gt;
;Enrolment plugins: http://git.moodle.org/gw?p=moodle.git;a=blob;f=enrol/upgrade.txt;hb=master&lt;br /&gt;
;Filters: http://git.moodle.org/gw?p=moodle.git;a=blob;f=filter/upgrade.txt;hb=master&lt;br /&gt;
;Question types: http://git.moodle.org/gw?p=moodle.git;a=blob;f=question/type/upgrade.txt;hb=master&lt;br /&gt;
;Themes: http://git.moodle.org/gw?p=moodle.git;a=blob;f=theme/upgrade.txt;hb=master&lt;br /&gt;
;TinyMCE plugins: http://git.moodle.org/gw?p=moodle.git;a=blob;f=lib/editor/tinymce/upgrade.txt;hb=master&lt;br /&gt;
&lt;br /&gt;
===Security issues===&lt;br /&gt;
 &lt;br /&gt;
A number of security related issues were resolved. Details of these issues will be released after a period of approximately one week to allow system administrators to safely update to the latest version.&lt;br /&gt;
&lt;br /&gt;
====Security related improvements====&lt;br /&gt;
&lt;br /&gt;
* MDL-35332 - Improved security of hashed passwords&lt;br /&gt;
* MDL-21342 - New user account lockout mechanism&lt;br /&gt;
&lt;br /&gt;
===Multi-server architectures with different PHP versions ===&lt;br /&gt;
&lt;br /&gt;
Moodle has moved to use a more secure mechanism for securing passwords, from 2.5 new passwords will be generated using bcrypt rather than md5. Because bcrypt is only supported for PHP version 5.3.7 and above, it is important that all servers within a cluster use the same version of PHP (MDL-35332).&lt;br /&gt;
&lt;br /&gt;
===Restoring Moodle 2.5 backups to sites with old PHP versions===&lt;br /&gt;
&lt;br /&gt;
Because bcrypt is not supported in PHP versions below 5.3.7, course backups made using the $CFG-&amp;gt;includeuserpasswordsinbackup setting on a site using PHP version 5.3.7+ that are subsequently restored to a site with PHP version &amp;lt; 5.3.7 will require a password reset.&lt;br /&gt;
&lt;br /&gt;
The same issue would occur if you downgraded the PHP version on the server running your site from 5.3.7+ to less than 5.3.7. (MDL-35332)&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Moodle 2.4 release notes]]&lt;br /&gt;
 &lt;br /&gt;
[[Category:Release notes]]&lt;br /&gt;
[[Category:Moodle 2.5]]&lt;br /&gt;
 &lt;br /&gt;
[[es:Notas de Moodle 2.5]]&lt;br /&gt;
[[fr:Notes de mise à jour de Moodle 2.5]]&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Moodle_2.5_release_notes&amp;diff=39519</id>
		<title>Moodle 2.5 release notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Moodle_2.5_release_notes&amp;diff=39519"/>
		<updated>2013-05-05T20:10:51Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Multi-server architectures with php version differences */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Releases]] &amp;gt; {{FULLPAGENAME}}&lt;br /&gt;
 &lt;br /&gt;
Release date: Not yet released&lt;br /&gt;
 &lt;br /&gt;
Here is [https://tracker.moodle.org/secure/IssueNavigator!executeAdvanced.jspa?jqlQuery=project+%3D+mdl+AND+resolution+%3D+fixed+AND+fixVersion+in+%28%222.5%22%29+ORDER+BY+priority+DESC&amp;amp;runQuery=true&amp;amp;clear=true the full list of fixed issues in 2.5].&lt;br /&gt;
 &lt;br /&gt;
See [https://docs.moodle.org/25/en/New_features New features] for a user-friendly tour with screenshots&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
&lt;br /&gt;
These are just minimums.  We recommend keeping all your software updated. &lt;br /&gt;
&lt;br /&gt;
* Recommended minimum browser: Google Chrome 11, Firefox 4, Safari 5, Internet Explorer 8 (IE 10 required for drag and drop of files from outside the browser into Moodle)&lt;br /&gt;
* Moodle upgrade:  Moodle 2.2 or later (if upgrading from earlier versions, you must upgrade to 2.2.9 as a first step)&lt;br /&gt;
* Minimum DB versions: PostgreSQL 8.3, MySQL 5.1.33, MariaDB 5.2, MSSQL 2005 or Oracle 10.2 (oci_native_moodle_package.sql needs to be executed before upgrade on Oracle servers)&lt;br /&gt;
* Minimum PHP version: PHP 5.3.3&lt;br /&gt;
* New PHP extension requirements: GD&lt;br /&gt;
&lt;br /&gt;
NOTE: We will drop support for IE8 in Moodle 2.6 (to be released November 2013).  This means IE8 will probably still work for 2.6, but developers will not be required to test their new code on that browser.  Moodle, like most of the world&#039;s web sites and browser producers, encourages you to keep your browsers current to improve security and functionality while saving us valuable time.  ([http://googleappsupdates.blogspot.ca/2012/09/supporting-modern-browsers-internet.html For example see what Google is doing])&lt;br /&gt;
&lt;br /&gt;
===Multi-server architectures with different PHP versions ===&lt;br /&gt;
&lt;br /&gt;
Moodle has moved to use a more secure mechanism for securing passwords, from 2.5 new passwords will be generated using bcrypt rather than md5. Because bcrypt is only supported for PHP version 5.3.7 and above, it is important that all servers within a cluster use the same version of PHP (MDL-35332).&lt;br /&gt;
&lt;br /&gt;
===Restoring Moodle 2.5 backups to sites with old PHP versions===&lt;br /&gt;
&lt;br /&gt;
Because bcrypt is not supported in PHP versions below 5.3.7, course backups made using the $CFG-&amp;gt;includeuserpasswordsinbackup setting on a site using PHP version 5.3.7+ that are subsequently restored to a site with PHP version &amp;lt; 5.3.7 will require a password reset.&lt;br /&gt;
&lt;br /&gt;
The same issue would occur if you downgraded the PHP version on the server running your site from 5.3.7+ to less than 5.3.7. (MDL-35332)&lt;br /&gt;
&lt;br /&gt;
===Highlights===&lt;br /&gt;
&lt;br /&gt;
* MDL-35073 - [https://docs.moodle.org/25/en/Badges Open Badges integration]&lt;br /&gt;
* MDL-38509 - New admin tool for [https://docs.moodle.org/25/en/Installing_add-ons installing add-ons]&lt;br /&gt;
* MDL-38016 - New themes &#039;&#039;Bootstrapbase&#039;&#039; and &#039;&#039;[[Clean theme|Clean]]&#039;&#039; with responsive design for all screen sizes&lt;br /&gt;
* MDL-30637 - Improvements to the usability of big complex Moodle forms in general&lt;br /&gt;
* MDL-37459 &amp;amp; MDL-37417 - More specific usability improvements to the forms for the assignment module, and for creating questions&lt;br /&gt;
* MDL-32652 - Block drag &amp;amp; drop now works throughout the site (not just on course pages)!&lt;br /&gt;
* MDL-36804 - Assignment resubmission system&lt;br /&gt;
* MDL-37009 - Course listings are displayed consistently throughout the site (theme [https://docs.moodle.org/dev/Courses_lists_upgrade_to_2.5 changes] may be required)&lt;br /&gt;
* MDL-37284 - Unicode support in MariaDB/MySQL is now configured automatically during installation&lt;br /&gt;
* MDL-35611 - behat integration, the framework for testing of user expectations&lt;br /&gt;
&lt;br /&gt;
===Enrolment improvements===&lt;br /&gt;
&lt;br /&gt;
* MDL-26956 - You can now search the list of users enrolled in a course&lt;br /&gt;
* MDL-36514 - New option for preventing of new self-enrolments in course&lt;br /&gt;
* MDL-7537 - Support for more currencies in PayPal&lt;br /&gt;
* MDL-32387 - Implemented expiration of PayPal enrolments&lt;br /&gt;
* MDL-37291 - Restore support for PayPal enrolments&lt;br /&gt;
* MDL-37187 - Multiple problems fixed in Flat File enrolment plugin&lt;br /&gt;
* MDL-28705 - Configurable mapping between IMS course names and Moodle course names for IMS Enterprise enrolment&lt;br /&gt;
* MDL-36504 - Complete list of all enrolment related improvements&lt;br /&gt;
&lt;br /&gt;
===Performance===&lt;br /&gt;
&lt;br /&gt;
* MDL-35716 - New performance overview report&lt;br /&gt;
* MDL-35685 - Improved login performance&lt;br /&gt;
* MDL-36809 - Support for persistent connections to MariaDB/MySQL servers&lt;br /&gt;
* MDL-34344 - CFG caching in MUC&lt;br /&gt;
* MDL-34346 - New repository caching&lt;br /&gt;
* MDL-34401 - New caching of plugin information&lt;br /&gt;
* MDL-37718 - Improved database recordset memory use&lt;br /&gt;
* MDL-38212 - Workaround for some memory issues in cron&lt;br /&gt;
* MDL-38391 - Improved YUI module loading performance&lt;br /&gt;
* MDL-37127 - Use of minified YUI modules to reduce content size&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
&lt;br /&gt;
* MDL-38166 - [https://docs.moodle.org/en/Building_Database Database activity] URL field has option to open link in new window&lt;br /&gt;
* MDL-37455 - New folder resource option to display folder contents on the course page&lt;br /&gt;
* MDL-30790 - New folder resource option to display sub-folders expanded or collapsed&lt;br /&gt;
* MDL-37602 - Overall assessment feedback support in the [[:en:Workshop module|Workshop module]]&lt;br /&gt;
* MDL-28585 - LDAP authentication password expiry handling&lt;br /&gt;
* MDL-20131 - Random glossary entry block can use a global glossary&lt;br /&gt;
* MDL-35842 - Random glossary entry block alphabetical order option&lt;br /&gt;
* MDL-37337 - Assignment settings page improvements&lt;br /&gt;
* MDL-37644 - New setting for showing course full names in the navigation block&lt;br /&gt;
* MDL-5875 - Option to show the word count of forum posts&lt;br /&gt;
* MDL-23504 - Transparency and RGB support in themes colour picker &lt;br /&gt;
* MDL-37806 - New &#039;Save and show next&#039; button for workshop submissions&lt;br /&gt;
* MDL-37728 - Role definition overview improvements&lt;br /&gt;
* MDL-37641 - Prettier names when a file already exists&lt;br /&gt;
* MDL-38538 - Option to auto-save during quiz attempts&lt;br /&gt;
* MDL-36955 - Better grading for partially correct Cloze questions with Interactive behaviour&lt;br /&gt;
* MDL-35793 - Defaults for when a question is previewed&lt;br /&gt;
* MDL-10516 - Essay questions can have a template, so the student starts answering from the template, not a blank editor&lt;br /&gt;
* MDL-36602 - mnethostid available as an upload users field&lt;br /&gt;
* MDL-34137 - Option to drag and drop a media file onto the course page to create a label&lt;br /&gt;
* MDL-33946 - Option to drag and drop text onto the course page to create a label&lt;br /&gt;
* MDL-33688 - Drag and drop file upload progress indicator in filepicker &lt;br /&gt;
* MDL-33669 - Option to access Equella site when using Equella repository&lt;br /&gt;
* MDL-32341 - Configurable calendar export date range&lt;br /&gt;
* MDL-33206 - Book resource type print dialogue link&lt;br /&gt;
* MDL-31983 - Settings block renamed &#039;Administration&#039; and reports moved there&lt;br /&gt;
* MDL-34917 - Jump to section navigation for &#039;One section per page&#039; setting in course formats&lt;br /&gt;
* MDL-38708 - Option to add images and other files to the course list&lt;br /&gt;
* MDL-36395 - New setting Maximum users per page for specifying the number of users shown in search results&lt;br /&gt;
* MDL-37596 - Scheduled maintenance mode&lt;br /&gt;
* MDL-35775 - Group import allows new groups to be assigned to groupings&lt;br /&gt;
* MDL-38494 - Upload users accepts date-time format custom profile field&lt;br /&gt;
* MDL-26649 - Date picker usability improvements&lt;br /&gt;
* MDL-37572 - Categories edit page is separated from view and does not depend any more on global editing mode&lt;br /&gt;
* MDL-37217 - Folders are now displayed in the [https://docs.moodle.org/25/en/Google_Drive_repository Google Drive repository] (renamed from Google Docs repository). An administrator must enable the Drive API in the Google APIs Console, as described in [https://docs.moodle.org/25/en/Google_OAuth_2.0_setup Google OAuth 2.0 setup]. &lt;br /&gt;
* Multiple improvements in MS SQL Server and Oracle database drivers&lt;br /&gt;
* MDL-35819 - Rewrite tooltip help to improve UI consistency, and performance.&lt;br /&gt;
&lt;br /&gt;
===API changes===&lt;br /&gt;
 &lt;br /&gt;
* MDL-34640 - Improvements to how the question engine handles uploaded files. This should make it possible to write question types that automatically grade uploaded files.&lt;br /&gt;
* MDL-37287 - 3rd party libraries updated, ex.: YUI 3.9.1, TinyMCE 3.5.8, latest tcpdf and others&lt;br /&gt;
* MDL-15727 - jQuery and jQuery UI supported in add-ons&lt;br /&gt;
* MDL-29996 - Legacy filters are not supported any more, developers need to migrate filters from modules to standard filter location&lt;br /&gt;
* MDL-35356 - Excel and ODS export improvements&lt;br /&gt;
* MDL-35434 - Theme developers may use new admin setting type for user uploaded logo images&lt;br /&gt;
* MDL-37726 - PREVIOUS and NEXT attributes are not required in install.xml files&lt;br /&gt;
* MDL-38558 - It is now possible to run local pre-upgrade script&lt;br /&gt;
* MDL-38391 - Convert YUI_config to class in lib/outputrequirements.php.&lt;br /&gt;
* MDL-35819 - JS M.util.help_icon deprecated in favour of moodle-core-popuphelp&lt;br /&gt;
&lt;br /&gt;
====Upgrade notes for developers====&lt;br /&gt;
&lt;br /&gt;
;Activity modules: http://git.moodle.org/gw?p=moodle.git;a=blob;f=mod/upgrade.txt;hb=master&lt;br /&gt;
;Assignment: http://git.moodle.org/gw?p=moodle.git;a=blob;f=mod/assign/upgrade.txt;hb=master&lt;br /&gt;
;Backup: http://git.moodle.org/gw?p=moodle.git;a=blob;f=backup/upgrade.txt;hb=master&lt;br /&gt;
;Cache: http://git.moodle.org/gw?p=moodle.git;a=blob;f=cache/upgrade.txt;hb=master&lt;br /&gt;
;Calendar: http://git.moodle.org/gw?p=moodle.git;a=blob;f=calendar/upgrade.txt;hb=master&lt;br /&gt;
;Core: http://git.moodle.org/gw?p=moodle.git;a=blob;f=lib/upgrade.txt;hb=master&lt;br /&gt;
;Course formats: http://git.moodle.org/gw?p=moodle.git;a=blob;f=course/format/upgrade.txt;hb=master&lt;br /&gt;
;Enrolment plugins: http://git.moodle.org/gw?p=moodle.git;a=blob;f=enrol/upgrade.txt;hb=master&lt;br /&gt;
;Filters: http://git.moodle.org/gw?p=moodle.git;a=blob;f=filter/upgrade.txt;hb=master&lt;br /&gt;
;Question types: http://git.moodle.org/gw?p=moodle.git;a=blob;f=question/type/upgrade.txt;hb=master&lt;br /&gt;
;Themes: http://git.moodle.org/gw?p=moodle.git;a=blob;f=theme/upgrade.txt;hb=master&lt;br /&gt;
;TinyMCE plugins: http://git.moodle.org/gw?p=moodle.git;a=blob;f=lib/editor/tinymce/upgrade.txt;hb=master&lt;br /&gt;
&lt;br /&gt;
===Security issues===&lt;br /&gt;
 &lt;br /&gt;
A number of security related issues were resolved. Details of these issues will be released after a period of approximately one week to allow system administrators to safely update to the latest version.&lt;br /&gt;
&lt;br /&gt;
====Security related improvements====&lt;br /&gt;
&lt;br /&gt;
* MDL-35332 - Improved security of hashed passwords&lt;br /&gt;
* MDL-21342 - New user account lockout mechanism&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Moodle 2.4 release notes]]&lt;br /&gt;
 &lt;br /&gt;
[[Category:Release notes]]&lt;br /&gt;
[[Category:Moodle 2.5]]&lt;br /&gt;
 &lt;br /&gt;
[[es:Notas de Moodle 2.5]]&lt;br /&gt;
[[fr:Notes de mise à jour de Moodle 2.5]]&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=38849</id>
		<title>openbadges</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=38849"/>
		<updated>2013-04-10T22:24:17Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work in progress}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Status:&#039;&#039;&#039; &lt;br /&gt;
:The initial implementation has now been merged for release in Moodle 2.5.&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
&lt;br /&gt;
In September 2011, Mozilla [http://blog.mozilla.org/blog/2011/09/15/openbadges/ launched] the Open Badges project as a way to &amp;quot;make it easy to issue and share digital learning badges across the web&amp;quot;. Mozilla have developed an [https://wiki.mozilla.org/Badges/infrastructure-tech-docs open specification] and API for badge creation and sharing and are looking for developers to implement infrastructure that makes use of the badges.&lt;br /&gt;
&lt;br /&gt;
[http://www.totaralms.com/ TotaraLMS] have volunteered to [http://moodle.org/mod/forum/discuss.php?d=197834 lead the development] to integrate Open Badges into Moodle (and also Mahara).&lt;br /&gt;
&lt;br /&gt;
This document contains our initial ideas and some unanswered questions around implementation in order to receive feedback from the moodle community on what is required and how to implement it.&lt;br /&gt;
&lt;br /&gt;
==User Stories==&lt;br /&gt;
&lt;br /&gt;
Our first step is to attempt to define the requirements and priorities. Feedback welcome:&lt;br /&gt;
&lt;br /&gt;
===Badge creation===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to control who is able to create and issue badges||I can manage the issuing of badges from my organisation||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges||I can issue badges to students for achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to modify existing badges [1][3]||I can make changes to a badge without having to start again||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to delete badges||They can be removed from the system when no longer required||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set a background image for the badge||I can customise the appearance of the badges I create||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed custom text into the badge image||I can choose the text shown on the badges I create||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed user specific text into the badge image||I can create badges that are specific to each user||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to clone existing badges||I can create similar badges with less work||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to create badge design templates for course creators to use||I can provide a consistent look for badges across my organisation||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges based on site-wide design templates||I can quickly create similar looking badges||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] Note this means changing the badge that will be issued from that point on - the open badges spec intentionally prevents an issuer from modifying badges once they have been issued to the user for security reasons&lt;br /&gt;
&lt;br /&gt;
[3] At the moment, we are also considering locking badge criteria from changes once at least one badge was awarded based on existing criteria. To update the badge completely, badge creator will have to copy/duplicate the badge and make all the changes (Yuliya).&lt;br /&gt;
&lt;br /&gt;
===Badge assignment===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to control the criteria that leads to the issuing of badges||I can ensure badges are only issued to students who have achieved them||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a notification when I have received a new badge||I know when I have made an achievement||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a copy of badges I achieve||I can keep my own records of my achievements and upload to other services||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to receive notification when a student receives a badge||I can stay informed about my student&#039;s progress||High&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge display===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I have achieved via the site in one location||I can get an overview of my achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see the public or shared badges belonging to other users||I can see what learning my peers have achieved.||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I can achieve via the site||I can prioritize and plan my learning||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to control who is able to see each of my badges||I can decide for myself who I would like to share my achievements with.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to display all the badges in my &amp;quot;backpack&amp;quot;, including those from outside the Moodle site||I can let others know about other learning that I&#039;ve achieved from other sources.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge management===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see which of my students have achieved a specific badge||I can track the progress of my students.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges that are no longer valid&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a student that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see the badges achieved by an individual student||I can assess the progress of an individual student.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see the badges achieved by any site user||I can track the progress of individuals.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see which site users have achieved a specific badges||I can track overall achievement of a particular badge.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges across the entire site&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a set of students that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to push individual badges from Moodle into my external badge backpack||So that I can share my badges externally to moodle||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to automatically push all my badges from Moodle into my external badge backpack||So that my achievements are available in my backpack without having to push them every time||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set an expiry period for badges||I can use badges in cases where achievements only last a fixed period of time.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to automatically generate user-specific evidence for badges||I can show how students earned the badge.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to perform more detailed reporting (such as who hasn&#039;t achieved a badge yet)||I can see which students I need to follow up with.||Low&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[2] Revoking of issued badges is not currently possible in Open Badges infrastructure&lt;br /&gt;
&lt;br /&gt;
===Badge verification===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Know that all badges displayed within the system are valid (have been achieved by the user they are displayed for)||I can be certain that the badges displayed within the system have all been achieved.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Be able to confirm from the original source that a badge being displayed by a user (outside of the system) is valid||I can be certain that the student has achieved a particular badge.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Integration with Mahara===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Be able to easily display all my achieved badges||I can include my achievements in my porfolio.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Have my badges from Moodle automatically imported into Mahara||I don&#039;t have to manually copy new badges each time I achieve something.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Control which badges appear when displaying them in my porfolio||I can present different representations of my achievements to different audiences.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Remove badges from a users portfolio if they have been revoked||I can prevent a user displaying badges that are no longer valid.||High&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Implementation Options==&lt;br /&gt;
&lt;br /&gt;
Moodle already has a module which behaves in a similar way to the proposals for open badges - the [http://moodle.org/plugins/view.php?plugin=mod_certificate Certificate Module]. Initial idea was to consider extending the certificate module to avoid rewriting similar code. However, after some discussions and feedback on the [http://moodle.org/mod/forum/discuss.php?d=197834 community forum], we decided to look at implementing a separate module for Open Badges.&lt;br /&gt;
&lt;br /&gt;
===Badge awarding criteria===&lt;br /&gt;
&lt;br /&gt;
For initial development, we expect to support the following criteria that will lead to the issuing of badges:&lt;br /&gt;
&lt;br /&gt;
* Completing an activity or set of several activities (viewing an activity as a part of it)&lt;br /&gt;
* Completing a course&lt;br /&gt;
* Completing a set of courses&lt;br /&gt;
* Posting to a forum&lt;br /&gt;
* Filling in user profile (to encourage participation)&lt;br /&gt;
* Discretionary awarding of badges by teacher (e.g to reward certain behaviour)&lt;br /&gt;
&lt;br /&gt;
===Technical specification===&lt;br /&gt;
The technical specification can be found on GitHub [https://github.com/totara/openbadges-docs Totara openbadges-docs] repository.&lt;br /&gt;
&lt;br /&gt;
===User documentation===&lt;br /&gt;
&lt;br /&gt;
We are working on user documentation. Current functionality description can be found on [[OpenBadges_User_Documentation|OpenBadges User Documentation]] page.&lt;br /&gt;
&lt;br /&gt;
==Open Badges Integration==&lt;br /&gt;
&lt;br /&gt;
Open badges v1.0 came out Q1 2013 so we can expect additional features and possibly some API changes over time.&lt;br /&gt;
&lt;br /&gt;
===Implementation plan===&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the [https://wiki.mozilla.org/images/4/44/Tech-diagram-v3_updated.png current infrastructure] for managing badges. We intend to develop the functionality to make Moodle both a &amp;quot;displayer&amp;quot; and a &amp;quot;issuer&amp;quot; of badges and Mahara as a &amp;quot;displayer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This diagram outlines the various components:&lt;br /&gt;
&lt;br /&gt;
[[File:Moodle_Open_Badges_Infrastructure_Diagram.png|Open Badges infrastructure diagram]]&lt;br /&gt;
&lt;br /&gt;
It should be possible to implement each component as separate modules. Our proposed order:&lt;br /&gt;
&lt;br /&gt;
# Badge creation and management in Moodle. &#039;&#039;&#039;Done!&#039;&#039;&#039;&lt;br /&gt;
# Moodle Block to display badges received from the site (internal badges) &#039;&#039;&#039;Done!&#039;&#039;&#039;&lt;br /&gt;
# Add code to support direct pushing of internal badges to external backpack (without having to manually download/upload them) &#039;&#039;&#039;Done!&#039;&#039;&#039;&lt;br /&gt;
# Badge displayer in Moodle (displays external badges and any internal ones that have been pushed to backpack and shared) &#039;&#039;&#039;Done!&#039;&#039;&#039;&lt;br /&gt;
# Badge displayer in Mahara (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Add code to support direct pushing of internal badges to Mahara via Porfolio API (no need for external backpack)&lt;br /&gt;
&lt;br /&gt;
Once OpenBadges Infrastructure supports federated backpack providers we would like to add:&lt;br /&gt;
&lt;br /&gt;
7. Allow Mahara sites to become backpack providers&lt;br /&gt;
&lt;br /&gt;
The reason for providing a direct method for displaying internal badges without requiring an external backpack is because pushing badges to an external backpack requires an external account for managing badges as outlined here:&lt;br /&gt;
&lt;br /&gt;
https://wiki.mozilla.org/Badges/Onboarding-Earner#II._FUNCTIONAL_FLOW:_FIRST_TIME_EARNER&lt;br /&gt;
&lt;br /&gt;
This workflow has some advantages (primarily the user has full control over their own badges) but seems quite complex. Given that Moodle is both an issuer and displayer we are able to avoid this step for users who do not want to share their badges to a wider audience.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openbadges.org/ Mozilla Open Badges website]&lt;br /&gt;
* [https://wiki.mozilla.org/Badges MozillaWiki on Open Badges]&lt;br /&gt;
* [http://bananigans.tumblr.com/post/22586770579/how-to-learn-more-about-open-badges How to learn more about Open Badges]&lt;br /&gt;
* [https://moodle.org/mod/forum/view.php?id=8085 Badges Moodle forum] - [http://moodle.org/mod/forum/discuss.php?d=197834 Post announcing the project]&lt;br /&gt;
* [http://blog.mozilla.org/blog/2011/09/15/openbadges/ Mozilla blog post announcing project]&lt;br /&gt;
* [http://github.com/totara/openbadges-docs Specifications on github]&lt;br /&gt;
* [https://docs.moodle.org/dev/OpenBadges_User_Documentation Preliminary user documentation]&lt;br /&gt;
* [http://github.com/totara/openbadges Code on github] - Note this was the pre-release code. Open badges is now integrated into Moodle and available in 2.5 via [http://github.com/moodle/moodle Github]&lt;br /&gt;
* [https://tracker.moodle.org/browse/MDL/component/12643 Moodle tracker component] - [https://tracker.moodle.org/browse/MDL-35073 Badges integration issue]&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=38801</id>
		<title>openbadges</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=38801"/>
		<updated>2013-04-05T19:23:42Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work in progress}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Status:&#039;&#039;&#039; &lt;br /&gt;
:The initial implementation has now been merged for release in Moodle 2.5.&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
&lt;br /&gt;
In September 2011, Mozilla [http://blog.mozilla.org/blog/2011/09/15/openbadges/ launched] the Open Badges project as a way to &amp;quot;make it easy to issue and share digital learning badges across the web&amp;quot;. Mozilla have developed an [https://wiki.mozilla.org/Badges/infrastructure-tech-docs open specification] and API for badge creation and sharing and are looking for developers to implement infrastructure that makes use of the badges.&lt;br /&gt;
&lt;br /&gt;
[http://www.totaralms.com/ TotaraLMS] have volunteered to [http://moodle.org/mod/forum/discuss.php?d=197834 lead the development] to integrate Open Badges into Moodle (and also Mahara).&lt;br /&gt;
&lt;br /&gt;
This document contains our initial ideas and some unanswered questions around implementation in order to receive feedback from the moodle community on what is required and how to implement it.&lt;br /&gt;
&lt;br /&gt;
==User Stories==&lt;br /&gt;
&lt;br /&gt;
Our first step is to attempt to define the requirements and priorities. Feedback welcome:&lt;br /&gt;
&lt;br /&gt;
===Badge creation===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to control who is able to create and issue badges||I can manage the issuing of badges from my organisation||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges||I can issue badges to students for achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to modify existing badges [1][3]||I can make changes to a badge without having to start again||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to delete badges||They can be removed from the system when no longer required||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set a background image for the badge||I can customise the appearance of the badges I create||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed custom text into the badge image||I can choose the text shown on the badges I create||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed user specific text into the badge image||I can create badges that are specific to each user||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to clone existing badges||I can create similar badges with less work||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to create badge design templates for course creators to use||I can provide a consistent look for badges across my organisation||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges based on site-wide design templates||I can quickly create similar looking badges||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] Note this means changing the badge that will be issued from that point on - the open badges spec intentionally prevents an issuer from modifying badges once they have been issued to the user for security reasons&lt;br /&gt;
&lt;br /&gt;
[3] At the moment, we are also considering locking badge criteria from changes once at least one badge was awarded based on existing criteria. To update the badge completely, badge creator will have to copy/duplicate the badge and make all the changes (Yuliya).&lt;br /&gt;
&lt;br /&gt;
===Badge assignment===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to control the criteria that leads to the issuing of badges||I can ensure badges are only issued to students who have achieved them||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a notification when I have received a new badge||I know when I have made an achievement||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a copy of badges I achieve||I can keep my own records of my achievements and upload to other services||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to receive notification when a student receives a badge||I can stay informed about my student&#039;s progress||High&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge display===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I have achieved via the site in one location||I can get an overview of my achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see the public or shared badges belonging to other users||I can see what learning my peers have achieved.||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I can achieve via the site||I can prioritize and plan my learning||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to control who is able to see each of my badges||I can decide for myself who I would like to share my achievements with.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to display all the badges in my &amp;quot;backpack&amp;quot;, including those from outside the Moodle site||I can let others know about other learning that I&#039;ve achieved from other sources.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge management===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see which of my students have achieved a specific badge||I can track the progress of my students.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges that are no longer valid&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a student that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see the badges achieved by an individual student||I can assess the progress of an individual student.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see the badges achieved by any site user||I can track the progress of individuals.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see which site users have achieved a specific badges||I can track overall achievement of a particular badge.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges across the entire site&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a set of students that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to push individual badges from Moodle into my external badge backpack||So that I can share my badges externally to moodle||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to automatically push all my badges from Moodle into my external badge backpack||So that my achievements are available in my backpack without having to push them every time||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set an expiry period for badges||I can use badges in cases where achievements only last a fixed period of time.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to automatically generate user-specific evidence for badges||I can show how students earned the badge.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to perform more detailed reporting (such as who hasn&#039;t achieved a badge yet)||I can see which students I need to follow up with.||Low&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[2] Revoking of issued badges is not currently possible in Open Badges infrastructure&lt;br /&gt;
&lt;br /&gt;
===Badge verification===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Know that all badges displayed within the system are valid (have been achieved by the user they are displayed for)||I can be certain that the badges displayed within the system have all been achieved.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Be able to confirm from the original source that a badge being displayed by a user (outside of the system) is valid||I can be certain that the student has achieved a particular badge.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Integration with Mahara===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Be able to easily display all my achieved badges||I can include my achievements in my porfolio.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Have my badges from Moodle automatically imported into Mahara||I don&#039;t have to manually copy new badges each time I achieve something.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Control which badges appear when displaying them in my porfolio||I can present different representations of my achievements to different audiences.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Remove badges from a users portfolio if they have been revoked||I can prevent a user displaying badges that are no longer valid.||High&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Implementation Options==&lt;br /&gt;
&lt;br /&gt;
Moodle already has a module which behaves in a similar way to the proposals for open badges - the [http://moodle.org/plugins/view.php?plugin=mod_certificate Certificate Module]. Initial idea was to consider extending the certificate module to avoid rewriting similar code. However, after some discussions and feedback on the [http://moodle.org/mod/forum/discuss.php?d=197834 community forum], we decided to look at implementing a separate module for Open Badges.&lt;br /&gt;
&lt;br /&gt;
===Badge awarding criteria===&lt;br /&gt;
&lt;br /&gt;
For initial development, we expect to support the following criteria that will lead to the issuing of badges:&lt;br /&gt;
&lt;br /&gt;
* Completing an activity or set of several activities (viewing an activity as a part of it)&lt;br /&gt;
* Completing a course&lt;br /&gt;
* Completing a set of courses&lt;br /&gt;
* Posting to a forum&lt;br /&gt;
* Filling in user profile (to encourage participation)&lt;br /&gt;
* Discretionary awarding of badges by teacher (e.g to reward certain behaviour)&lt;br /&gt;
&lt;br /&gt;
===Technical specification===&lt;br /&gt;
The technical specification can be found on GitHub [https://github.com/totara/openbadges-docs Totara openbadges-docs] repository.&lt;br /&gt;
&lt;br /&gt;
===User documentation===&lt;br /&gt;
&lt;br /&gt;
We are working on user documentation. Current functionality description can be found on [[OpenBadges_User_Documentation|OpenBadges User Documentation]] page.&lt;br /&gt;
&lt;br /&gt;
==Open Badges Integration==&lt;br /&gt;
&lt;br /&gt;
Open badges v1.0 came out Q1 2013 so we can expect additional features and possibly some API changes over time.&lt;br /&gt;
&lt;br /&gt;
===Implementation plan===&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the [https://wiki.mozilla.org/images/4/44/Tech-diagram-v3_updated.png current infrastructure] for managing badges. We intend to develop the functionality to make Moodle both a &amp;quot;displayer&amp;quot; and a &amp;quot;issuer&amp;quot; of badges and Mahara as a &amp;quot;displayer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This diagram outlines the various components:&lt;br /&gt;
&lt;br /&gt;
[[File:Moodle_Open_Badges_Infrastructure_Diagram.png|Open Badges infrastructure diagram]]&lt;br /&gt;
&lt;br /&gt;
It should be possible to implement each component as separate modules. Our proposed order:&lt;br /&gt;
&lt;br /&gt;
# Badge creation and management in Moodle. &#039;&#039;&#039;Done!&#039;&#039;&#039;&lt;br /&gt;
# Moodle Block to display badges received from the site (internal badges) &#039;&#039;&#039;Done!&#039;&#039;&#039;&lt;br /&gt;
# Add code to support direct pushing of internal badges to external backpack (without having to manually download/upload them) &#039;&#039;&#039;Done!&#039;&#039;&#039;&lt;br /&gt;
# Badge displayer in Moodle (displays external badges and any internal ones that have been pushed to backpack and shared) &#039;&#039;&#039;Done!&#039;&#039;&#039;&lt;br /&gt;
# Badge displayer in Mahara (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Add code to support direct pushing of internal badges to Mahara via Porfolio API (no need for external backpack)&lt;br /&gt;
&lt;br /&gt;
Once OpenBadges Infrastructure supports federated backpack providers we would like to add:&lt;br /&gt;
&lt;br /&gt;
7. Allow Mahara sites to become backpack providers&lt;br /&gt;
&lt;br /&gt;
The reason for providing a direct method for displaying internal badges without requiring an external backpack is because pushing badges to an external backpack requires an external account for managing badges as outlined here:&lt;br /&gt;
&lt;br /&gt;
https://wiki.mozilla.org/Badges/Onboarding-Earner#II._FUNCTIONAL_FLOW:_FIRST_TIME_EARNER&lt;br /&gt;
&lt;br /&gt;
This workflow has some advantages (primarily the user has full control over their own badges) but seems quite complex. Given that Moodle is both an issuer and displayer we are able to avoid this step for users who do not want to share their badges to a wider audience.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openbadges.org/ Mozilla Open Badges website]&lt;br /&gt;
* [https://wiki.mozilla.org/Badges MozillaWiki on Open Badges]&lt;br /&gt;
* [http://bananigans.tumblr.com/post/22586770579/how-to-learn-more-about-open-badges How to learn more about Open Badges]&lt;br /&gt;
* [https://moodle.org/mod/forum/view.php?id=8085 Badges Moodle forum] - [http://moodle.org/mod/forum/discuss.php?d=197834 Post announcing the project]&lt;br /&gt;
* [http://blog.mozilla.org/blog/2011/09/15/openbadges/ Mozilla blog post announcing project]&lt;br /&gt;
* [http://github.com/totara/openbadges-docs Specifications on github]&lt;br /&gt;
* [https://docs.moodle.org/dev/OpenBadges_User_Documentation Preliminary user documentation]&lt;br /&gt;
* [http://github.com/totara/openbadges Code on github]&lt;br /&gt;
* [https://tracker.moodle.org/browse/MDL/component/12643 Moodle tracker component] - [https://tracker.moodle.org/browse/MDL-35073 Badges integration issue]&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=38800</id>
		<title>openbadges</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=38800"/>
		<updated>2013-04-05T19:23:28Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work in progress}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Status:&#039;&#039;&#039; &lt;br /&gt;
:The initial implementation has now been merged for release in Moodle 2.5.&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
&lt;br /&gt;
In September 2011, Mozilla [http://blog.mozilla.org/blog/2011/09/15/openbadges/ launched] the Open Badges project as a way to &amp;quot;make it easy to issue and share digital learning badges across the web&amp;quot;. Mozilla have developed an [https://wiki.mozilla.org/Badges/infrastructure-tech-docs open specification] and API for badge creation and sharing and are looking for developers to implement infrastructure that makes use of the badges.&lt;br /&gt;
&lt;br /&gt;
[http://www.totaralms.com/ TotaraLMS] have volunteered to [http://moodle.org/mod/forum/discuss.php?d=197834 lead the development] to integrate Open Badges into Moodle (and also Mahara).&lt;br /&gt;
&lt;br /&gt;
This document contains our initial ideas and some unanswered questions around implementation in order to receive feedback from the moodle community on what is required and how to implement it.&lt;br /&gt;
&lt;br /&gt;
==User Stories==&lt;br /&gt;
&lt;br /&gt;
Our first step is to attempt to define the requirements and priorities. Feedback welcome:&lt;br /&gt;
&lt;br /&gt;
===Badge creation===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to control who is able to create and issue badges||I can manage the issuing of badges from my organisation||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges||I can issue badges to students for achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to modify existing badges [1][3]||I can make changes to a badge without having to start again||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to delete badges||They can be removed from the system when no longer required||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set a background image for the badge||I can customise the appearance of the badges I create||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed custom text into the badge image||I can choose the text shown on the badges I create||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed user specific text into the badge image||I can create badges that are specific to each user||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to clone existing badges||I can create similar badges with less work||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to create badge design templates for course creators to use||I can provide a consistent look for badges across my organisation||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges based on site-wide design templates||I can quickly create similar looking badges||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] Note this means changing the badge that will be issued from that point on - the open badges spec intentionally prevents an issuer from modifying badges once they have been issued to the user for security reasons&lt;br /&gt;
&lt;br /&gt;
[3] At the moment, we are also considering locking badge criteria from changes once at least one badge was awarded based on existing criteria. To update the badge completely, badge creator will have to copy/duplicate the badge and make all the changes (Yuliya).&lt;br /&gt;
&lt;br /&gt;
===Badge assignment===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to control the criteria that leads to the issuing of badges||I can ensure badges are only issued to students who have achieved them||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a notification when I have received a new badge||I know when I have made an achievement||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a copy of badges I achieve||I can keep my own records of my achievements and upload to other services||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to receive notification when a student receives a badge||I can stay informed about my student&#039;s progress||High&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge display===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I have achieved via the site in one location||I can get an overview of my achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see the public or shared badges belonging to other users||I can see what learning my peers have achieved.||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I can achieve via the site||I can prioritize and plan my learning||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to control who is able to see each of my badges||I can decide for myself who I would like to share my achievements with.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to display all the badges in my &amp;quot;backpack&amp;quot;, including those from outside the Moodle site||I can let others know about other learning that I&#039;ve achieved from other sources.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge management===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see which of my students have achieved a specific badge||I can track the progress of my students.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges that are no longer valid&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a student that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see the badges achieved by an individual student||I can assess the progress of an individual student.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see the badges achieved by any site user||I can track the progress of individuals.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see which site users have achieved a specific badges||I can track overall achievement of a particular badge.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges across the entire site&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a set of students that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to push individual badges from Moodle into my external badge backpack||So that I can share my badges externally to moodle||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to automatically push all my badges from Moodle into my external badge backpack||So that my achievements are available in my backpack without having to push them every time||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set an expiry period for badges||I can use badges in cases where achievements only last a fixed period of time.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to automatically generate user-specific evidence for badges||I can show how students earned the badge.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to perform more detailed reporting (such as who hasn&#039;t achieved a badge yet)||I can see which students I need to follow up with.||Low&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[2] Revoking of issued badges is not currently possible in Open Badges infrastructure&lt;br /&gt;
&lt;br /&gt;
===Badge verification===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Know that all badges displayed within the system are valid (have been achieved by the user they are displayed for)||I can be certain that the badges displayed within the system have all been achieved.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Be able to confirm from the original source that a badge being displayed by a user (outside of the system) is valid||I can be certain that the student has achieved a particular badge.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Integration with Mahara===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Be able to easily display all my achieved badges||I can include my achievements in my porfolio.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Have my badges from Moodle automatically imported into Mahara||I don&#039;t have to manually copy new badges each time I achieve something.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Control which badges appear when displaying them in my porfolio||I can present different representations of my achievements to different audiences.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Remove badges from a users portfolio if they have been revoked||I can prevent a user displaying badges that are no longer valid.||High&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Implementation Options==&lt;br /&gt;
&lt;br /&gt;
Moodle already has a module which behaves in a similar way to the proposals for open badges - the [http://moodle.org/plugins/view.php?plugin=mod_certificate Certificate Module]. Initial idea was to consider extending the certificate module to avoid rewriting similar code. However, after some discussions and feedback on the [http://moodle.org/mod/forum/discuss.php?d=197834 community forum], we decided to look at implementing a separate module for Open Badges.&lt;br /&gt;
&lt;br /&gt;
===Badge awarding criteria===&lt;br /&gt;
&lt;br /&gt;
For initial development, we expect to support the following criteria that will lead to the issuing of badges:&lt;br /&gt;
&lt;br /&gt;
* Completing an activity or set of several activities (viewing an activity as a part of it)&lt;br /&gt;
* Completing a course&lt;br /&gt;
* Completing a set of courses&lt;br /&gt;
* Posting to a forum&lt;br /&gt;
* Filling in user profile (to encourage participation)&lt;br /&gt;
* Discretionary awarding of badges by teacher (e.g to reward certain behaviour)&lt;br /&gt;
&lt;br /&gt;
===Technical specification===&lt;br /&gt;
The technical specification can be found on GitHub [https://github.com/totara/openbadges-docs Totara openbadges-docs] repository.&lt;br /&gt;
&lt;br /&gt;
===User documentation===&lt;br /&gt;
&lt;br /&gt;
We are working on user documentation. Current functionality description can be found on [[OpenBadges_User_Documentation|OpenBadges User Documentation]] page.&lt;br /&gt;
&lt;br /&gt;
==Open Badges Integration==&lt;br /&gt;
&lt;br /&gt;
Open badges v1.0 came out Q1 2013 so we can expect additional features and possibly some API changes over time.&lt;br /&gt;
&lt;br /&gt;
===Implementation plan===&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the [https://wiki.mozilla.org/images/4/44/Tech-diagram-v3_updated.png current infrastructure] for managing badges. We intend to develop the functionality to make Moodle both a &amp;quot;displayer&amp;quot; and a &amp;quot;issuer&amp;quot; of badges and Mahara as a &amp;quot;displayer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This diagram outlines the various components:&lt;br /&gt;
&lt;br /&gt;
[[File:Moodle_Open_Badges_Infrastructure_Diagram.png|Open Badges infrastructure diagram]]&lt;br /&gt;
&lt;br /&gt;
It should be possible to implement each component as separate modules. Our proposed order:&lt;br /&gt;
&lt;br /&gt;
# Badge creation and management in Moodle. &#039;&#039;&#039;Done!&#039;&#039;&#039;&lt;br /&gt;
# Moodle Block to display badges received from the site (internal badges) &#039;&#039;&#039;Done!&#039;&#039;&#039;&lt;br /&gt;
# Add code to support direct pushing of internal badges to external backpack (without having to manually download/upload them) &#039;&#039;&#039;Done!&#039;&#039;&#039;&lt;br /&gt;
# Badge displayer in Moodle (displays external badges and any internal ones that have been pushed to backpack and shared) &#039;&#039;&#039;Done!&#039;&#039;&#039;&lt;br /&gt;
# Badge displayer in Mahara (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Add code to support direct pushing of internal badges to Mahara via Porfolio API (no need for external backpack)&lt;br /&gt;
&lt;br /&gt;
Once OpenBadges Infrastructure supports federated backpack providers we would like to add:&lt;br /&gt;
&lt;br /&gt;
7. Allow Mahara sites to become backpack providers&lt;br /&gt;
&lt;br /&gt;
The reason for providing a direct method for displaying internal badges without requiring an external backpack is because pushing badges to an external backpack requires an external account for managing badges as outlined here:&lt;br /&gt;
&lt;br /&gt;
https://wiki.mozilla.org/Badges/Onboarding-Earner#II._FUNCTIONAL_FLOW:_FIRST_TIME_EARNER&lt;br /&gt;
&lt;br /&gt;
This workflow has some advantages (primarily the user has full control over their own badges) but seems quite complex. Given that Moodle is both an issuer and displayer we are able to avoid this step for users who do not want to share their badges to a wider audience.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openbadges.org/ Mozilla Open Badges website]&lt;br /&gt;
* [https://wiki.mozilla.org/Badges MozillaWiki on Open Badges]&lt;br /&gt;
* [http://bananigans.tumblr.com/post/22586770579/how-to-learn-more-about-open-badges How to learn more about Open Badges]&lt;br /&gt;
* [https://moodle.org/mod/forum/view.php?id=8085 Badges Moodle forum] - [http://moodle.org/mod/forum/discuss.php?d=197834 Post announcing the project]&lt;br /&gt;
* [http://blog.mozilla.org/blog/2011/09/15/openbadges/ Mozilla blog post announcing project]&lt;br /&gt;
* [http://github.com/totara/openbadges-docs Specifications on github]&lt;br /&gt;
* [https://docs.moodle.org/dev/OpenBadges_User_Documentation Preliminary user documentation]&lt;br /&gt;
* [http://github.com/totara/openbadges Code on github]&lt;br /&gt;
* [https://tracker.moodle.org/browse/MDL/component/12643 Moodle tracker component] [https://tracker.moodle.org/browse/MDL-35073 Badges integration issue]&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=38799</id>
		<title>openbadges</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=38799"/>
		<updated>2013-04-05T19:23:16Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work in progress}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Status:&#039;&#039;&#039; &lt;br /&gt;
:The initial implementation has now been merged for release in Moodle 2.5.&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
&lt;br /&gt;
In September 2011, Mozilla [http://blog.mozilla.org/blog/2011/09/15/openbadges/ launched] the Open Badges project as a way to &amp;quot;make it easy to issue and share digital learning badges across the web&amp;quot;. Mozilla have developed an [https://wiki.mozilla.org/Badges/infrastructure-tech-docs open specification] and API for badge creation and sharing and are looking for developers to implement infrastructure that makes use of the badges.&lt;br /&gt;
&lt;br /&gt;
[http://www.totaralms.com/ TotaraLMS] have volunteered to [http://moodle.org/mod/forum/discuss.php?d=197834 lead the development] to integrate Open Badges into Moodle (and also Mahara).&lt;br /&gt;
&lt;br /&gt;
This document contains our initial ideas and some unanswered questions around implementation in order to receive feedback from the moodle community on what is required and how to implement it.&lt;br /&gt;
&lt;br /&gt;
==User Stories==&lt;br /&gt;
&lt;br /&gt;
Our first step is to attempt to define the requirements and priorities. Feedback welcome:&lt;br /&gt;
&lt;br /&gt;
===Badge creation===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to control who is able to create and issue badges||I can manage the issuing of badges from my organisation||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges||I can issue badges to students for achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to modify existing badges [1][3]||I can make changes to a badge without having to start again||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to delete badges||They can be removed from the system when no longer required||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set a background image for the badge||I can customise the appearance of the badges I create||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed custom text into the badge image||I can choose the text shown on the badges I create||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed user specific text into the badge image||I can create badges that are specific to each user||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to clone existing badges||I can create similar badges with less work||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to create badge design templates for course creators to use||I can provide a consistent look for badges across my organisation||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges based on site-wide design templates||I can quickly create similar looking badges||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] Note this means changing the badge that will be issued from that point on - the open badges spec intentionally prevents an issuer from modifying badges once they have been issued to the user for security reasons&lt;br /&gt;
&lt;br /&gt;
[3] At the moment, we are also considering locking badge criteria from changes once at least one badge was awarded based on existing criteria. To update the badge completely, badge creator will have to copy/duplicate the badge and make all the changes (Yuliya).&lt;br /&gt;
&lt;br /&gt;
===Badge assignment===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to control the criteria that leads to the issuing of badges||I can ensure badges are only issued to students who have achieved them||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a notification when I have received a new badge||I know when I have made an achievement||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a copy of badges I achieve||I can keep my own records of my achievements and upload to other services||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to receive notification when a student receives a badge||I can stay informed about my student&#039;s progress||High&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge display===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I have achieved via the site in one location||I can get an overview of my achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see the public or shared badges belonging to other users||I can see what learning my peers have achieved.||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I can achieve via the site||I can prioritize and plan my learning||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to control who is able to see each of my badges||I can decide for myself who I would like to share my achievements with.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to display all the badges in my &amp;quot;backpack&amp;quot;, including those from outside the Moodle site||I can let others know about other learning that I&#039;ve achieved from other sources.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge management===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see which of my students have achieved a specific badge||I can track the progress of my students.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges that are no longer valid&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a student that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see the badges achieved by an individual student||I can assess the progress of an individual student.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see the badges achieved by any site user||I can track the progress of individuals.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see which site users have achieved a specific badges||I can track overall achievement of a particular badge.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges across the entire site&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a set of students that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to push individual badges from Moodle into my external badge backpack||So that I can share my badges externally to moodle||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to automatically push all my badges from Moodle into my external badge backpack||So that my achievements are available in my backpack without having to push them every time||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set an expiry period for badges||I can use badges in cases where achievements only last a fixed period of time.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to automatically generate user-specific evidence for badges||I can show how students earned the badge.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to perform more detailed reporting (such as who hasn&#039;t achieved a badge yet)||I can see which students I need to follow up with.||Low&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[2] Revoking of issued badges is not currently possible in Open Badges infrastructure&lt;br /&gt;
&lt;br /&gt;
===Badge verification===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Know that all badges displayed within the system are valid (have been achieved by the user they are displayed for)||I can be certain that the badges displayed within the system have all been achieved.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Be able to confirm from the original source that a badge being displayed by a user (outside of the system) is valid||I can be certain that the student has achieved a particular badge.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Integration with Mahara===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Be able to easily display all my achieved badges||I can include my achievements in my porfolio.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Have my badges from Moodle automatically imported into Mahara||I don&#039;t have to manually copy new badges each time I achieve something.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Control which badges appear when displaying them in my porfolio||I can present different representations of my achievements to different audiences.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Remove badges from a users portfolio if they have been revoked||I can prevent a user displaying badges that are no longer valid.||High&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Implementation Options==&lt;br /&gt;
&lt;br /&gt;
Moodle already has a module which behaves in a similar way to the proposals for open badges - the [http://moodle.org/plugins/view.php?plugin=mod_certificate Certificate Module]. Initial idea was to consider extending the certificate module to avoid rewriting similar code. However, after some discussions and feedback on the [http://moodle.org/mod/forum/discuss.php?d=197834 community forum], we decided to look at implementing a separate module for Open Badges.&lt;br /&gt;
&lt;br /&gt;
===Badge awarding criteria===&lt;br /&gt;
&lt;br /&gt;
For initial development, we expect to support the following criteria that will lead to the issuing of badges:&lt;br /&gt;
&lt;br /&gt;
* Completing an activity or set of several activities (viewing an activity as a part of it)&lt;br /&gt;
* Completing a course&lt;br /&gt;
* Completing a set of courses&lt;br /&gt;
* Posting to a forum&lt;br /&gt;
* Filling in user profile (to encourage participation)&lt;br /&gt;
* Discretionary awarding of badges by teacher (e.g to reward certain behaviour)&lt;br /&gt;
&lt;br /&gt;
===Technical specification===&lt;br /&gt;
The technical specification can be found on GitHub [https://github.com/totara/openbadges-docs Totara openbadges-docs] repository.&lt;br /&gt;
&lt;br /&gt;
===User documentation===&lt;br /&gt;
&lt;br /&gt;
We are working on user documentation. Current functionality description can be found on [[OpenBadges_User_Documentation|OpenBadges User Documentation]] page.&lt;br /&gt;
&lt;br /&gt;
==Open Badges Integration==&lt;br /&gt;
&lt;br /&gt;
Open badges v1.0 came out Q1 2013 so we can expect additional features and possibly some API changes over time.&lt;br /&gt;
&lt;br /&gt;
===Implementation plan===&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the [https://wiki.mozilla.org/images/4/44/Tech-diagram-v3_updated.png current infrastructure] for managing badges. We intend to develop the functionality to make Moodle both a &amp;quot;displayer&amp;quot; and a &amp;quot;issuer&amp;quot; of badges and Mahara as a &amp;quot;displayer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This diagram outlines the various components:&lt;br /&gt;
&lt;br /&gt;
[[File:Moodle_Open_Badges_Infrastructure_Diagram.png|Open Badges infrastructure diagram]]&lt;br /&gt;
&lt;br /&gt;
It should be possible to implement each component as separate modules. Our proposed order:&lt;br /&gt;
&lt;br /&gt;
# Badge creation and management in Moodle. &#039;&#039;&#039;Done!&#039;&#039;&#039;&lt;br /&gt;
# Moodle Block to display badges received from the site (internal badges) &#039;&#039;&#039;Done!&#039;&#039;&#039;&lt;br /&gt;
# Add code to support direct pushing of internal badges to external backpack (without having to manually download/upload them) &#039;&#039;&#039;Done!&#039;&#039;&#039;&lt;br /&gt;
# Badge displayer in Moodle (displays external badges and any internal ones that have been pushed to backpack and shared) &#039;&#039;&#039;Done!&#039;&#039;&#039;&lt;br /&gt;
# Badge displayer in Mahara (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Add code to support direct pushing of internal badges to Mahara via Porfolio API (no need for external backpack)&lt;br /&gt;
&lt;br /&gt;
Once OpenBadges Infrastructure supports federated backpack providers we would like to add:&lt;br /&gt;
&lt;br /&gt;
7. Allow Mahara sites to become backpack providers&lt;br /&gt;
&lt;br /&gt;
The reason for providing a direct method for displaying internal badges without requiring an external backpack is because pushing badges to an external backpack requires an external account for managing badges as outlined here:&lt;br /&gt;
&lt;br /&gt;
https://wiki.mozilla.org/Badges/Onboarding-Earner#II._FUNCTIONAL_FLOW:_FIRST_TIME_EARNER&lt;br /&gt;
&lt;br /&gt;
This workflow has some advantages (primarily the user has full control over their own badges) but seems quite complex. Given that Moodle is both an issuer and displayer we are able to avoid this step for users who do not want to share their badges to a wider audience.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openbadges.org/ Mozilla Open Badges website]&lt;br /&gt;
* [https://wiki.mozilla.org/Badges MozillaWiki on Open Badges]&lt;br /&gt;
* [http://bananigans.tumblr.com/post/22586770579/how-to-learn-more-about-open-badges How to learn more about Open Badges]&lt;br /&gt;
* [https://moodle.org/mod/forum/view.php?id=8085 Badges Moodle forum] - [http://moodle.org/mod/forum/discuss.php?d=197834 Post announcing the project]&lt;br /&gt;
* [http://blog.mozilla.org/blog/2011/09/15/openbadges/ Mozilla blog post announcing project]&lt;br /&gt;
* [http://github.com/totara/openbadges-docs Specifications on github]&lt;br /&gt;
* [https://docs.moodle.org/dev/OpenBadges_User_Documentation Preliminary user documentation]&lt;br /&gt;
* [http://github.com/totara/openbadges Code on github]&lt;br /&gt;
* [https://tracker.moodle.org/browse/MDL/component/12643 Moddle tracker component] [https://tracker.moodle.org/browse/MDL-35073 Badges integration issue]&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=38798</id>
		<title>openbadges</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=38798"/>
		<updated>2013-04-05T19:20:56Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Implementation plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work in progress}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Status:&#039;&#039;&#039; &lt;br /&gt;
:The initial implementation has now been merged for release in Moodle 2.5.&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
&lt;br /&gt;
In September 2011, Mozilla [http://blog.mozilla.org/blog/2011/09/15/openbadges/ launched] the Open Badges project as a way to &amp;quot;make it easy to issue and share digital learning badges across the web&amp;quot;. Mozilla have developed an [https://wiki.mozilla.org/Badges/infrastructure-tech-docs open specification] and API for badge creation and sharing and are looking for developers to implement infrastructure that makes use of the badges.&lt;br /&gt;
&lt;br /&gt;
[http://www.totaralms.com/ TotaraLMS] have volunteered to [http://moodle.org/mod/forum/discuss.php?d=197834 lead the development] to integrate Open Badges into Moodle (and also Mahara).&lt;br /&gt;
&lt;br /&gt;
This document contains our initial ideas and some unanswered questions around implementation in order to receive feedback from the moodle community on what is required and how to implement it.&lt;br /&gt;
&lt;br /&gt;
==User Stories==&lt;br /&gt;
&lt;br /&gt;
Our first step is to attempt to define the requirements and priorities. Feedback welcome:&lt;br /&gt;
&lt;br /&gt;
===Badge creation===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to control who is able to create and issue badges||I can manage the issuing of badges from my organisation||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges||I can issue badges to students for achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to modify existing badges [1][3]||I can make changes to a badge without having to start again||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to delete badges||They can be removed from the system when no longer required||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set a background image for the badge||I can customise the appearance of the badges I create||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed custom text into the badge image||I can choose the text shown on the badges I create||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed user specific text into the badge image||I can create badges that are specific to each user||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to clone existing badges||I can create similar badges with less work||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to create badge design templates for course creators to use||I can provide a consistent look for badges across my organisation||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges based on site-wide design templates||I can quickly create similar looking badges||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] Note this means changing the badge that will be issued from that point on - the open badges spec intentionally prevents an issuer from modifying badges once they have been issued to the user for security reasons&lt;br /&gt;
&lt;br /&gt;
[3] At the moment, we are also considering locking badge criteria from changes once at least one badge was awarded based on existing criteria. To update the badge completely, badge creator will have to copy/duplicate the badge and make all the changes (Yuliya).&lt;br /&gt;
&lt;br /&gt;
===Badge assignment===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to control the criteria that leads to the issuing of badges||I can ensure badges are only issued to students who have achieved them||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a notification when I have received a new badge||I know when I have made an achievement||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a copy of badges I achieve||I can keep my own records of my achievements and upload to other services||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to receive notification when a student receives a badge||I can stay informed about my student&#039;s progress||High&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge display===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I have achieved via the site in one location||I can get an overview of my achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see the public or shared badges belonging to other users||I can see what learning my peers have achieved.||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I can achieve via the site||I can prioritize and plan my learning||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to control who is able to see each of my badges||I can decide for myself who I would like to share my achievements with.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to display all the badges in my &amp;quot;backpack&amp;quot;, including those from outside the Moodle site||I can let others know about other learning that I&#039;ve achieved from other sources.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge management===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see which of my students have achieved a specific badge||I can track the progress of my students.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges that are no longer valid&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a student that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see the badges achieved by an individual student||I can assess the progress of an individual student.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see the badges achieved by any site user||I can track the progress of individuals.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see which site users have achieved a specific badges||I can track overall achievement of a particular badge.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges across the entire site&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a set of students that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to push individual badges from Moodle into my external badge backpack||So that I can share my badges externally to moodle||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to automatically push all my badges from Moodle into my external badge backpack||So that my achievements are available in my backpack without having to push them every time||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set an expiry period for badges||I can use badges in cases where achievements only last a fixed period of time.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to automatically generate user-specific evidence for badges||I can show how students earned the badge.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to perform more detailed reporting (such as who hasn&#039;t achieved a badge yet)||I can see which students I need to follow up with.||Low&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[2] Revoking of issued badges is not currently possible in Open Badges infrastructure&lt;br /&gt;
&lt;br /&gt;
===Badge verification===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Know that all badges displayed within the system are valid (have been achieved by the user they are displayed for)||I can be certain that the badges displayed within the system have all been achieved.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Be able to confirm from the original source that a badge being displayed by a user (outside of the system) is valid||I can be certain that the student has achieved a particular badge.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Integration with Mahara===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Be able to easily display all my achieved badges||I can include my achievements in my porfolio.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Have my badges from Moodle automatically imported into Mahara||I don&#039;t have to manually copy new badges each time I achieve something.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Control which badges appear when displaying them in my porfolio||I can present different representations of my achievements to different audiences.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Remove badges from a users portfolio if they have been revoked||I can prevent a user displaying badges that are no longer valid.||High&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Implementation Options==&lt;br /&gt;
&lt;br /&gt;
Moodle already has a module which behaves in a similar way to the proposals for open badges - the [http://moodle.org/plugins/view.php?plugin=mod_certificate Certificate Module]. Initial idea was to consider extending the certificate module to avoid rewriting similar code. However, after some discussions and feedback on the [http://moodle.org/mod/forum/discuss.php?d=197834 community forum], we decided to look at implementing a separate module for Open Badges.&lt;br /&gt;
&lt;br /&gt;
===Badge awarding criteria===&lt;br /&gt;
&lt;br /&gt;
For initial development, we expect to support the following criteria that will lead to the issuing of badges:&lt;br /&gt;
&lt;br /&gt;
* Completing an activity or set of several activities (viewing an activity as a part of it)&lt;br /&gt;
* Completing a course&lt;br /&gt;
* Completing a set of courses&lt;br /&gt;
* Posting to a forum&lt;br /&gt;
* Filling in user profile (to encourage participation)&lt;br /&gt;
* Discretionary awarding of badges by teacher (e.g to reward certain behaviour)&lt;br /&gt;
&lt;br /&gt;
===Technical specification===&lt;br /&gt;
The technical specification can be found on GitHub [https://github.com/totara/openbadges-docs Totara openbadges-docs] repository.&lt;br /&gt;
&lt;br /&gt;
===User documentation===&lt;br /&gt;
&lt;br /&gt;
We are working on user documentation. Current functionality description can be found on [[OpenBadges_User_Documentation|OpenBadges User Documentation]] page.&lt;br /&gt;
&lt;br /&gt;
==Open Badges Integration==&lt;br /&gt;
&lt;br /&gt;
Open badges v1.0 came out Q1 2013 so we can expect additional features and possibly some API changes over time.&lt;br /&gt;
&lt;br /&gt;
===Implementation plan===&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the [https://wiki.mozilla.org/images/4/44/Tech-diagram-v3_updated.png current infrastructure] for managing badges. We intend to develop the functionality to make Moodle both a &amp;quot;displayer&amp;quot; and a &amp;quot;issuer&amp;quot; of badges and Mahara as a &amp;quot;displayer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This diagram outlines the various components:&lt;br /&gt;
&lt;br /&gt;
[[File:Moodle_Open_Badges_Infrastructure_Diagram.png|Open Badges infrastructure diagram]]&lt;br /&gt;
&lt;br /&gt;
It should be possible to implement each component as separate modules. Our proposed order:&lt;br /&gt;
&lt;br /&gt;
# Badge creation and management in Moodle. &#039;&#039;&#039;Done!&#039;&#039;&#039;&lt;br /&gt;
# Moodle Block to display badges received from the site (internal badges) &#039;&#039;&#039;Done!&#039;&#039;&#039;&lt;br /&gt;
# Add code to support direct pushing of internal badges to external backpack (without having to manually download/upload them) &#039;&#039;&#039;Done!&#039;&#039;&#039;&lt;br /&gt;
# Badge displayer in Moodle (displays external badges and any internal ones that have been pushed to backpack and shared) &#039;&#039;&#039;Done!&#039;&#039;&#039;&lt;br /&gt;
# Badge displayer in Mahara (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Add code to support direct pushing of internal badges to Mahara via Porfolio API (no need for external backpack)&lt;br /&gt;
&lt;br /&gt;
Once OpenBadges Infrastructure supports federated backpack providers we would like to add:&lt;br /&gt;
&lt;br /&gt;
7. Allow Mahara sites to become backpack providers&lt;br /&gt;
&lt;br /&gt;
The reason for providing a direct method for displaying internal badges without requiring an external backpack is because pushing badges to an external backpack requires an external account for managing badges as outlined here:&lt;br /&gt;
&lt;br /&gt;
https://wiki.mozilla.org/Badges/Onboarding-Earner#II._FUNCTIONAL_FLOW:_FIRST_TIME_EARNER&lt;br /&gt;
&lt;br /&gt;
This workflow has some advantages (primarily the user has full control over their own badges) but seems quite complex. Given that Moodle is both an issuer and displayer we are able to avoid this step for users who do not want to share their badges to a wider audience.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openbadges.org/ Mozilla Open Badges website]&lt;br /&gt;
* [https://wiki.mozilla.org/Badges MozillaWiki on Open Badges]&lt;br /&gt;
* [http://bananigans.tumblr.com/post/22586770579/how-to-learn-more-about-open-badges How to learn more about Open Badges]&lt;br /&gt;
* [https://moodle.org/mod/forum/view.php?id=8085 Badges Moodle forum] - [http://moodle.org/mod/forum/discuss.php?d=197834 Post announcing the project]&lt;br /&gt;
* [http://blog.mozilla.org/blog/2011/09/15/openbadges/ Mozilla blog post announcing project]&lt;br /&gt;
* [http://github.com/totara/openbadges-docs Specifications on github]&lt;br /&gt;
* [https://docs.moodle.org/dev/OpenBadges_User_Documentation Preliminary user documentation]&lt;br /&gt;
* [http://github.com/totara/openbadges Code on github]&lt;br /&gt;
* [https://tracker.moodle.org/browse/MDL-35073 Moodle tracker issue]&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=38797</id>
		<title>openbadges</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=38797"/>
		<updated>2013-04-05T19:19:54Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Open Badges Integration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work in progress}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Status:&#039;&#039;&#039; &lt;br /&gt;
:The initial implementation has now been merged for release in Moodle 2.5.&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
&lt;br /&gt;
In September 2011, Mozilla [http://blog.mozilla.org/blog/2011/09/15/openbadges/ launched] the Open Badges project as a way to &amp;quot;make it easy to issue and share digital learning badges across the web&amp;quot;. Mozilla have developed an [https://wiki.mozilla.org/Badges/infrastructure-tech-docs open specification] and API for badge creation and sharing and are looking for developers to implement infrastructure that makes use of the badges.&lt;br /&gt;
&lt;br /&gt;
[http://www.totaralms.com/ TotaraLMS] have volunteered to [http://moodle.org/mod/forum/discuss.php?d=197834 lead the development] to integrate Open Badges into Moodle (and also Mahara).&lt;br /&gt;
&lt;br /&gt;
This document contains our initial ideas and some unanswered questions around implementation in order to receive feedback from the moodle community on what is required and how to implement it.&lt;br /&gt;
&lt;br /&gt;
==User Stories==&lt;br /&gt;
&lt;br /&gt;
Our first step is to attempt to define the requirements and priorities. Feedback welcome:&lt;br /&gt;
&lt;br /&gt;
===Badge creation===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to control who is able to create and issue badges||I can manage the issuing of badges from my organisation||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges||I can issue badges to students for achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to modify existing badges [1][3]||I can make changes to a badge without having to start again||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to delete badges||They can be removed from the system when no longer required||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set a background image for the badge||I can customise the appearance of the badges I create||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed custom text into the badge image||I can choose the text shown on the badges I create||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed user specific text into the badge image||I can create badges that are specific to each user||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to clone existing badges||I can create similar badges with less work||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to create badge design templates for course creators to use||I can provide a consistent look for badges across my organisation||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges based on site-wide design templates||I can quickly create similar looking badges||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] Note this means changing the badge that will be issued from that point on - the open badges spec intentionally prevents an issuer from modifying badges once they have been issued to the user for security reasons&lt;br /&gt;
&lt;br /&gt;
[3] At the moment, we are also considering locking badge criteria from changes once at least one badge was awarded based on existing criteria. To update the badge completely, badge creator will have to copy/duplicate the badge and make all the changes (Yuliya).&lt;br /&gt;
&lt;br /&gt;
===Badge assignment===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to control the criteria that leads to the issuing of badges||I can ensure badges are only issued to students who have achieved them||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a notification when I have received a new badge||I know when I have made an achievement||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a copy of badges I achieve||I can keep my own records of my achievements and upload to other services||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to receive notification when a student receives a badge||I can stay informed about my student&#039;s progress||High&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge display===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I have achieved via the site in one location||I can get an overview of my achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see the public or shared badges belonging to other users||I can see what learning my peers have achieved.||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I can achieve via the site||I can prioritize and plan my learning||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to control who is able to see each of my badges||I can decide for myself who I would like to share my achievements with.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to display all the badges in my &amp;quot;backpack&amp;quot;, including those from outside the Moodle site||I can let others know about other learning that I&#039;ve achieved from other sources.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge management===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see which of my students have achieved a specific badge||I can track the progress of my students.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges that are no longer valid&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a student that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see the badges achieved by an individual student||I can assess the progress of an individual student.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see the badges achieved by any site user||I can track the progress of individuals.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see which site users have achieved a specific badges||I can track overall achievement of a particular badge.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges across the entire site&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a set of students that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to push individual badges from Moodle into my external badge backpack||So that I can share my badges externally to moodle||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to automatically push all my badges from Moodle into my external badge backpack||So that my achievements are available in my backpack without having to push them every time||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set an expiry period for badges||I can use badges in cases where achievements only last a fixed period of time.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to automatically generate user-specific evidence for badges||I can show how students earned the badge.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to perform more detailed reporting (such as who hasn&#039;t achieved a badge yet)||I can see which students I need to follow up with.||Low&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[2] Revoking of issued badges is not currently possible in Open Badges infrastructure&lt;br /&gt;
&lt;br /&gt;
===Badge verification===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Know that all badges displayed within the system are valid (have been achieved by the user they are displayed for)||I can be certain that the badges displayed within the system have all been achieved.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Be able to confirm from the original source that a badge being displayed by a user (outside of the system) is valid||I can be certain that the student has achieved a particular badge.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Integration with Mahara===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Be able to easily display all my achieved badges||I can include my achievements in my porfolio.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Have my badges from Moodle automatically imported into Mahara||I don&#039;t have to manually copy new badges each time I achieve something.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Control which badges appear when displaying them in my porfolio||I can present different representations of my achievements to different audiences.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Remove badges from a users portfolio if they have been revoked||I can prevent a user displaying badges that are no longer valid.||High&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Implementation Options==&lt;br /&gt;
&lt;br /&gt;
Moodle already has a module which behaves in a similar way to the proposals for open badges - the [http://moodle.org/plugins/view.php?plugin=mod_certificate Certificate Module]. Initial idea was to consider extending the certificate module to avoid rewriting similar code. However, after some discussions and feedback on the [http://moodle.org/mod/forum/discuss.php?d=197834 community forum], we decided to look at implementing a separate module for Open Badges.&lt;br /&gt;
&lt;br /&gt;
===Badge awarding criteria===&lt;br /&gt;
&lt;br /&gt;
For initial development, we expect to support the following criteria that will lead to the issuing of badges:&lt;br /&gt;
&lt;br /&gt;
* Completing an activity or set of several activities (viewing an activity as a part of it)&lt;br /&gt;
* Completing a course&lt;br /&gt;
* Completing a set of courses&lt;br /&gt;
* Posting to a forum&lt;br /&gt;
* Filling in user profile (to encourage participation)&lt;br /&gt;
* Discretionary awarding of badges by teacher (e.g to reward certain behaviour)&lt;br /&gt;
&lt;br /&gt;
===Technical specification===&lt;br /&gt;
The technical specification can be found on GitHub [https://github.com/totara/openbadges-docs Totara openbadges-docs] repository.&lt;br /&gt;
&lt;br /&gt;
===User documentation===&lt;br /&gt;
&lt;br /&gt;
We are working on user documentation. Current functionality description can be found on [[OpenBadges_User_Documentation|OpenBadges User Documentation]] page.&lt;br /&gt;
&lt;br /&gt;
==Open Badges Integration==&lt;br /&gt;
&lt;br /&gt;
Open badges v1.0 came out Q1 2013 so we can expect additional features and possibly some API changes over time.&lt;br /&gt;
&lt;br /&gt;
===Implementation plan===&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the [https://wiki.mozilla.org/images/4/44/Tech-diagram-v3_updated.png current infrastructure] for managing badges. We intend to develop the functionality to make Moodle both a &amp;quot;displayer&amp;quot; and a &amp;quot;issuer&amp;quot; of badges and Mahara as a &amp;quot;displayer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This diagram outlines the various components:&lt;br /&gt;
&lt;br /&gt;
[[File:Moodle_Open_Badges_Infrastructure_Diagram.png|Open Badges infrastructure diagram]]&lt;br /&gt;
&lt;br /&gt;
It should be possible to implement each component as separate modules. Our proposed order:&lt;br /&gt;
&lt;br /&gt;
# Badge creation and management in Moodle.&lt;br /&gt;
# Moodle Block to display badges received from the site (internal badges)&lt;br /&gt;
# Add code to support direct pushing of internal badges to external backpack (without having to manually download/upload them)&lt;br /&gt;
# Badge displayer in Moodle (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Badge displayer in Mahara (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Add code to support direct pushing of internal badges to Mahara via Porfolio API (no need for external backpack)&lt;br /&gt;
&lt;br /&gt;
Once OpenBadges Infrastructure supports federated backpack providers we would like to add:&lt;br /&gt;
&lt;br /&gt;
7. Allow Mahara sites to become backpack providers&lt;br /&gt;
&lt;br /&gt;
The reason for providing a direct method for displaying internal badges without requiring an external backpack is because pushing badges to an external backpack requires an external account for managing badges as outlined here:&lt;br /&gt;
&lt;br /&gt;
https://wiki.mozilla.org/Badges/Onboarding-Earner#II._FUNCTIONAL_FLOW:_FIRST_TIME_EARNER&lt;br /&gt;
&lt;br /&gt;
This workflow has some advantages (primarily the user has full control over their own badges) but seems quite complex. Given that Moodle is both an issuer and displayer we are able to avoid this step for users who do not want to share their badges to a wider audience.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openbadges.org/ Mozilla Open Badges website]&lt;br /&gt;
* [https://wiki.mozilla.org/Badges MozillaWiki on Open Badges]&lt;br /&gt;
* [http://bananigans.tumblr.com/post/22586770579/how-to-learn-more-about-open-badges How to learn more about Open Badges]&lt;br /&gt;
* [https://moodle.org/mod/forum/view.php?id=8085 Badges Moodle forum] - [http://moodle.org/mod/forum/discuss.php?d=197834 Post announcing the project]&lt;br /&gt;
* [http://blog.mozilla.org/blog/2011/09/15/openbadges/ Mozilla blog post announcing project]&lt;br /&gt;
* [http://github.com/totara/openbadges-docs Specifications on github]&lt;br /&gt;
* [https://docs.moodle.org/dev/OpenBadges_User_Documentation Preliminary user documentation]&lt;br /&gt;
* [http://github.com/totara/openbadges Code on github]&lt;br /&gt;
* [https://tracker.moodle.org/browse/MDL-35073 Moodle tracker issue]&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=38796</id>
		<title>openbadges</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=38796"/>
		<updated>2013-04-05T19:19:20Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Technical specification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work in progress}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Status:&#039;&#039;&#039; &lt;br /&gt;
:The initial implementation has now been merged for release in Moodle 2.5.&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
&lt;br /&gt;
In September 2011, Mozilla [http://blog.mozilla.org/blog/2011/09/15/openbadges/ launched] the Open Badges project as a way to &amp;quot;make it easy to issue and share digital learning badges across the web&amp;quot;. Mozilla have developed an [https://wiki.mozilla.org/Badges/infrastructure-tech-docs open specification] and API for badge creation and sharing and are looking for developers to implement infrastructure that makes use of the badges.&lt;br /&gt;
&lt;br /&gt;
[http://www.totaralms.com/ TotaraLMS] have volunteered to [http://moodle.org/mod/forum/discuss.php?d=197834 lead the development] to integrate Open Badges into Moodle (and also Mahara).&lt;br /&gt;
&lt;br /&gt;
This document contains our initial ideas and some unanswered questions around implementation in order to receive feedback from the moodle community on what is required and how to implement it.&lt;br /&gt;
&lt;br /&gt;
==User Stories==&lt;br /&gt;
&lt;br /&gt;
Our first step is to attempt to define the requirements and priorities. Feedback welcome:&lt;br /&gt;
&lt;br /&gt;
===Badge creation===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to control who is able to create and issue badges||I can manage the issuing of badges from my organisation||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges||I can issue badges to students for achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to modify existing badges [1][3]||I can make changes to a badge without having to start again||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to delete badges||They can be removed from the system when no longer required||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set a background image for the badge||I can customise the appearance of the badges I create||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed custom text into the badge image||I can choose the text shown on the badges I create||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed user specific text into the badge image||I can create badges that are specific to each user||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to clone existing badges||I can create similar badges with less work||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to create badge design templates for course creators to use||I can provide a consistent look for badges across my organisation||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges based on site-wide design templates||I can quickly create similar looking badges||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] Note this means changing the badge that will be issued from that point on - the open badges spec intentionally prevents an issuer from modifying badges once they have been issued to the user for security reasons&lt;br /&gt;
&lt;br /&gt;
[3] At the moment, we are also considering locking badge criteria from changes once at least one badge was awarded based on existing criteria. To update the badge completely, badge creator will have to copy/duplicate the badge and make all the changes (Yuliya).&lt;br /&gt;
&lt;br /&gt;
===Badge assignment===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to control the criteria that leads to the issuing of badges||I can ensure badges are only issued to students who have achieved them||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a notification when I have received a new badge||I know when I have made an achievement||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a copy of badges I achieve||I can keep my own records of my achievements and upload to other services||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to receive notification when a student receives a badge||I can stay informed about my student&#039;s progress||High&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge display===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I have achieved via the site in one location||I can get an overview of my achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see the public or shared badges belonging to other users||I can see what learning my peers have achieved.||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I can achieve via the site||I can prioritize and plan my learning||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to control who is able to see each of my badges||I can decide for myself who I would like to share my achievements with.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to display all the badges in my &amp;quot;backpack&amp;quot;, including those from outside the Moodle site||I can let others know about other learning that I&#039;ve achieved from other sources.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge management===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see which of my students have achieved a specific badge||I can track the progress of my students.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges that are no longer valid&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a student that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see the badges achieved by an individual student||I can assess the progress of an individual student.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see the badges achieved by any site user||I can track the progress of individuals.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see which site users have achieved a specific badges||I can track overall achievement of a particular badge.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges across the entire site&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a set of students that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to push individual badges from Moodle into my external badge backpack||So that I can share my badges externally to moodle||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to automatically push all my badges from Moodle into my external badge backpack||So that my achievements are available in my backpack without having to push them every time||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set an expiry period for badges||I can use badges in cases where achievements only last a fixed period of time.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to automatically generate user-specific evidence for badges||I can show how students earned the badge.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to perform more detailed reporting (such as who hasn&#039;t achieved a badge yet)||I can see which students I need to follow up with.||Low&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[2] Revoking of issued badges is not currently possible in Open Badges infrastructure&lt;br /&gt;
&lt;br /&gt;
===Badge verification===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Know that all badges displayed within the system are valid (have been achieved by the user they are displayed for)||I can be certain that the badges displayed within the system have all been achieved.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Be able to confirm from the original source that a badge being displayed by a user (outside of the system) is valid||I can be certain that the student has achieved a particular badge.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Integration with Mahara===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Be able to easily display all my achieved badges||I can include my achievements in my porfolio.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Have my badges from Moodle automatically imported into Mahara||I don&#039;t have to manually copy new badges each time I achieve something.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Control which badges appear when displaying them in my porfolio||I can present different representations of my achievements to different audiences.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Remove badges from a users portfolio if they have been revoked||I can prevent a user displaying badges that are no longer valid.||High&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Implementation Options==&lt;br /&gt;
&lt;br /&gt;
Moodle already has a module which behaves in a similar way to the proposals for open badges - the [http://moodle.org/plugins/view.php?plugin=mod_certificate Certificate Module]. Initial idea was to consider extending the certificate module to avoid rewriting similar code. However, after some discussions and feedback on the [http://moodle.org/mod/forum/discuss.php?d=197834 community forum], we decided to look at implementing a separate module for Open Badges.&lt;br /&gt;
&lt;br /&gt;
===Badge awarding criteria===&lt;br /&gt;
&lt;br /&gt;
For initial development, we expect to support the following criteria that will lead to the issuing of badges:&lt;br /&gt;
&lt;br /&gt;
* Completing an activity or set of several activities (viewing an activity as a part of it)&lt;br /&gt;
* Completing a course&lt;br /&gt;
* Completing a set of courses&lt;br /&gt;
* Posting to a forum&lt;br /&gt;
* Filling in user profile (to encourage participation)&lt;br /&gt;
* Discretionary awarding of badges by teacher (e.g to reward certain behaviour)&lt;br /&gt;
&lt;br /&gt;
===Technical specification===&lt;br /&gt;
The technical specification can be found on GitHub [https://github.com/totara/openbadges-docs Totara openbadges-docs] repository.&lt;br /&gt;
&lt;br /&gt;
===User documentation===&lt;br /&gt;
&lt;br /&gt;
We are working on user documentation. Current functionality description can be found on [[OpenBadges_User_Documentation|OpenBadges User Documentation]] page.&lt;br /&gt;
&lt;br /&gt;
==Open Badges Integration==&lt;br /&gt;
&lt;br /&gt;
Open badges are still in beta so we can expect additional features and possibly some API changes over time. v1 is due out [https://wiki.mozilla.org/Badges/roadmap#Q1:_Ship_OBI_v1.0 Q1 2013].&lt;br /&gt;
&lt;br /&gt;
===Implementation plan===&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the [https://wiki.mozilla.org/images/4/44/Tech-diagram-v3_updated.png current infrastructure] for managing badges. We intend to develop the functionality to make Moodle both a &amp;quot;displayer&amp;quot; and a &amp;quot;issuer&amp;quot; of badges and Mahara as a &amp;quot;displayer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This diagram outlines the various components:&lt;br /&gt;
&lt;br /&gt;
[[File:Moodle_Open_Badges_Infrastructure_Diagram.png|Open Badges infrastructure diagram]]&lt;br /&gt;
&lt;br /&gt;
It should be possible to implement each component as separate modules. Our proposed order:&lt;br /&gt;
&lt;br /&gt;
# Badge creation and management in Moodle.&lt;br /&gt;
# Moodle Block to display badges received from the site (internal badges)&lt;br /&gt;
# Add code to support direct pushing of internal badges to external backpack (without having to manually download/upload them)&lt;br /&gt;
# Badge displayer in Moodle (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Badge displayer in Mahara (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Add code to support direct pushing of internal badges to Mahara via Porfolio API (no need for external backpack)&lt;br /&gt;
&lt;br /&gt;
Once OpenBadges Infrastructure supports federated backpack providers we would like to add:&lt;br /&gt;
&lt;br /&gt;
7. Allow Mahara sites to become backpack providers&lt;br /&gt;
&lt;br /&gt;
The reason for providing a direct method for displaying internal badges without requiring an external backpack is because pushing badges to an external backpack requires an external account for managing badges as outlined here:&lt;br /&gt;
&lt;br /&gt;
https://wiki.mozilla.org/Badges/Onboarding-Earner#II._FUNCTIONAL_FLOW:_FIRST_TIME_EARNER&lt;br /&gt;
&lt;br /&gt;
This workflow has some advantages (primarily the user has full control over their own badges) but seems quite complex. Given that Moodle is both an issuer and displayer we are able to avoid this step for users who do not want to share their badges to a wider audience.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openbadges.org/ Mozilla Open Badges website]&lt;br /&gt;
* [https://wiki.mozilla.org/Badges MozillaWiki on Open Badges]&lt;br /&gt;
* [http://bananigans.tumblr.com/post/22586770579/how-to-learn-more-about-open-badges How to learn more about Open Badges]&lt;br /&gt;
* [https://moodle.org/mod/forum/view.php?id=8085 Badges Moodle forum] - [http://moodle.org/mod/forum/discuss.php?d=197834 Post announcing the project]&lt;br /&gt;
* [http://blog.mozilla.org/blog/2011/09/15/openbadges/ Mozilla blog post announcing project]&lt;br /&gt;
* [http://github.com/totara/openbadges-docs Specifications on github]&lt;br /&gt;
* [https://docs.moodle.org/dev/OpenBadges_User_Documentation Preliminary user documentation]&lt;br /&gt;
* [http://github.com/totara/openbadges Code on github]&lt;br /&gt;
* [https://tracker.moodle.org/browse/MDL-35073 Moodle tracker issue]&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=38795</id>
		<title>openbadges</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=38795"/>
		<updated>2013-04-05T18:46:16Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work in progress}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Status:&#039;&#039;&#039; &lt;br /&gt;
:The initial implementation has now been merged for release in Moodle 2.5.&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
&lt;br /&gt;
In September 2011, Mozilla [http://blog.mozilla.org/blog/2011/09/15/openbadges/ launched] the Open Badges project as a way to &amp;quot;make it easy to issue and share digital learning badges across the web&amp;quot;. Mozilla have developed an [https://wiki.mozilla.org/Badges/infrastructure-tech-docs open specification] and API for badge creation and sharing and are looking for developers to implement infrastructure that makes use of the badges.&lt;br /&gt;
&lt;br /&gt;
[http://www.totaralms.com/ TotaraLMS] have volunteered to [http://moodle.org/mod/forum/discuss.php?d=197834 lead the development] to integrate Open Badges into Moodle (and also Mahara).&lt;br /&gt;
&lt;br /&gt;
This document contains our initial ideas and some unanswered questions around implementation in order to receive feedback from the moodle community on what is required and how to implement it.&lt;br /&gt;
&lt;br /&gt;
==User Stories==&lt;br /&gt;
&lt;br /&gt;
Our first step is to attempt to define the requirements and priorities. Feedback welcome:&lt;br /&gt;
&lt;br /&gt;
===Badge creation===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to control who is able to create and issue badges||I can manage the issuing of badges from my organisation||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges||I can issue badges to students for achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to modify existing badges [1][3]||I can make changes to a badge without having to start again||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to delete badges||They can be removed from the system when no longer required||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set a background image for the badge||I can customise the appearance of the badges I create||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed custom text into the badge image||I can choose the text shown on the badges I create||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed user specific text into the badge image||I can create badges that are specific to each user||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to clone existing badges||I can create similar badges with less work||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to create badge design templates for course creators to use||I can provide a consistent look for badges across my organisation||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges based on site-wide design templates||I can quickly create similar looking badges||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] Note this means changing the badge that will be issued from that point on - the open badges spec intentionally prevents an issuer from modifying badges once they have been issued to the user for security reasons&lt;br /&gt;
&lt;br /&gt;
[3] At the moment, we are also considering locking badge criteria from changes once at least one badge was awarded based on existing criteria. To update the badge completely, badge creator will have to copy/duplicate the badge and make all the changes (Yuliya).&lt;br /&gt;
&lt;br /&gt;
===Badge assignment===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to control the criteria that leads to the issuing of badges||I can ensure badges are only issued to students who have achieved them||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a notification when I have received a new badge||I know when I have made an achievement||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a copy of badges I achieve||I can keep my own records of my achievements and upload to other services||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to receive notification when a student receives a badge||I can stay informed about my student&#039;s progress||High&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge display===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I have achieved via the site in one location||I can get an overview of my achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see the public or shared badges belonging to other users||I can see what learning my peers have achieved.||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I can achieve via the site||I can prioritize and plan my learning||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to control who is able to see each of my badges||I can decide for myself who I would like to share my achievements with.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to display all the badges in my &amp;quot;backpack&amp;quot;, including those from outside the Moodle site||I can let others know about other learning that I&#039;ve achieved from other sources.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge management===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see which of my students have achieved a specific badge||I can track the progress of my students.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges that are no longer valid&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a student that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see the badges achieved by an individual student||I can assess the progress of an individual student.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see the badges achieved by any site user||I can track the progress of individuals.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see which site users have achieved a specific badges||I can track overall achievement of a particular badge.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges across the entire site&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a set of students that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to push individual badges from Moodle into my external badge backpack||So that I can share my badges externally to moodle||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to automatically push all my badges from Moodle into my external badge backpack||So that my achievements are available in my backpack without having to push them every time||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set an expiry period for badges||I can use badges in cases where achievements only last a fixed period of time.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to automatically generate user-specific evidence for badges||I can show how students earned the badge.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to perform more detailed reporting (such as who hasn&#039;t achieved a badge yet)||I can see which students I need to follow up with.||Low&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[2] Revoking of issued badges is not currently possible in Open Badges infrastructure&lt;br /&gt;
&lt;br /&gt;
===Badge verification===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Know that all badges displayed within the system are valid (have been achieved by the user they are displayed for)||I can be certain that the badges displayed within the system have all been achieved.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Be able to confirm from the original source that a badge being displayed by a user (outside of the system) is valid||I can be certain that the student has achieved a particular badge.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Integration with Mahara===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Be able to easily display all my achieved badges||I can include my achievements in my porfolio.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Have my badges from Moodle automatically imported into Mahara||I don&#039;t have to manually copy new badges each time I achieve something.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Control which badges appear when displaying them in my porfolio||I can present different representations of my achievements to different audiences.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Remove badges from a users portfolio if they have been revoked||I can prevent a user displaying badges that are no longer valid.||High&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Implementation Options==&lt;br /&gt;
&lt;br /&gt;
Moodle already has a module which behaves in a similar way to the proposals for open badges - the [http://moodle.org/plugins/view.php?plugin=mod_certificate Certificate Module]. Initial idea was to consider extending the certificate module to avoid rewriting similar code. However, after some discussions and feedback on the [http://moodle.org/mod/forum/discuss.php?d=197834 community forum], we decided to look at implementing a separate module for Open Badges.&lt;br /&gt;
&lt;br /&gt;
===Badge awarding criteria===&lt;br /&gt;
&lt;br /&gt;
For initial development, we expect to support the following criteria that will lead to the issuing of badges:&lt;br /&gt;
&lt;br /&gt;
* Completing an activity or set of several activities (viewing an activity as a part of it)&lt;br /&gt;
* Completing a course&lt;br /&gt;
* Completing a set of courses&lt;br /&gt;
* Posting to a forum&lt;br /&gt;
* Filling in user profile (to encourage participation)&lt;br /&gt;
* Discretionary awarding of badges by teacher (e.g to reward certain behaviour)&lt;br /&gt;
&lt;br /&gt;
===Technical specification===&lt;br /&gt;
Current work towards technical specification can be followed on GitHub [https://github.com/totara/openbadges-docs Totara openbadges-docs] repository.&lt;br /&gt;
&lt;br /&gt;
===User documentation===&lt;br /&gt;
&lt;br /&gt;
We are working on user documentation. Current functionality description can be found on [[OpenBadges_User_Documentation|OpenBadges User Documentation]] page.&lt;br /&gt;
&lt;br /&gt;
==Open Badges Integration==&lt;br /&gt;
&lt;br /&gt;
Open badges are still in beta so we can expect additional features and possibly some API changes over time. v1 is due out [https://wiki.mozilla.org/Badges/roadmap#Q1:_Ship_OBI_v1.0 Q1 2013].&lt;br /&gt;
&lt;br /&gt;
===Implementation plan===&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the [https://wiki.mozilla.org/images/4/44/Tech-diagram-v3_updated.png current infrastructure] for managing badges. We intend to develop the functionality to make Moodle both a &amp;quot;displayer&amp;quot; and a &amp;quot;issuer&amp;quot; of badges and Mahara as a &amp;quot;displayer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This diagram outlines the various components:&lt;br /&gt;
&lt;br /&gt;
[[File:Moodle_Open_Badges_Infrastructure_Diagram.png|Open Badges infrastructure diagram]]&lt;br /&gt;
&lt;br /&gt;
It should be possible to implement each component as separate modules. Our proposed order:&lt;br /&gt;
&lt;br /&gt;
# Badge creation and management in Moodle.&lt;br /&gt;
# Moodle Block to display badges received from the site (internal badges)&lt;br /&gt;
# Add code to support direct pushing of internal badges to external backpack (without having to manually download/upload them)&lt;br /&gt;
# Badge displayer in Moodle (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Badge displayer in Mahara (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Add code to support direct pushing of internal badges to Mahara via Porfolio API (no need for external backpack)&lt;br /&gt;
&lt;br /&gt;
Once OpenBadges Infrastructure supports federated backpack providers we would like to add:&lt;br /&gt;
&lt;br /&gt;
7. Allow Mahara sites to become backpack providers&lt;br /&gt;
&lt;br /&gt;
The reason for providing a direct method for displaying internal badges without requiring an external backpack is because pushing badges to an external backpack requires an external account for managing badges as outlined here:&lt;br /&gt;
&lt;br /&gt;
https://wiki.mozilla.org/Badges/Onboarding-Earner#II._FUNCTIONAL_FLOW:_FIRST_TIME_EARNER&lt;br /&gt;
&lt;br /&gt;
This workflow has some advantages (primarily the user has full control over their own badges) but seems quite complex. Given that Moodle is both an issuer and displayer we are able to avoid this step for users who do not want to share their badges to a wider audience.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openbadges.org/ Mozilla Open Badges website]&lt;br /&gt;
* [https://wiki.mozilla.org/Badges MozillaWiki on Open Badges]&lt;br /&gt;
* [http://bananigans.tumblr.com/post/22586770579/how-to-learn-more-about-open-badges How to learn more about Open Badges]&lt;br /&gt;
* [https://moodle.org/mod/forum/view.php?id=8085 Badges Moodle forum] - [http://moodle.org/mod/forum/discuss.php?d=197834 Post announcing the project]&lt;br /&gt;
* [http://blog.mozilla.org/blog/2011/09/15/openbadges/ Mozilla blog post announcing project]&lt;br /&gt;
* [http://github.com/totara/openbadges-docs Specifications on github]&lt;br /&gt;
* [https://docs.moodle.org/dev/OpenBadges_User_Documentation Preliminary user documentation]&lt;br /&gt;
* [http://github.com/totara/openbadges Code on github]&lt;br /&gt;
* [https://tracker.moodle.org/browse/MDL-35073 Moodle tracker issue]&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=38741</id>
		<title>openbadges</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=38741"/>
		<updated>2013-04-04T18:06:09Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work in progress}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Status:&#039;&#039;&#039; &lt;br /&gt;
:development in progress (MDL-35073)&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
&lt;br /&gt;
In September 2011, Mozilla [http://blog.mozilla.org/blog/2011/09/15/openbadges/ launched] the Open Badges project as a way to &amp;quot;make it easy to issue and share digital learning badges across the web&amp;quot;. Mozilla have developed an [https://wiki.mozilla.org/Badges/infrastructure-tech-docs open specification] and API for badge creation and sharing and are looking for developers to implement infrastructure that makes use of the badges.&lt;br /&gt;
&lt;br /&gt;
[http://www.totaralms.com/ TotaraLMS] have volunteered to [http://moodle.org/mod/forum/discuss.php?d=197834 lead the development] to integrate Open Badges into Moodle (and also Mahara).&lt;br /&gt;
&lt;br /&gt;
This document contains our initial ideas and some unanswered questions around implementation in order to receive feedback from the moodle community on what is required and how to implement it.&lt;br /&gt;
&lt;br /&gt;
==User Stories==&lt;br /&gt;
&lt;br /&gt;
Our first step is to attempt to define the requirements and priorities. Feedback welcome:&lt;br /&gt;
&lt;br /&gt;
===Badge creation===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to control who is able to create and issue badges||I can manage the issuing of badges from my organisation||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges||I can issue badges to students for achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to modify existing badges [1][3]||I can make changes to a badge without having to start again||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to delete badges||They can be removed from the system when no longer required||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set a background image for the badge||I can customise the appearance of the badges I create||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed custom text into the badge image||I can choose the text shown on the badges I create||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed user specific text into the badge image||I can create badges that are specific to each user||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to clone existing badges||I can create similar badges with less work||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to create badge design templates for course creators to use||I can provide a consistent look for badges across my organisation||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges based on site-wide design templates||I can quickly create similar looking badges||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] Note this means changing the badge that will be issued from that point on - the open badges spec intentionally prevents an issuer from modifying badges once they have been issued to the user for security reasons&lt;br /&gt;
&lt;br /&gt;
[3] At the moment, we are also considering locking badge criteria from changes once at least one badge was awarded based on existing criteria. To update the badge completely, badge creator will have to copy/duplicate the badge and make all the changes (Yuliya).&lt;br /&gt;
&lt;br /&gt;
===Badge assignment===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to control the criteria that leads to the issuing of badges||I can ensure badges are only issued to students who have achieved them||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a notification when I have received a new badge||I know when I have made an achievement||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a copy of badges I achieve||I can keep my own records of my achievements and upload to other services||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to receive notification when a student receives a badge||I can stay informed about my student&#039;s progress||High&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge display===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I have achieved via the site in one location||I can get an overview of my achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see the public or shared badges belonging to other users||I can see what learning my peers have achieved.||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I can achieve via the site||I can prioritize and plan my learning||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to control who is able to see each of my badges||I can decide for myself who I would like to share my achievements with.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to display all the badges in my &amp;quot;backpack&amp;quot;, including those from outside the Moodle site||I can let others know about other learning that I&#039;ve achieved from other sources.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge management===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see which of my students have achieved a specific badge||I can track the progress of my students.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges that are no longer valid&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a student that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see the badges achieved by an individual student||I can assess the progress of an individual student.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see the badges achieved by any site user||I can track the progress of individuals.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see which site users have achieved a specific badges||I can track overall achievement of a particular badge.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges across the entire site&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a set of students that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to push individual badges from Moodle into my external badge backpack||So that I can share my badges externally to moodle||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to automatically push all my badges from Moodle into my external badge backpack||So that my achievements are available in my backpack without having to push them every time||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set an expiry period for badges||I can use badges in cases where achievements only last a fixed period of time.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to automatically generate user-specific evidence for badges||I can show how students earned the badge.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to perform more detailed reporting (such as who hasn&#039;t achieved a badge yet)||I can see which students I need to follow up with.||Low&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[2] Revoking of issued badges is not currently possible in Open Badges infrastructure&lt;br /&gt;
&lt;br /&gt;
===Badge verification===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Know that all badges displayed within the system are valid (have been achieved by the user they are displayed for)||I can be certain that the badges displayed within the system have all been achieved.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Be able to confirm from the original source that a badge being displayed by a user (outside of the system) is valid||I can be certain that the student has achieved a particular badge.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Integration with Mahara===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Be able to easily display all my achieved badges||I can include my achievements in my porfolio.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Have my badges from Moodle automatically imported into Mahara||I don&#039;t have to manually copy new badges each time I achieve something.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Control which badges appear when displaying them in my porfolio||I can present different representations of my achievements to different audiences.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Remove badges from a users portfolio if they have been revoked||I can prevent a user displaying badges that are no longer valid.||High&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Implementation Options==&lt;br /&gt;
&lt;br /&gt;
Moodle already has a module which behaves in a similar way to the proposals for open badges - the [http://moodle.org/plugins/view.php?plugin=mod_certificate Certificate Module]. Initial idea was to consider extending the certificate module to avoid rewriting similar code. However, after some discussions and feedback on the [http://moodle.org/mod/forum/discuss.php?d=197834 community forum], we decided to look at implementing a separate module for Open Badges.&lt;br /&gt;
&lt;br /&gt;
===Badge awarding criteria===&lt;br /&gt;
&lt;br /&gt;
For initial development, we expect to support the following criteria that will lead to the issuing of badges:&lt;br /&gt;
&lt;br /&gt;
* Completing an activity or set of several activities (viewing an activity as a part of it)&lt;br /&gt;
* Completing a course&lt;br /&gt;
* Completing a set of courses&lt;br /&gt;
* Posting to a forum&lt;br /&gt;
* Filling in user profile (to encourage participation)&lt;br /&gt;
* Discretionary awarding of badges by teacher (e.g to reward certain behaviour)&lt;br /&gt;
&lt;br /&gt;
===Technical specification===&lt;br /&gt;
Current work towards technical specification can be followed on GitHub [https://github.com/totara/openbadges-docs Totara openbadges-docs] repository.&lt;br /&gt;
&lt;br /&gt;
===User documentation===&lt;br /&gt;
&lt;br /&gt;
We are working on user documentation. Current functionality description can be found on [[OpenBadges_User_Documentation|OpenBadges User Documentation]] page.&lt;br /&gt;
&lt;br /&gt;
==Open Badges Integration==&lt;br /&gt;
&lt;br /&gt;
Open badges are still in beta so we can expect additional features and possibly some API changes over time. v1 is due out [https://wiki.mozilla.org/Badges/roadmap#Q1:_Ship_OBI_v1.0 Q1 2013].&lt;br /&gt;
&lt;br /&gt;
===Implementation plan===&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the [https://wiki.mozilla.org/images/4/44/Tech-diagram-v3_updated.png current infrastructure] for managing badges. We intend to develop the functionality to make Moodle both a &amp;quot;displayer&amp;quot; and a &amp;quot;issuer&amp;quot; of badges and Mahara as a &amp;quot;displayer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This diagram outlines the various components:&lt;br /&gt;
&lt;br /&gt;
[[File:Moodle_Open_Badges_Infrastructure_Diagram.png|Open Badges infrastructure diagram]]&lt;br /&gt;
&lt;br /&gt;
It should be possible to implement each component as separate modules. Our proposed order:&lt;br /&gt;
&lt;br /&gt;
# Badge creation and management in Moodle.&lt;br /&gt;
# Moodle Block to display badges received from the site (internal badges)&lt;br /&gt;
# Add code to support direct pushing of internal badges to external backpack (without having to manually download/upload them)&lt;br /&gt;
# Badge displayer in Moodle (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Badge displayer in Mahara (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Add code to support direct pushing of internal badges to Mahara via Porfolio API (no need for external backpack)&lt;br /&gt;
&lt;br /&gt;
Once OpenBadges Infrastructure supports federated backpack providers we would like to add:&lt;br /&gt;
&lt;br /&gt;
7. Allow Mahara sites to become backpack providers&lt;br /&gt;
&lt;br /&gt;
The reason for providing a direct method for displaying internal badges without requiring an external backpack is because pushing badges to an external backpack requires an external account for managing badges as outlined here:&lt;br /&gt;
&lt;br /&gt;
https://wiki.mozilla.org/Badges/Onboarding-Earner#II._FUNCTIONAL_FLOW:_FIRST_TIME_EARNER&lt;br /&gt;
&lt;br /&gt;
This workflow has some advantages (primarily the user has full control over their own badges) but seems quite complex. Given that Moodle is both an issuer and displayer we are able to avoid this step for users who do not want to share their badges to a wider audience.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openbadges.org/ Mozilla Open Badges website]&lt;br /&gt;
* [https://wiki.mozilla.org/Badges MozillaWiki on Open Badges]&lt;br /&gt;
* [http://bananigans.tumblr.com/post/22586770579/how-to-learn-more-about-open-badges How to learn more about Open Badges]&lt;br /&gt;
* [https://moodle.org/mod/forum/view.php?id=8085 Badges Moodle forum] - [http://moodle.org/mod/forum/discuss.php?d=197834 Post announcing the project]&lt;br /&gt;
* [http://blog.mozilla.org/blog/2011/09/15/openbadges/ Mozilla blog post announcing project]&lt;br /&gt;
* [http://github.com/totara/openbadges-docs Specifications on github]&lt;br /&gt;
* [https://docs.moodle.org/dev/OpenBadges_User_Documentation Preliminary user documentation]&lt;br /&gt;
* [http://github.com/totara/openbadges Code on github]&lt;br /&gt;
* [https://tracker.moodle.org/browse/MDL-35073 Moodle tracker issue]&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=38740</id>
		<title>openbadges</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=38740"/>
		<updated>2013-04-04T18:05:57Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work in progress}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Status:&#039;&#039;&#039; &lt;br /&gt;
:development in progress (MDL-35073)&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
&lt;br /&gt;
In September 2011, Mozilla [http://blog.mozilla.org/blog/2011/09/15/openbadges/ launched] the Open Badges project as a way to &amp;quot;make it easy to issue and share digital learning badges across the web&amp;quot;. Mozilla have developed an [https://wiki.mozilla.org/Badges/infrastructure-tech-docs open specification] and API for badge creation and sharing and are looking for developers to implement infrastructure that makes use of the badges.&lt;br /&gt;
&lt;br /&gt;
[http://www.totaralms.com/ TotaraLMS] have volunteered to [http://moodle.org/mod/forum/discuss.php?d=197834 lead the development] to integrate Open Badges into Moodle (and also Mahara).&lt;br /&gt;
&lt;br /&gt;
This document contains our initial ideas and some unanswered questions around implementation in order to receive feedback from the moodle community on what is required and how to implement it.&lt;br /&gt;
&lt;br /&gt;
==User Stories==&lt;br /&gt;
&lt;br /&gt;
Our first step is to attempt to define the requirements and priorities. Feedback welcome:&lt;br /&gt;
&lt;br /&gt;
===Badge creation===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to control who is able to create and issue badges||I can manage the issuing of badges from my organisation||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges||I can issue badges to students for achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to modify existing badges [1][3]||I can make changes to a badge without having to start again||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to delete badges||They can be removed from the system when no longer required||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set a background image for the badge||I can customise the appearance of the badges I create||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed custom text into the badge image||I can choose the text shown on the badges I create||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed user specific text into the badge image||I can create badges that are specific to each user||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to clone existing badges||I can create similar badges with less work||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to create badge design templates for course creators to use||I can provide a consistent look for badges across my organisation||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges based on site-wide design templates||I can quickly create similar looking badges||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] Note this means changing the badge that will be issued from that point on - the open badges spec intentionally prevents an issuer from modifying badges once they have been issued to the user for security reasons&lt;br /&gt;
&lt;br /&gt;
[3] At the moment, we are also considering locking badge criteria from changes once at least one badge was awarded based on existing criteria. To update the badge completely, badge creator will have to copy/duplicate the badge and make all the changes (Yuliya).&lt;br /&gt;
&lt;br /&gt;
===Badge assignment===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to control the criteria that leads to the issuing of badges||I can ensure badges are only issued to students who have achieved them||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a notification when I have received a new badge||I know when I have made an achievement||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a copy of badges I achieve||I can keep my own records of my achievements and upload to other services||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to receive notification when a student receives a badge||I can stay informed about my student&#039;s progress||High&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge display===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I have achieved via the site in one location||I can get an overview of my achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see the public or shared badges belonging to other users||I can see what learning my peers have achieved.||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I can achieve via the site||I can prioritize and plan my learning||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to control who is able to see each of my badges||I can decide for myself who I would like to share my achievements with.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to display all the badges in my &amp;quot;backpack&amp;quot;, including those from outside the Moodle site||I can let others know about other learning that I&#039;ve achieved from other sources.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge management===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see which of my students have achieved a specific badge||I can track the progress of my students.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges that are no longer valid&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a student that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see the badges achieved by an individual student||I can assess the progress of an individual student.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see the badges achieved by any site user||I can track the progress of individuals.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see which site users have achieved a specific badges||I can track overall achievement of a particular badge.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges across the entire site&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a set of students that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to push individual badges from Moodle into my external badge backpack||So that I can share my badges externally to moodle||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to automatically push all my badges from Moodle into my external badge backpack||So that my achievements are available in my backpack without having to push them every time||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set an expiry period for badges||I can use badges in cases where achievements only last a fixed period of time.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to automatically generate user-specific evidence for badges||I can show how students earned the badge.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to perform more detailed reporting (such as who hasn&#039;t achieved a badge yet)||I can see which students I need to follow up with.||Low&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[2] Revoking of issued badges is not currently possible in Open Badges infrastructure&lt;br /&gt;
&lt;br /&gt;
===Badge verification===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Know that all badges displayed within the system are valid (have been achieved by the user they are displayed for)||I can be certain that the badges displayed within the system have all been achieved.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Be able to confirm from the original source that a badge being displayed by a user (outside of the system) is valid||I can be certain that the student has achieved a particular badge.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Integration with Mahara===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Be able to easily display all my achieved badges||I can include my achievements in my porfolio.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Have my badges from Moodle automatically imported into Mahara||I don&#039;t have to manually copy new badges each time I achieve something.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Control which badges appear when displaying them in my porfolio||I can present different representations of my achievements to different audiences.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Remove badges from a users portfolio if they have been revoked||I can prevent a user displaying badges that are no longer valid.||High&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Implementation Options==&lt;br /&gt;
&lt;br /&gt;
Moodle already has a module which behaves in a similar way to the proposals for open badges - the [http://moodle.org/plugins/view.php?plugin=mod_certificate Certificate Module]. Initial idea was to consider extending the certificate module to avoid rewriting similar code. However, after some discussions and feedback on the [http://moodle.org/mod/forum/discuss.php?d=197834 community forum], we decided to look at implementing a separate module for Open Badges.&lt;br /&gt;
&lt;br /&gt;
===Badge awarding criteria===&lt;br /&gt;
&lt;br /&gt;
For initial development, we expect to support the following criteria that will lead to the issuing of badges:&lt;br /&gt;
&lt;br /&gt;
* Completing an activity or set of several activities (viewing an activity as a part of it)&lt;br /&gt;
* Completing a course&lt;br /&gt;
* Completing a set of courses&lt;br /&gt;
* Posting to a forum&lt;br /&gt;
* Filling in user profile (to encourage participation)&lt;br /&gt;
* Discretionary awarding of badges by teacher (e.g to reward certain behaviour)&lt;br /&gt;
&lt;br /&gt;
===Technical specification===&lt;br /&gt;
Current work towards technical specification can be followed on GitHub [https://github.com/totara/openbadges-docs Totara openbadges-docs] repository.&lt;br /&gt;
&lt;br /&gt;
===User documentation===&lt;br /&gt;
&lt;br /&gt;
We are working on user documentation. Current functionality description can be found on [[OpenBadges_User_Documentation|OpenBadges User Documentation]] page.&lt;br /&gt;
&lt;br /&gt;
==Open Badges Integration==&lt;br /&gt;
&lt;br /&gt;
Open badges are still in beta so we can expect additional features and possibly some API changes over time. v1 is due out [https://wiki.mozilla.org/Badges/roadmap#Q1:_Ship_OBI_v1.0 Q1 2013].&lt;br /&gt;
&lt;br /&gt;
===Implementation plan===&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the [https://wiki.mozilla.org/images/4/44/Tech-diagram-v3_updated.png current infrastructure] for managing badges. We intend to develop the functionality to make Moodle both a &amp;quot;displayer&amp;quot; and a &amp;quot;issuer&amp;quot; of badges and Mahara as a &amp;quot;displayer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This diagram outlines the various components:&lt;br /&gt;
&lt;br /&gt;
[[File:Moodle_Open_Badges_Infrastructure_Diagram.png|Open Badges infrastructure diagram]]&lt;br /&gt;
&lt;br /&gt;
It should be possible to implement each component as separate modules. Our proposed order:&lt;br /&gt;
&lt;br /&gt;
# Badge creation and management in Moodle.&lt;br /&gt;
# Moodle Block to display badges received from the site (internal badges)&lt;br /&gt;
# Add code to support direct pushing of internal badges to external backpack (without having to manually download/upload them)&lt;br /&gt;
# Badge displayer in Moodle (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Badge displayer in Mahara (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Add code to support direct pushing of internal badges to Mahara via Porfolio API (no need for external backpack)&lt;br /&gt;
&lt;br /&gt;
Once OpenBadges Infrastructure supports federated backpack providers we would like to add:&lt;br /&gt;
&lt;br /&gt;
7. Allow Mahara sites to become backpack providers&lt;br /&gt;
&lt;br /&gt;
The reason for providing a direct method for displaying internal badges without requiring an external backpack is because pushing badges to an external backpack requires an external account for managing badges as outlined here:&lt;br /&gt;
&lt;br /&gt;
https://wiki.mozilla.org/Badges/Onboarding-Earner#II._FUNCTIONAL_FLOW:_FIRST_TIME_EARNER&lt;br /&gt;
&lt;br /&gt;
This workflow has some advantages (primarily the user has full control over their own badges) but seems quite complex. Given that Moodle is both an issuer and displayer we are able to avoid this step for users who do not want to share their badges to a wider audience.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openbadges.org/ Mozilla Open Badges website]&lt;br /&gt;
* [https://wiki.mozilla.org/Badges MozillaWiki on Open Badges]&lt;br /&gt;
* [http://bananigans.tumblr.com/post/22586770579/how-to-learn-more-about-open-badges How to learn more about Open Badges]&lt;br /&gt;
* [https://moodle.org/mod/forum/view.php?id=8085 Badges Moodle forum] - [http://moodle.org/mod/forum/discuss.php?d=197834 Post announcing the project]&lt;br /&gt;
* [[http://blog.mozilla.org/blog/2011/09/15/openbadges/ Mozilla blog post announcing project]&lt;br /&gt;
* [http://github.com/totara/openbadges-docs Specifications on github]&lt;br /&gt;
* [https://docs.moodle.org/dev/OpenBadges_User_Documentation Preliminary user documentation]&lt;br /&gt;
* [http://github.com/totara/openbadges Code on github]&lt;br /&gt;
* [https://tracker.moodle.org/browse/MDL-35073 Moodle tracker issue]&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=37860</id>
		<title>openbadges</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=37860"/>
		<updated>2013-02-18T20:40:55Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work in progress}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Status:&#039;&#039;&#039; &lt;br /&gt;
:development in progress (MDL-35073)&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
&lt;br /&gt;
In September 2011, Mozilla [http://blog.mozilla.org/blog/2011/09/15/openbadges/ launched] the Open Badges project as a way to &amp;quot;make it easy to issue and share digital learning badges across the web&amp;quot;. Mozilla have developed an [https://wiki.mozilla.org/Badges/infrastructure-tech-docs open specification] and API for badge creation and sharing and are looking for developers to implement infrastructure that makes use of the badges.&lt;br /&gt;
&lt;br /&gt;
[http://www.totaralms.com/ TotaraLMS] have volunteered to [http://moodle.org/mod/forum/discuss.php?d=197834 lead the development] to integrate Open Badges into Moodle (and also Mahara).&lt;br /&gt;
&lt;br /&gt;
This document contains our initial ideas and some unanswered questions around implementation in order to receive feedback from the moodle community on what is required and how to implement it.&lt;br /&gt;
&lt;br /&gt;
==User Stories==&lt;br /&gt;
&lt;br /&gt;
Our first step is to attempt to define the requirements and priorities. Feedback welcome:&lt;br /&gt;
&lt;br /&gt;
===Badge creation===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to control who is able to create and issue badges||I can manage the issuing of badges from my organisation||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges||I can issue badges to students for achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to modify existing badges [1][3]||I can make changes to a badge without having to start again||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to delete badges||They can be removed from the system when no longer required||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set a background image for the badge||I can customise the appearance of the badges I create||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed custom text into the badge image||I can choose the text shown on the badges I create||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed user specific text into the badge image||I can create badges that are specific to each user||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to clone existing badges||I can create similar badges with less work||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to create badge design templates for course creators to use||I can provide a consistent look for badges across my organisation||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges based on site-wide design templates||I can quickly create similar looking badges||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] Note this means changing the badge that will be issued from that point on - the open badges spec intentionally prevents an issuer from modifying badges once they have been issued to the user for security reasons&lt;br /&gt;
&lt;br /&gt;
[3] At the moment, we are also considering locking badge criteria from changes once at least one badge was awarded based on existing criteria. To update the badge completely, badge creator will have to copy/duplicate the badge and make all the changes (Yuliya).&lt;br /&gt;
&lt;br /&gt;
===Badge assignment===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to control the criteria that leads to the issuing of badges||I can ensure badges are only issued to students who have achieved them||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a notification when I have received a new badge||I know when I have made an achievement||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a copy of badges I achieve||I can keep my own records of my achievements and upload to other services||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to receive notification when a student receives a badge||I can stay informed about my student&#039;s progress||High&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge display===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I have achieved via the site in one location||I can get an overview of my achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see the public or shared badges belonging to other users||I can see what learning my peers have achieved.||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I can achieve via the site||I can prioritize and plan my learning||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to control who is able to see each of my badges||I can decide for myself who I would like to share my achievements with.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to display all the badges in my &amp;quot;backpack&amp;quot;, including those from outside the Moodle site||I can let others know about other learning that I&#039;ve achieved from other sources.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge management===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see which of my students have achieved a specific badge||I can track the progress of my students.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges that are no longer valid&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a student that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see the badges achieved by an individual student||I can assess the progress of an individual student.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see the badges achieved by any site user||I can track the progress of individuals.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see which site users have achieved a specific badges||I can track overall achievement of a particular badge.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges across the entire site&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a set of students that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to push individual badges from Moodle into my external badge backpack||So that I can share my badges externally to moodle||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to automatically push all my badges from Moodle into my external badge backpack||So that my achievements are available in my backpack without having to push them every time||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set an expiry period for badges||I can use badges in cases where achievements only last a fixed period of time.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to automatically generate user-specific evidence for badges||I can show how students earned the badge.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to perform more detailed reporting (such as who hasn&#039;t achieved a badge yet)||I can see which students I need to follow up with.||Low&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[2] Revoking of issued badges is not currently possible in Open Badges infrastructure&lt;br /&gt;
&lt;br /&gt;
===Badge verification===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Know that all badges displayed within the system are valid (have been achieved by the user they are displayed for)||I can be certain that the badges displayed within the system have all been achieved.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Be able to confirm from the original source that a badge being displayed by a user (outside of the system) is valid||I can be certain that the student has achieved a particular badge.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Integration with Mahara===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Be able to easily display all my achieved badges||I can include my achievements in my porfolio.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Have my badges from Moodle automatically imported into Mahara||I don&#039;t have to manually copy new badges each time I achieve something.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Control which badges appear when displaying them in my porfolio||I can present different representations of my achievements to different audiences.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Remove badges from a users portfolio if they have been revoked||I can prevent a user displaying badges that are no longer valid.||High&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Implementation Options==&lt;br /&gt;
&lt;br /&gt;
Moodle already has a module which behaves in a similar way to the proposals for open badges - the [http://moodle.org/plugins/view.php?plugin=mod_certificate Certificate Module]. Initial idea was to consider extending the certificate module to avoid rewriting similar code. However, after some discussions and feedback on the [http://moodle.org/mod/forum/discuss.php?d=197834 community forum], we decided to look at implementing a separate module for Open Badges.&lt;br /&gt;
&lt;br /&gt;
===Badge awarding criteria===&lt;br /&gt;
&lt;br /&gt;
For initial development, we expect to support the following criteria that will lead to the issuing of badges:&lt;br /&gt;
&lt;br /&gt;
* Completing an activity or set of several activities (viewing an activity as a part of it)&lt;br /&gt;
* Completing a course&lt;br /&gt;
* Completing a set of courses&lt;br /&gt;
* Posting to a forum&lt;br /&gt;
* Filling in user profile (to encourage participation)&lt;br /&gt;
* Discretionary awarding of badges by teacher (e.g to reward certain behaviour)&lt;br /&gt;
&lt;br /&gt;
===Technical specification===&lt;br /&gt;
Current work towards technical specification can be followed on GitHub [https://github.com/totara/openbadges-docs Totara openbadges-docs] repository.&lt;br /&gt;
&lt;br /&gt;
===User documentation===&lt;br /&gt;
&lt;br /&gt;
We are working on user documentation. Current functionality description can be found on [[OpenBadges_User_Documentation|OpenBadges User Documentation]] page.&lt;br /&gt;
&lt;br /&gt;
==Open Badges Integration==&lt;br /&gt;
&lt;br /&gt;
Open badges are still in beta so we can expect additional features and possibly some API changes over time. v1 is due out [https://wiki.mozilla.org/Badges/roadmap#Q1:_Ship_OBI_v1.0 Q1 2013].&lt;br /&gt;
&lt;br /&gt;
===Implementation plan===&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the [https://wiki.mozilla.org/images/4/44/Tech-diagram-v3_updated.png current infrastructure] for managing badges. We intend to develop the functionality to make Moodle both a &amp;quot;displayer&amp;quot; and a &amp;quot;issuer&amp;quot; of badges and Mahara as a &amp;quot;displayer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This diagram outlines the various components:&lt;br /&gt;
&lt;br /&gt;
[[File:Moodle_Open_Badges_Infrastructure_Diagram.png|Open Badges infrastructure diagram]]&lt;br /&gt;
&lt;br /&gt;
It should be possible to implement each component as separate modules. Our proposed order:&lt;br /&gt;
&lt;br /&gt;
# Badge creation and management in Moodle.&lt;br /&gt;
# Moodle Block to display badges received from the site (internal badges)&lt;br /&gt;
# Add code to support direct pushing of internal badges to external backpack (without having to manually download/upload them)&lt;br /&gt;
# Badge displayer in Moodle (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Badge displayer in Mahara (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Add code to support direct pushing of internal badges to Mahara via Porfolio API (no need for external backpack)&lt;br /&gt;
&lt;br /&gt;
Once OpenBadges Infrastructure supports federated backpack providers we would like to add:&lt;br /&gt;
&lt;br /&gt;
7. Allow Mahara sites to become backpack providers&lt;br /&gt;
&lt;br /&gt;
The reason for providing a direct method for displaying internal badges without requiring an external backpack is because pushing badges to an external backpack requires an external account for managing badges as outlined here:&lt;br /&gt;
&lt;br /&gt;
https://wiki.mozilla.org/Badges/Onboarding-Earner#II._FUNCTIONAL_FLOW:_FIRST_TIME_EARNER&lt;br /&gt;
&lt;br /&gt;
This workflow has some advantages (primarily the user has full control over their own badges) but seems quite complex. Given that Moodle is both an issuer and displayer we are able to avoid this step for users who do not want to share their badges to a wider audience.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openbadges.org/ Mozilla Open Badges website]&lt;br /&gt;
* [https://wiki.mozilla.org/Badges MozillaWiki on Open Badges]&lt;br /&gt;
* [http://bananigans.tumblr.com/post/22586770579/how-to-learn-more-about-open-badges How to learn more about Open Badges]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=197834 Moodle.org forum post]&lt;br /&gt;
* [http://blog.mozilla.org/blog/2011/09/15/openbadges/ Mozilla blog post announcing project]&lt;br /&gt;
* [http://github.com/totara/openbadges-docs Specifications on github]&lt;br /&gt;
* [https://docs.moodle.org/dev/OpenBadges_User_Documentation Preliminary user documentation]&lt;br /&gt;
* [http://github.com/totara/openbadges Code on github]&lt;br /&gt;
* [https://tracker.moodle.org/browse/MDL-35073 Moodle tracker issue]&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=37859</id>
		<title>openbadges</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=37859"/>
		<updated>2013-02-18T20:32:06Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work in progress}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Status:&#039;&#039;&#039; &lt;br /&gt;
:development in progress (MDL-35073)&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
&lt;br /&gt;
In September 2011, Mozilla [http://blog.mozilla.org/blog/2011/09/15/openbadges/ launched] the Open Badges project as a way to &amp;quot;make it easy to issue and share digital learning badges across the web&amp;quot;. Mozilla have developed an [https://wiki.mozilla.org/Badges/infrastructure-tech-docs open specification] and API for badge creation and sharing and are looking for developers to implement infrastructure that makes use of the badges.&lt;br /&gt;
&lt;br /&gt;
[http://www.totaralms.com/ TotaraLMS] have volunteered to [http://moodle.org/mod/forum/discuss.php?d=197834 lead the development] to integrate Open Badges into Moodle (and also Mahara).&lt;br /&gt;
&lt;br /&gt;
This document contains our initial ideas and some unanswered questions around implementation in order to receive feedback from the moodle community on what is required and how to implement it.&lt;br /&gt;
&lt;br /&gt;
==User Stories==&lt;br /&gt;
&lt;br /&gt;
Our first step is to attempt to define the requirements and priorities. Feedback welcome:&lt;br /&gt;
&lt;br /&gt;
===Badge creation===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to control who is able to create and issue badges||I can manage the issuing of badges from my organisation||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges||I can issue badges to students for achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to modify existing badges [1][3]||I can make changes to a badge without having to start again||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to delete badges||They can be removed from the system when no longer required||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set a background image for the badge||I can customise the appearance of the badges I create||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed custom text into the badge image||I can choose the text shown on the badges I create||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed user specific text into the badge image||I can create badges that are specific to each user||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to clone existing badges||I can create similar badges with less work||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to create badge design templates for course creators to use||I can provide a consistent look for badges across my organisation||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges based on site-wide design templates||I can quickly create similar looking badges||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] Note this means changing the badge that will be issued from that point on - the open badges spec intentionally prevents an issuer from modifying badges once they have been issued to the user for security reasons&lt;br /&gt;
&lt;br /&gt;
[3] At the moment, we are also considering locking badge criteria from changes once at least one badge was awarded based on existing criteria. To update the badge completely, badge creator will have to copy/duplicate the badge and make all the changes (Yuliya).&lt;br /&gt;
&lt;br /&gt;
===Badge assignment===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to control the criteria that leads to the issuing of badges||I can ensure badges are only issued to students who have achieved them||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a notification when I have received a new badge||I know when I have made an achievement||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a copy of badges I achieve||I can keep my own records of my achievements and upload to other services||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to receive notification when a student receives a badge||I can stay informed about my student&#039;s progress||High&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge display===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I have achieved via the site in one location||I can get an overview of my achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see the public or shared badges belonging to other users||I can see what learning my peers have achieved.||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I can achieve via the site||I can prioritize and plan my learning||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to control who is able to see each of my badges||I can decide for myself who I would like to share my achievements with.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to display all the badges in my &amp;quot;backpack&amp;quot;, including those from outside the Moodle site||I can let others know about other learning that I&#039;ve achieved from other sources.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge management===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see which of my students have achieved a specific badge||I can track the progress of my students.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges that are no longer valid&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a student that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see the badges achieved by an individual student||I can assess the progress of an individual student.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see the badges achieved by any site user||I can track the progress of individuals.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see which site users have achieved a specific badges||I can track overall achievement of a particular badge.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges across the entire site&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a set of students that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to push individual badges from Moodle into my external badge backpack||So that I can share my badges externally to moodle||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to automatically push all my badges from Moodle into my external badge backpack||So that my achievements are available in my backpack without having to push them every time||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set an expiry period for badges||I can use badges in cases where achievements only last a fixed period of time.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to automatically generate user-specific evidence for badges||I can show how students earned the badge.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to perform more detailed reporting (such as who hasn&#039;t achieved a badge yet)||I can see which students I need to follow up with.||Low&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[2] Revoking of issued badges is not currently possible in Open Badges infrastructure&lt;br /&gt;
&lt;br /&gt;
===Badge verification===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Know that all badges displayed within the system are valid (have been achieved by the user they are displayed for)||I can be certain that the badges displayed within the system have all been achieved.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Be able to confirm from the original source that a badge being displayed by a user (outside of the system) is valid||I can be certain that the student has achieved a particular badge.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Integration with Mahara===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Be able to easily display all my achieved badges||I can include my achievements in my porfolio.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Have my badges from Moodle automatically imported into Mahara||I don&#039;t have to manually copy new badges each time I achieve something.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Control which badges appear when displaying them in my porfolio||I can present different representations of my achievements to different audiences.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Remove badges from a users portfolio if they have been revoked||I can prevent a user displaying badges that are no longer valid.||High&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Implementation Options==&lt;br /&gt;
&lt;br /&gt;
Moodle already has a module which behaves in a similar way to the proposals for open badges - the [http://moodle.org/plugins/view.php?plugin=mod_certificate Certificate Module]. Initial idea was to consider extending the certificate module to avoid rewriting similar code. However, after some discussions and feedback on the [http://moodle.org/mod/forum/discuss.php?d=197834 community forum], we decided to look at implementing a separate module for Open Badges.&lt;br /&gt;
&lt;br /&gt;
===Badge awarding criteria===&lt;br /&gt;
&lt;br /&gt;
For initial development, we expect to support the following criteria that will lead to the issuing of badges:&lt;br /&gt;
&lt;br /&gt;
* Completing an activity or set of several activities (viewing an activity as a part of it)&lt;br /&gt;
* Completing a course&lt;br /&gt;
* Completing a set of courses&lt;br /&gt;
* Posting to a forum&lt;br /&gt;
* Filling in user profile (to encourage participation)&lt;br /&gt;
* Discretionary awarding of badges by teacher (e.g to reward certain behaviour)&lt;br /&gt;
&lt;br /&gt;
===Technical specification===&lt;br /&gt;
Current work towards technical specification can be followed on GitHub [https://github.com/totara/openbadges-docs Totara openbadges-docs] repository.&lt;br /&gt;
&lt;br /&gt;
===User documentation===&lt;br /&gt;
&lt;br /&gt;
We are working on user documentation. Current functionality description can be found on [[OpenBadges_User_Documentation|OpenBadges User Documentation]] page.&lt;br /&gt;
&lt;br /&gt;
==Open Badges Integration==&lt;br /&gt;
&lt;br /&gt;
Open badges are still in beta so we can expect additional features and possibly some API changes over time. v1 is due out [https://wiki.mozilla.org/Badges/roadmap#Q1:_Ship_OBI_v1.0 Q1 2013].&lt;br /&gt;
&lt;br /&gt;
===Implementation plan===&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the [https://wiki.mozilla.org/images/4/44/Tech-diagram-v3_updated.png current infrastructure] for managing badges. We intend to develop the functionality to make Moodle both a &amp;quot;displayer&amp;quot; and a &amp;quot;issuer&amp;quot; of badges and Mahara as a &amp;quot;displayer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This diagram outlines the various components:&lt;br /&gt;
&lt;br /&gt;
[[File:Moodle_Open_Badges_Infrastructure_Diagram.png|Open Badges infrastructure diagram]]&lt;br /&gt;
&lt;br /&gt;
It should be possible to implement each component as separate modules. Our proposed order:&lt;br /&gt;
&lt;br /&gt;
# Badge creation and management in Moodle.&lt;br /&gt;
# Moodle Block to display badges received from the site (internal badges)&lt;br /&gt;
# Add code to support direct pushing of internal badges to external backpack (without having to manually download/upload them)&lt;br /&gt;
# Badge displayer in Moodle (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Badge displayer in Mahara (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Add code to support direct pushing of internal badges to Mahara via Porfolio API (no need for external backpack)&lt;br /&gt;
&lt;br /&gt;
Once OpenBadges Infrastructure supports federated backpack providers we would like to add:&lt;br /&gt;
&lt;br /&gt;
7. Allow Mahara sites to become backpack providers&lt;br /&gt;
&lt;br /&gt;
The reason for providing a direct method for displaying internal badges without requiring an external backpack is because pushing badges to an external backpack requires an external account for managing badges as outlined here:&lt;br /&gt;
&lt;br /&gt;
https://wiki.mozilla.org/Badges/Onboarding-Earner#II._FUNCTIONAL_FLOW:_FIRST_TIME_EARNER&lt;br /&gt;
&lt;br /&gt;
This workflow has some advantages (primarily the user has full control over their own badges) but seems quite complex. Given that Moodle is both an issuer and displayer we are able to avoid this step for users who do not want to share their badges to a wider audience.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openbadges.org/ Mozilla Open Badges website]&lt;br /&gt;
* [https://wiki.mozilla.org/Badges MozillaWiki on Open Badges]&lt;br /&gt;
* [http://bananigans.tumblr.com/post/22586770579/how-to-learn-more-about-open-badges How to learn more about Open Badges]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=197834 Moodle.org forum post]&lt;br /&gt;
* [http://blog.mozilla.org/blog/2011/09/15/openbadges/ Mozilla blog post announcing project]&lt;br /&gt;
* [http://github.com/totara/openbadges-docs Specifications on github]&lt;br /&gt;
* [http://github.com/totara/openbadges Code on github]&lt;br /&gt;
* [https://tracker.moodle.org/browse/MDL-35073 Moodle tracker issue]&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=OpenBadges_User_Documentation&amp;diff=37761</id>
		<title>OpenBadges User Documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=OpenBadges_User_Documentation&amp;diff=37761"/>
		<updated>2013-02-11T03:46:45Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Background */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work in progress}}&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
&lt;br /&gt;
This document describes how to use [[openbadges]] feature developed by [http://www.totaralms.com/ TotaraLMS].&lt;br /&gt;
&lt;br /&gt;
The code is available on github at [https://github.com/totara/openbadges totara/openbadges]. You can use it to install your own site (Please don&#039;t use this code on a production site yet. This is still work in progress!), or you can try out our test site at [http://openbadgestotara.elearning.catalyst.net.nz openbadgestotara]. This test site has the external backpack connections and admin access disabled, but you can play around as a teacher (to create badges) or a student (to earn them).&lt;br /&gt;
&lt;br /&gt;
Test site login credentials:&lt;br /&gt;
&lt;br /&gt;
 username: &#039;&#039;teacher&#039;&#039;&lt;br /&gt;
 password: &#039;&#039;teacher&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 username: &#039;&#039;student&#039;&#039;&lt;br /&gt;
 password: &#039;&#039;student&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you would like to give us any feedback, please use this [https://moodle.org/mod/forum/discuss.php?d=197834 openbadges forum], or email to [mailto:yuliya.bozhko@totaralms.com Yuliya Bozhko].&lt;br /&gt;
&lt;br /&gt;
==Using Open Badges Feature==&lt;br /&gt;
&lt;br /&gt;
There are two categories of badges: &lt;br /&gt;
&lt;br /&gt;
* Site badges - available to users site-wide and related to the site wide activities, like finishing a set of courses.&lt;br /&gt;
* Course badges - available to users enrolled in the course and related to the activities that happen inside of this course.&lt;br /&gt;
&lt;br /&gt;
The main differences between badge types are the available criteria and the location within the navigation menus.&lt;br /&gt;
&lt;br /&gt;
===Badges administration===&lt;br /&gt;
&lt;br /&gt;
Site administrators and users with capability &amp;quot;moodle/badges:manageglobalsettings&amp;quot; can set up general settings for badges such as default issuer name, url, contacts, and enable course badges or external backpack connections. These settings are used to populate relevant fields of a new badge form and can be changed by a badge creator if necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:0_settings.png]]&lt;br /&gt;
&lt;br /&gt;
===Creating badges===&lt;br /&gt;
&lt;br /&gt;
Badges can be created by users with capability &amp;quot;moodle/badges:createbadge&amp;quot;. By default, this capability is set for &#039;&#039;&#039;manager&#039;&#039;&#039;, &#039;&#039;&#039;course creator&#039;&#039;&#039;, and &#039;&#039;&#039;editing teacher&#039;&#039;&#039; roles.&lt;br /&gt;
&lt;br /&gt;
[[File:1_newbadge.png]]&lt;br /&gt;
&lt;br /&gt;
After a badge has been created, users can check its details on overview page.&lt;br /&gt;
&lt;br /&gt;
[[File:2_created.png]]&lt;br /&gt;
&lt;br /&gt;
===Managing badges===&lt;br /&gt;
&lt;br /&gt;
On &amp;quot;Manage badges&amp;quot; page in course or site administration, all existing badges are displayed in a table showing current badge image, name, status, criteria, how many users have already earned this badge, and a set of available actions.&lt;br /&gt;
&lt;br /&gt;
[[File:8_management.png]]&lt;br /&gt;
&lt;br /&gt;
Depending on user role and permissions, the following actions are available in badge management:&lt;br /&gt;
&lt;br /&gt;
[[File:9_actions.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: Availability of activate and deactivate actions depends on the current status of a badge (e.g. if a badge is active, users will see deactivate action icon).&lt;br /&gt;
&lt;br /&gt;
Before a badge has been issued to at least one user, all its details and settings can be edited. Use &amp;quot;Edit badge&amp;quot; action icon to access badge editing options.&lt;br /&gt;
&lt;br /&gt;
To set up badge criteria, navigate to &amp;quot;Criteria&amp;quot; tab and select a required option. Criteria are added one at a time with additional options available for each criteria.&lt;br /&gt;
&lt;br /&gt;
[[File:3_select-criteria.png]]&lt;br /&gt;
&lt;br /&gt;
For example, when a user selects &amp;quot;Manual issue by a role&amp;quot; requirement, they will be prompted to select which roles can award the badge and what rules apply to this requirement.&lt;br /&gt;
&lt;br /&gt;
[[File:4_add-manual.png]]&lt;br /&gt;
&lt;br /&gt;
After criterion is set and added, it will be displayed among current badge criteria.&lt;br /&gt;
&lt;br /&gt;
[[File:5_added-manual.png]]&lt;br /&gt;
&lt;br /&gt;
To edit a body and subject of a message which users get upon earning the badge, go to &amp;quot;Message&amp;quot; tab.&lt;br /&gt;
&lt;br /&gt;
Among additional options here are &amp;quot;Attach badge to message&amp;quot; which allows adding an image file to an email and &amp;quot;Notify badge creator&amp;quot; which sends a notification to a badge creator when badge is awarded (this option is available in course badges only).&lt;br /&gt;
&lt;br /&gt;
[[File:6_message.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Award&amp;quot; tab displays a list of users who have already earned this badges.&lt;br /&gt;
&lt;br /&gt;
[[File:14_viewawards.png]]&lt;br /&gt;
&lt;br /&gt;
===Earning badges===&lt;br /&gt;
&lt;br /&gt;
Once all criteria are set and badge creator is happy with badge details and settings, site users can start earning it. For users to be able to earn a badge, it first needs to be activated by a badge creator/administrator on a badge overview page or &amp;quot;Manage badges&amp;quot; page (as shown on the picture).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Only active badges are available to users and can be earned!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:7 activate.png]]&lt;br /&gt;
&lt;br /&gt;
Normally, badges are awarded to users automatically based on their actions in the system. Completion criteria of an active badge are re-calculated every time an event such as completion of a course or activity, or updating user profile happens. If a user completed all necessary requirements, they are issued a badge and sent an email notification.&lt;br /&gt;
&lt;br /&gt;
[[File:11_email.png||border]]&lt;br /&gt;
&lt;br /&gt;
Badges that have manual award among their criteria can be issued by one user to another. Users who issue a badge must have &amp;quot;moodle/badges:awardbadge&amp;quot; capability. Site administrators can choose their role when issuing a badge.&lt;br /&gt;
&lt;br /&gt;
[[File:10_award.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important Note&#039;&#039;&#039;: Currently, once a badge has been issued, it cannot be revoked. So, make sure that you are giving a badge to the right users.&lt;br /&gt;
&lt;br /&gt;
===Displaying badges===&lt;br /&gt;
&lt;br /&gt;
Newly earned badges are added to a private user badge collection which can be managed on &amp;quot;My badges&amp;quot; page from &amp;quot;My profile&amp;quot; options menu. On &amp;quot;My badges&amp;quot; page users can view all earned badges and their details, download these badges, manage their visibility on user profile, and perform search through the badges. If a badge has expired, &amp;quot;Expired&amp;quot; indicator will be added to a badge image. Such badges are still displayed on a user profile page.&lt;br /&gt;
&lt;br /&gt;
If external backpack connections are enabled on the web site, there will also be option related to external badges management.&lt;br /&gt;
&lt;br /&gt;
[[File:13_mybadges.png]]&lt;br /&gt;
&lt;br /&gt;
All badges earned by a user can be displayed on their profile page.&lt;br /&gt;
&lt;br /&gt;
[[File:12_profile.png]]&lt;br /&gt;
&lt;br /&gt;
When users click on a badge, they are redirected to a page with issued badge details. On this page, badge owners can download an image file or send it directly to their Mozilla backpack (if external backpacks are enabled in site global settings).&lt;br /&gt;
&lt;br /&gt;
[[File:15_issued.png]]&lt;br /&gt;
&lt;br /&gt;
Another option for users to see their latest badges is through &amp;quot;My badges&amp;quot; block that can be added to such pages as &amp;quot;My Home&amp;quot; page. Block can be configured to display a certain number of badges (it displays 10 badges by default).&lt;br /&gt;
&lt;br /&gt;
===Connecting external backpack===&lt;br /&gt;
&lt;br /&gt;
If administrator has allowed using external backpacks on the web site, users can set up connection to their backpack on &amp;quot;My badges&amp;quot; page.&lt;br /&gt;
&lt;br /&gt;
Before connecting to external backpack, make sure that you have set up account in the backpack and have a public group of badges available to display.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important Note&#039;&#039;&#039;: Currently, only connections to [http://beta.openbadges.org Mozilla Backpack] is possible. Once more backpack providers are available to us, we will extend this functionality with an option to choose user preferred backpack service.&lt;br /&gt;
&lt;br /&gt;
When setting up a backpack connection for the first time, users will be prompted to add their email in the backpack and select a group of badges to display.&lt;br /&gt;
&lt;br /&gt;
[[File:16_backpack.png]]&lt;br /&gt;
&lt;br /&gt;
If backpack connection is successfully established, a user will see the results on their &amp;quot;My badges&amp;quot; page.&lt;br /&gt;
&lt;br /&gt;
[[File:17_backpack2.png]]&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=OpenBadges_User_Documentation&amp;diff=37760</id>
		<title>OpenBadges User Documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=OpenBadges_User_Documentation&amp;diff=37760"/>
		<updated>2013-02-11T03:46:29Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Using Open Badges Feature */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work in progress}}&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
&lt;br /&gt;
This document describes how to use [[openbadges]] feature developed by [http://www.totaralms.com/ TotaraLMS].&lt;br /&gt;
&lt;br /&gt;
The code is available on github at [https://github.com/totara/openbadges totara/openbadges]. You can use it to install your own site (!Please don&#039;t use this code on a production site yet. This is still work in progress!), or you can try out our test site at [http://openbadgestotara.elearning.catalyst.net.nz openbadgestotara]. This test site has the external backpack connections and admin access disabled, but you can play around as a teacher (to create badges) or a student (to earn them).&lt;br /&gt;
&lt;br /&gt;
Test site login credentials:&lt;br /&gt;
&lt;br /&gt;
 username: &#039;&#039;teacher&#039;&#039;&lt;br /&gt;
 password: &#039;&#039;teacher&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 username: &#039;&#039;student&#039;&#039;&lt;br /&gt;
 password: &#039;&#039;student&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you would like to give us any feedback, please use this [https://moodle.org/mod/forum/discuss.php?d=197834 openbadges forum], or email to [mailto:yuliya.bozhko@totaralms.com Yuliya Bozhko].&lt;br /&gt;
&lt;br /&gt;
==Using Open Badges Feature==&lt;br /&gt;
&lt;br /&gt;
There are two categories of badges: &lt;br /&gt;
&lt;br /&gt;
* Site badges - available to users site-wide and related to the site wide activities, like finishing a set of courses.&lt;br /&gt;
* Course badges - available to users enrolled in the course and related to the activities that happen inside of this course.&lt;br /&gt;
&lt;br /&gt;
The main differences between badge types are the available criteria and the location within the navigation menus.&lt;br /&gt;
&lt;br /&gt;
===Badges administration===&lt;br /&gt;
&lt;br /&gt;
Site administrators and users with capability &amp;quot;moodle/badges:manageglobalsettings&amp;quot; can set up general settings for badges such as default issuer name, url, contacts, and enable course badges or external backpack connections. These settings are used to populate relevant fields of a new badge form and can be changed by a badge creator if necessary.&lt;br /&gt;
&lt;br /&gt;
[[File:0_settings.png]]&lt;br /&gt;
&lt;br /&gt;
===Creating badges===&lt;br /&gt;
&lt;br /&gt;
Badges can be created by users with capability &amp;quot;moodle/badges:createbadge&amp;quot;. By default, this capability is set for &#039;&#039;&#039;manager&#039;&#039;&#039;, &#039;&#039;&#039;course creator&#039;&#039;&#039;, and &#039;&#039;&#039;editing teacher&#039;&#039;&#039; roles.&lt;br /&gt;
&lt;br /&gt;
[[File:1_newbadge.png]]&lt;br /&gt;
&lt;br /&gt;
After a badge has been created, users can check its details on overview page.&lt;br /&gt;
&lt;br /&gt;
[[File:2_created.png]]&lt;br /&gt;
&lt;br /&gt;
===Managing badges===&lt;br /&gt;
&lt;br /&gt;
On &amp;quot;Manage badges&amp;quot; page in course or site administration, all existing badges are displayed in a table showing current badge image, name, status, criteria, how many users have already earned this badge, and a set of available actions.&lt;br /&gt;
&lt;br /&gt;
[[File:8_management.png]]&lt;br /&gt;
&lt;br /&gt;
Depending on user role and permissions, the following actions are available in badge management:&lt;br /&gt;
&lt;br /&gt;
[[File:9_actions.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: Availability of activate and deactivate actions depends on the current status of a badge (e.g. if a badge is active, users will see deactivate action icon).&lt;br /&gt;
&lt;br /&gt;
Before a badge has been issued to at least one user, all its details and settings can be edited. Use &amp;quot;Edit badge&amp;quot; action icon to access badge editing options.&lt;br /&gt;
&lt;br /&gt;
To set up badge criteria, navigate to &amp;quot;Criteria&amp;quot; tab and select a required option. Criteria are added one at a time with additional options available for each criteria.&lt;br /&gt;
&lt;br /&gt;
[[File:3_select-criteria.png]]&lt;br /&gt;
&lt;br /&gt;
For example, when a user selects &amp;quot;Manual issue by a role&amp;quot; requirement, they will be prompted to select which roles can award the badge and what rules apply to this requirement.&lt;br /&gt;
&lt;br /&gt;
[[File:4_add-manual.png]]&lt;br /&gt;
&lt;br /&gt;
After criterion is set and added, it will be displayed among current badge criteria.&lt;br /&gt;
&lt;br /&gt;
[[File:5_added-manual.png]]&lt;br /&gt;
&lt;br /&gt;
To edit a body and subject of a message which users get upon earning the badge, go to &amp;quot;Message&amp;quot; tab.&lt;br /&gt;
&lt;br /&gt;
Among additional options here are &amp;quot;Attach badge to message&amp;quot; which allows adding an image file to an email and &amp;quot;Notify badge creator&amp;quot; which sends a notification to a badge creator when badge is awarded (this option is available in course badges only).&lt;br /&gt;
&lt;br /&gt;
[[File:6_message.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Award&amp;quot; tab displays a list of users who have already earned this badges.&lt;br /&gt;
&lt;br /&gt;
[[File:14_viewawards.png]]&lt;br /&gt;
&lt;br /&gt;
===Earning badges===&lt;br /&gt;
&lt;br /&gt;
Once all criteria are set and badge creator is happy with badge details and settings, site users can start earning it. For users to be able to earn a badge, it first needs to be activated by a badge creator/administrator on a badge overview page or &amp;quot;Manage badges&amp;quot; page (as shown on the picture).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Only active badges are available to users and can be earned!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:7 activate.png]]&lt;br /&gt;
&lt;br /&gt;
Normally, badges are awarded to users automatically based on their actions in the system. Completion criteria of an active badge are re-calculated every time an event such as completion of a course or activity, or updating user profile happens. If a user completed all necessary requirements, they are issued a badge and sent an email notification.&lt;br /&gt;
&lt;br /&gt;
[[File:11_email.png||border]]&lt;br /&gt;
&lt;br /&gt;
Badges that have manual award among their criteria can be issued by one user to another. Users who issue a badge must have &amp;quot;moodle/badges:awardbadge&amp;quot; capability. Site administrators can choose their role when issuing a badge.&lt;br /&gt;
&lt;br /&gt;
[[File:10_award.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important Note&#039;&#039;&#039;: Currently, once a badge has been issued, it cannot be revoked. So, make sure that you are giving a badge to the right users.&lt;br /&gt;
&lt;br /&gt;
===Displaying badges===&lt;br /&gt;
&lt;br /&gt;
Newly earned badges are added to a private user badge collection which can be managed on &amp;quot;My badges&amp;quot; page from &amp;quot;My profile&amp;quot; options menu. On &amp;quot;My badges&amp;quot; page users can view all earned badges and their details, download these badges, manage their visibility on user profile, and perform search through the badges. If a badge has expired, &amp;quot;Expired&amp;quot; indicator will be added to a badge image. Such badges are still displayed on a user profile page.&lt;br /&gt;
&lt;br /&gt;
If external backpack connections are enabled on the web site, there will also be option related to external badges management.&lt;br /&gt;
&lt;br /&gt;
[[File:13_mybadges.png]]&lt;br /&gt;
&lt;br /&gt;
All badges earned by a user can be displayed on their profile page.&lt;br /&gt;
&lt;br /&gt;
[[File:12_profile.png]]&lt;br /&gt;
&lt;br /&gt;
When users click on a badge, they are redirected to a page with issued badge details. On this page, badge owners can download an image file or send it directly to their Mozilla backpack (if external backpacks are enabled in site global settings).&lt;br /&gt;
&lt;br /&gt;
[[File:15_issued.png]]&lt;br /&gt;
&lt;br /&gt;
Another option for users to see their latest badges is through &amp;quot;My badges&amp;quot; block that can be added to such pages as &amp;quot;My Home&amp;quot; page. Block can be configured to display a certain number of badges (it displays 10 badges by default).&lt;br /&gt;
&lt;br /&gt;
===Connecting external backpack===&lt;br /&gt;
&lt;br /&gt;
If administrator has allowed using external backpacks on the web site, users can set up connection to their backpack on &amp;quot;My badges&amp;quot; page.&lt;br /&gt;
&lt;br /&gt;
Before connecting to external backpack, make sure that you have set up account in the backpack and have a public group of badges available to display.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important Note&#039;&#039;&#039;: Currently, only connections to [http://beta.openbadges.org Mozilla Backpack] is possible. Once more backpack providers are available to us, we will extend this functionality with an option to choose user preferred backpack service.&lt;br /&gt;
&lt;br /&gt;
When setting up a backpack connection for the first time, users will be prompted to add their email in the backpack and select a group of badges to display.&lt;br /&gt;
&lt;br /&gt;
[[File:16_backpack.png]]&lt;br /&gt;
&lt;br /&gt;
If backpack connection is successfully established, a user will see the results on their &amp;quot;My badges&amp;quot; page.&lt;br /&gt;
&lt;br /&gt;
[[File:17_backpack2.png]]&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=37592</id>
		<title>openbadges</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=37592"/>
		<updated>2013-02-03T23:56:58Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work in progress}}&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
&lt;br /&gt;
In September 2011, Mozilla [http://blog.mozilla.org/blog/2011/09/15/openbadges/ launched] the Open Badges project as a way to &amp;quot;make it easy to issue and share digital learning badges across the web&amp;quot;. Mozilla have developed an [https://wiki.mozilla.org/Badges/infrastructure-tech-docs open specification] and API for badge creation and sharing and are looking for developers to implement infrastructure that makes use of the badges.&lt;br /&gt;
&lt;br /&gt;
[http://www.totaralms.com/ TotaraLMS] have volunteered to [http://moodle.org/mod/forum/discuss.php?d=197834 lead the development] to integrate Open Badges into Moodle (and also Mahara).&lt;br /&gt;
&lt;br /&gt;
This document contains our initial ideas and some unanswered questions around implementation in order to receive feedback from the moodle community on what is required and how to implement it.&lt;br /&gt;
&lt;br /&gt;
==User Stories==&lt;br /&gt;
&lt;br /&gt;
Our first step is to attempt to define the requirements and priorities. Feedback welcome:&lt;br /&gt;
&lt;br /&gt;
===Badge creation===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to control who is able to create and issue badges||I can manage the issuing of badges from my organisation||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges||I can issue badges to students for achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to modify existing badges [1][3]||I can make changes to a badge without having to start again||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to delete badges||They can be removed from the system when no longer required||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set a background image for the badge||I can customise the appearance of the badges I create||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed custom text into the badge image||I can choose the text shown on the badges I create||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed user specific text into the badge image||I can create badges that are specific to each user||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to clone existing badges||I can create similar badges with less work||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to create badge design templates for course creators to use||I can provide a consistent look for badges across my organisation||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges based on site-wide design templates||I can quickly create similar looking badges||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] Note this means changing the badge that will be issued from that point on - the open badges spec intentionally prevents an issuer from modifying badges once they have been issued to the user for security reasons&lt;br /&gt;
&lt;br /&gt;
[3] At the moment, we are also considering locking badge criteria from changes once at least one badge was awarded based on existing criteria. To update the badge completely, badge creator will have to copy/duplicate the badge and make all the changes (Yuliya).&lt;br /&gt;
&lt;br /&gt;
===Badge assignment===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to control the criteria that leads to the issuing of badges||I can ensure badges are only issued to students who have achieved them||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a notification when I have received a new badge||I know when I have made an achievement||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a copy of badges I achieve||I can keep my own records of my achievements and upload to other services||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to receive notification when a student receives a badge||I can stay informed about my student&#039;s progress||High&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge display===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I have achieved via the site in one location||I can get an overview of my achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see the public or shared badges belonging to other users||I can see what learning my peers have achieved.||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I can achieve via the site||I can prioritize and plan my learning||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to control who is able to see each of my badges||I can decide for myself who I would like to share my achievements with.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to display all the badges in my &amp;quot;backpack&amp;quot;, including those from outside the Moodle site||I can let others know about other learning that I&#039;ve achieved from other sources.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge management===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see which of my students have achieved a specific badge||I can track the progress of my students.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges that are no longer valid&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a student that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see the badges achieved by an individual student||I can assess the progress of an individual student.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see the badges achieved by any site user||I can track the progress of individuals.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see which site users have achieved a specific badges||I can track overall achievement of a particular badge.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges across the entire site&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a set of students that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to push individual badges from Moodle into my external badge backpack||So that I can share my badges externally to moodle||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to automatically push all my badges from Moodle into my external badge backpack||So that my achievements are available in my backpack without having to push them every time||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set an expiry period for badges||I can use badges in cases where achievements only last a fixed period of time.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to automatically generate user-specific evidence for badges||I can show how students earned the badge.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to perform more detailed reporting (such as who hasn&#039;t achieved a badge yet)||I can see which students I need to follow up with.||Low&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[2] Revoking of issued badges is not currently possible in Open Badges infrastructure&lt;br /&gt;
&lt;br /&gt;
===Badge verification===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Know that all badges displayed within the system are valid (have been achieved by the user they are displayed for)||I can be certain that the badges displayed within the system have all been achieved.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Be able to confirm from the original source that a badge being displayed by a user (outside of the system) is valid||I can be certain that the student has achieved a particular badge.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Integration with Mahara===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Be able to easily display all my achieved badges||I can include my achievements in my porfolio.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Have my badges from Moodle automatically imported into Mahara||I don&#039;t have to manually copy new badges each time I achieve something.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Control which badges appear when displaying them in my porfolio||I can present different representations of my achievements to different audiences.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Remove badges from a users portfolio if they have been revoked||I can prevent a user displaying badges that are no longer valid.||High&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Implementation Options==&lt;br /&gt;
&lt;br /&gt;
Moodle already has a module which behaves in a similar way to the proposals for open badges - the [http://moodle.org/plugins/view.php?plugin=mod_certificate Certificate Module]. Initial idea was to consider extending the certificate module to avoid rewriting similar code. However, after some discussions and feedback on the [http://moodle.org/mod/forum/discuss.php?d=197834 community forum], we decided to look at implementing a separate module for Open Badges.&lt;br /&gt;
&lt;br /&gt;
===Badge awarding criteria===&lt;br /&gt;
&lt;br /&gt;
For initial development, we expect to support the following criteria that will lead to the issuing of badges:&lt;br /&gt;
&lt;br /&gt;
* Completing an activity or set of several activities (viewing an activity as a part of it)&lt;br /&gt;
* Completing a course&lt;br /&gt;
* Completing a set of courses&lt;br /&gt;
* Posting to a forum&lt;br /&gt;
* Filling in user profile (to encourage participation)&lt;br /&gt;
* Discretionary awarding of badges by teacher (e.g to reward certain behaviour)&lt;br /&gt;
&lt;br /&gt;
===Technical specification===&lt;br /&gt;
Current work towards technical specification can be followed on GitHub [https://github.com/totara/openbadges-docs Totara openbadges-docs] repository.&lt;br /&gt;
&lt;br /&gt;
==Open Badges Integration==&lt;br /&gt;
&lt;br /&gt;
Open badges are still in beta so we can expect additional features and possibly some API changes over time. v1 is due out [https://wiki.mozilla.org/Badges/roadmap#Q1:_Ship_OBI_v1.0 Q1 2013].&lt;br /&gt;
&lt;br /&gt;
===Implementation plan===&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the [https://wiki.mozilla.org/images/4/44/Tech-diagram-v3_updated.png current infrastructure] for managing badges. We intend to develop the functionality to make Moodle both a &amp;quot;displayer&amp;quot; and a &amp;quot;issuer&amp;quot; of badges and Mahara as a &amp;quot;displayer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This diagram outlines the various components:&lt;br /&gt;
&lt;br /&gt;
[[File:Moodle_Open_Badges_Infrastructure_Diagram.png|Open Badges infrastructure diagram]]&lt;br /&gt;
&lt;br /&gt;
It should be possible to implement each component as separate modules. Our proposed order:&lt;br /&gt;
&lt;br /&gt;
# Badge creation and management in Moodle.&lt;br /&gt;
# Moodle Block to display badges received from the site (internal badges)&lt;br /&gt;
# Add code to support direct pushing of internal badges to external backpack (without having to manually download/upload them)&lt;br /&gt;
# Badge displayer in Moodle (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Badge displayer in Mahara (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Add code to support direct pushing of internal badges to Mahara via Porfolio API (no need for external backpack)&lt;br /&gt;
&lt;br /&gt;
Once OpenBadges Infrastructure supports federated backpack providers we would like to add:&lt;br /&gt;
&lt;br /&gt;
7. Allow Mahara sites to become backpack providers&lt;br /&gt;
&lt;br /&gt;
The reason for providing a direct method for displaying internal badges without requiring an external backpack is because pushing badges to an external backpack requires an external account for managing badges as outlined here:&lt;br /&gt;
&lt;br /&gt;
https://wiki.mozilla.org/Badges/Onboarding-Earner#II._FUNCTIONAL_FLOW:_FIRST_TIME_EARNER&lt;br /&gt;
&lt;br /&gt;
This workflow has some advantages (primarily the user has full control over their own badges) but seems quite complex. Given that Moodle is both an issuer and displayer we are able to avoid this step for users who do not want to share their badges to a wider audience.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openbadges.org/ Mozilla Open Badges website]&lt;br /&gt;
* [https://wiki.mozilla.org/Badges MozillaWiki on Open Badges]&lt;br /&gt;
* [http://bananigans.tumblr.com/post/22586770579/how-to-learn-more-about-open-badges How to learn more about Open Badges]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=197834 Moodle.org forum post]&lt;br /&gt;
* [http://blog.mozilla.org/blog/2011/09/15/openbadges/ Mozilla blog post announcing project]&lt;br /&gt;
* [http://tracker.moodle.org/browse/MDL-35073 Moodle tracker issue]&lt;br /&gt;
* [http://github.com/totara/openbadges-docs Specifications on github]&lt;br /&gt;
* [http://github.com/totara/openbadges Code on github]&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=The_Moodle_Universal_Cache_(MUC)&amp;diff=37243</id>
		<title>The Moodle Universal Cache (MUC)</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=The_Moodle_Universal_Cache_(MUC)&amp;diff=37243"/>
		<updated>2013-01-16T01:23:03Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Controlling interaction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = The Moodle Universal Cache (MUC)&lt;br /&gt;
|state = Stage 1 completed, stage 2 in progress&lt;br /&gt;
|tracker = MDL-25290 and MDL-34224&lt;br /&gt;
|discussion = &lt;br /&gt;
|assignee = [[User:Sam Hemelryk|Sam Hemelryk]]&lt;br /&gt;
}}&lt;br /&gt;
{{Moodle 2.4}}&lt;br /&gt;
&lt;br /&gt;
==Foreword==&lt;br /&gt;
Over the past couple of weeks I have used my available time to look into a caching solution for Moodle.&amp;lt;br /&amp;gt;&lt;br /&gt;
The concept is not a new one and for the past years people have constantly come back to the need for a proper caching solution, particuarly one that allows for a shared cache.&amp;lt;br /&amp;gt;&lt;br /&gt;
The tracker issue MDL-25290 has been set up to follow progress on finding a solution, and in fact Tony Levi plus others have writen a community proposal and made initial headway in code [[Caching_system_%28proposed%29|Caching_system_(proposed)]].&lt;br /&gt;
&lt;br /&gt;
I&#039;ve now read through their proposal and solution, looked into the different caching systems that are available, looking into what other web solutions are doing, and researched the needs that we have in Moodle and have now planned the solution that will make up this proposal.&lt;br /&gt;
&lt;br /&gt;
==The existing proposal==&lt;br /&gt;
Having read through the current proposal and having looked at the code created by Tony I can tell you right now that they are off to a very good start. In my research into this I think that we need to take it further again however if you look at the existing solution you will notice that this proposal takes a lot of what they already have and expands upon it.&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
The following are the requirements that this new solution hopes to satisfy.&lt;br /&gt;
* Add a shared (application) cache.&lt;br /&gt;
* Add a static cache to replace static variables presently in use.&lt;br /&gt;
* Suitable to replace existing cache solutions with equal or better performance. (the lang string cache will be the primary test case).&lt;br /&gt;
* Integrate with and support existing cache products.&lt;br /&gt;
* Some mind to support future caching products.&lt;br /&gt;
* Have a relativily simple, self explanatory nature to aid developers in making the most of it.&lt;br /&gt;
* The cache product integration should also be relativily simple and self explanatory to ensure now cache produce integrations are easy to write.&lt;br /&gt;
* Have suitable fail over systems so that things continue to work even when the caches are unavailable.&lt;br /&gt;
* Able to be initialised early on in system initialisation (before config for example so that we can cache that)&lt;br /&gt;
* Support a time to live on data where applicable to ensure developers can determine how long information can live in the cache before deemed out of date and needs to be generated again.&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
The section contains information on the key ideas and structures that will form the basis for the cache solution.&lt;br /&gt;
&lt;br /&gt;
===Cache types===&lt;br /&gt;
The first thing to understand is that there are three cache types that have been defined and will be addressed by this solution. Each cache type represents a separate way in which information can be cached, and each while being operated identically will function completely differently.&lt;br /&gt;
&lt;br /&gt;
These cache types are one of the few things that developers will need to understand about the cache solution. When defining every cache a cache type needs to be selected for it. That cache type will determine who the cached information is available to and for how long the cache instance will live.&lt;br /&gt;
&lt;br /&gt;
For each type there will be a representative class that the developer can instantiate for a cache and work with to retrieve and set data. This is as far as the developer will usually need to be familiar with the Cache API, everything they require to work with a cache will be made available through the cache type objects.&lt;br /&gt;
&lt;br /&gt;
The three cache types are details below:&lt;br /&gt;
&lt;br /&gt;
====Request cache====&lt;br /&gt;
You can think of the request cache type like a static property. It is alive for the duration of the request and cleared at the end of every request. It is also important to point out that this cache is of course user specific, so information stored in the cache will only be accessible to the user who put it there in the first place.&lt;br /&gt;
&lt;br /&gt;
This cache type will be used to replace static caches currently used through Moodle (think static variables, static properties, and global variables).&lt;br /&gt;
&lt;br /&gt;
By default, if either not cache instance has been assigned to the request cache type, or if the data can not be stored in the defined cache instance then a static memory based cache will be used by default.&lt;br /&gt;
&lt;br /&gt;
====Session cache====&lt;br /&gt;
The session cache is exactly as the name suggests similar to the session made available through PHP. It is alive for the duration of the users session and of course user specific. At the end of the users session information will be purged (by means of cron or similar).&lt;br /&gt;
&lt;br /&gt;
This is probably the most limited cache type, however the idea behind it is to separate out information that would be blowing out the current session size and allow an installation to specify an instance dedicated to its storage.&lt;br /&gt;
&lt;br /&gt;
====Application====&lt;br /&gt;
This is the most prominent and beneficial cache type as there is nothing like it presently within Moodle. The application cache type is a shared cache that all users can access making common data accessible to all without the need for every user to generate it for every request or generate once and store in a user specific cache.&lt;br /&gt;
&lt;br /&gt;
The life time of information within the cache will be determined by a time to live that will be specified by the developer, and will default when not specified to a configuration setting.&lt;br /&gt;
&lt;br /&gt;
===Cache plugins===&lt;br /&gt;
This is the second most important thing to understand is that there will be a new plugin type introduced into Moodle, the Cache plugin. The Cache plugins base directory will be $CFG-&amp;gt;dirroot/cache and each plugin will have its own sub directory there. Initially we are planning to produce plugins for APC, Memcache, XCache, Database, Static, and File each of which will of have its own sub directory.&lt;br /&gt;
&lt;br /&gt;
Each plugin will define its own cache plugin class that will be required to extend an abstract class or interface that will map out all of the required methods of the plugin.&lt;br /&gt;
&lt;br /&gt;
Also be aware that there can be multiple instances of a plugin. For example you could have two instances of a cache product set up, one a limited set up on the web server, and another running on remote machines. You could then map each instance to particular cache type, or in the future perhaps even a specefic cache.&lt;br /&gt;
&lt;br /&gt;
This is important for a couple of reasons, first that it will allow load balancing and/or prioritisation to occur, and second that it will allow us to further what we can do with the cache solution in the future (after initial integration).&lt;br /&gt;
&lt;br /&gt;
===The cache manager===&lt;br /&gt;
The cache manager will tie everything together. It will be responsible for initialising cache instances when required, making generalistic information available, and publishing static methods to interact with the cache solution as a whole.&amp;lt;br /&amp;gt;&lt;br /&gt;
This will include publishing events for the following:&lt;br /&gt;
* Available cache plugins&lt;br /&gt;
* Available configured cache instances&lt;br /&gt;
* Maximum data and/or cache size&lt;br /&gt;
* Setting and creating the configuration file&lt;br /&gt;
* Retrieving and processing the configuration file&lt;br /&gt;
&lt;br /&gt;
Although the cache_manager will be tieing everything together a developer wishing to use the cache API will not in fact need to know anything about it, to keep the cache API straight forward and simple to most common functionality will be wrapped for convienience into several controlling classes, one for each cache type, that will make storing and retrieving data from a cache a very simple task.&lt;br /&gt;
&lt;br /&gt;
In this way the uses of the cache manager within core code will likely be internal use by the cache API itself, and core code where the advanced parts of the API will be required such as configuring instances, or purging caches on cron or through the existing admin interface.&lt;br /&gt;
&lt;br /&gt;
===Logic separation===&lt;br /&gt;
The logic for the cache API will be separated into three very clear, separate sections. These sections are API use, core logic, and plugin development. These three highlight the very important idea that when using, or working with this API the developer need only know about the secion they are working with.&lt;br /&gt;
&lt;br /&gt;
; API use : When using the API the developer will not know, or need to know anything at all about cache plugins that have been installed, what instances are available for each of those plugins, or even where their information is going to be stored. The developer will work with a cache type class (more on those later) that gets initialised with the details of the cache and can then be interacted with simply. All the developer needs to know is which cache type they should be making use of. Everything else will be taken care of internally by the core logic, and actual caching and retrieving by the cache plugin (that the developer knows nothing about).&lt;br /&gt;
; Core logic : The core logic refers to what ever is controlling the cache (the cache_manager) which will be aware of what plugins are available, and what instances exist for each plugin. It is responsable for managing those plugins, the plugin instances, and any cache events (such as purging all caches). This may sound like a very significant part of the cache solution, and that is because it is. However its very important to recognise that all of those management and general features are going to be rarely used by the developer. In fact I would very few people ever having to utilise the cache manager and this section of the API. It is more for internal, and edge case core use than anything else.&lt;br /&gt;
; Plugin development : This is a very essential part of both the solution and the API, the development of cache plugins. In developing a plugin the developer will not need to pay heed to the cache types, or the cache_manager controller. In fact the plugin ther develop will only need to publish methods for the essential interaction with the cache, get, set, delete etc. It will be provided with only the required, already parsed and ready information required for those operations, and will not need to do anything but interact with the cache. Everything else will be taken care of internally by the core logic.&lt;br /&gt;
&lt;br /&gt;
===Controlling interaction===&lt;br /&gt;
As mentioned above for convenience and ease of use of the cache API access to it will be controlled by several classes, one for each cache type. All of these classes will operate in the same means (extending the same parent) and will make any allowances required for the cache type internally.&lt;br /&gt;
&lt;br /&gt;
The cache type classes will be designed to be initalised for each bit of data the developer wishes to be cached. Once initialised simple methods are available on the object to get, set, check whether the cache has the information, and delete information from the cache.&amp;lt;br /&amp;gt;&lt;br /&gt;
As this is something more easily understood through code example take a peak at the following snippet of code that illustrates how I see interaction occuring.&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$courseid = required_param(&#039;courseid&#039;, PARAM_INT);&lt;br /&gt;
$cache = new cache_application(&#039;core_course&#039;, &#039;modinfo&#039;, array(&#039;id&#039; =&amp;gt; $courseid));&lt;br /&gt;
if (!$modinfo = $cache-&amp;gt;get($courseid)) {&lt;br /&gt;
    $course = $DB-&amp;gt;get_record(&#039;course&#039;, array(&#039;id&#039; =&amp;gt; $courseid), &#039;*&#039;, MUST_EXIST);&lt;br /&gt;
    $modinfo = get_fast_modinfo($course);&lt;br /&gt;
    $cache-&amp;gt;set($courseid, $modinfo);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
As you can see once the object has been initialised for the cache its as simple as calling &#039;&#039;&#039;get()&#039;&#039;&#039; to retrieve the information, or &#039;&#039;&#039;set($data)&#039;&#039;&#039; to set it.&lt;br /&gt;
&lt;br /&gt;
As there are three cache types purposed the following classes will be created to control interaction:&lt;br /&gt;
; cache_request : For working with a request cache.&lt;br /&gt;
; cache_session : For working with a session cache.&lt;br /&gt;
; cache_application : For working with an application wide cache.&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
In discussing this proposal with Eloy this was one area we highlighted as small but critical area of the cache solution. Initialy I had planned to make use of the main database introducing new tables to record information on plugin instances and their mappings to cache types.&amp;lt;br /&amp;gt;&lt;br /&gt;
However in discussing this we decided that there was three problems with this, first it would introduce overhead as we would need to execute a couple of queires to build the required information, second the information being stored would itself be a candidate for caching, and third it would require the setup code for Moodle to be initialised past the point of loading configuration before the code would be usable preventing us for caching the configuration which is one of the candidates for caching.&lt;br /&gt;
&lt;br /&gt;
Our solution to this: the configuration for the caches will be stored in the dataroot as a PHP file, similar to what we do with the current lang cache.&amp;lt;br /&amp;gt;&lt;br /&gt;
From there it will be included by the cache API and parsed when the API is first used in a page.&lt;br /&gt;
&lt;br /&gt;
This negates the requirement for additional database tables and interaction, and will allow us to utilise the cache solution much earlier during setup, early enough to allow us to cache configuration.&lt;br /&gt;
&lt;br /&gt;
===The cacheable interface===&lt;br /&gt;
There will also be a new cacheable interface, much like the rendererable interface, which can be given to a class to mark it as having special cache methods.&amp;lt;br /&amp;gt;&lt;br /&gt;
The interface will have two required methods, the first method will be called when the data is being parsed before being cached and will require the method to return a simple type (stdClass, or array) containing information that will be used to reinitialise the object when it is reawakened. The second method will be a static method and will be given the cached data and expected to reinitialise the object.&lt;br /&gt;
&lt;br /&gt;
A couple of things about this approach:&lt;br /&gt;
# This has been done so that objects can take control of what gets cached when they get cached. This allows them to ensure nothing dynamic will be cached and that they don&#039;t clutter thing if they are large structures.&lt;br /&gt;
# The interface and specific methods will be used rather than utilising serialisation etc because each cache plugin should have its own say on how to process data right before storing it and there will be no requirement to serialise data. This simplification of data happens automatically by some cache programs so there is no way we could ever rely on the magic serialise methods.&lt;br /&gt;
# It also has the advantage of clearly marking the object as cacheable when other developers are looking at the code.&lt;br /&gt;
&lt;br /&gt;
==Code specific information==&lt;br /&gt;
Basic details on my early thoughts of about the code.&lt;br /&gt;
&lt;br /&gt;
First up please note from the very start I had intended in my thinking and design contruct this design purely in an object orientated fashion. There will be no global functions introduced, everything will be made available through class static methods, or through object instance methods.&lt;br /&gt;
&lt;br /&gt;
===Directories and files===&lt;br /&gt;
The following unless otherwise stated make use of $CFG-&amp;gt;dirroot. Obvious requirements such as a plugins version and lang files have not been included in this list.&lt;br /&gt;
&lt;br /&gt;
; /cache : The cache plugin directory, and the home of the files that are essential to the cache solution.&lt;br /&gt;
; /cache/lib.php : Will contain all of the cache API core classes, and will be included in the list of requires presently happening within /lib/setup.php.&lt;br /&gt;
; /cache/settings.php : All of the general settings (and inclusion of external pages) for the cache solution. It will also be responsible for including plugin settings pages if they exist.&lt;br /&gt;
; /cache/pluginname : A directory used to house a cache plugin, pluginname will of course be the name of the plugin. It&#039;s component will be cache_pluginname.&lt;br /&gt;
; /cache/pluginname/lib.php : Will contain the plugin class and be included upon initialisation of cache_manager (its first use).&lt;br /&gt;
&lt;br /&gt;
===Essential classes and public methods===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | cache_manager&lt;br /&gt;
|-&lt;br /&gt;
| static&lt;br /&gt;
| instance&lt;br /&gt;
| Will return an instance of the cache_manager. This instance will be statically stored within the method as only one cache_manager will ever be required under normal circumstances. However an override may be required to force a re-initialisation such as for configuration changes.&lt;br /&gt;
|-&lt;br /&gt;
| static&lt;br /&gt;
| prepare_data_for_caching&lt;br /&gt;
| Helper method to parse data removing references and interacting with cacheable objects.&lt;br /&gt;
|-&lt;br /&gt;
| static&lt;br /&gt;
| parse_cached_data&lt;br /&gt;
| When data is brought out of the cache it should be run through this.&lt;br /&gt;
|-&lt;br /&gt;
| static&lt;br /&gt;
| early_get_cache_plugins&lt;br /&gt;
| Gets all of the cache plugins that are available without using any core functions so that it can be called early before setup is finished.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| add_plugin_instance&lt;br /&gt;
| For internal use to add a plugin instance to the configuration.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| edit_plugin_instance&lt;br /&gt;
| For internal use to edit a plugin instance already in the configuration.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| delete_plugin_instance&lt;br /&gt;
| For internal use to delete a plugin instance from the configuration.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| add_instance_mapping&lt;br /&gt;
| For internal use to map a plugin instance to a cache type.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| delete_instance_mapping&lt;br /&gt;
| For internal use to remove an instance =&amp;gt; cache type mapping.&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| get_cache_type_default&lt;br /&gt;
| Returns a cache instance that is the default for a given type&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| get_cache_type_instance&lt;br /&gt;
| Returns the cache instance to use for a given type. Returns the default is none is configured or ready.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! abstract&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | cache_type&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| get_type&lt;br /&gt;
| Returns the type of this cache type&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| is_user_specific&lt;br /&gt;
| Returns true if the cache type is user specific (request or session).&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| get&lt;br /&gt;
| Retrieves data from the cache for the instance&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| set&lt;br /&gt;
| Sends data to the cache for the instance.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| has&lt;br /&gt;
| Checks if data exists in the cache for the instance.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| delete&lt;br /&gt;
| Deletes the data for cache for the instance.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| purge&lt;br /&gt;
| Purges all information from the entrie cache (not just the data specific to an instance).&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| uses_simple_types_only&lt;br /&gt;
| If called a flag is set to gaurantee simple types only (scalars and array or stdClass instances containing scalars). This can be called to avoid the overhead of data parsing which is not required for simple types under most circumstances.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! abstract&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | cache_plugin&lt;br /&gt;
|-&lt;br /&gt;
| static&lt;br /&gt;
| is_supported&lt;br /&gt;
| Returns true if the plugin is supported (required things installed).&lt;br /&gt;
|-&lt;br /&gt;
| static&lt;br /&gt;
| is_supported_cache_type&lt;br /&gt;
| Returns true if the plugin can be used for the given cache type.&lt;br /&gt;
|-&lt;br /&gt;
| static&lt;br /&gt;
| supports_native_ttl&lt;br /&gt;
| Returns true if the plugin nativily supports ttl. If it doesn&#039;t then ttl will have to be managed internally.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| initialise&lt;br /&gt;
| Initialises the plugin instance upon its first use.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| is_ready&lt;br /&gt;
| Returns true if this plugin is properly configured and ready to be used.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| supports_multikey&lt;br /&gt;
| Returns true if the plugin supports multiple keys, or if it wants to perform its own key handling.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| get&lt;br /&gt;
| Retrieves the data for the given key from the cache.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| set&lt;br /&gt;
| Adds the given key =&amp;gt; value pair to the cache program.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| has&lt;br /&gt;
| Checks if there is data for the given key in the cache.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| delete&lt;br /&gt;
| Deletes the data associated with the given key.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| purge&lt;br /&gt;
| Purges all information from the cache.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| close&lt;br /&gt;
| Gets called when the cache variable is destroyed (e.g. at the end of the request) and allows the plugin to perform and closing tasks and cleanup (closing connections, saving files etc).&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Whats to be done==&lt;br /&gt;
The following is what needs to be done for before this can be put up for integration into core, hopefully in time for the release of 2.3&lt;br /&gt;
* Implement the Cache API&lt;br /&gt;
* Implement two special cache instances &amp;quot;static&amp;quot; and &amp;quot;dataroot&amp;quot; to serve as defaults and fall over systems when nothing has been configured or data being cached is unsuitable for the selected solution.&lt;br /&gt;
* Implement cache plugins for the following products&lt;br /&gt;
** APC&lt;br /&gt;
** Memcache&lt;br /&gt;
** XCache&lt;br /&gt;
** Database&lt;br /&gt;
** Static&lt;br /&gt;
** File&lt;br /&gt;
* Conversion of the following three areas in order or priority&lt;br /&gt;
*# Lang string cache. This will be be the first point of testing for the new system as the string requirements are predictable and should be significant enought to easily measure and quantify.&lt;br /&gt;
*# Database meta information, particually focused around get_table, and get_column.&lt;br /&gt;
*# Config data, this will be a test of the system to ensure it can be initialised early on in overall system initialisation.&lt;br /&gt;
* Create an admin tool that can create/edit/delete plugin instances as well as map them to cache types.&lt;br /&gt;
* Document the whole system and create tutorials in the docs wiki.&lt;br /&gt;
&lt;br /&gt;
==Whats to be done after the initial integration==&lt;br /&gt;
The following are things that can and or need to be done after integration:&lt;br /&gt;
* Convert existing cache and static variables/properties to make use of MUC instead [where applicable]&lt;br /&gt;
* Implement support for xxx/db/caches.php files that detail where caches are used and what for (read the next to do to see why)&lt;br /&gt;
* Expand the admin tool so that cache instances can be mapped to caches specified in xxx/db/caches.php files.&lt;br /&gt;
&lt;br /&gt;
==Proof of concept==&lt;br /&gt;
I&#039;ve created a proof of concept that implements the proposal as at the time of writing.&amp;lt;br/ &amp;gt;&lt;br /&gt;
This can be found on my github account: https://github.com/samhemelryk/moodle/compare/ba3e7df265...poc_cache_1&lt;br /&gt;
&lt;br /&gt;
While the proof of concept doesn&#039;t have the admin interfaces for configuring plugin instances it is largely functional and there a a couple of hundred PHPunit tests for it already.&lt;br /&gt;
&lt;br /&gt;
==Cache terminology==&lt;br /&gt;
; Cache : A cache is a collection of data that is kept on hand and made readily available in order to avoid costly fetching and molding upon every request. In this document when I refer to a cache I am referring to an area in code where such information is being dealt with.&lt;br /&gt;
; Cache solution : The solution refers the the MUC implementation and everything it embodies, the API, all of the plugins, the milestones etc.&lt;br /&gt;
; Cache API : The cache API consists of the cache manager, its supporting classes, and methods both public and private (Where I mention public API or outwards API I am referring to the public methods that developers will be able to make use of).&lt;br /&gt;
; Cache product : A 3rd party product that handles the actual caching on information such as APC, or memcache.&lt;br /&gt;
; Cache type: There are three cache types defined in this proposal, each is representative of one way of storing information.&lt;br /&gt;
; Cache plugin : A cache plugin is code that is reponsible for bridging the cache API and a particular cache product. For instance we expect to have an APC cache plugin.&lt;br /&gt;
; Cache instance : A cache instance is single instance of a cache plugin that has been configured to for a specific system. You can have multiple instances of a cache plugin, this is done so that you can direct different cache types to different memcache systems for instance.&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Cache_API&amp;diff=37242</id>
		<title>Cache API</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Cache_API&amp;diff=37242"/>
		<updated>2013-01-16T01:21:11Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document details the Cache API aka MUC aka Moodle&#039;s Universal Cache.&lt;br /&gt;
I&#039;ve chosen to use a tutorial/example flow for this document always working with a theoretical module plugin called myplugin.&lt;br /&gt;
There is also a [[Cache API - Quick reference]] if you would rather read that.&lt;br /&gt;
&lt;br /&gt;
==Basic usage==&lt;br /&gt;
It&#039;s very easy to get started with the Cache API. It is designed to be as easy and as quick to use as possible and is predominantely self contained.&lt;br /&gt;
All you need to do is add a definition for your cache and you are ready to start working with the Cache API.&lt;br /&gt;
&lt;br /&gt;
===Creating a definition===&lt;br /&gt;
Cache definitions exist within the db/caches.php file for a component/plugin.&amp;lt;br /&amp;gt;&lt;br /&gt;
In the case of core that is the moodle/lib/db/caches.php file, in the case of a module that would be moodle/mod/myplugin/db/caches.php.&lt;br /&gt;
&lt;br /&gt;
The definition is used API in order to understand a little about the cache and what it is being used for, it also allows the administrator to set things up especially for the definition if they want.&lt;br /&gt;
From a development point of view the definition allows you to tell the API about your cache, what it requires, and any (if any) advanced features you want it to have.&amp;lt;br /&amp;gt;&lt;br /&gt;
The following shows a basic definition containing just the bare minimum:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
// moodle/mod/myplugin/db/caches.php&lt;br /&gt;
$definitions = array(&lt;br /&gt;
    &#039;mycache&#039; =&amp;gt; array(&lt;br /&gt;
        &#039;mode&#039; =&amp;gt; cache_store::MODE_APPLICATION&lt;br /&gt;
    )&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
This informs the API that the myplugin module has a cache called &#039;&#039;somedata&#039;&#039; and that it is an application (globally shared) cache.&amp;lt;br /&amp;gt;&lt;br /&gt;
When creating a definition thats the bare minimum, to provide an area &#039;&#039;(somedata)&#039;&#039; and declare the type of the cache application, session, or request.&amp;lt;br /&amp;gt;&lt;br /&gt;
:An application cache is a shared cache, all users can access it.&amp;lt;br /&amp;gt;&lt;br /&gt;
:Session caches are, well, just stores in the users session.&amp;lt;br /&amp;gt;&lt;br /&gt;
:Request caches you can think of as static caches, only available to the user owning the request, and only alive until the end of the request.&amp;lt;br /&amp;gt;&lt;br /&gt;
There are of course many more options available that allow you to really take the cache by the reigns, you can read about some of the important ones further on, or skip ahead to [[#The definition]] section which details the available options in full.&lt;br /&gt;
&lt;br /&gt;
===Getting a cache object===&lt;br /&gt;
Once your definition has been created you should bump the version number so that Moodle upgrades and processes the definitions file at which point your definition will be useable.&lt;br /&gt;
&lt;br /&gt;
Now within code you can get a cache object to interact with in the following manner.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$cache = cache::make(&#039;mod_myplugin&#039;, &#039;mycache&#039;);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The cache::make method is a factory method, it will create a cache object to allow you to work with your cache. The cache object will be one of several classes chosen by the API based upon what your definition contains. All of these classes will extend the base cache class, and in nearly all cases you will get one of cache_application, cache_session, or cache_request depending upon the mode you selected.&lt;br /&gt;
&lt;br /&gt;
===Using your cache object===&lt;br /&gt;
Once you have a cache object (will extend the cache class and implements cache_loader) you are ready to start interacting with the cache.&lt;br /&gt;
&lt;br /&gt;
Of course there are three basic basic operations. get, set, and delete.&lt;br /&gt;
&lt;br /&gt;
The first is to send something to the cache.&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$result = $cache-&amp;gt;set(&#039;key&#039;, &#039;value&#039;);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Easy enough. The key must an int or a string. The value can be absolutely anything your want.&lt;br /&gt;
The result is true if the operation was a success, false otherwise.&lt;br /&gt;
&lt;br /&gt;
The second is to fetch something from the cache.&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$data = $cache-&amp;gt;get(&#039;key&#039;);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
$data will either be what ever was being stored in the cache, or false if the cache could not find the key.&lt;br /&gt;
&lt;br /&gt;
The third and final operation is delete.&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$result = $cache-&amp;gt;delete(&#039;key&#039;);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Again just like set the result will either be true if the operation was a success, or false otherwise.&lt;br /&gt;
&lt;br /&gt;
You can also set, get, and delete multiple key=&amp;gt;value pairs in a single transaction.&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$result = $cache-&amp;gt;set_many(array(&lt;br /&gt;
    &#039;key1&#039; =&amp;gt; &#039;data1&#039;,&lt;br /&gt;
    &#039;key3&#039; =&amp;gt; &#039;data3&#039;&lt;br /&gt;
));&lt;br /&gt;
// $result will be the number of pairs sucessfully set.&lt;br /&gt;
&lt;br /&gt;
$result = $cache-&amp;gt;get_many(array(&#039;key1&#039;, &#039;key2&#039;, &#039;key3&#039;));&lt;br /&gt;
print_r($result);&lt;br /&gt;
// Will print the following:&lt;br /&gt;
// array(&lt;br /&gt;
//     &#039;key1&#039; =&amp;gt; &#039;data1&#039;,&lt;br /&gt;
//     &#039;key2&#039; =&amp;gt; false,&lt;br /&gt;
//     &#039;key3&#039; =&amp;gt; &#039;data3&#039;&lt;br /&gt;
// )&lt;br /&gt;
&lt;br /&gt;
$result = $cache-&amp;gt;delete_many(array(&#039;key1&#039;, &#039;key3&#039;);&lt;br /&gt;
// $result will be the number of records sucessfully deleted.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That covers the basic operation of the Cache API.&amp;lt;br /&amp;gt;&lt;br /&gt;
In many situations there is not going to be any more to it than that.&lt;br /&gt;
&lt;br /&gt;
==Ad-hoc Caches==&lt;br /&gt;
This is the alternative method of using the cache API.&amp;lt;br /&amp;gt;&lt;br /&gt;
It involves creating a cache using just the required params at the time that it is required. It doesn&#039;t require that a definition exists making it quicker and easier to use, however it can only use the default settings and is only recommended for insignificant caches (rarely used during operation, never to be mapped or customised, only existsing in a single place in code).&lt;br /&gt;
&lt;br /&gt;
Once a cache object has been retrieved it operates exactly as the same as a cache that has been created for a definition.&lt;br /&gt;
&lt;br /&gt;
To create an ad-hoc cache you would use the following:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$cache = cache::make_from_params(cache_store::MODE_APPLICATION, &#039;mod_myplugin&#039;, &#039;mycache&#039;);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Really don&#039;t be lazy, if you don&#039;t have a good reason to use an ad-hoc cache you should be spending a extra 5 minutes creating a definition.&lt;br /&gt;
&lt;br /&gt;
==The definition==&lt;br /&gt;
&lt;br /&gt;
The above section illustrated how to create a basic definition, specifying just the area name (the key) and the mode for the definition. Those being the two required properties for a definition.&amp;lt;br /&amp;gt;&lt;br /&gt;
There are as well many other options that will let you make the most of the Cache API and will undoubtedly be required when implementing and converting cache solutions to the Cache API.&lt;br /&gt;
&lt;br /&gt;
The following details the options available to a definition and there defaults if not applied:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$definitions = array(&lt;br /&gt;
    // The name of the cache area is the key. The component/plugin will be picked up from the file location.&lt;br /&gt;
    &#039;area&#039; =&amp;gt; array(&lt;br /&gt;
        &#039;mode&#039; =&amp;gt; cache_store::MODE_*,&lt;br /&gt;
        &#039;requireidentifiers&#039; =&amp;gt; array(&#039;ident1&#039;, &#039;ident2&#039;),&lt;br /&gt;
        &#039;requiredataguarantee&#039; =&amp;gt; false,&lt;br /&gt;
        &#039;requiremultipleidentifiers&#039; =&amp;gt; false,&lt;br /&gt;
        &#039;requirelockingread&#039; =&amp;gt; false,&lt;br /&gt;
        &#039;requirelockingwrite&#039; =&amp;gt; false,&lt;br /&gt;
        &#039;maxsize&#039; =&amp;gt; null,&lt;br /&gt;
        &#039;overrideclass&#039; =&amp;gt; null,&lt;br /&gt;
        &#039;overrideclassfile&#039; =&amp;gt; null,&lt;br /&gt;
        &#039;datasource&#039; =&amp;gt; null,&lt;br /&gt;
        &#039;datasourcefile&#039; =&amp;gt; null,&lt;br /&gt;
        &#039;persistent&#039; =&amp;gt; false,&lt;br /&gt;
        &#039;persistentmaxsize&#039; =&amp;gt; null,&lt;br /&gt;
        &#039;ttl&#039; =&amp;gt; 0,&lt;br /&gt;
        &#039;mappingsonly&#039; =&amp;gt; false,&lt;br /&gt;
        &#039;invalidationevents&#039; =&amp;gt; array(&#039;event1&#039;, &#039;event2&#039;),&lt;br /&gt;
    )&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Setting requirements===&lt;br /&gt;
The definition can specify several requirements for the cache.&amp;lt;br /&amp;gt;&lt;br /&gt;
This includes identifiers that must be provided when creating the cache object, that the store guarantees data stored in it will remain there until removed, a store that supports multiple identifiers, and finally read/write locking.&lt;br /&gt;
The options for these are as follows:&lt;br /&gt;
&lt;br /&gt;
; requireidentifiers : [array] An array of identifiers that must be provided to the cache when it is created.&lt;br /&gt;
; requiredataguarantee : [bool] If set to true then only stores that can guarantee data will remain available once set will be used.&lt;br /&gt;
; requiremultipleidentifiers : [bool] If set to true then only stores that support multiple identifiers will be used.&lt;br /&gt;
; requirelockingread : [bool] If set to true then a lock will be gained before reading from the cache store. It is recommended not to use this setting unless 100% absolutely positively required.&amp;lt;br /&amp;gt;Remember 99.9% of caches will NOT need this setting.&amp;lt;br /&amp;gt;This setting will only be used for application caches presently.&lt;br /&gt;
; requirelockingwrite : [bool] If set to true then a lock will be gained before writing to the cache store. As above this is not recommended unless truly needed. Please think about the order of your code and deal with race conditions there first.&amp;lt;br /&amp;gt;This setting will only be used for application caches presently.&lt;br /&gt;
&lt;br /&gt;
===Cache modifiers===&lt;br /&gt;
You are also to modify the way in which the cache is going to operate when working for your definition.&amp;lt;br /&amp;gt;&lt;br /&gt;
By enabling the persistent option the Cache API will only ever generate a single cache object for your definition on the first request for it, further requests will be returned the original instance.&amp;lt;br /&amp;gt;This greatly speeds up the collecting of a cache object.&amp;lt;br /&amp;gt;&lt;br /&gt;
Enabling persistence also enables a static store within the cache object, anything set to the cache, or retrieved from it will be stored in that static array for the life of the request.&lt;br /&gt;
This makes the persistence options some of the most powerful. If you know you are going to be using you cache over and over again or if you know you will be making lots of requests for the same items then this will provide a great performance boost.&lt;br /&gt;
Of course the static storage of cache objects and of data is costly in terms of memory and should only be used when actually required, as such it is turned off by default.&lt;br /&gt;
As well as persistence you can also set a maximum number of items that the cache should store (not a hard limit, its up to each store) and a time to live (ttl) although both are discouraged as efficient design negates the need for both in most situations.&lt;br /&gt;
&lt;br /&gt;
; persistent : [bool] This setting does two important things. First it tells the cache API to only instantiate the cache structure for this definition once, further requests will be given the original instance.&amp;lt;br /&amp;gt;Second the cache loader will keep an array of the items set and retrieved to the cache during the request.&amp;lt;br /&amp;gt;This has several advantages including better performance without needing to start passing the cache instance between function calls, the downside is that the cache instance + the items used stay within memory.&amp;lt;br /&amp;gt;Consider using this setting when you know that there are going to be many calls to the cache for the same information or when you are converting existing code to the cache and need to access the cache within functions but don&#039;t want to add it as an argument to the function.&lt;br /&gt;
; persistentmaxsize : [int] This supplements the above setting by limiting the number of items in the caches persistent array of items.&amp;lt;br /&amp;gt;Tweaking this setting lower will allow you to minimise the memory implications above while hopefully still managing to offset calls to the cache store.&lt;br /&gt;
; ttl : [int] A time to live for the data (in seconds). It is strongly recommended that you don&#039;t make use of this and instead try to create an event driven invalidation system.&amp;lt;br /&amp;gt;Not all cache stores will support this natively and there are undesired performance impacts if the cache store does not.&lt;br /&gt;
; maxsize : [int] If set this will be used as the maximum number of entries within the cache store for this definition.&amp;lt;br /&amp;gt;Its important to note that cache stores don&#039;t actually have to acknowledge this setting or maintain it as a hard limit.&lt;br /&gt;
&lt;br /&gt;
===Overriding a cache loader===&lt;br /&gt;
This is a super advanced feature and should not be done. ever. Unless you have an very good reason to do so.&lt;br /&gt;
It allows you to create your own cache loader and have it be used instead of the default cache loader class. The cache object you get back from the make operations will be an instance of this class.&lt;br /&gt;
&lt;br /&gt;
; overrideclass : [string] A class to use as the loader for this cache. This is an advanced setting and will allow the developer of the definition to take 100% control of the caching solution.&amp;lt;br /&amp;gt;Any class used here must inherit the cache_loader interface and must extend default cache loader for the mode they are using.&lt;br /&gt;
; overrideclassfile : [string] Suplements the above setting indicated the file containing the class to be used. This file is included when required.&lt;br /&gt;
&lt;br /&gt;
===Specifying a data source===&lt;br /&gt;
This is a great wee feature, especially if your code is object orientated.&amp;lt;br /&amp;gt;&lt;br /&gt;
It allows you to specify a class that must inherit the cache_data_source object and will be used to load any information requested from the cache that is not already being stored.&amp;lt;br /&amp;gt;&lt;br /&gt;
When the requested key cannot be found in the cache the data source will be asked to load it. The data source will then return the information to the cache, the cache will store it, and it will then return it to the user as a request of their get request. Essentially no get request should ever fail if you have a data source specified.&lt;br /&gt;
&lt;br /&gt;
; datasource : [string] A class to use as the data loader for this definition.&amp;lt;br /&amp;gt;Any class used here must inherit the cache_data_loader interface.&lt;br /&gt;
; datasourcefile : [string] Suplements the above setting indicated the file containing the class to be used. This file is included when required.&lt;br /&gt;
&lt;br /&gt;
===Misc settings===&lt;br /&gt;
The following are stand along settings that don&#039;t fall into any of the above categories.&lt;br /&gt;
&lt;br /&gt;
; invalidationevents : [array] An array of events that should cause this cache to invalidate some or all of the items within it.&lt;br /&gt;
; mappingsonly : [bool] If set to true only the mapped cache store(s) will be used and the default mode store will not. This is a super advanced setting and should not be used unless absolutely required. It allows you to avoid the default stores for one reason or another.&lt;br /&gt;
&lt;br /&gt;
==The loader==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using a data source==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Developing cache plugins==&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=35904</id>
		<title>openbadges</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=openbadges&amp;diff=35904"/>
		<updated>2012-10-23T15:56:11Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work in progress}}&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
&lt;br /&gt;
In September 2011, Mozilla [http://blog.mozilla.org/blog/2011/09/15/openbadges/ launched] the Open Badges project as a way to &amp;quot;make it easy to issue and share digital learning badges across the web&amp;quot;. Mozilla have developed an [https://wiki.mozilla.org/Badges/infrastructure-tech-docs open specification] and API for badge creation and sharing and are looking for developers to implement infrastructure that makes use of the badges.&lt;br /&gt;
&lt;br /&gt;
[http://www.totaralms.com/ TotaraLMS] have volunteered to [http://moodle.org/mod/forum/discuss.php?d=197834 lead the development] to integrate Open Badges into Moodle (and also Mahara).&lt;br /&gt;
&lt;br /&gt;
This document contains our initial ideas and some unanswered questions around implementation in order to receive feedback from the moodle community on what is required and how to implement it.&lt;br /&gt;
&lt;br /&gt;
==User Stories==&lt;br /&gt;
&lt;br /&gt;
Our first step is to attempt to define the requirements and priorities. Feedback welcome:&lt;br /&gt;
&lt;br /&gt;
===Badge creation===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to control who is able to create and issue badges||I can manage the issuing of badges from my organisation||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges||I can issue badges to students for achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to modify existing badges [1]||I can make changes to a badge without having to start again||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to delete badges||They can be removed from the system when no longer required||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set a background image for the badge||I can customise the appearance of the badges I create||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed custom text into the badge image||I can choose the text shown on the badges I create||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to embed user specific text into the badge image||I can create badges that are specific to each user||High&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to clone existing badges||I can create similar badges with less work||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to create badge design templates for course creators to use||I can provide a consistent look for badges across my organisation||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to create badges based on site-wide design templates||I can quickly create similar looking badges||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] Note this means changing the badge that will be issued from that point on - the open badges spec intentionally prevents an issuer from modifying badges once they have been issued to the user for security reasons&lt;br /&gt;
&lt;br /&gt;
===Badge assignment===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to control the criteria that leads to the issuing of badges||I can ensure badges are only issued to students who have achieved them||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a notification when I have received a new badge||I know when I have made an achievement||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to receive a copy of badges I achieve||I can keep my own records of my achievements and upload to other services||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to receive notification when a student receives a badge||I can stay informed about my student&#039;s progress||High&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge display===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I have achieved via the site in one location||I can get an overview of my achievements||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see the public or shared badges belonging to other users||I can see what learning my peers have achieved.||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to see all of the badges that I can achieve via the site||I can prioritize and plan my learning||High&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to control who is able to see each of my badges||I can decide for myself who I would like to share my achievements with.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to display all the badges in my &amp;quot;backpack&amp;quot;, including those from outside the Moodle site||I can let others know about other learning that I&#039;ve achieved from other sources.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Badge management===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see which of my students have achieved a specific badge||I can track the progress of my students.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges that are no longer valid&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Course creator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a student that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct an error if a badge is assigned by mistake.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Must have&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to see the badges achieved by an individual student||I can assess the progress of an individual student.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see the badges achieved by any site user||I can track the progress of individuals.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to see which site users have achieved a specific badges||I can track overall achievement of a particular badge.||Medium&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to revoke badges across the entire site&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;del&amp;gt;Site administrator&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Be able to inform a set of students that a badge has been revoked and remove it from display for that user&amp;lt;/del&amp;gt;[2]||&amp;lt;del&amp;gt;I can correct errors by individual course creators.&amp;lt;/del&amp;gt;||&amp;lt;del&amp;gt;Medium&amp;lt;/del&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to push individual badges from Moodle into my external badge backpack||So that I can share my badges externally to moodle||Medium&lt;br /&gt;
|-&lt;br /&gt;
|Student||Be able to automatically push all my badges from Moodle into my external badge backpack||So that my achievements are available in my backpack without having to push them every time||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to set an expiry period for badges||I can use badges in cases where achievements only last a fixed period of time.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to automatically generate user-specific evidence for badges||I can show how students earned the badge.||Low&lt;br /&gt;
|-&lt;br /&gt;
|Course creator||Be able to perform more detailed reporting (such as who hasn&#039;t achieved a badge yet)||I can see which students I need to follow up with.||Low&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[2] Revoking of issued badges is not currently possible in Open Badges infrastructure&lt;br /&gt;
&lt;br /&gt;
===Badge verification===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Know that all badges displayed within the system are valid (have been achieved by the user they are displayed for)||I can be certain that the badges displayed within the system have all been achieved.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Assessor||Be able to confirm from the original source that a badge being displayed by a user (outside of the system) is valid||I can be certain that the student has achieved a particular badge.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Integration with Mahara===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...||Priority&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Be able to easily display all my achieved badges||I can include my achievements in my porfolio.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Have my badges from Moodle automatically imported into Mahara||I don&#039;t have to manually copy new badges each time I achieve something.||Must have&lt;br /&gt;
|-&lt;br /&gt;
|Mahara user||Control which badges appear when displaying them in my porfolio||I can present different representations of my achievements to different audiences.||High&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Remove badges from a users portfolio if they have been revoked||I can prevent a user displaying badges that are no longer valid.||High&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Implementation Options==&lt;br /&gt;
&lt;br /&gt;
Moodle already has a module which behaves in a similar way to the proposals for open badges - the [http://moodle.org/plugins/view.php?plugin=mod_certificate Certificate Module]. Initial idea was to consider extending the certificate module to avoid rewriting similar code. However, after some discussions and feedback on the [http://moodle.org/mod/forum/discuss.php?d=197834 community forum], we decided to look at implementing a separate module for Open Badges.&lt;br /&gt;
&lt;br /&gt;
===Badge awarding criteria===&lt;br /&gt;
&lt;br /&gt;
For initial development, we expect to support the following criteria that will lead to the issuing of badges:&lt;br /&gt;
&lt;br /&gt;
* Completing an activity or set of several activities (viewing an activity as a part of it)&lt;br /&gt;
* Completing a course&lt;br /&gt;
* Completing a set of courses&lt;br /&gt;
* Posting to a forum&lt;br /&gt;
* Filling in user profile (to encourage participation)&lt;br /&gt;
* Discretionary awarding of badges by teacher (e.g to reward certain behaviour)&lt;br /&gt;
&lt;br /&gt;
===Technical specification===&lt;br /&gt;
Current work towards technical specification can be followed on GitHub [https://github.com/totara/openbadges-docs Totara openbadges-docs] repository.&lt;br /&gt;
&lt;br /&gt;
==Open Badges Integration==&lt;br /&gt;
&lt;br /&gt;
Open badges are still in beta so we can expect additional features and possibly some API changes over time. v1 is due out [https://wiki.mozilla.org/Badges/roadmap#Q1:_Ship_OBI_v1.0 Q1 2013].&lt;br /&gt;
&lt;br /&gt;
===Implementation plan===&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the [https://wiki.mozilla.org/images/4/44/Tech-diagram-v3_updated.png current infrastructure] for managing badges. We intend to develop the functionality to make Moodle both a &amp;quot;displayer&amp;quot; and a &amp;quot;issuer&amp;quot; of badges and Mahara as a &amp;quot;displayer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This diagram outlines the various components:&lt;br /&gt;
&lt;br /&gt;
[[File:Moodle_Open_Badges_Infrastructure_Diagram.png|Open Badges infrastructure diagram]]&lt;br /&gt;
&lt;br /&gt;
It should be possible to implement each component as separate modules. Our proposed order:&lt;br /&gt;
&lt;br /&gt;
# Badge creation and verification service in Moodle.&lt;br /&gt;
# Moodle Block to display badges received from the site (internal badges)&lt;br /&gt;
# Add code to support direct pushing of internal badges to external backpack (without having to manually download/upload them)&lt;br /&gt;
# Badge displayer in Mahara (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Badge displayer in Moodle (displays external badges and any internal ones that have been pushed to backpack and shared)&lt;br /&gt;
# Add code to support direct pushing of internal badges to Mahara via Porfolio API (no need for external backpack)&lt;br /&gt;
&lt;br /&gt;
Once open badges supports federated backpack providers we may also add:&lt;br /&gt;
&lt;br /&gt;
7. Allow Mahara sites to become backpack providers&lt;br /&gt;
&lt;br /&gt;
The reason for providing a direct method for displaying internal badges without requiring an external backpack is because pushing badges to an external backpack requires an external account for managing badges as outlined here:&lt;br /&gt;
&lt;br /&gt;
https://wiki.mozilla.org/Badges/Onboarding-Earner#II._FUNCTIONAL_FLOW:_FIRST_TIME_EARNER&lt;br /&gt;
&lt;br /&gt;
This workflow has some advantages (primarily the user has full control over their own badges) but seems quite complex. Given that Moodle is both an issuer and displayer we are able to avoid this step for users who do not want to share their badges to a wider audience.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openbadges.org/ Mozilla Open Badges website]&lt;br /&gt;
* [https://wiki.mozilla.org/Badges MozillaWiki on Open Badges]&lt;br /&gt;
* [http://bananigans.tumblr.com/post/22586770579/how-to-learn-more-about-open-badges How to learn more about Open Badges]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=197834 Moodle.org forum post]&lt;br /&gt;
* [http://blog.mozilla.org/blog/2011/09/15/openbadges/ Mozilla blog post announcing project]&lt;br /&gt;
* [http://tracker.moodle.org/browse/MDL-35073 Moodle tracker issue]&lt;br /&gt;
* [http://github.com/totara/openbadges-docs Specifications on github]&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35486</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35486"/>
		<updated>2012-09-10T03:09:51Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Report management */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Report content (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report content (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create (see [[reportbuilder/spec_as_user_stories#Controlling_view_access|Controlling view access]])||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report management==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports (see [[reportbuilder/spec_as_user_stories#Controlling_manage_access|Controlling manage access]])||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
List of things that report creators may want to report on:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|Activity logs&lt;br /&gt;
|-&lt;br /&gt;
|Statistics&lt;br /&gt;
|-&lt;br /&gt;
|Course activity report&lt;br /&gt;
|-&lt;br /&gt;
|Course participation report&lt;br /&gt;
|-&lt;br /&gt;
|Course completion&lt;br /&gt;
|-&lt;br /&gt;
|Gradebook&lt;br /&gt;
|-&lt;br /&gt;
|Quiz&lt;br /&gt;
|-&lt;br /&gt;
|SCORM&lt;br /&gt;
|-&lt;br /&gt;
|Assignment&lt;br /&gt;
|-&lt;br /&gt;
|Lesson&lt;br /&gt;
|-&lt;br /&gt;
|Workshop&lt;br /&gt;
|-&lt;br /&gt;
|Users&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
List of columns report creators may want to include in one of their reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|User profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Custom user profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Specific fields depending on report type - see https://docs.moodle.org/dev/reporting_spec#What_is_to_be_reported_on&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
List of ways report creators or users may want to filter the data in a report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|Data from one (or more) courses&lt;br /&gt;
|-&lt;br /&gt;
|Data belonging to one (or more) groups of users&lt;br /&gt;
|-&lt;br /&gt;
|Data belonging to one (or more) cohorts of users&lt;br /&gt;
|-&lt;br /&gt;
|Data belonging to users with status (active, suspended)&lt;br /&gt;
|-&lt;br /&gt;
|Data belonging to users in particular role(s)&lt;br /&gt;
|-&lt;br /&gt;
|Data belonging to users in any graded role&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can see a particular report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling manage access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can create or manage reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35485</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35485"/>
		<updated>2012-09-10T03:09:35Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Report management */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Report content (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report content (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create (see [[reportbuilder/spec_as_user_stories#Controlling_view_access|Controlling view access]])||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report management==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports (see [[https://docs.moodle.org/dev/reportbuilder/spec_as_user_stories#Controlling_manage_access|Controlling manage access]])||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
List of things that report creators may want to report on:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|Activity logs&lt;br /&gt;
|-&lt;br /&gt;
|Statistics&lt;br /&gt;
|-&lt;br /&gt;
|Course activity report&lt;br /&gt;
|-&lt;br /&gt;
|Course participation report&lt;br /&gt;
|-&lt;br /&gt;
|Course completion&lt;br /&gt;
|-&lt;br /&gt;
|Gradebook&lt;br /&gt;
|-&lt;br /&gt;
|Quiz&lt;br /&gt;
|-&lt;br /&gt;
|SCORM&lt;br /&gt;
|-&lt;br /&gt;
|Assignment&lt;br /&gt;
|-&lt;br /&gt;
|Lesson&lt;br /&gt;
|-&lt;br /&gt;
|Workshop&lt;br /&gt;
|-&lt;br /&gt;
|Users&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
List of columns report creators may want to include in one of their reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|User profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Custom user profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Specific fields depending on report type - see https://docs.moodle.org/dev/reporting_spec#What_is_to_be_reported_on&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
List of ways report creators or users may want to filter the data in a report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|Data from one (or more) courses&lt;br /&gt;
|-&lt;br /&gt;
|Data belonging to one (or more) groups of users&lt;br /&gt;
|-&lt;br /&gt;
|Data belonging to one (or more) cohorts of users&lt;br /&gt;
|-&lt;br /&gt;
|Data belonging to users with status (active, suspended)&lt;br /&gt;
|-&lt;br /&gt;
|Data belonging to users in particular role(s)&lt;br /&gt;
|-&lt;br /&gt;
|Data belonging to users in any graded role&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can see a particular report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling manage access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can create or manage reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35484</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35484"/>
		<updated>2012-09-10T03:09:15Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Report management */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Report content (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report content (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create (see [[reportbuilder/spec_as_user_stories#Controlling_view_access|Controlling view access]])||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report management==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports (see [https://docs.moodle.org/dev/reportbuilder/spec_as_user_stories#Controlling_manage_access|Controlling manage access])||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
List of things that report creators may want to report on:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|Activity logs&lt;br /&gt;
|-&lt;br /&gt;
|Statistics&lt;br /&gt;
|-&lt;br /&gt;
|Course activity report&lt;br /&gt;
|-&lt;br /&gt;
|Course participation report&lt;br /&gt;
|-&lt;br /&gt;
|Course completion&lt;br /&gt;
|-&lt;br /&gt;
|Gradebook&lt;br /&gt;
|-&lt;br /&gt;
|Quiz&lt;br /&gt;
|-&lt;br /&gt;
|SCORM&lt;br /&gt;
|-&lt;br /&gt;
|Assignment&lt;br /&gt;
|-&lt;br /&gt;
|Lesson&lt;br /&gt;
|-&lt;br /&gt;
|Workshop&lt;br /&gt;
|-&lt;br /&gt;
|Users&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
List of columns report creators may want to include in one of their reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|User profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Custom user profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Specific fields depending on report type - see https://docs.moodle.org/dev/reporting_spec#What_is_to_be_reported_on&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
List of ways report creators or users may want to filter the data in a report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|Data from one (or more) courses&lt;br /&gt;
|-&lt;br /&gt;
|Data belonging to one (or more) groups of users&lt;br /&gt;
|-&lt;br /&gt;
|Data belonging to one (or more) cohorts of users&lt;br /&gt;
|-&lt;br /&gt;
|Data belonging to users with status (active, suspended)&lt;br /&gt;
|-&lt;br /&gt;
|Data belonging to users in particular role(s)&lt;br /&gt;
|-&lt;br /&gt;
|Data belonging to users in any graded role&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can see a particular report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling manage access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can create or manage reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35483</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35483"/>
		<updated>2012-09-10T03:07:18Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Filter options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Report content (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report content (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create (see [[reportbuilder/spec_as_user_stories#Controlling_view_access|Controlling view access]])||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report management==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports (see [[https://docs.moodle.org/dev/reportbuilder/spec_as_user_stories#Controlling_manage_access|Controlling manage access]])||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
List of things that report creators may want to report on:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|Activity logs&lt;br /&gt;
|-&lt;br /&gt;
|Statistics&lt;br /&gt;
|-&lt;br /&gt;
|Course activity report&lt;br /&gt;
|-&lt;br /&gt;
|Course participation report&lt;br /&gt;
|-&lt;br /&gt;
|Course completion&lt;br /&gt;
|-&lt;br /&gt;
|Gradebook&lt;br /&gt;
|-&lt;br /&gt;
|Quiz&lt;br /&gt;
|-&lt;br /&gt;
|SCORM&lt;br /&gt;
|-&lt;br /&gt;
|Assignment&lt;br /&gt;
|-&lt;br /&gt;
|Lesson&lt;br /&gt;
|-&lt;br /&gt;
|Workshop&lt;br /&gt;
|-&lt;br /&gt;
|Users&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
List of columns report creators may want to include in one of their reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|User profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Custom user profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Specific fields depending on report type - see https://docs.moodle.org/dev/reporting_spec#What_is_to_be_reported_on&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
List of ways report creators or users may want to filter the data in a report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|Data from one (or more) courses&lt;br /&gt;
|-&lt;br /&gt;
|Data belonging to one (or more) groups of users&lt;br /&gt;
|-&lt;br /&gt;
|Data belonging to one (or more) cohorts of users&lt;br /&gt;
|-&lt;br /&gt;
|Data belonging to users with status (active, suspended)&lt;br /&gt;
|-&lt;br /&gt;
|Data belonging to users in particular role(s)&lt;br /&gt;
|-&lt;br /&gt;
|Data belonging to users in any graded role&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can see a particular report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling manage access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can create or manage reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35482</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35482"/>
		<updated>2012-09-10T03:05:42Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Filter options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Report content (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report content (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create (see [[reportbuilder/spec_as_user_stories#Controlling_view_access|Controlling view access]])||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report management==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports (see [[https://docs.moodle.org/dev/reportbuilder/spec_as_user_stories#Controlling_manage_access|Controlling manage access]])||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
List of things that report creators may want to report on:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|Activity logs&lt;br /&gt;
|-&lt;br /&gt;
|Statistics&lt;br /&gt;
|-&lt;br /&gt;
|Course activity report&lt;br /&gt;
|-&lt;br /&gt;
|Course participation report&lt;br /&gt;
|-&lt;br /&gt;
|Course completion&lt;br /&gt;
|-&lt;br /&gt;
|Gradebook&lt;br /&gt;
|-&lt;br /&gt;
|Quiz&lt;br /&gt;
|-&lt;br /&gt;
|SCORM&lt;br /&gt;
|-&lt;br /&gt;
|Assignment&lt;br /&gt;
|-&lt;br /&gt;
|Lesson&lt;br /&gt;
|-&lt;br /&gt;
|Workshop&lt;br /&gt;
|-&lt;br /&gt;
|Users&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
List of columns report creators may want to include in one of their reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|User profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Custom user profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Specific fields depending on report type - see https://docs.moodle.org/dev/reporting_spec#What_is_to_be_reported_on&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
List of ways report creators or users may want to filter the data in a report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|Data from one (or more) courses&lt;br /&gt;
|-&lt;br /&gt;
|One (or more) groups&lt;br /&gt;
|-&lt;br /&gt;
|One (or more) cohorts&lt;br /&gt;
|-&lt;br /&gt;
|User status (active, suspended)&lt;br /&gt;
|-&lt;br /&gt;
|User role(s)&lt;br /&gt;
|-&lt;br /&gt;
|Users in any graded role&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can see a particular report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling manage access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can create or manage reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35481</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35481"/>
		<updated>2012-09-10T03:04:49Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Filter options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Report content (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report content (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create (see [[reportbuilder/spec_as_user_stories#Controlling_view_access|Controlling view access]])||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report management==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports (see [[https://docs.moodle.org/dev/reportbuilder/spec_as_user_stories#Controlling_manage_access|Controlling manage access]])||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
List of things that report creators may want to report on:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|Activity logs&lt;br /&gt;
|-&lt;br /&gt;
|Statistics&lt;br /&gt;
|-&lt;br /&gt;
|Course activity report&lt;br /&gt;
|-&lt;br /&gt;
|Course participation report&lt;br /&gt;
|-&lt;br /&gt;
|Course completion&lt;br /&gt;
|-&lt;br /&gt;
|Gradebook&lt;br /&gt;
|-&lt;br /&gt;
|Quiz&lt;br /&gt;
|-&lt;br /&gt;
|SCORM&lt;br /&gt;
|-&lt;br /&gt;
|Assignment&lt;br /&gt;
|-&lt;br /&gt;
|Lesson&lt;br /&gt;
|-&lt;br /&gt;
|Workshop&lt;br /&gt;
|-&lt;br /&gt;
|Users&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
List of columns report creators may want to include in one of their reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|User profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Custom user profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Specific fields depending on report type - see https://docs.moodle.org/dev/reporting_spec#What_is_to_be_reported_on&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
List of ways report creators or users may want to filter the data in a report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|One (or more) groups&lt;br /&gt;
|-&lt;br /&gt;
|One (or more) cohorts&lt;br /&gt;
|-&lt;br /&gt;
|User status (active, suspended)&lt;br /&gt;
|-&lt;br /&gt;
|User role(s)&lt;br /&gt;
|-&lt;br /&gt;
|Users in any graded role&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can see a particular report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling manage access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can create or manage reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35480</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35480"/>
		<updated>2012-09-10T03:02:10Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Which records appear in report (rows) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Report content (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report content (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create (see [[reportbuilder/spec_as_user_stories#Controlling_view_access|Controlling view access]])||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report management==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports (see [[https://docs.moodle.org/dev/reportbuilder/spec_as_user_stories#Controlling_manage_access|Controlling manage access]])||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
List of things that report creators may want to report on:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|Activity logs&lt;br /&gt;
|-&lt;br /&gt;
|Statistics&lt;br /&gt;
|-&lt;br /&gt;
|Course activity report&lt;br /&gt;
|-&lt;br /&gt;
|Course participation report&lt;br /&gt;
|-&lt;br /&gt;
|Course completion&lt;br /&gt;
|-&lt;br /&gt;
|Gradebook&lt;br /&gt;
|-&lt;br /&gt;
|Quiz&lt;br /&gt;
|-&lt;br /&gt;
|SCORM&lt;br /&gt;
|-&lt;br /&gt;
|Assignment&lt;br /&gt;
|-&lt;br /&gt;
|Lesson&lt;br /&gt;
|-&lt;br /&gt;
|Workshop&lt;br /&gt;
|-&lt;br /&gt;
|Users&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
List of columns report creators may want to include in one of their reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|User profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Custom user profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Specific fields depending on report type - see https://docs.moodle.org/dev/reporting_spec#What_is_to_be_reported_on&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
List of ways report creators or users may want to filter the data in a report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can see a particular report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling manage access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can create or manage reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35479</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35479"/>
		<updated>2012-09-10T03:01:57Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Which information appears in report (columns) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Report content (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Which records appear in report (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create (see [[reportbuilder/spec_as_user_stories#Controlling_view_access|Controlling view access]])||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report management==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports (see [[https://docs.moodle.org/dev/reportbuilder/spec_as_user_stories#Controlling_manage_access|Controlling manage access]])||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
List of things that report creators may want to report on:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|Activity logs&lt;br /&gt;
|-&lt;br /&gt;
|Statistics&lt;br /&gt;
|-&lt;br /&gt;
|Course activity report&lt;br /&gt;
|-&lt;br /&gt;
|Course participation report&lt;br /&gt;
|-&lt;br /&gt;
|Course completion&lt;br /&gt;
|-&lt;br /&gt;
|Gradebook&lt;br /&gt;
|-&lt;br /&gt;
|Quiz&lt;br /&gt;
|-&lt;br /&gt;
|SCORM&lt;br /&gt;
|-&lt;br /&gt;
|Assignment&lt;br /&gt;
|-&lt;br /&gt;
|Lesson&lt;br /&gt;
|-&lt;br /&gt;
|Workshop&lt;br /&gt;
|-&lt;br /&gt;
|Users&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
List of columns report creators may want to include in one of their reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|User profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Custom user profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Specific fields depending on report type - see https://docs.moodle.org/dev/reporting_spec#What_is_to_be_reported_on&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
List of ways report creators or users may want to filter the data in a report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can see a particular report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling manage access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can create or manage reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35478</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35478"/>
		<updated>2012-09-10T03:01:23Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Users who can view reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Which information appears in report (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Which records appear in report (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create (see [[reportbuilder/spec_as_user_stories#Controlling_view_access|Controlling view access]])||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report management==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports (see [[https://docs.moodle.org/dev/reportbuilder/spec_as_user_stories#Controlling_manage_access|Controlling manage access]])||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
List of things that report creators may want to report on:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|Activity logs&lt;br /&gt;
|-&lt;br /&gt;
|Statistics&lt;br /&gt;
|-&lt;br /&gt;
|Course activity report&lt;br /&gt;
|-&lt;br /&gt;
|Course participation report&lt;br /&gt;
|-&lt;br /&gt;
|Course completion&lt;br /&gt;
|-&lt;br /&gt;
|Gradebook&lt;br /&gt;
|-&lt;br /&gt;
|Quiz&lt;br /&gt;
|-&lt;br /&gt;
|SCORM&lt;br /&gt;
|-&lt;br /&gt;
|Assignment&lt;br /&gt;
|-&lt;br /&gt;
|Lesson&lt;br /&gt;
|-&lt;br /&gt;
|Workshop&lt;br /&gt;
|-&lt;br /&gt;
|Users&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
List of columns report creators may want to include in one of their reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|User profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Custom user profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Specific fields depending on report type - see https://docs.moodle.org/dev/reporting_spec#What_is_to_be_reported_on&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
List of ways report creators or users may want to filter the data in a report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can see a particular report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling manage access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can create or manage reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35477</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35477"/>
		<updated>2012-09-10T03:01:11Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Users who can create/manage reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Which information appears in report (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Which records appear in report (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can view reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create (see [[reportbuilder/spec_as_user_stories#Controlling_view_access|Controlling view access]])||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report management==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports (see [[https://docs.moodle.org/dev/reportbuilder/spec_as_user_stories#Controlling_manage_access|Controlling manage access]])||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
List of things that report creators may want to report on:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|Activity logs&lt;br /&gt;
|-&lt;br /&gt;
|Statistics&lt;br /&gt;
|-&lt;br /&gt;
|Course activity report&lt;br /&gt;
|-&lt;br /&gt;
|Course participation report&lt;br /&gt;
|-&lt;br /&gt;
|Course completion&lt;br /&gt;
|-&lt;br /&gt;
|Gradebook&lt;br /&gt;
|-&lt;br /&gt;
|Quiz&lt;br /&gt;
|-&lt;br /&gt;
|SCORM&lt;br /&gt;
|-&lt;br /&gt;
|Assignment&lt;br /&gt;
|-&lt;br /&gt;
|Lesson&lt;br /&gt;
|-&lt;br /&gt;
|Workshop&lt;br /&gt;
|-&lt;br /&gt;
|Users&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
List of columns report creators may want to include in one of their reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|User profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Custom user profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Specific fields depending on report type - see https://docs.moodle.org/dev/reporting_spec#What_is_to_be_reported_on&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
List of ways report creators or users may want to filter the data in a report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can see a particular report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling manage access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can create or manage reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35476</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35476"/>
		<updated>2012-09-10T02:54:08Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Column options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Which information appears in report (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Which records appear in report (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can view reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create (see [[reportbuilder/spec_as_user_stories#Controlling_view_access|Controlling view access]])||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can create/manage reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports (see [[https://docs.moodle.org/dev/reportbuilder/spec_as_user_stories#Controlling_manage_access|Controlling manage access]])||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
List of things that report creators may want to report on:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|Activity logs&lt;br /&gt;
|-&lt;br /&gt;
|Statistics&lt;br /&gt;
|-&lt;br /&gt;
|Course activity report&lt;br /&gt;
|-&lt;br /&gt;
|Course participation report&lt;br /&gt;
|-&lt;br /&gt;
|Course completion&lt;br /&gt;
|-&lt;br /&gt;
|Gradebook&lt;br /&gt;
|-&lt;br /&gt;
|Quiz&lt;br /&gt;
|-&lt;br /&gt;
|SCORM&lt;br /&gt;
|-&lt;br /&gt;
|Assignment&lt;br /&gt;
|-&lt;br /&gt;
|Lesson&lt;br /&gt;
|-&lt;br /&gt;
|Workshop&lt;br /&gt;
|-&lt;br /&gt;
|Users&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
List of columns report creators may want to include in one of their reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|User profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Custom user profile fields&lt;br /&gt;
|-&lt;br /&gt;
|Specific fields depending on report type - see https://docs.moodle.org/dev/reporting_spec#What_is_to_be_reported_on&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
List of ways report creators or users may want to filter the data in a report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can see a particular report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling manage access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can create or manage reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35475</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35475"/>
		<updated>2012-09-10T02:52:18Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Data sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Which information appears in report (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Which records appear in report (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can view reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create (see [[reportbuilder/spec_as_user_stories#Controlling_view_access|Controlling view access]])||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can create/manage reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports (see [[https://docs.moodle.org/dev/reportbuilder/spec_as_user_stories#Controlling_manage_access|Controlling manage access]])||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
List of things that report creators may want to report on:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|Activity logs&lt;br /&gt;
|-&lt;br /&gt;
|Statistics&lt;br /&gt;
|-&lt;br /&gt;
|Course activity report&lt;br /&gt;
|-&lt;br /&gt;
|Course participation report&lt;br /&gt;
|-&lt;br /&gt;
|Course completion&lt;br /&gt;
|-&lt;br /&gt;
|Gradebook&lt;br /&gt;
|-&lt;br /&gt;
|Quiz&lt;br /&gt;
|-&lt;br /&gt;
|SCORM&lt;br /&gt;
|-&lt;br /&gt;
|Assignment&lt;br /&gt;
|-&lt;br /&gt;
|Lesson&lt;br /&gt;
|-&lt;br /&gt;
|Workshop&lt;br /&gt;
|-&lt;br /&gt;
|Users&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
List of columns report creators may want to include in one of their reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
List of ways report creators or users may want to filter the data in a report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can see a particular report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling manage access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can create or manage reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35474</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35474"/>
		<updated>2012-09-10T02:48:58Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Controlling manage access */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Which information appears in report (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Which records appear in report (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can view reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create (see [[reportbuilder/spec_as_user_stories#Controlling_view_access|Controlling view access]])||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can create/manage reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports (see [[https://docs.moodle.org/dev/reportbuilder/spec_as_user_stories#Controlling_manage_access|Controlling manage access]])||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
List of things that report creators may want to report on:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
List of columns report creators may want to include in one of their reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
List of ways report creators or users may want to filter the data in a report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can see a particular report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling manage access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can create or manage reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35473</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35473"/>
		<updated>2012-09-10T02:48:39Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Controlling view access */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Which information appears in report (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Which records appear in report (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can view reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create (see [[reportbuilder/spec_as_user_stories#Controlling_view_access|Controlling view access]])||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can create/manage reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports (see [[https://docs.moodle.org/dev/reportbuilder/spec_as_user_stories#Controlling_manage_access|Controlling manage access]])||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
List of things that report creators may want to report on:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
List of columns report creators may want to include in one of their reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
List of ways report creators or users may want to filter the data in a report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
List of methods for controlling who can see a particular report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling manage access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35472</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35472"/>
		<updated>2012-09-10T02:48:20Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Data sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Which information appears in report (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Which records appear in report (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can view reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create (see [[reportbuilder/spec_as_user_stories#Controlling_view_access|Controlling view access]])||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can create/manage reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports (see [[https://docs.moodle.org/dev/reportbuilder/spec_as_user_stories#Controlling_manage_access|Controlling manage access]])||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
List of things that report creators may want to report on:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
List of columns report creators may want to include in one of their reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
List of ways report creators or users may want to filter the data in a report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling manage access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35471</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35471"/>
		<updated>2012-09-10T02:48:09Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Filter options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Which information appears in report (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Which records appear in report (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can view reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create (see [[reportbuilder/spec_as_user_stories#Controlling_view_access|Controlling view access]])||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can create/manage reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports (see [[https://docs.moodle.org/dev/reportbuilder/spec_as_user_stories#Controlling_manage_access|Controlling manage access]])||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
List of things that people may want to report on:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
List of columns report creators may want to include in one of their reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
List of ways report creators or users may want to filter the data in a report&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling manage access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35470</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35470"/>
		<updated>2012-09-10T02:47:47Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Column options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Which information appears in report (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Which records appear in report (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can view reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create (see [[reportbuilder/spec_as_user_stories#Controlling_view_access|Controlling view access]])||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can create/manage reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports (see [[https://docs.moodle.org/dev/reportbuilder/spec_as_user_stories#Controlling_manage_access|Controlling manage access]])||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
List of things that people may want to report on:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
List of columns report creators may want to include in one of their reports&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling manage access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35469</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35469"/>
		<updated>2012-09-10T02:47:27Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Data sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Which information appears in report (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Which records appear in report (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can view reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create (see [[reportbuilder/spec_as_user_stories#Controlling_view_access|Controlling view access]])||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can create/manage reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports (see [[https://docs.moodle.org/dev/reportbuilder/spec_as_user_stories#Controlling_manage_access|Controlling manage access]])||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
List of things that people may want to report on:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling manage access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35468</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35468"/>
		<updated>2012-09-10T02:46:46Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Users who can create/manage reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Which information appears in report (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Which records appear in report (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can view reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create (see [[reportbuilder/spec_as_user_stories#Controlling_view_access|Controlling view access]])||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can create/manage reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports (see [[https://docs.moodle.org/dev/reportbuilder/spec_as_user_stories#Controlling_manage_access|Controlling manage access]])||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling manage access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35467</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35467"/>
		<updated>2012-09-10T02:46:13Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Users who can view reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Which information appears in report (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Which records appear in report (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can view reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create (see [[reportbuilder/spec_as_user_stories#Controlling_view_access|Controlling view access]])||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can create/manage reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling manage access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35466</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35466"/>
		<updated>2012-09-10T02:45:36Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Report management methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Which information appears in report (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Which records appear in report (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can view reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can create/manage reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling manage access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35465</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35465"/>
		<updated>2012-09-10T02:45:15Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Access control methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Which information appears in report (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Which records appear in report (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can view reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can create/manage reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Controlling view access==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report management methods==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35464</id>
		<title>reportbuilder/spec as user stories</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=reportbuilder/spec_as_user_stories&amp;diff=35464"/>
		<updated>2012-09-10T02:44:14Z</updated>

		<summary type="html">&lt;p&gt;Simoncoggins: /* Which information appears in report (columns) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Reporting Spec as user stories=&lt;br /&gt;
&lt;br /&gt;
I&#039;ve taken the content from https://docs.moodle.org/dev/reporting_spec and tried to convert them to user stories detailing what is required:&lt;br /&gt;
&lt;br /&gt;
==Which information appears in report (columns)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to report on different types of data (see [[reportbuilder/spec_as_user_stories#Data_sources|Data sources]])||I can create a report containing only what is relevant&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to decide which columns to include in my report (see [[reportbuilder/spec_as_user_stories#Column_options|Column options]])||It only contains data which is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Site administrator||Be able to restrict which user fields can be included based on my selection in &amp;quot;User policies &amp;gt; Show user identity&amp;quot;||I can maintain the privacy of my users&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Which records appear in report (rows)==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to view site-wide data in one place||I don&#039;t have to check multiple locations to get the information I need&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to restrict which records appear in a report (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can make a report relevant to it&#039;s intended audience&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter the report contents (see [[reportbuilder/spec_as_user_stories#Filter_options|Filter options]])||I can find particular records of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to filter by multiple items at the same time||I can see results from more than one item at a time&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can view reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to control which users can view a report I create||I can make reports private or only available to the people I want&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a list of reports I am allowed to see||I can find reports of interest to me&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Users who can create/manage reports==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Site Administrator||Be able to control which users can create reports||I can control access to the site&#039;s data&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Be able to create new reports||I can view and share reports on the site&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Update existing reports||I can make changes without having to create a new report&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Delete existing reports||Get rid of reports that are no longer required&lt;br /&gt;
|-&lt;br /&gt;
|Report creator||Clone an existing report||Save time when creating similar types of reports&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! As a...||I want to...||So that...&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to view a report as an HTML table||The report is easy to access via the site&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to export a report as a CSV file||I can download the data and manipulate it externally to Moodle&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to sort the report by any column||Organise the data into a form that is useful to me&lt;br /&gt;
|-&lt;br /&gt;
|Report user||Be able to restrict the overall width of the report||I can view a report without needing to scroll horizontally&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Specific requirements=&lt;br /&gt;
&lt;br /&gt;
==Data sources==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Column options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter options==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Access control methods==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Report management methods==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #d0e0f0; clear:both; width: 100%&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
|-&lt;br /&gt;
|Specific users (from pick list)&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific role&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific capability&lt;br /&gt;
|-&lt;br /&gt;
|Users with a capability in the context of all of the courses included in the report&lt;br /&gt;
|-&lt;br /&gt;
|Users with a specific profile field value&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Simoncoggins</name></author>
	</entry>
</feed>