Commit Graph

50 Commits

Author SHA1 Message Date
bbf60b1412 MDL-57898 core_customfield: coding style fixes 2019-01-18 14:28:24 +01:00
1eeb465a0c MDL-57898 core_customfield: Custom fields API
This commit is part of work on Custom fields API,
to minimize commit history in moodle core the work of a team of developers was split
into several commits with different authors but the authorship of individual
lines of code may be different from the commit author.
2019-01-18 09:02:30 +01:00
ed12ba6ba8 MDL-60520 analytics: Per-model ml backend 2018-10-22 13:58:33 +02:00
fe955c5645 Merge branch 'wip-MDL-45500-master' of git://github.com/marinaglancy/moodle 2017-12-11 12:56:18 +08:00
777720c833 MDL-45500 gradingform: allow plugin uninstall 2017-11-28 12:27:52 +08:00
a938e4096c MDL-60174 core_dml: fix miscellaneous incorrect recordset usage
The new recordset support for Postgres requires transactions and
will cause errors if recordsets are not closed correctly. This
commit fixes problems that were identified during unit tests, and
via some basic code analysis, across all core code. Most of these
are incorrect usage of recordset (forgetting to close them).
2017-11-27 11:10:33 +00:00
40fcb365c3 MDL-58859 analytics: Subsystem and API db/ requirements added
Part of MDL-57791 epic.
2017-07-24 07:53:17 +02:00
30e891e08f MDL-46418 repositories: Fix how enabled repositories are populated
Repository instances are stored in the 'repository' table. Repositories
in the table are either 'Enabled and visible' or 'Enabled but hidden'.
Hidden repositories still serve their files, but are not visible in the
filepicker UI. Disabling a repository instance removes its record from
the table.

In the original implementation of the plugin manager (see b9934a17), the
method plugintype_repository::get_enabled_repositories() correctly
returned all records from the repository table. Then as a part of the
bigger refactoring in MDL-41437, the commit bde002b8 replaced the
original method with the new get_enabled_plugins() one which started to
return visible repositories only.

As a consequence, the admin tree stopped populating setting page nodes
for hidden repository instances. So attempting to visit their setting
page threw a section error. Credit goes to Ike Quigley for debugging and
tracing this down.

This patch fixes the way how the list of enabled repositories is
populated by the plugin manager so that both visible and hidden
repositories are returned again. This does not affect the filepicker
itself as it is using its own methods for obtaining the list.
2017-06-15 21:22:43 +02:00
037273d87e MDL-12689: convert auth plugins to use settings.php 2017-04-03 10:50:09 -04:00
34df779a95 MDL-55528 core_files: Create new fileconverter plugintype 2017-03-10 09:31:14 +08:00
ef9a1a2aff Merge branch 'MDL-56320-m' of https://github.com/micaherne/moodle 2016-12-19 15:05:14 +01:00
23b9e2a16d MDL-56320 webservice: Allow uninstall of unused plugins 2016-12-05 12:56:55 +00:00
7afc76fbd6 Merge branch 'MDL-56952-master' of git://github.com/damyon/moodle 2016-11-15 09:07:37 +00:00
204413187e MDL-56952 plugininfo: You can uninstall theme_base 2016-11-15 08:55:41 +08:00
51c6d25b3b MDL-56880 webservices: Fix documentation of get_enabled_plugins() 2016-11-10 16:18:06 +00:00
fab11235d8 MDL-38158 core_media: Convert media players to new plugin type
AMOS BEGIN
  MOV [siteyoutube,core_media],[pluginname,media_youtube]
  MOV [siteyoutube_desc,core_media],[pluginname_help,media_youtube]
  MOV [sitevimeo,core_media],[pluginname,media_vimeo]
  MOV [sitevimeo_desc,core_media],[pluginname_help,media_vimeo]
  MOV [html5audio,core_media],[pluginname,media_html5audio]
  MOV [html5audio_desc,core_media],[pluginname_help,media_html5audio]
  MOV [html5video,core_media],[pluginname,media_html5video]
  MOV [html5video_desc,core_media],[pluginname_help,media_html5video]
  MOV [flashanimation,core_media],[pluginname,media_swf]
  MOV [flashanimation_desc,core_media],[pluginname_help,media_swf]
