Commit graph

146 commits

Author SHA1 Message Date
sam marshall
d12989b797 MDL-83211 core_search: Indexing can miss items due to race condition
Changes search indexing so that (except for test scripts) each indexing
run indexes only items up to 5 seconds ago, and the following indexing
will start from the same point. This ensures all items are indexed,
even if an item is written to the database one or two seconds after its
timecreated value.
2024-11-15 09:33:43 +00:00
Andrew Nicols
024e36be17
MDL-81634 core: Fix all implicitly defined nullables
Note: This does not impact third-party libraries.
2024-08-02 14:11:12 +08:00
Sara Arjona
f11f702f9d
MDL-81589 search: Use pix method to display global search icons
Rather than exclusively relying on the image icon in the global search
documents, the 'pix' method is used now, which allows to incorporate
FontAwesome icons whenever they're available.
2024-05-27 09:19:17 +02:00
Eloy Lafuente (stronk7)
29a541724f
MDL-65292 style: Fix all the function declaration ordering
This has been generated running the following Sniff,
part of the Moodle's CodeSniffer standard:
- PSR2.Methods.MethodDeclaration

It just ensures all the function declarations have
the correct order for:
- abstract and final.
- visibility (public, protected, private).
- static.

So, all the lines modified by this commit are function declarations
and the only changes are in the positions of those keywords.
2024-02-28 23:47:47 +01:00
Eloy Lafuente (stronk7)
ba1f804ffa
MDL-65292 style: Fix all function declarations white space
This has been generated running the following Sniffs, all
them part of the Moodle's CodeSniffer standard:
- PSR12.Functions.ReturnTypeDeclaration
- PSR12.Functions.NullableTypeDeclaration
- moodle.Methods.MethodDeclarationSpacing
- Squiz.Whitespace.ScopeKeywordSpacing

All them are, exclusively, about correct spacing, so the changes
are, all them, only white space changes.

Only exceptions to the above are 3 changes what were setting the
return type in a new line, and, when that happens, the closing
parenthesis (bracket) has to go to the same line than the colon.
2024-02-28 23:33:26 +01:00
Juan Leyva
41d82de0d1 MDL-56020 search: New WS core_search_get_top_results 2023-08-28 15:48:18 +02:00
Juan Leyva
f14c521905 MDL-56020 search: New WS core_search_get_search_areas_list 2023-08-28 15:48:18 +02:00
Juan Leyva
7d3477bfec MDL-56020 search: New WS core_search_view_results 2023-08-28 15:48:18 +02:00
Juan Leyva
f94e1ef3c9 MDL-56020 search: Adapt code to new style and add tests 2023-08-28 15:48:17 +02:00
David Monllao
49e589445d MDL-56020 search: Adding get_results external function 2023-08-28 15:47:01 +02:00
Meirza
f0aa52f75e MDL-77350 search: Added class properties that are not declared
In PHP 8.2 and later, setting a value to an undeclared class property is
deprecated and emits a deprecation notice.
So we need to add missing class properties that still need to be declared.
2023-05-16 00:33:19 +07:00
Marina Glancy
8fc1486d36 MDL-77164 various: fix incorrect phpdocs 2023-04-13 11:35:06 +01:00
Andrew Nicols
9ec46c232d MDL-77186 core: Move all uses of cronlib to new class 2023-03-13 21:21:13 +08:00
Paul Holden
5021b3a5b5 MDL-68776 search: remove support for optional add_documents return.
All six returned array elements must now be present.
2023-02-10 10:41:50 +00:00
Andrew Nicols
a3cc26f8bb MDL-76583 core: Update uses of external_* classes 2023-01-19 07:34:09 +08:00
Andrew Nicols
769397fd9d Merge branch 'MDL-76820-master' of https://github.com/cameron1729/moodle 2023-01-12 12:09:11 +08:00
Cameron Ball
c9769197cd MDL-76820 core_search: Reset manager::$coursedeleting between tests 2023-01-12 10:43:29 +08:00
Marina Glancy
b1c97381b4 MDL-76356 various: avoid implicit conversion to int
PHP before version 8.1 automatically converted to int if the function
parameter (or array key) is expected to be int. PHP 8.1 shows notice in
this case
2023-01-10 15:27:11 +01:00
Marina Glancy
41b93bd7e5 MDL-73424 general: Internal methods must have same type as parent
Otherwise the error is thrown in PHP8.1
2022-10-10 16:46:13 +02:00
Tim Hunt
797b9fbd62 MDL-75548 misc: final Required parameter follows optional notices 2022-08-22 15:20:13 +01:00
Ferran Recio
4f2eac208d MDL-71623 core_search: fix user document visibility 2022-05-04 04:04:15 +02:00
Andrew Nicols
4b388fc239 MDL-74235 core: Update core uses of activity icons to monologo 2022-04-07 12:56:14 +08:00
Neill Magill
e86bc4921e MDL-71115 search: Only replace course search when equivalent
Not all global search configurations offer the same results as the
default course search does.

The default course search will return courses that the user can see
the details of even if they can see them via a category, even if
they are not enrolled and cannot enrol themselves on it.

The equivalent global search configuration is:

* Global search is enabled
* The course indexing is enabled
* All the name and summary of all courses are included in the results

This patch will only let global search replace the default course
search when those criteria are met.

