<?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=Dloomer</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=Dloomer"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/Special:Contributions/Dloomer"/>
	<updated>2026-09-04T14:47:30Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Moodle_Wishlist&amp;diff=47937</id>
		<title>Moodle Wishlist</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Moodle_Wishlist&amp;diff=47937"/>
		<updated>2015-05-25T07:58:44Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Warning! This page is highly speculative.&lt;br /&gt;
&lt;br /&gt;
It is basically a dumping ground for random ideas from anyone who wants to write something here. It is not in any way an official Moodle roadmap or policy. Some of the good ideas here may be adopted, but most of the ideas are pretty crazy, and will never work. Basically, it is a place to brainstorm. Please add your own crazy ideas! They don&#039;t need to be consistent yet, just make sure your ideas are here to be boiled down later on.&lt;br /&gt;
&lt;br /&gt;
Think Big!&lt;br /&gt;
&lt;br /&gt;
===One type of plugin===&lt;br /&gt;
&lt;br /&gt;
All plugins/modules could be subclassed from one plugin class, making installation easier and simplifying the API a lot.&lt;br /&gt;
&lt;br /&gt;
Or even just [[unify all activities and resources]]...&lt;br /&gt;
&lt;br /&gt;
===Look at new framework===&lt;br /&gt;
&lt;br /&gt;
Possibly base Moodle 3.0 on new existing frameworks?  Ruby on Rails?  Drupal? Symfony2? +2&lt;br /&gt;
&lt;br /&gt;
Why not consider something like Phalcon PHP (http://phalconphp.com/en/)? (Blazing faster than Drupal or Symfony) -- [[User:Sebsoft|Sebastian Berm]]&lt;br /&gt;
&lt;br /&gt;
Keypoints:  -- [[User:Gabriel_Mazetto|Gabriel Mazetto]]&lt;br /&gt;
* MVC is a must &#039;&#039;(we waste too much time reimplementing &amp;quot;mvc&amp;quot; in every single page, and we lack best practices by doing it again and again and again)&#039;&#039;&lt;br /&gt;
* Better ORM &#039;&#039;(I understand that in some time of the history, it was a good idea to create our own ORM, but today&#039;s lack of modern ORM means bad APIs, ancient unit tests, no &amp;quot;factories&amp;quot; which leads to expensive tests and bazilion fixtures)&#039;&#039;&lt;br /&gt;
* Object Orientation done right &#039;&#039;(doesn&#039;t matter if it&#039;s php, ruby or whatever, but let&#039;s use all the useful features the language has to offer and lets make the code easy hackable, no more useless private/protected that makes impossible to overwrite pieces of code without having to duplicate everything).&#039;&#039;&lt;br /&gt;
* Use more external libraries &#039;&#039;(let&#039;s just not reinvent the well again, there is a lot of good libraries out there that have strong community to maintain, and let&#039;s not waste time reimplementing our &amp;quot;perfect&amp;quot; version of them, that soon will be obsolete as no one is willing to maintain... and also let&#039;s make an effort to update regularly thous external libraries).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Drupal ====&lt;br /&gt;
There&#039;s an interesting discussion in the Language Teaching Course:&lt;br /&gt;
[http://moodle.org/mod/forum/discuss.php?d=83963 How can Moodle be more of a social networking site?] with some links to the [http://groups.drupal.org/drupal-education Drupal in Education User Group]. --[[User:Frank Ralf|Frank Ralf]] 14:27, 18 January 2009 (CST)&lt;br /&gt;
&lt;br /&gt;
(I started a section about [[User_talk:Frank_Ralf#What_Moodle_could_learn_from_Drupal|What Moodle could learn from Drupal]] on my User talk page. --[[User:Frank Ralf|Frank Ralf]] 06:35, 21 January 2009 (CST))&lt;br /&gt;
&lt;br /&gt;
There are some activities in the Drupal community regarding better interoperability and integration of Moodle and Drupal, see [http://moodle.org/mod/forum/discuss.php?d=121859 Drupal Quiz module - data exchange with other LMSes] and [http://moodle.org/mod/forum/discuss.php?d=119857 Moodle integration with Drupal]. --[[User:Frank Ralf|Frank Ralf]] 08:10, 10 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==== Symfony ====&lt;br /&gt;
&lt;br /&gt;
Drupal successfully moved to Symfony. Its a good framework and may attract more community contributions.&lt;br /&gt;
&lt;br /&gt;
==== Zend Framework ====&lt;br /&gt;
How about [http://framework.zend.com/ZendFramework ZendFramework]? It&#039;s open source, of course, runs on PHP, already has a pretty cool API with a well stocked service library, and the coders are working closely with Google, Adobe and Microsoft, among others, to produce some really high quality code. One feature I particularly like is that the main bulk of the PHP code is outside the public HTML directory. Since version 1.7 It also offers pretty good support for Flash Remoting (AMF0 and AMF3) making it especially easy to create integrated RIA frameworks. [http://framework.zend.com/about/components Check here] to see what you get &amp;quot;out of the box&amp;quot;. It looks like they&#039;ve already done most of the hard work for you.&lt;br /&gt;
&lt;br /&gt;
==== Node.js ====&lt;br /&gt;
&lt;br /&gt;
Thinking &amp;quot;big&amp;quot;, how about ditching PHP entirely and building on top of node.js? You could   exploit its real-time-friendly design, and integrate the node.js-based etherpad-lite for synchronous document collaboration. And javascript has some of the same hacker-friendliness that PHP has.&lt;br /&gt;
&lt;br /&gt;
==== Laravel ====&lt;br /&gt;
&lt;br /&gt;
A modern PHP framework, that promotes best practices and modern development. Currently the most popular framework in the PHP world. Integrated with Composer, and pulling in many of the PHP communities most popular packages, including Symfony components. It also has a huge following and vast array of learning resources (http://laracasts.com).&lt;br /&gt;
&lt;br /&gt;
OctoberCMS built on Laravel: https://octobercms.com/&lt;br /&gt;
Laravel: http://laravel.com / https://github.com/laravel/laravel&lt;br /&gt;
&lt;br /&gt;
=== Moodlets===&lt;br /&gt;
&lt;br /&gt;
Individual-independent-activities backup/restore + metadata  - Eloy&lt;br /&gt;
&lt;br /&gt;
=== Support for alternate interfaces, mobile interfaces ===&lt;br /&gt;
&lt;br /&gt;
Optimized for tablet computing: iPad, others&lt;br /&gt;
Completely flash-based interface?  Designed for offline clients?&lt;br /&gt;
&lt;br /&gt;
=== Integrated category/taxonomy system ===&lt;br /&gt;
&lt;br /&gt;
Putting together the &amp;quot;course categories&amp;quot;, &amp;quot;tags&amp;quot; into a generic taxonomy system.&lt;br /&gt;
&lt;br /&gt;
=== Save the 1970-2038 limitation ===&lt;br /&gt;
&lt;br /&gt;
Those UNIX timestamps are [http://moodle.org/mod/forum/discuss.php?d=101984 pretty limited].&lt;br /&gt;
&lt;br /&gt;
=== Translation framework ===&lt;br /&gt;
Drupal uses [http://www.gnu.org/software/gettext/gettext.html GNU gettext].po files for providing translations which is a very robust and well understood format.&lt;br /&gt;
&lt;br /&gt;
Or XLIFF format (use in Zend Framework, Symfony, Intl extension) with [http://icu-project.org/download/rbmanager.html Resource bundle manager]&lt;br /&gt;
&lt;br /&gt;
=== Use PHP 5.3 Native Power ===&lt;br /&gt;
Like : PDO, SPL, Namespace, Intl, Phar...&lt;br /&gt;
(Zend Framework 2 use it)&lt;br /&gt;
&lt;br /&gt;
=== Caching with Edge Side Includes (ESI) and a proxy (varnish, squid) ===&lt;br /&gt;
&lt;br /&gt;
This should provide performance improvements while not having to limit the number of portlets on a page for optimisation. &lt;br /&gt;
(Symfony2 provides that possibility out of the box, leaving the choice to activate it or not)&lt;br /&gt;
&lt;br /&gt;
=== Make a replica Moodle ===&lt;br /&gt;
1 Moodle library, 100 Moodle platforms, just adding plugins and themes.&lt;br /&gt;
&lt;br /&gt;
=== Please Sanitize the PHP code ===&lt;br /&gt;
Don&#039;t use : &#039;&#039;&#039;ini_set&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t use : &#039;&#039;&#039;error_reporting&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
Don&#039;t use : &#039;&#039;&#039;@&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t use : &#039;&#039;&#039;eval&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t use alias : exemple : &#039;&#039;&#039;die&#039;&#039;&#039; (it&#039;s &#039;&#039;&#039;exit&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
Don&#039;t use depreciates functions : exemple : &#039;&#039;&#039;split&#039;&#039;&#039; (it&#039;s &#039;&#039;&#039;explode&#039;&#039;&#039; or &#039;&#039;&#039;preg_split&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A simple way to show all errors : (in php.ini with PHP 5.3) :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
disable_functions = ini_set, error_reporting&lt;br /&gt;
&lt;br /&gt;
error_reporting = E_ALL | E_STRICT&lt;br /&gt;
&lt;br /&gt;
display_errors = On&lt;br /&gt;
&lt;br /&gt;
(eval can be disable with Suhosin)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use the right functions : exemple : it&#039;s not &#039;&#039;&#039;ini_set(&#039;include_path&#039;)&#039;&#039;&#039; it&#039;s &#039;&#039;&#039;set_include_path&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Registry Pattern instead global&lt;br /&gt;
&lt;br /&gt;
Use Docbook everywhere&lt;br /&gt;
&lt;br /&gt;
Moodle is now PHP 5 : clear &amp;quot;&#039;&#039;&#039;var&#039;&#039;&#039;&amp;quot; in class, methods are &#039;&#039;&#039;public&#039;&#039;&#039;/&#039;&#039;&#039;private&#039;&#039;&#039;/&#039;&#039;&#039;protected&#039;&#039;&#039; &#039;&#039;&#039;function&#039;&#039;&#039; (not just &#039;&#039;&#039;function&#039;&#039;&#039;) and &#039;&#039;&#039;__construct&#039;&#039;&#039; for constructor method&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Many thanks for your invaluable and expert opinion, we&#039;ll be working hard on all those, sincerely! --[[User:Eloy Lafuente (stronk7)|Eloy Lafuente (stronk7)]] 01:37, 19 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Built for Teacher-to-teacher Content Sharing ===&lt;br /&gt;
&lt;br /&gt;
Drag-and-drop courses and course items from Moodle Hubs&lt;br /&gt;
&lt;br /&gt;
=== Learn from LAMS and Dokeos ===&lt;br /&gt;
&lt;br /&gt;
Integrated authoring system&lt;br /&gt;
Drag-and-drop sequential scenario-building&lt;br /&gt;
&lt;br /&gt;
=== Invent something crazily new ===&lt;br /&gt;
3-line ideas are welcome here:&lt;br /&gt;
* participation reward systems&lt;br /&gt;
* Add trashcan and /or undo function&lt;br /&gt;
* Make editing of modules WYSIWYG, no more icons that change layout&lt;br /&gt;
* Collaborative spreadsheet editing functionality - like Google Docs.&lt;br /&gt;
&lt;br /&gt;
* Being able to upload documents into the questionnaire activity&lt;br /&gt;
&lt;br /&gt;
=== Even more crazy ===&lt;br /&gt;
* To turn Moodle as a Community of Practice Management tool. &lt;br /&gt;
* To make it general enough so that it becomes a terrific tool for many types of activities that manages communities, but still based on socio-constructivist principles.&lt;br /&gt;
* Use fractal principles where a course categories is in fact a course. They both are containers/circles with parent-child links.&lt;br /&gt;
* If enrolled in a child circle, than automatically enrolled in the upper parents category/containers.&lt;br /&gt;
* The scope of a Glossary should be extendable to child containers/circles.&lt;br /&gt;
* Tags : Any persons, any containers/circles, any calendar events, any objects should be taggable. So that anyone that is looking for resources can find it easily. Sorted by center of interests, geographical proximity and time line.&lt;br /&gt;
&lt;br /&gt;
=== More Agile Development ===&lt;br /&gt;
There are many elements in agile development that could apply to Moodle and benefit the development process tremendously.  With proper application of these elements, the Moodle&#039;s core code can be more solid and robust.  Any programmer can make changes to the source with confidence and not be afraid of breaking any other features.&lt;br /&gt;
&lt;br /&gt;
==== Test Driven Development ====&lt;br /&gt;
Require unit tests and acceptance tests be written for every change made to the core code.  No code should be committed to the core without any test written.  A code reviewer should run the tests and expect them to be failed before applying the code changes, and expect they all passed after applying the fix or code changes.  S/he should also run the full test suite to make sure the changes did not break any existing features and functionalities.&lt;br /&gt;
&lt;br /&gt;
==== Code Review ====&lt;br /&gt;
Implement a code review process like the [http://codereview.chromium.org Google Chromium project].  Developers can only commit to the trunk with one or more reviewers&#039; approval.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;I wonder if the person who added these ideas has any idea how Moodle development actually works. I would guess not. The process is already very agile. All contributions are code-reviewed. There are not enough unit tests yet, but writing unit tests for legacy code is the hardest sort of tests to write (see the book xUnit test patterns) so frankly, it is not worth the effort, except in new code. I can get away with saying that because I have written 2500+ test cases for the latest bit of development I did.&#039;&#039;--[[User:Tim Hunt|Tim Hunt]] 15:23, 6 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hi Tim, please don&#039;t take me wrong.  I think the development team at Moodle is already very agile.  It is actually one of the few agile projects that I have seen in the open source communities.  The effort that you and many diligent individuals have made to coordinate and integrate contributions from all over the world is outstanding.  I just made these comments based on the software development environment I came from, where no code change is allowed to commit without any test written and reviewer signs off.  Our VCS is actually configured to reject any commit that do not have these two elements present.  You are correct that I do not fully know the Moodle development process yet, but the fact that I see codes (particular contributed codes) being checked in without any tests, I just thought it would help bolster Moodle&#039;s core code by enforcing this rule in future commits. And implementing something like [http://codereview.chromium.org Google Chromium code review] interface allows more eyes on the check-in codes, and hopefully alleviates some of the loads from you and the rest of the core team, who have been doing a wonderful work on peer-reviewing all these time.  Again, please don&#039;t take this as a criticism but a brian-storming idea if you will.  Peace.&#039;&#039; --Carson&lt;br /&gt;
&lt;br /&gt;
===Audio Feedback===&lt;br /&gt;
&lt;br /&gt;
* The ability for lecturers to leave audio feedback on students work (student uploaded work could be: text,audio,video...) as opposed to written text feedback. Students can then listen to feedback rather than read text feedback on-line.  &lt;br /&gt;
* On the (moodle) activity/assignment submissions page, beside each students text input box, have a record, pause &amp;amp; stop button for teachers to record &amp;amp; save the audio feedback.&lt;br /&gt;
* It would be for all audio feedback left by lecturers in a particular course for a particular student could be aggregated into one podcast, which could be listened to by students on their mobiles, on the move--Jago Brown&lt;br /&gt;
&lt;br /&gt;
: This does not require any major changes to Moodle. It just requires a few plugins, possibly just a &#039;record audio&#039; repository plugin. And, perhaps, a new assignment type or question type. This is all perfectly possible in Moodle 2.x.--[[User:Tim Hunt|Tim Hunt]] 16:22, 10 September 2011 (WST)&lt;br /&gt;
&lt;br /&gt;
=== Being able to use apostrophe in file and folder names ===&lt;br /&gt;
It would be good, to respect user choice (and language) to be able to use apostrophe in folder names and filenames. &lt;br /&gt;
A tracker issue was opened for that : MDL-42724&lt;br /&gt;
&lt;br /&gt;
===Fix the Scroll of Death===&lt;br /&gt;
&lt;br /&gt;
Allow layout settings to be applied to course sections (as they are to courses).&lt;br /&gt;
Allow multiple image types to be added to themes for activity / resource types.&lt;br /&gt;
Allow images to be overridden (uploaded) for individual activities.&lt;br /&gt;
Allow sections to be added and deleted on the in line within the course page as opposed to defining them in the course settings.&lt;br /&gt;
&lt;br /&gt;
The idea would be that within each course section you could choose between grid / tiled layouts, columns, collapsable toggles, accordians etc.&lt;br /&gt;
Because this would be based on sections not the entire course you could mix and match different layouts within a single course as required.&lt;br /&gt;
&lt;br /&gt;
Another approach would be to build a system of shortcodes into the text editor.&lt;br /&gt;
Commercial Wordpress themes have done this for some time for example &amp;quot;Avada Theme&amp;quot;, &amp;quot;FlexForm&amp;quot;, &amp;quot;U-Design&amp;quot; (all can be found on ThemeForest).&lt;br /&gt;
If shortcodes were an option templates could be saved and re-used / loaded into a given course.&lt;br /&gt;
&lt;br /&gt;
===Split Assignments out From Content===&lt;br /&gt;
&lt;br /&gt;
Assignments grades and feedback should belong to the student not to the course. &lt;br /&gt;
Clearing down of these records should be driven by a site (and possibly category) wide retention policy not by a teacher deciding (or not as the case may be) to reset the course.&lt;br /&gt;
&lt;br /&gt;
===Rebuild MOODLE modules as Drupal Components ===&lt;br /&gt;
&lt;br /&gt;
I see Drupal has been already mentioned, but rather than rebuild MOODLE using Drupal, rebuild the functionality and modules as a series of standalone Drupal modules. MOODLE would not be an application in its self but a collection of  modules, best practices for on-line delivery, and a Drupal distribution.  &lt;br /&gt;
&lt;br /&gt;
https://drupal.org/documentation/build/distributions&lt;br /&gt;
&lt;br /&gt;
From a learning perspective this would open up new ways for people to access the pedagogy that underpins MOODLE. From a technology point of view development time would be sped up as many modules already exist in Drupal and the potential developer base would explode in terms of size.&lt;br /&gt;
&lt;br /&gt;
===Make Quiz Module Work as a Class Response System===&lt;br /&gt;
&lt;br /&gt;
The Quiz  module is a best of breed example of a question, answer and feedback activity, but the implicit message in its design is content is pre-arranged for students working alone. Master teachers introduce questions as they see necessary in classes to stimulate thinking and discussion and debate to force examination and building of concepts. Having a &amp;quot;live quiz mode&amp;quot; wherein a teacher can add a question &amp;quot;on the fly&amp;quot; even verbally (for example: What will happen when I do this), then collect and dsiplay responses is one of the most powerful additions technology can make to a conventional classroom.&lt;br /&gt;
&lt;br /&gt;
:: It does not make sense to cram this into the quiz module. It is a different type of activity, and someone has already made it: https://moodle.org/plugins/view.php?plugin=mod_realtimequiz --[[User:Tim Hunt|Tim Hunt]] ([[User talk:Tim Hunt|talk]]) 16:24, 5 January 2015 (AWST)&lt;br /&gt;
&lt;br /&gt;
===Make Moodle a Tin Can LRS===&lt;br /&gt;
&lt;br /&gt;
Making Moodle a Learning Record Store (LRS) based on the Tin Can API will enable learning experiences that happen outside of Moodle to be captured as part of a learner’s total education.&lt;br /&gt;
&lt;br /&gt;
==== Make Everything a Module ====&lt;br /&gt;
Make moodle &#039;core&#039; 3.0 have essentially 0 plugins, then make every activity, resource, theme, auth, enrollment, etc... a stand-alone plugin.  Then we could provide a cool &#039;build&#039; page where people check what they want and moodle downloads with those components.  Eventually moodle.com could stop developing plugins they don&#039;t want to maintain anymore (like they did with all the &amp;lt;2.7 themes) and create new one that they do.  New ones could be added much more quickly without bloating the core.&lt;br /&gt;
&lt;br /&gt;
==Consider some &#039;&#039;&#039;very very popular available additional plugins&#039;&#039;&#039; for inclusion into Moodle core==&lt;br /&gt;
There is a list of the top 20 plugins downloaded from the Moodle plugins database, in both the last year and the previous two months, at [https://moodle.org/plugins/stats.php https://moodle.org/plugins/stats.php].&lt;br /&gt;
&lt;br /&gt;
If MANY Moodle admins have been downloading the same plugins for several months, I think that means they have found/heard/read that this plugin is useful, and it would surely benefit a large number of other users if these plugins were already part of the Moodle core.&lt;br /&gt;
&lt;br /&gt;
I reckon that adding one additional plugin into core would likely require a considerable amount of the scarce Moodle HQ programmers time, but the number of people who will benefit from this inclusion (I think) is sure to be very high (just look at the numbers in the [https://moodle.org/plugins/stats.php plugins database stat page]). Moodle HQ might choose which plugin is either:&lt;br /&gt;
* mature enough&lt;br /&gt;
* highly rated&lt;br /&gt;
* small in size&lt;br /&gt;
* well written&lt;br /&gt;
* well documented&lt;br /&gt;
* well maintained&lt;br /&gt;
* a usability improvement&lt;br /&gt;
* in agreement with the [https://docs.moodle.org/dev/Roadmap Moodle roadmap]&lt;br /&gt;
&lt;br /&gt;
to make a good choice of one plugin (or two?) every major release (every 6 months).[[User:German Valero|German Valero]] ([[User talk:German Valero|talk]])&lt;br /&gt;
&lt;br /&gt;
===Fix Moodle&#039;s core unatractive look and feel (theme)===&lt;br /&gt;
There have been great improvements recently, &#039;&#039;&#039;but&#039;&#039;&#039; the [https://moodle.org/plugins/view.php?id=773  Essential theme] is still [https://moodle.org/plugins/stats.php the most downloaded plugin] for Moodle 2.x. It  has a [https://moodle.org/plugins/reviews.php?plugin=theme_essential great review] and it is seemingly well maintained. If this theme were included into Moodle core, many users of many hosted sites -who currently cannot install additional plugins- would be extremely happy. [[User:German Valero|German Valero]] ([[User talk:German Valero|talk]])&lt;br /&gt;
&lt;br /&gt;
===Fix Moodle&#039;s lack of a properly built-in grading tool===&lt;br /&gt;
As described by [https://moodle.org/mod/forum/discuss.php?d=186227#unread https://moodle.org/mod/forum/discuss.php?d=186227#unread], ll other LMS systems the author has worked in let you see all the work that needs to be graded in the course.  One additional plugin that works extremely well and has a [https://moodle.org/plugins/reviews.php?version=282&amp;amp;review=15 great review] is the [https://moodle.org/plugins/view.php?plugin=block_ajax_marking AJAX Marking block] . However, since Remote Learner no longer lets their customers install blocks on their own, many Moodle users can&#039;t install this block. It this plugin were included in Moodle core, Moodle core would have a teacher-friendly functionality that most other LMS currently have. [[User:German Valero|German Valero]] ([[User talk:German Valero|talk]])&lt;br /&gt;
&lt;br /&gt;
==Different Front Page Look==&lt;br /&gt;
Perhaps it&#039;s time to offer some other options for the front page (before and after logging on).  One option that I can think of is offering the Grid layout which can be applied to courses should be available for use on the Front Page.&lt;br /&gt;
&lt;br /&gt;
==Apply &#039;&#039;&#039;Availability restrictions&#039;&#039;&#039; plugin to Course and Category Context==&lt;br /&gt;
*This would allow the visibility or access to courses or even categories based on the same restrictions placed on course topics and activities.&lt;br /&gt;
*For example user 1 in the system may be able to see the courses contained in category 1, whereas user 2 can only see courses in category 2 and user 3 can see courses in both category 1 and 2.&lt;br /&gt;
*This could be based on the contents of a particular user profile field or any other restriction type.&lt;br /&gt;
&lt;br /&gt;
==Update the Usability of the Moodle Calendar==&lt;br /&gt;
The Moodle Calendar should be the glue that holds a school together (at least at the K-12 level) by delivering user specific as well as general institutional information to all stakeholders. It is hard to get teachers and administrators to use the calendar, however, because it doesn&#039;t offer the kind of user experience that people expect. It needs features like: 1) the ability to drag entries from one date to another, 2) the ability to edit an event&#039;s type, 2) the ability to easily clone events, 3) a week view, etc. I&#039;m tired of trying to convince teachers that they should use the Moodle calendar rather than embed a Google calendar in their course page. Moodle becomes a much more attractive tool for students/parents/teachers/schools when they experience the results of the auto-creation of calendar events via assignment options (due date, available from). Improving calendar usability features would really encourage schools to see Moodle as THE tool for assignment and content delivery and collection, rather than A tool among many.&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Moodle_Wishlist&amp;diff=47936</id>
		<title>Moodle Wishlist</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Moodle_Wishlist&amp;diff=47936"/>
		<updated>2015-05-25T07:56:30Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: Make the Moodle Calendar more user friendly&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Warning! This page is highly speculative.&lt;br /&gt;
&lt;br /&gt;
It is basically a dumping ground for random ideas from anyone who wants to write something here. It is not in any way an official Moodle roadmap or policy. Some of the good ideas here may be adopted, but most of the ideas are pretty crazy, and will never work. Basically, it is a place to brainstorm. Please add your own crazy ideas! They don&#039;t need to be consistent yet, just make sure your ideas are here to be boiled down later on.&lt;br /&gt;
&lt;br /&gt;
Think Big!&lt;br /&gt;
&lt;br /&gt;
===One type of plugin===&lt;br /&gt;
&lt;br /&gt;
All plugins/modules could be subclassed from one plugin class, making installation easier and simplifying the API a lot.&lt;br /&gt;
&lt;br /&gt;
Or even just [[unify all activities and resources]]...&lt;br /&gt;
&lt;br /&gt;
===Look at new framework===&lt;br /&gt;
&lt;br /&gt;
Possibly base Moodle 3.0 on new existing frameworks?  Ruby on Rails?  Drupal? Symfony2? +2&lt;br /&gt;
&lt;br /&gt;
Why not consider something like Phalcon PHP (http://phalconphp.com/en/)? (Blazing faster than Drupal or Symfony) -- [[User:Sebsoft|Sebastian Berm]]&lt;br /&gt;
&lt;br /&gt;
Keypoints:  -- [[User:Gabriel_Mazetto|Gabriel Mazetto]]&lt;br /&gt;
* MVC is a must &#039;&#039;(we waste too much time reimplementing &amp;quot;mvc&amp;quot; in every single page, and we lack best practices by doing it again and again and again)&#039;&#039;&lt;br /&gt;
* Better ORM &#039;&#039;(I understand that in some time of the history, it was a good idea to create our own ORM, but today&#039;s lack of modern ORM means bad APIs, ancient unit tests, no &amp;quot;factories&amp;quot; which leads to expensive tests and bazilion fixtures)&#039;&#039;&lt;br /&gt;
* Object Orientation done right &#039;&#039;(doesn&#039;t matter if it&#039;s php, ruby or whatever, but let&#039;s use all the useful features the language has to offer and lets make the code easy hackable, no more useless private/protected that makes impossible to overwrite pieces of code without having to duplicate everything).&#039;&#039;&lt;br /&gt;
* Use more external libraries &#039;&#039;(let&#039;s just not reinvent the well again, there is a lot of good libraries out there that have strong community to maintain, and let&#039;s not waste time reimplementing our &amp;quot;perfect&amp;quot; version of them, that soon will be obsolete as no one is willing to maintain... and also let&#039;s make an effort to update regularly thous external libraries).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Drupal ====&lt;br /&gt;
There&#039;s an interesting discussion in the Language Teaching Course:&lt;br /&gt;
[http://moodle.org/mod/forum/discuss.php?d=83963 How can Moodle be more of a social networking site?] with some links to the [http://groups.drupal.org/drupal-education Drupal in Education User Group]. --[[User:Frank Ralf|Frank Ralf]] 14:27, 18 January 2009 (CST)&lt;br /&gt;
&lt;br /&gt;
(I started a section about [[User_talk:Frank_Ralf#What_Moodle_could_learn_from_Drupal|What Moodle could learn from Drupal]] on my User talk page. --[[User:Frank Ralf|Frank Ralf]] 06:35, 21 January 2009 (CST))&lt;br /&gt;
&lt;br /&gt;
There are some activities in the Drupal community regarding better interoperability and integration of Moodle and Drupal, see [http://moodle.org/mod/forum/discuss.php?d=121859 Drupal Quiz module - data exchange with other LMSes] and [http://moodle.org/mod/forum/discuss.php?d=119857 Moodle integration with Drupal]. --[[User:Frank Ralf|Frank Ralf]] 08:10, 10 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==== Symfony ====&lt;br /&gt;
&lt;br /&gt;
Drupal successfully moved to Symfony. Its a good framework and may attract more community contributions.&lt;br /&gt;
&lt;br /&gt;
==== Zend Framework ====&lt;br /&gt;
How about [http://framework.zend.com/ZendFramework ZendFramework]? It&#039;s open source, of course, runs on PHP, already has a pretty cool API with a well stocked service library, and the coders are working closely with Google, Adobe and Microsoft, among others, to produce some really high quality code. One feature I particularly like is that the main bulk of the PHP code is outside the public HTML directory. Since version 1.7 It also offers pretty good support for Flash Remoting (AMF0 and AMF3) making it especially easy to create integrated RIA frameworks. [http://framework.zend.com/about/components Check here] to see what you get &amp;quot;out of the box&amp;quot;. It looks like they&#039;ve already done most of the hard work for you.&lt;br /&gt;
&lt;br /&gt;
==== Node.js ====&lt;br /&gt;
&lt;br /&gt;
Thinking &amp;quot;big&amp;quot;, how about ditching PHP entirely and building on top of node.js? You could   exploit its real-time-friendly design, and integrate the node.js-based etherpad-lite for synchronous document collaboration. And javascript has some of the same hacker-friendliness that PHP has.&lt;br /&gt;
&lt;br /&gt;
==== Laravel ====&lt;br /&gt;
&lt;br /&gt;
A modern PHP framework, that promotes best practices and modern development. Currently the most popular framework in the PHP world. Integrated with Composer, and pulling in many of the PHP communities most popular packages, including Symfony components. It also has a huge following and vast array of learning resources (http://laracasts.com).&lt;br /&gt;
&lt;br /&gt;
OctoberCMS built on Laravel: https://octobercms.com/&lt;br /&gt;
Laravel: http://laravel.com / https://github.com/laravel/laravel&lt;br /&gt;
&lt;br /&gt;
=== Moodlets===&lt;br /&gt;
&lt;br /&gt;
Individual-independent-activities backup/restore + metadata  - Eloy&lt;br /&gt;
&lt;br /&gt;
=== Support for alternate interfaces, mobile interfaces ===&lt;br /&gt;
&lt;br /&gt;
Optimized for tablet computing: iPad, others&lt;br /&gt;
Completely flash-based interface?  Designed for offline clients?&lt;br /&gt;
&lt;br /&gt;
=== Integrated category/taxonomy system ===&lt;br /&gt;
&lt;br /&gt;
Putting together the &amp;quot;course categories&amp;quot;, &amp;quot;tags&amp;quot; into a generic taxonomy system.&lt;br /&gt;
&lt;br /&gt;
=== Save the 1970-2038 limitation ===&lt;br /&gt;
&lt;br /&gt;
Those UNIX timestamps are [http://moodle.org/mod/forum/discuss.php?d=101984 pretty limited].&lt;br /&gt;
&lt;br /&gt;
=== Translation framework ===&lt;br /&gt;
Drupal uses [http://www.gnu.org/software/gettext/gettext.html GNU gettext].po files for providing translations which is a very robust and well understood format.&lt;br /&gt;
&lt;br /&gt;
Or XLIFF format (use in Zend Framework, Symfony, Intl extension) with [http://icu-project.org/download/rbmanager.html Resource bundle manager]&lt;br /&gt;
&lt;br /&gt;
=== Use PHP 5.3 Native Power ===&lt;br /&gt;
Like : PDO, SPL, Namespace, Intl, Phar...&lt;br /&gt;
(Zend Framework 2 use it)&lt;br /&gt;
&lt;br /&gt;
=== Caching with Edge Side Includes (ESI) and a proxy (varnish, squid) ===&lt;br /&gt;
&lt;br /&gt;
This should provide performance improvements while not having to limit the number of portlets on a page for optimisation. &lt;br /&gt;
(Symfony2 provides that possibility out of the box, leaving the choice to activate it or not)&lt;br /&gt;
&lt;br /&gt;
=== Make a replica Moodle ===&lt;br /&gt;
1 Moodle library, 100 Moodle platforms, just adding plugins and themes.&lt;br /&gt;
&lt;br /&gt;
=== Please Sanitize the PHP code ===&lt;br /&gt;
Don&#039;t use : &#039;&#039;&#039;ini_set&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t use : &#039;&#039;&#039;error_reporting&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
Don&#039;t use : &#039;&#039;&#039;@&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t use : &#039;&#039;&#039;eval&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t use alias : exemple : &#039;&#039;&#039;die&#039;&#039;&#039; (it&#039;s &#039;&#039;&#039;exit&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
Don&#039;t use depreciates functions : exemple : &#039;&#039;&#039;split&#039;&#039;&#039; (it&#039;s &#039;&#039;&#039;explode&#039;&#039;&#039; or &#039;&#039;&#039;preg_split&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A simple way to show all errors : (in php.ini with PHP 5.3) :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
disable_functions = ini_set, error_reporting&lt;br /&gt;
&lt;br /&gt;
error_reporting = E_ALL | E_STRICT&lt;br /&gt;
&lt;br /&gt;
display_errors = On&lt;br /&gt;
&lt;br /&gt;
(eval can be disable with Suhosin)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use the right functions : exemple : it&#039;s not &#039;&#039;&#039;ini_set(&#039;include_path&#039;)&#039;&#039;&#039; it&#039;s &#039;&#039;&#039;set_include_path&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Registry Pattern instead global&lt;br /&gt;
&lt;br /&gt;
Use Docbook everywhere&lt;br /&gt;
&lt;br /&gt;
Moodle is now PHP 5 : clear &amp;quot;&#039;&#039;&#039;var&#039;&#039;&#039;&amp;quot; in class, methods are &#039;&#039;&#039;public&#039;&#039;&#039;/&#039;&#039;&#039;private&#039;&#039;&#039;/&#039;&#039;&#039;protected&#039;&#039;&#039; &#039;&#039;&#039;function&#039;&#039;&#039; (not just &#039;&#039;&#039;function&#039;&#039;&#039;) and &#039;&#039;&#039;__construct&#039;&#039;&#039; for constructor method&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Many thanks for your invaluable and expert opinion, we&#039;ll be working hard on all those, sincerely! --[[User:Eloy Lafuente (stronk7)|Eloy Lafuente (stronk7)]] 01:37, 19 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Built for Teacher-to-teacher Content Sharing ===&lt;br /&gt;
&lt;br /&gt;
Drag-and-drop courses and course items from Moodle Hubs&lt;br /&gt;
&lt;br /&gt;
=== Learn from LAMS and Dokeos ===&lt;br /&gt;
&lt;br /&gt;
Integrated authoring system&lt;br /&gt;
Drag-and-drop sequential scenario-building&lt;br /&gt;
&lt;br /&gt;
=== Invent something crazily new ===&lt;br /&gt;
3-line ideas are welcome here:&lt;br /&gt;
* participation reward systems&lt;br /&gt;
* Add trashcan and /or undo function&lt;br /&gt;
* Make editing of modules WYSIWYG, no more icons that change layout&lt;br /&gt;
* Collaborative spreadsheet editing functionality - like Google Docs.&lt;br /&gt;
&lt;br /&gt;
* Being able to upload documents into the questionnaire activity&lt;br /&gt;
&lt;br /&gt;
=== Even more crazy ===&lt;br /&gt;
* To turn Moodle as a Community of Practice Management tool. &lt;br /&gt;
* To make it general enough so that it becomes a terrific tool for many types of activities that manages communities, but still based on socio-constructivist principles.&lt;br /&gt;
* Use fractal principles where a course categories is in fact a course. They both are containers/circles with parent-child links.&lt;br /&gt;
* If enrolled in a child circle, than automatically enrolled in the upper parents category/containers.&lt;br /&gt;
* The scope of a Glossary should be extendable to child containers/circles.&lt;br /&gt;
* Tags : Any persons, any containers/circles, any calendar events, any objects should be taggable. So that anyone that is looking for resources can find it easily. Sorted by center of interests, geographical proximity and time line.&lt;br /&gt;
&lt;br /&gt;
=== More Agile Development ===&lt;br /&gt;
There are many elements in agile development that could apply to Moodle and benefit the development process tremendously.  With proper application of these elements, the Moodle&#039;s core code can be more solid and robust.  Any programmer can make changes to the source with confidence and not be afraid of breaking any other features.&lt;br /&gt;
&lt;br /&gt;
==== Test Driven Development ====&lt;br /&gt;
Require unit tests and acceptance tests be written for every change made to the core code.  No code should be committed to the core without any test written.  A code reviewer should run the tests and expect them to be failed before applying the code changes, and expect they all passed after applying the fix or code changes.  S/he should also run the full test suite to make sure the changes did not break any existing features and functionalities.&lt;br /&gt;
&lt;br /&gt;
==== Code Review ====&lt;br /&gt;
Implement a code review process like the [http://codereview.chromium.org Google Chromium project].  Developers can only commit to the trunk with one or more reviewers&#039; approval.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;I wonder if the person who added these ideas has any idea how Moodle development actually works. I would guess not. The process is already very agile. All contributions are code-reviewed. There are not enough unit tests yet, but writing unit tests for legacy code is the hardest sort of tests to write (see the book xUnit test patterns) so frankly, it is not worth the effort, except in new code. I can get away with saying that because I have written 2500+ test cases for the latest bit of development I did.&#039;&#039;--[[User:Tim Hunt|Tim Hunt]] 15:23, 6 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hi Tim, please don&#039;t take me wrong.  I think the development team at Moodle is already very agile.  It is actually one of the few agile projects that I have seen in the open source communities.  The effort that you and many diligent individuals have made to coordinate and integrate contributions from all over the world is outstanding.  I just made these comments based on the software development environment I came from, where no code change is allowed to commit without any test written and reviewer signs off.  Our VCS is actually configured to reject any commit that do not have these two elements present.  You are correct that I do not fully know the Moodle development process yet, but the fact that I see codes (particular contributed codes) being checked in without any tests, I just thought it would help bolster Moodle&#039;s core code by enforcing this rule in future commits. And implementing something like [http://codereview.chromium.org Google Chromium code review] interface allows more eyes on the check-in codes, and hopefully alleviates some of the loads from you and the rest of the core team, who have been doing a wonderful work on peer-reviewing all these time.  Again, please don&#039;t take this as a criticism but a brian-storming idea if you will.  Peace.&#039;&#039; --Carson&lt;br /&gt;
&lt;br /&gt;
===Audio Feedback===&lt;br /&gt;
&lt;br /&gt;
* The ability for lecturers to leave audio feedback on students work (student uploaded work could be: text,audio,video...) as opposed to written text feedback. Students can then listen to feedback rather than read text feedback on-line.  &lt;br /&gt;
* On the (moodle) activity/assignment submissions page, beside each students text input box, have a record, pause &amp;amp; stop button for teachers to record &amp;amp; save the audio feedback.&lt;br /&gt;
* It would be for all audio feedback left by lecturers in a particular course for a particular student could be aggregated into one podcast, which could be listened to by students on their mobiles, on the move--Jago Brown&lt;br /&gt;
&lt;br /&gt;
: This does not require any major changes to Moodle. It just requires a few plugins, possibly just a &#039;record audio&#039; repository plugin. And, perhaps, a new assignment type or question type. This is all perfectly possible in Moodle 2.x.--[[User:Tim Hunt|Tim Hunt]] 16:22, 10 September 2011 (WST)&lt;br /&gt;
&lt;br /&gt;
=== Being able to use apostrophe in file and folder names ===&lt;br /&gt;
It would be good, to respect user choice (and language) to be able to use apostrophe in folder names and filenames. &lt;br /&gt;
A tracker issue was opened for that : MDL-42724&lt;br /&gt;
&lt;br /&gt;
===Fix the Scroll of Death===&lt;br /&gt;
&lt;br /&gt;
Allow layout settings to be applied to course sections (as they are to courses).&lt;br /&gt;
Allow multiple image types to be added to themes for activity / resource types.&lt;br /&gt;
Allow images to be overridden (uploaded) for individual activities.&lt;br /&gt;
Allow sections to be added and deleted on the in line within the course page as opposed to defining them in the course settings.&lt;br /&gt;
&lt;br /&gt;
The idea would be that within each course section you could choose between grid / tiled layouts, columns, collapsable toggles, accordians etc.&lt;br /&gt;
Because this would be based on sections not the entire course you could mix and match different layouts within a single course as required.&lt;br /&gt;
&lt;br /&gt;
Another approach would be to build a system of shortcodes into the text editor.&lt;br /&gt;
Commercial Wordpress themes have done this for some time for example &amp;quot;Avada Theme&amp;quot;, &amp;quot;FlexForm&amp;quot;, &amp;quot;U-Design&amp;quot; (all can be found on ThemeForest).&lt;br /&gt;
If shortcodes were an option templates could be saved and re-used / loaded into a given course.&lt;br /&gt;
&lt;br /&gt;
===Split Assignments out From Content===&lt;br /&gt;
&lt;br /&gt;
Assignments grades and feedback should belong to the student not to the course. &lt;br /&gt;
Clearing down of these records should be driven by a site (and possibly category) wide retention policy not by a teacher deciding (or not as the case may be) to reset the course.&lt;br /&gt;
&lt;br /&gt;
===Rebuild MOODLE modules as Drupal Components ===&lt;br /&gt;
&lt;br /&gt;
I see Drupal has been already mentioned, but rather than rebuild MOODLE using Drupal, rebuild the functionality and modules as a series of standalone Drupal modules. MOODLE would not be an application in its self but a collection of  modules, best practices for on-line delivery, and a Drupal distribution.  &lt;br /&gt;
&lt;br /&gt;
https://drupal.org/documentation/build/distributions&lt;br /&gt;
&lt;br /&gt;
From a learning perspective this would open up new ways for people to access the pedagogy that underpins MOODLE. From a technology point of view development time would be sped up as many modules already exist in Drupal and the potential developer base would explode in terms of size.&lt;br /&gt;
&lt;br /&gt;
===Make Quiz Module Work as a Class Response System===&lt;br /&gt;
&lt;br /&gt;
The Quiz  module is a best of breed example of a question, answer and feedback activity, but the implicit message in its design is content is pre-arranged for students working alone. Master teachers introduce questions as they see necessary in classes to stimulate thinking and discussion and debate to force examination and building of concepts. Having a &amp;quot;live quiz mode&amp;quot; wherein a teacher can add a question &amp;quot;on the fly&amp;quot; even verbally (for example: What will happen when I do this), then collect and dsiplay responses is one of the most powerful additions technology can make to a conventional classroom.&lt;br /&gt;
&lt;br /&gt;
:: It does not make sense to cram this into the quiz module. It is a different type of activity, and someone has already made it: https://moodle.org/plugins/view.php?plugin=mod_realtimequiz --[[User:Tim Hunt|Tim Hunt]] ([[User talk:Tim Hunt|talk]]) 16:24, 5 January 2015 (AWST)&lt;br /&gt;
&lt;br /&gt;
===Make Moodle a Tin Can LRS===&lt;br /&gt;
&lt;br /&gt;
Making Moodle a Learning Record Store (LRS) based on the Tin Can API will enable learning experiences that happen outside of Moodle to be captured as part of a learner’s total education.&lt;br /&gt;
&lt;br /&gt;
==== Make Everything a Module ====&lt;br /&gt;
Make moodle &#039;core&#039; 3.0 have essentially 0 plugins, then make every activity, resource, theme, auth, enrollment, etc... a stand-alone plugin.  Then we could provide a cool &#039;build&#039; page where people check what they want and moodle downloads with those components.  Eventually moodle.com could stop developing plugins they don&#039;t want to maintain anymore (like they did with all the &amp;lt;2.7 themes) and create new one that they do.  New ones could be added much more quickly without bloating the core.&lt;br /&gt;
&lt;br /&gt;
==Consider some &#039;&#039;&#039;very very popular available additional plugins&#039;&#039;&#039; for inclusion into Moodle core==&lt;br /&gt;
There is a list of the top 20 plugins downloaded from the Moodle plugins database, in both the last year and the previous two months, at [https://moodle.org/plugins/stats.php https://moodle.org/plugins/stats.php].&lt;br /&gt;
&lt;br /&gt;
If MANY Moodle admins have been downloading the same plugins for several months, I think that means they have found/heard/read that this plugin is useful, and it would surely benefit a large number of other users if these plugins were already part of the Moodle core.&lt;br /&gt;
&lt;br /&gt;
I reckon that adding one additional plugin into core would likely require a considerable amount of the scarce Moodle HQ programmers time, but the number of people who will benefit from this inclusion (I think) is sure to be very high (just look at the numbers in the [https://moodle.org/plugins/stats.php plugins database stat page]). Moodle HQ might choose which plugin is either:&lt;br /&gt;
* mature enough&lt;br /&gt;
* highly rated&lt;br /&gt;
* small in size&lt;br /&gt;
* well written&lt;br /&gt;
* well documented&lt;br /&gt;
* well maintained&lt;br /&gt;
* a usability improvement&lt;br /&gt;
* in agreement with the [https://docs.moodle.org/dev/Roadmap Moodle roadmap]&lt;br /&gt;
&lt;br /&gt;
to make a good choice of one plugin (or two?) every major release (every 6 months).[[User:German Valero|German Valero]] ([[User talk:German Valero|talk]])&lt;br /&gt;
&lt;br /&gt;
===Fix Moodle&#039;s core unatractive look and feel (theme)===&lt;br /&gt;
There have been great improvements recently, &#039;&#039;&#039;but&#039;&#039;&#039; the [https://moodle.org/plugins/view.php?id=773  Essential theme] is still [https://moodle.org/plugins/stats.php the most downloaded plugin] for Moodle 2.x. It  has a [https://moodle.org/plugins/reviews.php?plugin=theme_essential great review] and it is seemingly well maintained. If this theme were included into Moodle core, many users of many hosted sites -who currently cannot install additional plugins- would be extremely happy. [[User:German Valero|German Valero]] ([[User talk:German Valero|talk]])&lt;br /&gt;
&lt;br /&gt;
===Fix Moodle&#039;s lack of a properly built-in grading tool===&lt;br /&gt;
As described by [https://moodle.org/mod/forum/discuss.php?d=186227#unread https://moodle.org/mod/forum/discuss.php?d=186227#unread], ll other LMS systems the author has worked in let you see all the work that needs to be graded in the course.  One additional plugin that works extremely well and has a [https://moodle.org/plugins/reviews.php?version=282&amp;amp;review=15 great review] is the [https://moodle.org/plugins/view.php?plugin=block_ajax_marking AJAX Marking block] . However, since Remote Learner no longer lets their customers install blocks on their own, many Moodle users can&#039;t install this block. It this plugin were included in Moodle core, Moodle core would have a teacher-friendly functionality that most other LMS currently have. [[User:German Valero|German Valero]] ([[User talk:German Valero|talk]])&lt;br /&gt;
&lt;br /&gt;
==Different Front Page Look==&lt;br /&gt;
Perhaps it&#039;s time to offer some other options for the front page (before and after logging on).  One option that I can think of is offering the Grid layout which can be applied to courses should be available for use on the Front Page.&lt;br /&gt;
&lt;br /&gt;
==Apply &#039;&#039;&#039;Availability restrictions&#039;&#039;&#039; plugin to Course and Category Context==&lt;br /&gt;
*This would allow the visibility or access to courses or even categories based on the same restrictions placed on course topics and activities.&lt;br /&gt;
*For example user 1 in the system may be able to see the courses contained in category 1, whereas user 2 can only see courses in category 2 and user 3 can see courses in both category 1 and 2.&lt;br /&gt;
*This could be based on the contents of a particular user profile field or any other restriction type.&lt;br /&gt;
&lt;br /&gt;
==Update the Usability of the Moodle Calendar==&lt;br /&gt;
The Moodle Calendar should be the glue that holds a school together (at least at the K-12 level) delivering user specific as well as general institutional information to all stakeholders. It is hard to get teachers and administrators to use the calendar, however, because it doesn&#039;t offer the kind of user experience that people expect. It needs features like: 1) the ability to drag entries from one date to another, 2) the ability to edit an event&#039;s type, 2) the ability to easily clone events, 3) a week view, etc. I&#039;m tired of trying to convince teachers that they should use the Moodle calendar rather than embed a Google calendar in their course page. Moodle becomes a much more attractive tool for students/parents/teachers/schools when they experience the results of the auto-creation of calendar events via assignment options (due date, available from). Improving calendar usability features would really encourage schools to see Moodle as THE tool for assignment and content delivery and collection, rather than A tool among many.&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39189</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39189"/>
		<updated>2013-04-21T13:47:40Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Code Implementation Change Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Separating Activity Hiding from Activity Access=&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
==Basic Use Case==&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
==The Problem Inherent in the Present Moodle Activity Hiding Schema==&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
==Existing Work-Arounds==&lt;br /&gt;
===Stealth Mode===&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
===Flexpage===&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
==Limitations of the Existing Work-Arounds==&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
==Functionality Provided by the Proposed Enhancement==&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
==Solution Design - User Experience/Functionality==&lt;br /&gt;
&lt;br /&gt;
===The Activity Settings Dialog===&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing On Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing Off Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
===The Editing Role Pages===&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessibile and Restrict Access Settings===&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessible and Completion Tracking Settings===&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
==Solution Design - Technical Specifications==&lt;br /&gt;
&lt;br /&gt;
===Roles Capabilities Table===&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibility&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===mdl_course_modules Table===&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Code Implementation Change Log (in personal development sandbox only)==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Issue&lt;br /&gt;
! Status&lt;br /&gt;
! Resolution/Description&lt;br /&gt;
! Date&lt;br /&gt;
|-&lt;br /&gt;
| Update the mdl_capabilities table to add course:activityaccessibility &lt;br /&gt;
and course:accessinaccessibleactivities capabilities via access.php&lt;br /&gt;
| Closed&lt;br /&gt;
| Capacity definitions added to lib/db/access.php&lt;br /&gt;
| 04/21/13&lt;br /&gt;
|-&lt;br /&gt;
| Update the mdl_course_modules table to add an accessibile field&lt;br /&gt;
| Closed&lt;br /&gt;
| Accessible field added (and added as an index - mirroring visible field) via lib/db/install.xml and lib/db/upgrade.php. Version number raised to 2012120303.23 in order to test access.php and upgrade.php, and to make it clear this version is an exemplar proof of concept that is not in the official Moodle upgrade path.&lt;br /&gt;
| 04/21/13&lt;br /&gt;
|-&lt;br /&gt;
| Enable rendering of Accessibility settings in course Settings page&lt;br /&gt;
| In progress&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39188</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39188"/>
		<updated>2013-04-21T13:26:30Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Code Implementation Change Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Separating Activity Hiding from Activity Access=&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
==Basic Use Case==&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
==The Problem Inherent in the Present Moodle Activity Hiding Schema==&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
==Existing Work-Arounds==&lt;br /&gt;
===Stealth Mode===&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
===Flexpage===&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
==Limitations of the Existing Work-Arounds==&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
==Functionality Provided by the Proposed Enhancement==&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
==Solution Design - User Experience/Functionality==&lt;br /&gt;
&lt;br /&gt;
===The Activity Settings Dialog===&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing On Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing Off Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
===The Editing Role Pages===&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessibile and Restrict Access Settings===&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessible and Completion Tracking Settings===&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
==Solution Design - Technical Specifications==&lt;br /&gt;
&lt;br /&gt;
===Roles Capabilities Table===&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibility&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===mdl_course_modules Table===&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Code Implementation Change Log ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Issue&lt;br /&gt;
! Status&lt;br /&gt;
! Resolution/Description&lt;br /&gt;
! Date&lt;br /&gt;
|-&lt;br /&gt;
| Update the mdl_capabilities table to add course:activityaccessibility &lt;br /&gt;
and course:accessinaccessibleactivities capabilities via access.php&lt;br /&gt;
| Closed&lt;br /&gt;
| Capacity definitions added to lib/db/access.php&lt;br /&gt;
| 04/21/13&lt;br /&gt;
|-&lt;br /&gt;
| Update the mdl_course_modules table to add an accessibile field&lt;br /&gt;
| Closed&lt;br /&gt;
| Accessible field added (and added as an index - mirroring visible field) via lib/db/install.xml and lib/db/upgrade.php. Version number raised to 2012120303.23 in order to test access.php and upgrade.php, and to make it clear this version is an exemplar proof of concept that is not in the official Moodle upgrade path.&lt;br /&gt;
| 04/21/13&lt;br /&gt;
|-&lt;br /&gt;
| Enable rendering of Accessibility settings in course Settings page&lt;br /&gt;
| In progress&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39187</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39187"/>
		<updated>2013-04-21T13:24:07Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Specification Change Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Separating Activity Hiding from Activity Access=&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
==Basic Use Case==&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
==The Problem Inherent in the Present Moodle Activity Hiding Schema==&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
==Existing Work-Arounds==&lt;br /&gt;
===Stealth Mode===&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
===Flexpage===&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
==Limitations of the Existing Work-Arounds==&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
==Functionality Provided by the Proposed Enhancement==&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
==Solution Design - User Experience/Functionality==&lt;br /&gt;
&lt;br /&gt;
===The Activity Settings Dialog===&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing On Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing Off Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
===The Editing Role Pages===&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessibile and Restrict Access Settings===&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessible and Completion Tracking Settings===&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
==Solution Design - Technical Specifications==&lt;br /&gt;
&lt;br /&gt;
===Roles Capabilities Table===&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibility&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===mdl_course_modules Table===&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Code Implementation Change Log ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Issue&lt;br /&gt;
! Status&lt;br /&gt;
! Resolution/Description&lt;br /&gt;
! Date&lt;br /&gt;
|-&lt;br /&gt;
| Update the mdl_capabilities table to add course:activityaccessibility &lt;br /&gt;
and course:accessinaccessibleactivities capabilities via access.php&lt;br /&gt;
| Closed&lt;br /&gt;
| Capacity definitions added to lib/db/access.php&lt;br /&gt;
| 04/21/13&lt;br /&gt;
|-&lt;br /&gt;
| Update the mdl_course_modules table to add an accessibile field&lt;br /&gt;
| Closed&lt;br /&gt;
| Accessible field added (and added as an index - mirroring visible field) via lib/db/install.xml and lib/db/upgrade.php. Version number raised to 2012120303.23 in order to test access.php and upgrade.php, and to make it clear this version is an exemplar proof of concept that is not in the official Moodle upgrade path.&lt;br /&gt;
| 04/21/13&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39186</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39186"/>
		<updated>2013-04-21T13:12:36Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Specification Change Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Separating Activity Hiding from Activity Access=&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
==Basic Use Case==&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
==The Problem Inherent in the Present Moodle Activity Hiding Schema==&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
==Existing Work-Arounds==&lt;br /&gt;
===Stealth Mode===&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
===Flexpage===&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
==Limitations of the Existing Work-Arounds==&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
==Functionality Provided by the Proposed Enhancement==&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
==Solution Design - User Experience/Functionality==&lt;br /&gt;
&lt;br /&gt;
===The Activity Settings Dialog===&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing On Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing Off Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
===The Editing Role Pages===&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessibile and Restrict Access Settings===&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessible and Completion Tracking Settings===&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
==Solution Design - Technical Specifications==&lt;br /&gt;
&lt;br /&gt;
===Roles Capabilities Table===&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibility&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===mdl_course_modules Table===&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Specification Change Log ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Issue&lt;br /&gt;
! Status&lt;br /&gt;
! Resolution/Description&lt;br /&gt;
! Date&lt;br /&gt;
|-&lt;br /&gt;
| Update the mdl_capabilities table to add course:activityaccessibility &lt;br /&gt;
and course:accessinaccessibleactivities capabilities via access.php&lt;br /&gt;
| Closed&lt;br /&gt;
| Capacity definitions added to lib/db/access.php&lt;br /&gt;
| 04/21/13&lt;br /&gt;
|-&lt;br /&gt;
| Update the mdl_course_modules table to add an accessibile field&lt;br /&gt;
| Closed&lt;br /&gt;
| Accessible field added (and added as an index - mirroring visible field) via lib/db/install.xml and lib/db/upgrade.php. Version number raised to 2012120303.23 in order to test access.php and upgrade.php, and to make it clear this version is an exemplar proof of concept that is not in the official Moodle upgrade path.&lt;br /&gt;
| 04/21/13&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39176</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39176"/>
		<updated>2013-04-19T23:44:42Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Roles Capabilities Table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Separating Activity Hiding from Activity Access=&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
==Basic Use Case==&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
==The Problem Inherent in the Present Moodle Activity Hiding Schema==&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
==Existing Work-Arounds==&lt;br /&gt;
===Stealth Mode===&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
===Flexpage===&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
==Limitations of the Existing Work-Arounds==&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
==Functionality Provided by the Proposed Enhancement==&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
==Solution Design - User Experience/Functionality==&lt;br /&gt;
&lt;br /&gt;
===The Activity Settings Dialog===&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing On Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing Off Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
===The Editing Role Pages===&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessibile and Restrict Access Settings===&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessible and Completion Tracking Settings===&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
==Solution Design - Technical Specifications==&lt;br /&gt;
&lt;br /&gt;
===Roles Capabilities Table===&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibility&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===mdl_course_modules Table===&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Specification Change Log ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Issue&lt;br /&gt;
! Status&lt;br /&gt;
! Resolution/Description&lt;br /&gt;
! Date&lt;br /&gt;
|-&lt;br /&gt;
| Update the mdl_capabilities table to add course:activityaccessibility &lt;br /&gt;
and course:accessinaccessibleactivities capabilities via access.php&lt;br /&gt;
| Open&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Update the mdl_course_modules table to add an accessibility field&lt;br /&gt;
| Open&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39175</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39175"/>
		<updated>2013-04-19T23:44:13Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Specification Change Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Separating Activity Hiding from Activity Access=&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
==Basic Use Case==&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
==The Problem Inherent in the Present Moodle Activity Hiding Schema==&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
==Existing Work-Arounds==&lt;br /&gt;
===Stealth Mode===&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
===Flexpage===&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
==Limitations of the Existing Work-Arounds==&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
==Functionality Provided by the Proposed Enhancement==&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
==Solution Design - User Experience/Functionality==&lt;br /&gt;
&lt;br /&gt;
===The Activity Settings Dialog===&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing On Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing Off Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
===The Editing Role Pages===&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessibile and Restrict Access Settings===&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessible and Completion Tracking Settings===&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
==Solution Design - Technical Specifications==&lt;br /&gt;
&lt;br /&gt;
===Roles Capabilities Table===&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===mdl_course_modules Table===&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Specification Change Log ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Issue&lt;br /&gt;
! Status&lt;br /&gt;
! Resolution/Description&lt;br /&gt;
! Date&lt;br /&gt;
|-&lt;br /&gt;
| Update the mdl_capabilities table to add course:activityaccessibility &lt;br /&gt;
and course:accessinaccessibleactivities capabilities via access.php&lt;br /&gt;
| Open&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Update the mdl_course_modules table to add an accessibility field&lt;br /&gt;
| Open&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39154</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39154"/>
		<updated>2013-04-18T12:54:35Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Solution Design - User Experience Functionality */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Separating Activity Hiding from Activity Access=&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
==Basic Use Case==&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
==The Problem Inherent in the Present Moodle Activity Hiding Schema==&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
==Existing Work-Arounds==&lt;br /&gt;
===Stealth Mode===&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
===Flexpage===&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
==Limitations of the Existing Work-Arounds==&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
==Functionality Provided by the Proposed Enhancement==&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
==Solution Design - User Experience/Functionality==&lt;br /&gt;
&lt;br /&gt;
===The Activity Settings Dialog===&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing On Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing Off Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
===The Editing Role Pages===&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessibile and Restrict Access Settings===&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessible and Completion Tracking Settings===&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
==Solution Design - Technical Specifications==&lt;br /&gt;
&lt;br /&gt;
===Roles Capabilities Table===&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===mdl_course_modules Table===&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Specification Change Log ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Issue&lt;br /&gt;
! Status&lt;br /&gt;
! Resolution/Description&lt;br /&gt;
! Date&lt;br /&gt;
|-&lt;br /&gt;
| Update the mdl_capabilities table to add course:activityaccessibity &lt;br /&gt;
and course:accessinaccessibleactivities capabilities via access.php&lt;br /&gt;
| Open&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Update the mdl_course_modules table to add an accessibility field&lt;br /&gt;
| Open&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39153</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39153"/>
		<updated>2013-04-18T12:53:51Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Technical Specifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Separating Activity Hiding from Activity Access=&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
==Basic Use Case==&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
==The Problem Inherent in the Present Moodle Activity Hiding Schema==&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
==Existing Work-Arounds==&lt;br /&gt;
===Stealth Mode===&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
===Flexpage===&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
==Limitations of the Existing Work-Arounds==&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
==Functionality Provided by the Proposed Enhancement==&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
==Solution Design - User Experience Functionality==&lt;br /&gt;
&lt;br /&gt;
===The Activity Settings Dialog===&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing On Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing Off Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
===The Editing Role Pages===&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessibile and Restrict Access Settings===&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessible and Completion Tracking Settings===&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
==Solution Design - Technical Specifications==&lt;br /&gt;
&lt;br /&gt;
===Roles Capabilities Table===&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===mdl_course_modules Table===&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Specification Change Log ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Issue&lt;br /&gt;
! Status&lt;br /&gt;
! Resolution/Description&lt;br /&gt;
! Date&lt;br /&gt;
|-&lt;br /&gt;
| Update the mdl_capabilities table to add course:activityaccessibity &lt;br /&gt;
and course:accessinaccessibleactivities capabilities via access.php&lt;br /&gt;
| Open&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Update the mdl_course_modules table to add an accessibility field&lt;br /&gt;
| Open&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39152</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39152"/>
		<updated>2013-04-18T12:53:06Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Solution Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Separating Activity Hiding from Activity Access=&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
==Basic Use Case==&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
==The Problem Inherent in the Present Moodle Activity Hiding Schema==&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
==Existing Work-Arounds==&lt;br /&gt;
===Stealth Mode===&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
===Flexpage===&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
==Limitations of the Existing Work-Arounds==&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
==Functionality Provided by the Proposed Enhancement==&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
==Solution Design - User Experience Functionality==&lt;br /&gt;
&lt;br /&gt;
===The Activity Settings Dialog===&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing On Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing Off Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
===The Editing Role Pages===&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessibile and Restrict Access Settings===&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessible and Completion Tracking Settings===&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
==Technical Specifications==&lt;br /&gt;
&lt;br /&gt;
===Roles Capabilities Table===&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===mdl_course_modules Table===&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Specification Change Log ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Issue&lt;br /&gt;
! Status&lt;br /&gt;
! Resolution/Description&lt;br /&gt;
! Date&lt;br /&gt;
|-&lt;br /&gt;
| Update the mdl_capabilities table to add course:activityaccessibity &lt;br /&gt;
and course:accessinaccessibleactivities capabilities via access.php&lt;br /&gt;
| Open&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Update the mdl_course_modules table to add an accessibility field&lt;br /&gt;
| Open&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39151</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39151"/>
		<updated>2013-04-18T12:41:58Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Specification Change Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Separating Activity Hiding from Activity Access=&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
==Basic Use Case==&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
==The Problem Inherent in the Present Moodle Activity Hiding Schema==&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
==Existing Work-Arounds==&lt;br /&gt;
===Stealth Mode===&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
===Flexpage===&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
==Limitations of the Existing Work-Arounds==&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
==Functionality Provided by the Proposed Enhancement==&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
==Solution Design==&lt;br /&gt;
&lt;br /&gt;
===The Activity Settings Dialog===&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing On Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing Off Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
===The Editing Role Pages===&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessibile and Restrict Access Settings===&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessible and Completion Tracking Settings===&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
==Technical Specifications==&lt;br /&gt;
&lt;br /&gt;
===Roles Capabilities Table===&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===mdl_course_modules Table===&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Specification Change Log ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Issue&lt;br /&gt;
! Status&lt;br /&gt;
! Resolution/Description&lt;br /&gt;
! Date&lt;br /&gt;
|-&lt;br /&gt;
| Update the mdl_capabilities table to add course:activityaccessibity &lt;br /&gt;
and course:accessinaccessibleactivities capabilities via access.php&lt;br /&gt;
| Open&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Update the mdl_course_modules table to add an accessibility field&lt;br /&gt;
| Open&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39150</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39150"/>
		<updated>2013-04-18T12:40:06Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Specification Change Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Separating Activity Hiding from Activity Access=&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
==Basic Use Case==&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
==The Problem Inherent in the Present Moodle Activity Hiding Schema==&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
==Existing Work-Arounds==&lt;br /&gt;
===Stealth Mode===&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
===Flexpage===&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
==Limitations of the Existing Work-Arounds==&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
==Functionality Provided by the Proposed Enhancement==&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
==Solution Design==&lt;br /&gt;
&lt;br /&gt;
===The Activity Settings Dialog===&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing On Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing Off Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
===The Editing Role Pages===&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessibile and Restrict Access Settings===&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessible and Completion Tracking Settings===&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
==Technical Specifications==&lt;br /&gt;
&lt;br /&gt;
===Roles Capabilities Table===&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===mdl_course_modules Table===&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Specification Change Log ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Issue&lt;br /&gt;
! Status&lt;br /&gt;
! Resolution/Description&lt;br /&gt;
! Date&lt;br /&gt;
|-&lt;br /&gt;
| Update mdl_capabilities table to add course:activityaccessibity &lt;br /&gt;
and course:accessinaccessibleactivities capabilities via access.php&lt;br /&gt;
| Open&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39149</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39149"/>
		<updated>2013-04-18T12:38:58Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Specification Change Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Separating Activity Hiding from Activity Access=&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
==Basic Use Case==&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
==The Problem Inherent in the Present Moodle Activity Hiding Schema==&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
==Existing Work-Arounds==&lt;br /&gt;
===Stealth Mode===&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
===Flexpage===&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
==Limitations of the Existing Work-Arounds==&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
==Functionality Provided by the Proposed Enhancement==&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
==Solution Design==&lt;br /&gt;
&lt;br /&gt;
===The Activity Settings Dialog===&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing On Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing Off Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
===The Editing Role Pages===&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessibile and Restrict Access Settings===&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessible and Completion Tracking Settings===&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
==Technical Specifications==&lt;br /&gt;
&lt;br /&gt;
===Roles Capabilities Table===&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===mdl_course_modules Table===&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Specification Change Log ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Issue&lt;br /&gt;
! Status&lt;br /&gt;
! Resolution/Description&lt;br /&gt;
! Date&lt;br /&gt;
|-&lt;br /&gt;
| Update capacities to add course:activityaccessibity &lt;br /&gt;
and course:accessinaccessibleactivities via access.php&lt;br /&gt;
| Open&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39148</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39148"/>
		<updated>2013-04-18T12:37:38Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Specification Change Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Separating Activity Hiding from Activity Access=&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
==Basic Use Case==&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
==The Problem Inherent in the Present Moodle Activity Hiding Schema==&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
==Existing Work-Arounds==&lt;br /&gt;
===Stealth Mode===&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
===Flexpage===&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
==Limitations of the Existing Work-Arounds==&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
==Functionality Provided by the Proposed Enhancement==&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
==Solution Design==&lt;br /&gt;
&lt;br /&gt;
===The Activity Settings Dialog===&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing On Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing Off Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
===The Editing Role Pages===&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessibile and Restrict Access Settings===&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessible and Completion Tracking Settings===&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
==Technical Specifications==&lt;br /&gt;
&lt;br /&gt;
===Roles Capabilities Table===&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===mdl_course_modules Table===&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Specification Change Log ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Issue&lt;br /&gt;
! Status&lt;br /&gt;
! Resolution/Description&lt;br /&gt;
! Date&lt;br /&gt;
|-&lt;br /&gt;
| Update capacities to add course:activityaccessibity &lt;br /&gt;
and course:accessinaccessibleactivities via access.php&lt;br /&gt;
| Open&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39147</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39147"/>
		<updated>2013-04-18T12:36:55Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Specification Change Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Separating Activity Hiding from Activity Access=&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
==Basic Use Case==&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
==The Problem Inherent in the Present Moodle Activity Hiding Schema==&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
==Existing Work-Arounds==&lt;br /&gt;
===Stealth Mode===&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
===Flexpage===&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
==Limitations of the Existing Work-Arounds==&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
==Functionality Provided by the Proposed Enhancement==&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
==Solution Design==&lt;br /&gt;
&lt;br /&gt;
===The Activity Settings Dialog===&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing On Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing Off Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
===The Editing Role Pages===&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessibile and Restrict Access Settings===&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessible and Completion Tracking Settings===&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
==Technical Specifications==&lt;br /&gt;
&lt;br /&gt;
===Roles Capabilities Table===&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===mdl_course_modules Table===&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Specification Change Log ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Issue&lt;br /&gt;
! Status&lt;br /&gt;
! Resolution/Description&lt;br /&gt;
! Date&lt;br /&gt;
|-&lt;br /&gt;
| Update capacities to add course:activityaccessibity and course:accessinaccessibleactivities via access.php&lt;br /&gt;
| Open&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39146</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39146"/>
		<updated>2013-04-18T12:35:06Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Specification Change Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Separating Activity Hiding from Activity Access=&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
==Basic Use Case==&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
==The Problem Inherent in the Present Moodle Activity Hiding Schema==&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
==Existing Work-Arounds==&lt;br /&gt;
===Stealth Mode===&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
===Flexpage===&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
==Limitations of the Existing Work-Arounds==&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
==Functionality Provided by the Proposed Enhancement==&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
==Solution Design==&lt;br /&gt;
&lt;br /&gt;
===The Activity Settings Dialog===&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing On Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing Off Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
===The Editing Role Pages===&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessibile and Restrict Access Settings===&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessible and Completion Tracking Settings===&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
==Technical Specifications==&lt;br /&gt;
&lt;br /&gt;
===Roles Capabilities Table===&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===mdl_course_modules Table===&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Specification Change Log ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Issue&lt;br /&gt;
! Status&lt;br /&gt;
! Resolution/Description&lt;br /&gt;
! Date&lt;br /&gt;
|-&lt;br /&gt;
| Update capacities via access.php&lt;br /&gt;
| Open&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39145</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39145"/>
		<updated>2013-04-18T12:32:34Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Specification Change Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Separating Activity Hiding from Activity Access=&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
==Basic Use Case==&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
==The Problem Inherent in the Present Moodle Activity Hiding Schema==&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
==Existing Work-Arounds==&lt;br /&gt;
===Stealth Mode===&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
===Flexpage===&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
==Limitations of the Existing Work-Arounds==&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
==Functionality Provided by the Proposed Enhancement==&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
==Solution Design==&lt;br /&gt;
&lt;br /&gt;
===The Activity Settings Dialog===&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing On Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing Off Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
===The Editing Role Pages===&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessibile and Restrict Access Settings===&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessible and Completion Tracking Settings===&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
==Technical Specifications==&lt;br /&gt;
&lt;br /&gt;
===Roles Capabilities Table===&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===mdl_course_modules Table===&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Specification Change Log ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Issue&lt;br /&gt;
! Status&lt;br /&gt;
! Resolution/Description&lt;br /&gt;
! Date&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39144</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39144"/>
		<updated>2013-04-18T12:32:15Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Specification Change Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Separating Activity Hiding from Activity Access=&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
==Basic Use Case==&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
==The Problem Inherent in the Present Moodle Activity Hiding Schema==&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
==Existing Work-Arounds==&lt;br /&gt;
===Stealth Mode===&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
===Flexpage===&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
==Limitations of the Existing Work-Arounds==&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
==Functionality Provided by the Proposed Enhancement==&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
==Solution Design==&lt;br /&gt;
&lt;br /&gt;
===The Activity Settings Dialog===&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing On Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing Off Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
===The Editing Role Pages===&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessibile and Restrict Access Settings===&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessible and Completion Tracking Settings===&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
==Technical Specifications==&lt;br /&gt;
&lt;br /&gt;
===Roles Capabilities Table===&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===mdl_course_modules Table===&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Specification Change Log ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Issue&lt;br /&gt;
! Status&lt;br /&gt;
! Resolution/Description&lt;br /&gt;
| Date&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39143</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39143"/>
		<updated>2013-04-18T12:29:47Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: Undo revision 39142 by Dloomer (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Separating Activity Hiding from Activity Access=&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
==Basic Use Case==&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
==The Problem Inherent in the Present Moodle Activity Hiding Schema==&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
==Existing Work-Arounds==&lt;br /&gt;
===Stealth Mode===&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
===Flexpage===&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
==Limitations of the Existing Work-Arounds==&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
==Functionality Provided by the Proposed Enhancement==&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
==Solution Design==&lt;br /&gt;
&lt;br /&gt;
===The Activity Settings Dialog===&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing On Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing Off Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
===The Editing Role Pages===&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessibile and Restrict Access Settings===&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessible and Completion Tracking Settings===&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
==Technical Specifications==&lt;br /&gt;
&lt;br /&gt;
===Roles Capabilities Table===&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===mdl_course_modules Table===&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Specification Change Log ==&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39142</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39142"/>
		<updated>2013-04-18T12:28:19Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Specification Change Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Separating Activity Hiding from Activity Access=&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
==Basic Use Case==&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
==The Problem Inherent in the Present Moodle Activity Hiding Schema==&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
==Existing Work-Arounds==&lt;br /&gt;
===Stealth Mode===&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
===Flexpage===&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
==Limitations of the Existing Work-Arounds==&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
==Functionality Provided by the Proposed Enhancement==&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
==Solution Design==&lt;br /&gt;
&lt;br /&gt;
===The Activity Settings Dialog===&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing On Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing Off Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
===The Editing Role Pages===&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessibile and Restrict Access Settings===&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessible and Completion Tracking Settings===&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
==Technical Specifications==&lt;br /&gt;
&lt;br /&gt;
===Roles Capabilities Table===&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===mdl_course_modules Table===&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Specification Change Log ==&lt;br /&gt;
&lt;br /&gt;
===Roles Capabilities Table===&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Issue&lt;br /&gt;
! Status&lt;br /&gt;
! Resolution/Description&lt;br /&gt;
! Date&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39140</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39140"/>
		<updated>2013-04-18T11:01:38Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Separating Activity Hiding from Activity Access */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Separating Activity Hiding from Activity Access=&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
==Basic Use Case==&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
==The Problem Inherent in the Present Moodle Activity Hiding Schema==&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
==Existing Work-Arounds==&lt;br /&gt;
===Stealth Mode===&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
===Flexpage===&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
==Limitations of the Existing Work-Arounds==&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
==Functionality Provided by the Proposed Enhancement==&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
==Solution Design==&lt;br /&gt;
&lt;br /&gt;
===The Activity Settings Dialog===&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing On Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
===The Course Page in Editing Off Mode===&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
===The Editing Role Pages===&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessibile and Restrict Access Settings===&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
===The Relationship Between the Accessible and Completion Tracking Settings===&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
==Technical Specifications==&lt;br /&gt;
&lt;br /&gt;
===Roles Capabilities Table===&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===mdl_course_modules Table===&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Specification Change Log ==&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39139</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39139"/>
		<updated>2013-04-18T10:58:46Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Separating Activity Hiding from Activity Access */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Separating Activity Hiding from Activity Access=&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking Settings====&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
===Technical Specifications===&lt;br /&gt;
&lt;br /&gt;
====Roles Capabilities Table====&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====mdl_course_modules Table====&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Specification Change Log ===&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39138</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39138"/>
		<updated>2013-04-18T10:58:07Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* mdl_course_modules Table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking Settings====&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
===Technical Specifications===&lt;br /&gt;
&lt;br /&gt;
====Roles Capabilities Table====&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====mdl_course_modules Table====&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Specification Change Log ===&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39131</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39131"/>
		<updated>2013-04-18T08:26:48Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* mdl_course_modules Table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking Settings====&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
===Technical Specifications===&lt;br /&gt;
&lt;br /&gt;
====Roles Capabilities Table====&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====mdl_course_modules Table====&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39129</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39129"/>
		<updated>2013-04-18T08:25:17Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* mdl_course_modules Table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking Settings====&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
===Technical Specifications===&lt;br /&gt;
&lt;br /&gt;
====Roles Capabilities Table====&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====mdl_course_modules Table====&lt;br /&gt;
&lt;br /&gt;
The following field will be added to the mdl_course_modules table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| accessible&lt;br /&gt;
| tinyint(1) [1]&lt;br /&gt;
| Primary key&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39127</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39127"/>
		<updated>2013-04-18T08:23:23Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* mdl_course_modules Table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking Settings====&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
===Technical Specifications===&lt;br /&gt;
&lt;br /&gt;
====Roles Capabilities Table====&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====mdl_course_modules Table====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| id&lt;br /&gt;
| int(10), unique index&lt;br /&gt;
| Primary key&lt;br /&gt;
|-&lt;br /&gt;
| cmid&lt;br /&gt;
| int(10), indexed&lt;br /&gt;
| Foreign key to course_modules table.&lt;br /&gt;
|-&lt;br /&gt;
| outcomeareaid&lt;br /&gt;
| int(10), indexed&lt;br /&gt;
| Foreign key to outcome_areas table.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39126</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39126"/>
		<updated>2013-04-18T08:22:16Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Roles Capabilities Table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking Settings====&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
===Technical Specifications===&lt;br /&gt;
&lt;br /&gt;
====Roles Capabilities Table====&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====mdl_course_modules Table====&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39125</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39125"/>
		<updated>2013-04-18T08:17:03Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* The Course Page in Editing On Mode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is inaccessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and inaccessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity inaccessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking Settings====&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
===Technical Specifications===&lt;br /&gt;
&lt;br /&gt;
====Roles Capabilities Table====&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39124</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39124"/>
		<updated>2013-04-18T08:16:12Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* The Activity Settings Dialog */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Inaccessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Inaccessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is non-accessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and non-accessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking Settings====&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
===Technical Specifications===&lt;br /&gt;
&lt;br /&gt;
====Roles Capabilities Table====&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39123</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39123"/>
		<updated>2013-04-18T08:15:21Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Functionality Provided by the Proposed Enhancement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and inaccessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and inaccessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in inaccessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/inaccessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as inaccessible.&lt;br /&gt;
# The accessible/inaccessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Non-Accessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Non-Accessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is non-accessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and non-accessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking Settings====&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
===Technical Specifications===&lt;br /&gt;
&lt;br /&gt;
====Roles Capabilities Table====&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39122</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39122"/>
		<updated>2013-04-18T08:13:53Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Role capabilities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and non-accessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and non-accessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in non-accessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/non-accessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as non-accessible.&lt;br /&gt;
# The accessible/non-accessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Non-Accessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Non-Accessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is non-accessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and non-accessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking Settings====&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
===Technical Specifications===&lt;br /&gt;
&lt;br /&gt;
====Roles Capabilities Table====&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39121</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39121"/>
		<updated>2013-04-18T08:12:03Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Role capabilities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and non-accessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and non-accessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in non-accessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/non-accessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as non-accessible.&lt;br /&gt;
# The accessible/non-accessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Non-Accessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Non-Accessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is non-accessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and non-accessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking Settings====&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
===Technical Specifications===&lt;br /&gt;
&lt;br /&gt;
====Role capabilities====&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39120</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39120"/>
		<updated>2013-04-18T08:11:06Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Role capabilities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and non-accessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and non-accessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in non-accessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/non-accessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as non-accessible.&lt;br /&gt;
# The accessible/non-accessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Non-Accessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Non-Accessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is non-accessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and non-accessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking Settings====&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
=====Role capabilities=====&lt;br /&gt;
&lt;br /&gt;
The following new capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39119</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39119"/>
		<updated>2013-04-18T08:10:36Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Role capabilities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and non-accessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and non-accessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in non-accessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/non-accessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as non-accessible.&lt;br /&gt;
# The accessible/non-accessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Non-Accessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Non-Accessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is non-accessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and non-accessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking Settings====&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
=====Role capabilities=====&lt;br /&gt;
&lt;br /&gt;
The following capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
| write&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
| read&lt;br /&gt;
| 70&lt;br /&gt;
| Moodle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39118</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39118"/>
		<updated>2013-04-18T08:02:17Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Technical Specifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and non-accessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and non-accessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in non-accessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/non-accessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as non-accessible.&lt;br /&gt;
# The accessible/non-accessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Non-Accessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Non-Accessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is non-accessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and non-accessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking Settings====&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
=====Role capabilities=====&lt;br /&gt;
&lt;br /&gt;
The following capabilities will appear in the mdl_capabilities table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
! Captype&lt;br /&gt;
! Contextlevel&lt;br /&gt;
! Component&lt;br /&gt;
! Riskbitmask&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39114</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39114"/>
		<updated>2013-04-18T07:56:22Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* The Relationship Between the Accessible and Completion Tracking Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and non-accessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and non-accessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in non-accessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/non-accessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as non-accessible.&lt;br /&gt;
# The accessible/non-accessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Non-Accessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Non-Accessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is non-accessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and non-accessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking Settings====&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;br /&gt;
&lt;br /&gt;
===Technical Specifications===&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39113</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39113"/>
		<updated>2013-04-18T07:54:57Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Role capabilities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and non-accessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and non-accessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in non-accessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/non-accessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as non-accessible.&lt;br /&gt;
# The accessible/non-accessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Non-Accessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Non-Accessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is non-accessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and non-accessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking Settings====&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39112</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39112"/>
		<updated>2013-04-18T07:50:20Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Role capabilities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and non-accessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and non-accessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in non-accessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/non-accessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as non-accessible.&lt;br /&gt;
# The accessible/non-accessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Non-Accessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Non-Accessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is non-accessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and non-accessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
=====Role capabilities=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking Settings====&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39111</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39111"/>
		<updated>2013-04-18T07:49:33Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* The Editing Role Pages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and non-accessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and non-accessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in non-accessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/non-accessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as non-accessible.&lt;br /&gt;
# The accessible/non-accessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Non-Accessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Non-Accessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is non-accessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and non-accessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/inaccessible, and Access inaccessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
= Role capabilities =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! Capability&lt;br /&gt;
|-&lt;br /&gt;
| Make activities accessible/inaccessible&lt;br /&gt;
| moodle/course:activityaccessibity&lt;br /&gt;
|-&lt;br /&gt;
| Access inaccessible activities&lt;br /&gt;
| moodle/course:accessinaccessibleactivities&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking Settings====&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39054</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=39054"/>
		<updated>2013-04-16T00:55:24Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* The Relationship Between the Accessibile and Restrict Access Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and non-accessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and non-accessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in non-accessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/non-accessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as non-accessible.&lt;br /&gt;
# The accessible/non-accessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Non-Accessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Non-Accessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is non-accessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and non-accessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/non-accessible, and Access non-accessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity AND/OR the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking Settings====&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=38969</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=38969"/>
		<updated>2013-04-15T05:21:47Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* Functionality Provided by the Proposed Enhancement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the activity Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and non-accessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and non-accessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in non-accessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/non-accessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as non-accessible.&lt;br /&gt;
# The accessible/non-accessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Non-Accessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Non-Accessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is non-accessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and non-accessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/non-accessible, and Access non-accessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity and/or the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking Settings====&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=38959</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=38959"/>
		<updated>2013-04-14T06:52:37Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* The Relationship Between the Accessible and Completion Tracking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the course Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and non-accessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and non-accessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in non-accessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/non-accessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as non-accessible.&lt;br /&gt;
# The accessible/non-accessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Non-Accessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Non-Accessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is non-accessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and non-accessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/non-accessible, and Access non-accessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity and/or the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking Settings====&lt;br /&gt;
&lt;br /&gt;
While the proposed enhancement will not directly affect Moodle&#039;s Completion Tracking functionality, hiding Moodle generated activity links from students also hides the activities&#039; completion check boxes. This could present an unintended problem in situations where the activities are hidden but accessible via teacher created links because students would not be able to check/see whether the status of such activities was completed. It would, perhaps, make sense to also display the activity completion check boxes for students to check/see on the various activity summary list pages and/or add an Activity Completion Report for students in the course navigation block.&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=38958</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=38958"/>
		<updated>2013-04-14T06:34:53Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* The Relationship Between the Accessible and */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the course Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and non-accessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and non-accessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in non-accessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/non-accessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as non-accessible.&lt;br /&gt;
# The accessible/non-accessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Non-Accessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Non-Accessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is non-accessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and non-accessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/non-accessible, and Access non-accessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity and/or the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and Completion Tracking====&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=38957</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=38957"/>
		<updated>2013-04-14T06:09:33Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* The Relationship Between the Accessibile and Restrict Access Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the course Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and non-accessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and non-accessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in non-accessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/non-accessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as non-accessible.&lt;br /&gt;
# The accessible/non-accessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Non-Accessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Non-Accessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is non-accessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and non-accessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/non-accessible, and Access non-accessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional Restrict access feature which can be enabled by checking the Enable conditional access (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed Accessible selection box should appear in the Common module settings section of the Settings page rather than in the Restrict access section; Restrict access functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a Restrict access section appears on the course Settings page of each course directly below the Common module settings section. The Restrict access section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings Conditional activities settings.])  This Restrict access feature employs the existing Moodle Visibile (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the Visible toggle is set to Hide, Restrict access functionality is disabled;&lt;br /&gt;
* when the Visible toggle is set to Show, the conditions set in the Restrict access section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon Restrict access functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing Restrict access feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the Accessible toggle is set to Deny student access to this activity and/or the Visible toggle is set to Hide, the Restrict access section should be greyed out and Restrict access functionality should be disabled;&lt;br /&gt;
* when the Accessible toggle is set to Allow student access to this activity and the Visible toggle is set to Show, the Restrict access section should appear normally and the conditions set in the Restrict access section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and ====&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=38956</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=38956"/>
		<updated>2013-04-14T06:05:51Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* The Relationship Between the Accessibile and Restrict Access Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the course Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and non-accessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and non-accessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in non-accessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/non-accessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as non-accessible.&lt;br /&gt;
# The accessible/non-accessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Non-Accessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Non-Accessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is non-accessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and non-accessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/non-accessible, and Access non-accessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional &amp;quot;Restrict access&amp;quot; feature which can be enabled by checking the &amp;quot;Enable conditional access&amp;quot; (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. Although they are related, the proposed &amp;quot;Accessible&amp;quot; selection box should appear in the &amp;quot;Common module settings&amp;quot; section of the &amp;quot;Settings&amp;quot; page rather than in the &amp;quot;Restrict access&amp;quot; section; &amp;quot;Restrict access&amp;quot; functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature. &lt;br /&gt;
&lt;br /&gt;
When conditional access is enabled, a &amp;quot;Restrict access&amp;quot; section appears on the course &amp;quot;Settings&amp;quot; page of each course directly below the &amp;quot;Common module settings&amp;quot; section. The &amp;quot;Restrict access&amp;quot; section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings &amp;quot;Conditional activities settings.&amp;quot;])  This &amp;quot;Restrict access&amp;quot; feature employs the existing Moodle &amp;quot;Visibile&amp;quot; (Hide/Show) schema described above in order to limit student access to activities.&lt;br /&gt;
&lt;br /&gt;
Currently:&lt;br /&gt;
&lt;br /&gt;
* when the &amp;quot;Visible&amp;quot; toggle is set to &amp;quot;Hide,&amp;quot; &amp;quot;Restrict access&amp;quot; functionality is disabled;&lt;br /&gt;
* when the &amp;quot;Visible&amp;quot; toggle is set to &amp;quot;Show,&amp;quot; the conditions set in the &amp;quot;Restrict access&amp;quot; section control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
Separating visibility from accessibility in Moodle will have an impact upon &amp;quot;Restrict access&amp;quot; functionality, and the functionality of the proposed enhancement should be coordinated with the functionality of the existing &amp;quot;Restrict access&amp;quot; feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the &amp;quot;Accessible&amp;quot; toggle is set to &amp;quot;Deny student access to this activity&amp;quot; and/or the &amp;quot;Visible&amp;quot; toggle is set to &amp;quot;Hide,&amp;quot; the &amp;quot;Restrict access&amp;quot; section should be greyed out and &amp;quot;Restrict access&amp;quot; functionality should be disabled;&lt;br /&gt;
* when the &amp;quot;Accessible&amp;quot; toggle is set to &amp;quot;Allow student access to this activity&amp;quot; and the &amp;quot;Visible&amp;quot; toggle is set to &amp;quot;Show,&amp;quot; the &amp;quot;Restrict access&amp;quot; section should appear normally and the conditions set in the &amp;quot;Restrict access&amp;quot; section should control activity availability and visibility.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessible and ====&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=38955</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=38955"/>
		<updated>2013-04-14T05:44:25Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* The Relationship Between the Accessibile and Restrict Access Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the course Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and non-accessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and non-accessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in non-accessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/non-accessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as non-accessible.&lt;br /&gt;
# The accessible/non-accessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Non-Accessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Non-Accessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is non-accessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and non-accessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/non-accessible, and Access non-accessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Following is a list of issues to be covered in this section.&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional &amp;quot;Restrict access&amp;quot; feature which can be enabled by checking the &amp;quot;Enable conditional access&amp;quot; (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. When enabled, a Restrict access section appears on the course Settings page of each course directly below the &amp;quot;Common module settings&amp;quot; section. The &amp;quot;Restrict access&amp;quot; section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings &amp;quot;Conditional activities settings.&amp;quot;])  This &amp;quot;Restrict access&amp;quot; feature employs the existing Moodle &amp;quot;Visibile&amp;quot; (Hide/Show) schema described above in order to limit student access to activities, and separating visibility from accessibility in Moodle will have an impact upon &amp;quot;Restrict access&amp;quot; functionality.&lt;br /&gt;
&lt;br /&gt;
Although they are related, the proposed &amp;quot;Accessible&amp;quot; selection box should appear in the &amp;quot;Common module settings&amp;quot; section of the &amp;quot;Settings&amp;quot; page rather than in the &amp;quot;Restrict access&amp;quot; section; &amp;quot;Restrict access&amp;quot; functionality is an optional Moodle feature and the proposed enhancement should not be an optional feature.  However, the functionality of the proposed enhancement must coordinate with the functionality of the existing &amp;quot;Restrict access&amp;quot; feature as follows:&lt;br /&gt;
&lt;br /&gt;
* when the &amp;quot;Accessible&amp;quot; toggle is set to &amp;quot;Deny student access to this activity&amp;quot; and/or the &amp;quot;Visible&amp;quot; toggle is set to &amp;quot;Hide,&amp;quot; the &amp;quot;Restrict access&amp;quot; section should be greyed out and &amp;quot;Restrict access&amp;quot; functionality should be disabled;&lt;br /&gt;
* when the &amp;quot;Accessible&amp;quot; toggle is set to &amp;quot;Allow student access to this activity&amp;quot; and the &amp;quot;Visible&amp;quot; toggle is set to &amp;quot;Show,&amp;quot; the &amp;quot;Restrict access&amp;quot; section should appear normally and the conditions set in the &amp;quot;Restrict access&amp;quot; section should control activity availability and visibility&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=38954</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=38954"/>
		<updated>2013-04-14T04:44:11Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* The Relationship Between the Accessibile and Restrict Access Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the course Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and non-accessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and non-accessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in non-accessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/non-accessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as non-accessible.&lt;br /&gt;
# The accessible/non-accessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Non-Accessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Non-Accessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is non-accessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and non-accessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/non-accessible, and Access non-accessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Following is a list of issues to be covered in this section.&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 contains an optional &amp;quot;Restrict access&amp;quot; feature which can be enabled by checking the &amp;quot;Enable conditional access&amp;quot; (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. When enabled, a Restrict access section appears on the course Settings page of each course directly below the &amp;quot;Common module settings&amp;quot; section. The &amp;quot;Restrict access&amp;quot; section allows teachers to set conditions under which an activity should be accessible to students.  Accessibility can be based upon dates, and/or score ranges of other activities, and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings &amp;quot;Conditional activities settings.&amp;quot;]) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Accessible functionality needs to coordinate with conditional activities settings&lt;br /&gt;
Deny access setting of Accessible should override the Restrict Access settings&lt;br /&gt;
When Accessible is set to Deny access, if a teacher attempts to use Restrict access either Accessible should be automatically set to Allow access, or they should be given a warning that they must change Accessible to Allow access in order for Restrict access settings to work&lt;br /&gt;
Restrict access settings should override the Allow access settings of Accessible&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=38953</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=38953"/>
		<updated>2013-04-14T04:38:07Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* The Relationship Between the Accessibile and Restrict Access Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the course Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and non-accessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and non-accessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in non-accessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/non-accessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as non-accessible.&lt;br /&gt;
# The accessible/non-accessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Non-Accessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Non-Accessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is non-accessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and non-accessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/non-accessible, and Access non-accessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Following is a list of issues to be covered in this section.&lt;br /&gt;
&lt;br /&gt;
Moodle now contains an optional &amp;quot;Restrict access&amp;quot; feature which can be enabled by checking the &amp;quot;Enable conditional access&amp;quot; (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. When enabled, a Restrict access section appears on the course Settings page of each course. The Restrict access section asks for conditions when the activity (or resource) should be visible. This can be based upon dates, and/or score ranges of other activities and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See [https://docs.moodle.org/24/en/Conditional_activities_settings &amp;quot;Conditional activities settings.&amp;quot;]) &lt;br /&gt;
Accessible functionality needs to coordinate with conditional activities settings&lt;br /&gt;
Deny access setting of Accessible should override the Restrict Access settings&lt;br /&gt;
When Accessible is set to Deny access, if a teacher attempts to use Restrict access either Accessible should be automatically set to Allow access, or they should be given a warning that they must change Accessible to Allow access in order for Restrict access settings to work&lt;br /&gt;
Restrict access settings should override the Allow access settings of Accessible&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=38952</id>
		<title>User talk:Douglas Loomer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Douglas_Loomer&amp;diff=38952"/>
		<updated>2013-04-14T04:36:21Z</updated>

		<summary type="html">&lt;p&gt;Dloomer: /* The Relationship Between the Accessibile and Restrict Access Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Separating Activity Hiding from Activity Access==&lt;br /&gt;
&lt;br /&gt;
This is a proposal for separating activity hiding from activity access in Moodle 2.4.+ and beyond. I am currently developing the proposed code as a hack/patch for the Shanghai American School Moodle 2.4 installation, but would be happy to share the code with anyone interested.&lt;br /&gt;
&lt;br /&gt;
In its current form, hiding an activity from student view in Moodle does two basic things:&lt;br /&gt;
* stops the html relating to the activity from being rendered on the page in Student view;&lt;br /&gt;
* prevents students from accessing the activity via the activity&#039;s url.&lt;br /&gt;
&lt;br /&gt;
In 2006 [https://moodle.org/user/view.php?id=29446&amp;amp;course=5 Robert Brenstein] created Moodle Tracker MDL-4782 in which he proposed a change to Moodle which would allow teachers to hide activities from students yet make them accessible to students via hyperlinking. That tracker has attracted 108 votes and this feature was slated to be added to the Moodle core in Moodle 2.0.  However, due to developer time constraints it remains unimplemented.&lt;br /&gt;
&lt;br /&gt;
===Basic Use Case===&lt;br /&gt;
&lt;br /&gt;
The requests for this feature come primarily from teachers who want to provide links to activities in editable text areas such as Moodle labels or Moodle activities. Linking to activites in editable text areas allows teachers to create a context for the activities that makes their purpose clearer and potentially more asthetically pleasing than the list format generated in a standard Moodle layout. In the following example, note how links to Moodle activities are presented within the context of the directions for their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample1.png|center|frame|Linking to activities in editable areas]]&lt;br /&gt;
&lt;br /&gt;
===The Problem Inherent in the Present Moodle Activity Hiding Schema===&lt;br /&gt;
&lt;br /&gt;
At present when an activity is created in Moodle a link to the activity is placed within a section of the class page. As a consequence, when teachers link to an activity within an editable text area (either within another activity or within a label on the course page) two links to the activity appear - their text area link and the link generated by Moodle which appears outside the text area where they created their activity link. The Moodle generated link cannot be hidden because hiding not only removes the link from the page, but also denies students access to the activity linked in the editable text area. The existence of two links to the activity can be very confusing to students. Also, in the case of teachers who choose to present essentially all their content within labels in each section area, the single column list of activities Moodle generates by default is unnecessary and even confusing to students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ComSciClassExample2.png|center|frame|Linking to activities in editable areas with Moodle generated activity links also displayed]]&lt;br /&gt;
&lt;br /&gt;
===Existing Work-Arounds===&lt;br /&gt;
====Stealth Mode====&lt;br /&gt;
&lt;br /&gt;
In an effort to avoid presenting students with multiple links when using text area linking some teachers employ what has come to be known as activity Stealth Mode. This involves leaving activities unhidden and moving the Moodle generated links to a hidden section at the end of the class page. (See this [https://docs.moodle.org/dev/Stealth_mode_and_nested_activities Stealth mode and nested activities] dev page for a more detailed description of this approach and the special implementation of it created by [https://moodle.org/user/view.php?id=93821&amp;amp;course=5 Tim Hunt] of the Open University.)&lt;br /&gt;
&lt;br /&gt;
====Flexpage====&lt;br /&gt;
&lt;br /&gt;
A second approach to avoiding the problem of multiple links when using text area linking is that taken by the Flexpage course format Moodle plugin (add-on). Like the Stealth Mode approach, the Flexpage course format leaves activities unhidden and moves activity creation to a location separate from the main course page. (See the [https://moodle.org/plugins/view.php?plugin=format_flexpage FlexPage Plugin] page for more information about Flexpage.)&lt;br /&gt;
&lt;br /&gt;
===Limitations of the Existing Work-Arounds===&lt;br /&gt;
&lt;br /&gt;
While it is possible to eliminate the problem of double links using Stealth Mode or Flexpage, both require multiple steps and page transitions to accomplish the task. A more significant limitation, however, is that some important Moodle features (e.g. Profile Activity Reports, Activity block summary reports) assume that Moodle generated activity links will be located in the course sections where they are used. Moving Moodle generated activity links from their expected locations makes a hash of these features rendering what they produce confusing and essentially unusable.&lt;br /&gt;
&lt;br /&gt;
===Functionality Provided by the Proposed Enhancement===&lt;br /&gt;
The proposed enhancement eliminates the problems inherent in the current work-arounds, allowing instructors to create more complex and varied course setups without having to twist and bend their reality, and things like Profile Activity Reports or Activity block summary reports are as they should be.&lt;br /&gt;
# Teachers will be able to:&lt;br /&gt;
#* using Moodle&#039;s existing activity creation schema create and maintain activities in the course section locations where they logically belong (considering course work flow and progression);&lt;br /&gt;
#* using Moodle&#039;s existing activity hiding schema hide activities from student view on the course page (via the course Settings dialog and course Editing on mode icons);&lt;br /&gt;
#* using Moodle&#039;s existing text editing area hyperlink creation schema create links to hidden activities in any editable text area located in the same course;&lt;br /&gt;
#* place activities into any of four possible states (via the course Settings dialog and course Editing on mode icons):&lt;br /&gt;
#*# visible and accessible&lt;br /&gt;
#*# visible and non-accessible&lt;br /&gt;
#*# invisible and accessible&lt;br /&gt;
#*# invisible and non-accessible&lt;br /&gt;
# Students will be able to access hidden activities which are in accessible state using teacher created links.&lt;br /&gt;
# Students will be unable to access hidden activities which are in non-accessible state.&lt;br /&gt;
# Administrators will be able to:&lt;br /&gt;
#* assign and unassign to any role the right to set the accessible/non-accessible flag for activities;&lt;br /&gt;
#* assign and unassign to any role the right to access activities flagged as non-accessible.&lt;br /&gt;
# The accessible/non-accessible flag will not alter the user&#039;s experience of the functionality of Moodle&#039;s existing Restrict access schema.&lt;br /&gt;
&lt;br /&gt;
===Solution Design===&lt;br /&gt;
&lt;br /&gt;
====The Activity Settings Dialog====&lt;br /&gt;
&lt;br /&gt;
The Common module settings section of the Activity Settings dialog page will contain a new line which will appear below the existing Visible   Hide/Show label and dropbox and which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* a label appearing below the Visible label which displays the text &amp;quot;Accessible&amp;quot;;&lt;br /&gt;
* to the right of the label, a dropbox containing two selection choices - &amp;quot;Allow students access to this activity&amp;quot;, and &amp;quot;Deny students access to this activity&amp;quot;;&lt;br /&gt;
* clicking the choices will enable or disable student access to the activity independent of its Hide/Show state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:CMCurrentView.png|frame|center|The current layout of the Common module settings area]][[Image:Show-AllowCMOnly.png|frame|center|Common module settings - Visible and Accessible]][[Image:Show-Deny.png|frame|center|Common module settings - Visible and Non-Accessible]][[Image:Hide-Allow.png|frame|center|Common module settings - Invisible and Accessible]][[Image:Hide-Deny.png|frame|center|Common module settings - Invisible and Non-Accessible]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing On Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is enabled on the course page all activities will display an added icon to the right of the Show/Hide icon which will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* a graphic (Icon One - an open lock) to indicate that the activity is accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLock.png|none|frame|Activity icon list showing an open lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon One will appear when the state of the activity is accessible;&lt;br /&gt;
* a graphic (Icon Two - a closed lock) to indicate that the activity is non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:ClosedLock.png|none|frame|Activity icon list showing a closed lock]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Icon Two will appear when the state of the activity is non-accessible;&lt;br /&gt;
* clicking on either icon will toggle the icon graphic between Icon One and Icon Two and the accessibility state of the activity between accessible and non-accessible;&lt;br /&gt;
* mouse-over of Icon One will display a tooltip stating &amp;quot;Deny access to activity&amp;quot; to alert the user that clicking it will make the activity non-accessible;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockWithToolTip.png|none|frame|Activity icon list showing the open lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* mouse-over of Icon Two will display a tooltip stating &amp;quot;Allow access to activity&amp;quot; to alert the user that clicking it will make the activity accessible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::[[Image:OpenLockNoToolTip.png|none|frame|Activity icon list showing the closed lock tool tip]]&lt;br /&gt;
&lt;br /&gt;
====The Course Page in Editing Off Mode====&lt;br /&gt;
&lt;br /&gt;
When Editing on mode is NOT enabled on the course page Moodle generated activity links will have the following characteristics/behaviors:&lt;br /&gt;
&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is allow, the link will appear normally and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
* if the state of visibility is show and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will appear but be greyed-out, an access restriction explanation will appear below the link, and the activity will NOT be accessible via the link, a teacher created hyperlink, nor its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is allow:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear but the activity will be accessible via a teacher created hyperlink or its url;&lt;br /&gt;
* if the state of visibility is hide and the state of accessibility is deny:&lt;br /&gt;
** for teachers the link will appear but be greyed out, and the activity will be accessible via the link, a teacher created hyperlink, or its url;&lt;br /&gt;
** for students the link will not appear and the activity will NOT be available via a teacher created hyperlink nor its url.&lt;br /&gt;
&lt;br /&gt;
====The Editing Role Pages====&lt;br /&gt;
&lt;br /&gt;
The Activities subsection of the Editing role page for each role defined in Moodle will contain two new entries - Make activities accessible/non-accessible, and Access non-accessible activities. Both new entries will possess the standard Capability, Permission, and Risk fields with specific values to be determined. Throughout this dev spec page it is presumed that the Admin and Teacher roles will have both these new capabilities set to Allow, and that other roles (including Student) will not.&lt;br /&gt;
&lt;br /&gt;
====The Relationship Between the Accessibile and Restrict Access Settings====&lt;br /&gt;
&lt;br /&gt;
Following is a list of issues to be covered in this section.&lt;br /&gt;
&lt;br /&gt;
Moodle now contains an optional &amp;quot;Restrict access&amp;quot; feature which can be enabled by checking the &amp;quot;Enable conditional access&amp;quot; (enableavailability) box in Settings &amp;gt; Site administration &amp;gt; Advanced features. When enabled, a Restrict access section appears on the course Settings page of each course. The Restrict access section asks for conditions when the activity (or resource) should be visible. This can be based upon dates, and/or score ranges of other activities and/or if other activities are considered completed. Note that ALL access restrictions (date, grade condition, activity completion condition) have to be met in order for the activity to be made available. (See &amp;quot;Conditional activities settings.&amp;quot;)&lt;br /&gt;
Accessible functionality needs to coordinate with conditional activities settings&lt;br /&gt;
Deny access setting of Accessible should override the Restrict Access settings&lt;br /&gt;
When Accessible is set to Deny access, if a teacher attempts to use Restrict access either Accessible should be automatically set to Allow access, or they should be given a warning that they must change Accessible to Allow access in order for Restrict access settings to work&lt;br /&gt;
Restrict access settings should override the Allow access settings of Accessible&lt;/div&gt;</summary>
		<author><name>Dloomer</name></author>
	</entry>
</feed>