Commit Graph

180 Commits

Author SHA1 Message Date
David Monllaó 0a397e3fd2 MDL-66394 analytics: Extra GC during analysis
(backport of MDL-66234)
2019-09-24 14:08:24 +02:00
Sara Arjona cfbcdc97e5 Merge branch 'MDL-66090_37' of git://github.com/dmonllao/moodle into MOODLE_37_STABLE 2019-09-20 12:46:24 +02:00
David Monllaó 4a3f3ee3e4 MDL-66091 report_insights: Unify contextwithinsights cache sets 2019-09-18 13:00:26 +08:00
David Monllaó b2d9aaa126 MDL-66091 analytics: Targets choose if there should be a report or not 2019-09-18 13:00:25 +08:00
David Monllaó 5e17f2faeb MDL-66091 report_insights: Usability improvements
- More feedback provided for the user once they click on useful/notuseful from the email.
- Replace the indicator calculations table headers for the table caption and
  replace the text by just "Indicators"
- Replace "System" for the site name for insights generated at system
  level
- Replace "$modelname prediction" for "$modelname" in report/insights/prediction.php
  heading

MDL-66091
2019-09-18 13:00:25 +08:00
David Monllaó 6c15dc2f3c MDL-66090 analytics: Support user for notifications 2019-09-17 07:54:22 +08:00
David Monllaó 375c1b8e20 MDL-66498 analytics: get_samples() with no params limit 2019-09-11 12:44:38 +08:00
David Monllaó 868cd1eacb MDL-66498 analytics: Avoid get_in_or_equal for big arrays
Also, join directly with context table.
2019-09-11 12:44:38 +08:00
David Monllao 4996652352 MDL-66498 analytics: SQL IN in chunks 2019-09-11 12:44:38 +08:00
Jun Pataleta 9234d79fd1 Merge branch 'MDL-66210_37' of git://github.com/dmonllao/moodle into MOODLE_37_STABLE 2019-08-21 19:48:00 +08:00
David Monllaó 8e09ae50b0 MDL-66210 analytics: Update references to ->options 2019-08-14 14:31:59 +08:00
David Monllaó 6ac4aa49aa MDL-65993 analytics: Fix --filter option for by_course models 2019-08-14 14:30:25 +08:00
David Monllaó 6d6322985d MDL-66026 analytics: No notification if not necessary 2019-07-15 14:24:33 +08:00
David Monllaó cd59d03500 MDL-65839 core_analytics: New indicator instances for each analysable 2019-06-28 21:00:25 +02:00
Didier 'OdyX' Raboud cd9c54c93c MDL-65067 analytics: Strengthen format_weeks detection
The public function get_section_dates($section, $startdate = false) is
only defined in format_weeks, not in format_base.

As other formats can (and format_topcoll has) declare a different
get_section_dates public method, merely checking that it exists is not
sufficient to guarantee that it can be called with just a section object.

Check that the format either is, or is a subclass of format_weeks.
2019-05-22 16:30:52 +08:00
Víctor Déniz Falcón 0864ebc14c MDL-60407 report_insights: Fix redirect when action on last prediction
When an actions is taken on the last prediction, the predictions
list page is reloaded.
2019-05-21 18:45:42 +08:00
Adrian Greeve d15589bc08 Merge branch 'MDL-65601_master' of git://github.com/dmonllao/moodle 2019-05-16 13:25:44 +08:00
David Monllaó 589a3f57a0 MDL-65601 analytics: Add missing set_modelid calls 2019-05-15 09:34:35 +02:00
David Monllaó a1fb183df0 MDL-65583 tool_analytics: Model name from a data attribute
The credit and the patch using this approach goes to David Mudrák.
2019-05-13 22:54:28 +02:00
David Monllaó 352ab7464e MDL-65348 analytics: Upcoming periodic from time() 2019-04-29 16:51:04 +02:00
Eloy Lafuente (stronk7) f7e183e513 Merge branch 'MDL-64777-master-modelsrestore' of git://github.com/mudrd8mz/moodle 2019-04-15 23:37:43 +02:00
David Mudrák 066a4d6493 MDL-64786 analytics: Allow renaming models via inplace editable element 2019-04-15 08:22:13 +02:00
David Mudrák ed47112e1b MDL-64786 analytics: Add missing parameter to model::export() method
All methods that export an object to be rendered via a template, must
have the instance of a renderer available.
2019-04-15 08:17:45 +02:00
David Mudrák 7dba0c27ad MDL-64777 analytics: Add method to get target and indicators instances
This will be needed in some other places, too.
2019-04-15 08:16:58 +02:00
David Mudrák 1297fa4156 MDL-64777 analytics: Add method to load all model definitions 2019-04-15 08:16:58 +02:00
David Mudrák 01d620ee67 MDL-64777 analytics: Add method for identifying a model declaration
This is intended to be used to as a declaration identifier in HTML or as
a HTTP parameter value.
2019-04-15 08:16:58 +02:00
Eloy Lafuente (stronk7) 7c924d311d Merge branch 'MDL-64284-36_get_component_classes_cache' of https://github.com/tomdickman/moodle 2019-04-11 20:01:37 +02:00
David Monllaó 5f1f0ee6a1 MDL-65175 analytics: Time-splittings can be invalid for evaluation 2019-04-10 12:19:52 +02:00
David Monllaó 21bf5ae5ab MDL-64783 analytics: Send notifications using the receiver's language 2019-04-09 00:29:57 +02:00
David Monllaó 982fef46f4 MDL-64783 analytics: Activities due insight forwards to calendar
The patch includes changes applied after the peer review.
2019-04-09 00:29:57 +02:00
David Monllaó 93663fa1a8 MDL-64783 analytics: Styles for insights sent through email 2019-04-09 00:29:57 +02:00
David Monllaó fccc728fcc MDL-64783 analytics: Performance improvements
- Removed redundant query to analytics_predict_samples
- Analysers API now uses recordsets to iterate through the analysable
  elements. They take the last analysed time into account.