AMOS END
2016-11-04 17:30:40 +08:00
8a0a7414b2 MDL-53777 tool_mobile: Move mobile settings to the admin tool 2016-10-03 10:02:32 +01:00
e5e2f39ed5 MDL-55663 filter: Filters could be incorrectly reported as inactive 2016-08-30 11:22:53 +08:00
bff1edbe44 MDL-51603 dataformat: Implement streaming dataformat plugin 2016-04-20 12:39:25 +10:00
1a980fdadb MDL-50887 antivirus: Fix style issues. 2016-02-25 09:55:45 +00:00
146eeb7651 MDL-50887 antivirus: Add antivirus plugin infrastructure. 2016-02-25 09:54:05 +00:00
db48207e1a MDL-31989 search: Search API and search engine API
Introducing both APIs in moodle along with:
- search_box widget to add a tiny search box
- admin settings with setup steps helper
- cache for search results
- template for a search result
- php unit stuff

Many thanks to Tomasz Muras, Prateek Sachan and Daniel Neis for their contributions, for starting this development
and for pushing for it to be completed. Also thanks to other contributors: Jonathan Harker and eugeneventer.
2016-02-23 10:47:58 +00:00
6badbf0135 MDL-49620 availability: plugins can have global settings 2016-02-04 15:21:02 +00:00
d9ffd8518a MDL-52589 cache: Allow unused stores to be uninstalled 2016-01-11 09:04:37 +00:00
49f3c89324 MDL-52332 calendar: load settings using API 2015-11-30 11:36:50 +08:00
c44bbe35bf MDL-49329 admin: Improve loading of available updates info
The actual loading of available updates info objects is moved back to
the plugin manager class. As we can now mockup the manager in unit
tests, this allows us to bypass the real \core\update\checker and have
unit tests for \core\plugininfo\base::available_updates().
2015-10-08 23:32:02 +02:00
2d488c8f01 MDL-49329 admin: Keep reference to plugin manager in plugininfo objects
Plugin info objects are owned by the plugin manager (composition
pattern). Even if the plugin manager is a singleton, we need to keep
explicit reference to the plugin manager that owns the plugin info so
that we can mock up things in unit tests.

Therefore this patch introduces a new property of plugin info objects
that holds the reference to the instance of the plugin manager that made
(and hence owns) the given info instance.

The only trouble here is with static methods of plugin info classes such
as \core\plugininfo\base::get_enabled_plugins(). In these cases, the
code keeps using the core_plugin_manager singleton. The solution would
be to pass the plugin manager instance as a parameter but that is not
worth of change for now, IMHO.
2015-10-08 23:32:02 +02:00
30d8bc5f66 MDL-49329 admin: Do not always load info about available updates
Before this patch, whenever core_plugin_manager::get_plugins() was
called, it always attached info about available updates. But this is
needed only in quite rare cases, such as when the admin is looking at
the Plugins overview and Plugins check screens. There is no need to load
this on other places and for non-admin users.