It will also display on the global search configuration page if global
search will replace the legacy course search.
2021-11-10 09:11:19 +00:00
Nathan Nguyen
089ebc85b1 MDL-60917 core_search: add top result section 2021-10-12 14:49:36 +11:00
Andrew Nicols
430caa5de1 Merge branch 'MDL-70897-master' of git://github.com/kabalin/moodle 2021-04-29 10:18:01 +08:00
Paul Holden
250944bc1e MDL-70979 search: validate external user search parameters.
Clean return value in unit test for same.
2021-04-22 10:22:35 +01:00
Marina Glancy
881b4258f7 MDL-70897 various: uasort callback can not return bool
Co-authored-by: Ruslan Kabalin <ruslan.kabalin@gmail.com>
2021-04-20 14:58:25 +01:00
sam marshall
5e72715e4f MDL-71099 Lib: Move new user_fields class from core to core_user
This class would belong more appropriately within the 'user' API
(core_user) instead of within the 'core' API, since it is
directly related to user data.

Since the class has only just been added to Moodle, now is a good
time to move it.
2021-03-25 13:47:23 +00:00
sam marshall
558cc1b85e MDL-45242 Lib: Replace calls to deprecated functions
In all cases changes have been kept to a minimum while not making
the code completely horrible. For example, there are many instances
where it would probably be better to rewrite a query entirely, but
I have not done that (in order to reduce the risk of changes).
2021-03-10 10:57:10 +00:00
Paul Holden
e7e62a4b2e MDL-62707 search: account for no matching courses when listing areas.
When limiting the list of courses during retrieval of the search areas
the user can access, make sure we have some contexts before looking
for blocks.
2020-12-04 09:42:59 +00:00
Eloy Lafuente (stronk7)
19070b2e01 MDL-69521 core: Move all comments in code from 4.4 to 4.2 2020-09-08 18:59:47 +02:00
Eloy Lafuente (stronk7)
6a60111199 MDL-69521 core: Move all comments in code from 4.0 to 3.10 2020-09-06 17:00:25 +02:00
sam marshall
679e8d8b66 MDL-68729 Search: Allow query on one server while indexing another
To support transitions from one search engine to a different one, or
to a different installation of the same kind, this feature allows for
queries to use a different search engine from indexing. So you can
reindex (and do all other search operation) on one server, while
user queries are unaffected on a different server.

This feature supports changing between search engine types, and also
between two Solr installations.
2020-08-06 12:12:01 +01:00
sam marshall
9b3646417e MDL-68726 Search: Stop Solr 'optimize' behaviour
The optimize feature in Solr is usually considered harmful, especially
prior to Solr 7.5.

This change simply removes the optimize implementation from the Solr
engine.
2020-07-17 17:11:57 +01:00
sam marshall
0deb19468d MDL-68690 Search: Allow Solr to add documents in batches
Adding documents in batches instead of one at a time can make
indexing using Solr significantly faster.

This adds new API functions for search engines, including
add_document_batch() to add a batch of documents,
supports_add_document_batch(), get_batch_max_documents() and
get_batch_max_content().
2020-07-10 11:32:46 +01:00
sam marshall
7ba2a20166 MDL-66326 Global search: Delete from index when courses are deleted
Adds new API support within search engines for optional methods to
delete data for courses and contexts, and implements this for the
two core search plugins (simpledb and solr).

The new API is automatically called when courses or contexts are
deleted. When a whole course is deleted, it only sends the course
delete rather than sending 1,000 separate context deletions as
each activity/block is deleted.
2019-08-23 11:51:50 +01:00
Sagar Ghimire
36667548b5 MDL-60916 core_course: Replace course search with global search 2019-08-05 16:05:10 +10:00
sam marshall
ed73ff2b0e MDL-66132 Search: Behat tests should use simpledb, fix mock count
When searching using mock results (the 'global search expects the
query' step), the result count is not correctly set. As a result, the
page incorrectly reports that there are no results and doesn't
correctly show the first page of multi-page results.

Additionally, some of the core Behat tests can now be moved to use
real searching with the simpledb engine, rather than using mock
results at all. This gives better tests.

Unfortunately it was not possible to move all of the core Behat tests
and deprecate the mock step, because some of the tests are related to
the UI for 'special' features searching by user or group, neither of
which are supported by the simpledb engine.
2019-07-12 15:31:30 +01:00
Amaia Anabitarte
c5b2f2b306 MDL-59502 Global Search: deprecate add_documents 4 arg implementation
In MDL-59039 we introduced changes to add_documents and should return an extra $partial boolean.
We still supported implementations returning 4 elements since then,
but  this issue is about removing this 4 returned elements compatibility.
2019-06-20 18:58:17 +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
Marina Glancy
beff3806d6 MDL-10965 courses: capability to browse course list 2019-04-10 12:35:28 +02: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
Dmitrii Metelkin
2085e8603a MDL-62869 search: implement searching for all courses 2019-03-01 07:18:37 +11:00
Dmitrii Metelkin
e9074ee381 MDL-60913 search: add search area categories 2019-01-23 10:28:43 +11:00
Andrew Nicols
f89f6cf04e Merge branch 'MDL-62899-search-icons-master' of https://github.com/dmitriim/moodle 2018-08-08 13:17:34 +08:00
Dmitrii Metelkin
66f145efd1 MDL-62899 search: add document icons 2018-08-07 17:40:57 +10:00
Victor Deniz
10505522fc MDL-57977 search: GlobalSearch by alternate name fields
Enable support for searching all name fields in search
2018-07-23 10:10:05 +01:00
David Monllao
74fc7d3120 MDL-62217 search: Privacy providers 2018-05-09 10:56:02 +02:00
David Monllao
26b86f31e5 MDL-61028 search: Clear search engine users cache after tests 2018-04-24 15:48:40 +02:00
David Monllao
590c774d37 Merge branch 'MDL-62042-master' of https://github.com/sammarshallou/moodle 2018-04-23 16:07:37 +02:00