- New method for targets so there is no need to always update the last
  analysis time. Useful for lightweight targets.
2019-04-09 00:29:57 +02:00
David Monllaó 20d7f527b0 MDL-64783 analytics: Discern prediction actions on insights generation 2019-04-09 00:29:51 +02:00
David Monllaó 9f690999ec MDL-64783 analytics: Performance improvements and internal refactoring
The base classes analyser and time-splitting method had too many
reponsibilities. A new analysis class has been created.
2019-04-09 00:26:39 +02:00
David Monllaó bb7dccdb8e MDL-64783 analytics: Insights generation logic out of the target 2019-04-09 00:26:39 +02:00
David Monllaó e85c2f372b MDL-64783 analytics: Improvements to the insights system 2019-04-09 00:26:23 +02:00
David Monllaó 50935afba4 MDL-64783 analytics: Upcoming activities due and related API changes 2019-04-09 00:25:24 +02:00
Eloy Lafuente (stronk7) 481c1ae4ce Merge branch 'MDL-64779_master' of git://github.com/dmonllao/moodle 2019-04-02 23:23:13 +02:00
Eloy Lafuente (stronk7) ed7fa60946 Merge branch 'MDL-61667-master-modelsinstall' of git://github.com/mudrd8mz/moodle 2019-04-02 00:20:47 +02:00
David Monllaó f54a4092c7 MDL-61667 analytics: Remove duplicated capability checks
\core_analytics\model::create and \core_analytics\model::enable methods
are called from install/upgrade scripts. Therefore, they should not
include any capability check. Their capability checks are actually
redundant, as the user capabilities are already checked in the
entry-point scripts.
2019-04-01 14:57:57 +02:00
David Mudrák d887b0c7f7 MDL-61667 analytics: Fix coding style issues in the existing code
These coding style issues were spotted while working on the issue. No
real changes here, just the coding style fixes attached to the patchset
for convenience.
2019-04-01 14:23:06 +02:00
David Mudrák 606c3be0f6 MDL-61667 analytics: Create missing models on install/upgrade
Similarly to how the scheduled tasks work, we now automatically check
and make sure that all the models specified in the component's
db/analytics.php file exist during the installation or upgrade of the
component.
2019-04-01 14:23:06 +02:00
David Mudrák aa8af6fcfc MDL-61667 analytics: Fix checking that a given model does not exist
The original implementation did not work well for checking that the
given model does NOT exist. If no record was found in the
analytics_models table, the code execution continued and it reached the
moment when indicators were checked. If no indicators were provided, the
call ended up with error 'array_keys() expects parameter 1 to be array,
boolean given' (because indicators were set to false).
2019-04-01 14:23:06 +02:00
David Mudrák 3b7c7918f3 MDL-61667 analytics: Deprecate the add_builtin_models() method
The functionality of the \core_analytics\manager::add_builtin_models()
method is to be replaced with automatic update of models provided by the
core moodle component. There is no need to call this method explicitly
any more. Instead, adding new models will be done by updating the
lib/db/analytics.php file and bumping the core version.
2019-04-01 14:23:06 +02:00
David Mudrák 6187213f39 MDL-61667 analytics: Add method to actually create a declared model
This is simply a wrapper around the model's create() method that works
with the model declaration syntax from the db/analytics.php file.
2019-04-01 14:23:06 +02:00
David Mudrák f05840451e MDL-61667 analytics: Add methods to read and validate model declarations
Allow every component to declare prediction models it provides via the
db/analytics.php file.
2019-04-01 14:23:06 +02:00
David Mudrák 4de4d1652b MDL-61667 analytics: Don't autoenable models with time splitting defined
When the API had originally been designed, it was assumed that the
presence of the time splitting method implies no requirement for the
machine learning backend and that it is a sign of less performance
demanding models. So it seemed to be safe and useful to have such models
automatically enabled. That assumption did not prove to be valid. Most
of the time is spent calculating indicators that depend on log tables.

We realized it would be useful to be able to specify the default time
splitting method without the need to have such models auto-enabled.
2019-04-01 14:23:06 +02:00
David Monllaó 75dfc588b5 MDL-64779 tool_analytics: Export selector 2019-04-01 13:56:37 +02:00
Jun Pataleta db3527c2cc Merge branch 'MDL-63906_master' of git://github.com/dmonllao/moodle 2019-04-01 10:32:10 +08:00
Tom Dickman 0d6a45d2fe MDL-64284 core: improved performance of component class searching
Added static caching of classes to reduce load times and reduce calls to `get_component_classes`
by altering to accept a null component value to search classmap only once.
2019-03-29 11:44:43 +11:00