The patch removes the loading from the method
core_plugin_manager::get_plugins_of_type() and implements lazy loading
directly in the plugininfo classes so that it is loaded only when
\core\plugininfo\base::available_updates() is actually called.
2015-10-08 23:32:02 +02:00
4ad70aede0 MDL-49661 pluginfo: Do not consider missing version.php as correct
All plugins are required to contain valid version.php since Moodle 2.5.
It's time to get rid of this TODO.
2015-03-26 12:16:20 +01:00
67b853ff6b MDL-45619 repository: Don't allow repository_recent to be uninstalled
We have tests that depends on it and it
is a simple repo that can just be disabled.
2015-03-25 09:39:12 +08:00
1c78065ad6 Merge branch 'MDL_45619_m29v5' of git://github.com/sbourget/moodle 2015-03-25 09:38:24 +08:00
a1ec48c9e8 MDL-45619 repository: corrections to uninstall, display link 2015-03-04 18:42:16 -05:00
f31f5f6659 MDL-45619 Repository: Allow repositories to be uninstalled 2015-03-03 14:44:53 -05:00
fad20e3c82 MDL-45621 Portfolio: Allow portfolios to be uninstalled 2015-03-02 20:20:10 -05:00
ba872d3c3c MDL-46472 theme: Removing standard as an uninstallable theme 2014-12-12 13:32:55 +08:00
9c7274e25f MDL-47206 core: Allow tool plugins to run tasks
This issue is a part of the MDL-47194 Task.
This issue is a part of the MDL-39707 Epic.
2014-09-12 11:47:56 +08:00
f149e58990 MDL-46013 theme: Uninstall theme unconditionally unsets configs 2014-06-16 15:10:30 -07:00
9d59d9e39e MDL-45501 availability: Add uninstall support for conditional plugins 2014-05-15 14:04:52 +08:00
e0eca9b3e5 Merge branch 'MDL-45312' of git://github.com/timhunt/moodle 2014-04-29 10:24:20 +12:00
856c2f1404 MDL-45312 qtype_missingtype or qbehaviour_missing cannot be uninstalled.
They are required by the system.
2014-04-28 21:45:46 +01:00
be39d92577 MDL-45210: Fix broken link when plagiarism plugins are disabled 2014-04-22 13:27:02 +12:00
d3db4b037c MDL-44070 Conditional availability enhancements (2): subsystem, API
This commit defines the new /availability root folder, with
/availability/classes, /availability/tests, and
/availability/condition where the condition plugins will live.
Condition plugin prefix is availability_, e.g. availability_date.

Rationale for this organisation:

1. I was originally going to put this in /lib/availability but
   it has been pointed out that putting even more junk in lib
   is probably bad.
2. 'availability' and 'condition' are the two names used in code
   to refer to this system ($CFG->enableavailability).
3. The prefix has to be short enough to allow database tables
   (although in practice I assume that condition plugins will not
   normally contain database tables).

The new API includes a Boolean tree structure that controls the
availability of an item.

AMOS BEGIN
 CPY [availabilityconditions,core_condition],[restrictaccess,core_availability]
 CPY [enableavailability,core_condition],[enableavailability,core_availability]
 CPY [configenableavailability,core_condition],[enableavailability_desc,core_availability]
AMOS END
2014-04-07 20:11:33 +01:00
adca7326d8 MDL-43842: Import atto back into core 2014-03-26 09:59:34 +08:00
2f98f5d541 MDL-43117 Add release column to Plugins Overview page
This patch is based on previous patch by Marko Vidberg, thanks a lot!
2013-12-01 18:57:49 +08:00
b404b1f41c MDL-43008 calendar: Allow calendar plugins to display setting pages. 2013-11-26 15:44:57 +08:00
88a31771a6 MDL-42553 core_calendar: third party calendar types can now be uninstalled 2013-11-14 17:20:01 -08:00
a35fce24ca MDL-42497 add listing of orphaned subplugin types 2013-11-01 10:39:07 +01:00
a67ea663b1 MDL-37813 remove missing filters when configuring string filters and fix filter uninstall 2013-10-18 15:57:27 +02:00
c169e58048 MDL-42243 fix filter settings regression and support standard settings.php 2013-10-12 13:38:34 +02:00
e87214bda7 MDL-42078 multiple uninstall improvements and cleanup
Includes:
* update checker refactored to \core\update\ namespace
* plugininfo classes refactored to \core\plugininfo\ namespace
* plugin_manager renamed to core_plugin_manager
* redirect back to original page after plugin uninstall
* fixed assign subplugin uninstall
* move assign subplugins under the assignment in admin tree
* fixed plugininfo for all question related plugin types
* auth uninstall support
* added missing block dependencies
* added theme uninstall
* subplugin types are following the plugin on plugin overview page
* several performance improvements in plugin manager
* new warnigns when plugininfo are outdated or missing
* multiple fixes and other improvements
2013-10-07 13:10:36 +02:00