Commit Graph

705 Commits

Author SHA1 Message Date
Tim Hunt dcff2a039f MDL-78547 quiz: in a preview, if a question has been edited, update it
As part of implementing this, there is a new more efficient method
get_version_information_for_questions_in_attempt to see if any
questions in a quiz need to be updated. The regrade code was updated
to take advantage of this.

Co-authored-by: Khoa Nguyen Dang <khoanguyend7@nashtechglobal.com>
2024-03-07 16:13:01 +00:00
Sara Arjona 89d3f66c2f MDL-79581 communication: Adding missing index to install 2023-10-06 12:18:03 +02:00
Andrew Nicols 99c1543aa8 MDL-79581 communication: Context is a mandatory field
The API was incorrectly assuming that all uses of the API were for a
course, and that the instanceid of the communication instance was a
course id. These assumptions are both entirely wrong.

The API is intended to support a range of uses including use at the
site, user, and activity levels.

Furthermore, if a group were to be used, then the instanceid should be
of that group's id, and therefore the contextid would need to be fetched
or that group's course instead.

The only solution here is to add a new contextid field to the table, and
implement it all parts of the API.
2023-10-04 20:37:57 +08:00
David Woloszyn aa179d77d8 MDL-77296 core: Record MoodleNet share progress 2023-08-29 11:26:23 +10:00
Paul Holden 8fe1f83fe1 MDL-75855 reportbuilder: don't allow condition/filter duplication.
Custom reports shouldn't allow the same condition and/or filter
instance to exist more that once per report.
2023-08-22 18:47:33 +01:00
David Woloszyn 162c9fdd66 MDL-77356 communication: Update avatar filename and avatar synced 2023-06-30 10:38:40 +10:00
meirzamoodle f69a420be1 MDL-76656 webservice: generated token can only read once
Generated tokens should only read once.
Therefore removing the token column at the table view of the manage tokens page and the user's page.
The token should not be able to search.
2023-06-28 09:27:31 +07:00
Safat ca1e5d0beb MDL-77576 core_communication: Add core communication api
This commit will implement the base api for core
communication. This will include the room creation,
room membership, room access url and all associated
api and related interfaces.

Originally implemented as MDL-76702, MDL-76703 and MDL-76705.

Co-Authored-By: David Woloszyn <david.woloszyn@moodle.com>
Co-Authored-By: Safat Shahin <safat.shahin@moodle.com>
2023-05-11 13:35:16 +10:00
Tim Hunt 35695831ff MDL-78025 questions: improve the comment on question_references.version 2023-04-26 15:29:39 +01:00
Alex Morris 7c843b380b MDL-76722 lib/db: Add new publickey field to user_devices table 2023-04-11 08:58:26 +08:00
Andrew Nicols 060b63cd1c Merge branch 'MDL-67789-master' of https://github.com/sarjona/moodle 2023-03-17 13:03:24 +01:00
Ferran Recio 03a4abde0f MDL-67789 xapi: Add support to save content state 2023-03-15 09:42:18 +01:00
Mark Johnson 958da5b67e MDL-68093 groups: Add visibility and participation settings
These new settings are designed to enchance user privacy surrounding
groups. They allow groups to be configured so that users outside the
group cannot see the group, so that users in the group cannot see each
other, or so that users cannot see the group at all, even if they are in
it. This avoids issues where a group may be assigned based on sensitive
personal information (such as a person requiring special arrangements
due to a disability).

By default, groups are visible to all and available for participation in
activities, which maintains the current behaviour.

For performance, a new cache has been added to track the number of
groups on a course that are not visible to non-members. This allows us
to revert to the existing behaviour if the new features are not being
used at all on a course, and only apply the new visibility conditions if
they are.

Users who have the moodle/course:viewhiddengroups capability should be
concious of exposing hidden groups when showing their screen to other
users. The "Switch role to..." feature can be used to show a course page
on screen without exposing private availability conditions, for example.

The changes cover several specific areas:
* grouplib functions, which most code should use to get lists of groups
  and members (this includes the participants page).
* Activities supporting group overrides will not allow overrides for
  groups that are hidden from all users.
* Activities supporting separate/visible groups modes will only allow
  groups with the new "participation" flag enabled to be selected.
* Group messaging will be disabled for groups where members cannot see
  each other, or cannot see the group at all.
2023-03-14 08:52:25 +00:00
Tomo Tsuyuki 9e725bc168 MDL-45301 assign: Add font options for EditPDF 2023-02-17 15:30:25 +11:00
Farhan Karmali b4e5e47a0f MDL-75667 admin: Avoid DB calls within loops on admin/blocks.php 2022-12-16 18:53:58 +05:30
Ilya Tregubov 09de114dd2 MDL-58266 core_completion: fix db structure.
Make coursemoduleid, userid fields in new course_modules_viewed
to match those in course_modules_completion table.
2022-10-17 14:49:17 +03:00
Ilya Tregubov 057f732bf1 Merge branch 'MDL-58266-master' of https://github.com/JBThong/moodle 2022-10-17 12:51:59 +03:00
Matthew Hilton cfb643293c MDL-56567 competency: Course module competency option to override grade
Previously, if a course module had already been graded, course module
completion linked to the course module would not update. This
commit adds the option to enable overriding the grade at the course
module competency level.

This ensures that if enabled and a user completes a module associated
with a competency, that competency will be graded appropriately.
2022-10-17 08:00:20 +10:00
hieuvu c6e018e04e MDL-58266 core_completion: Add new view table. 2022-10-14 00:30:28 +07:00
Sara Arjona 979b41f508 NOBUG: Fixed file access permissions 2022-09-15 16:11:47 +02:00
anisa kusumadewi 6330c482bd MDL-71129 core_h5p: Added index for pathnamehash to h5p table 2022-09-12 11:41:06 +02:00
Andrew Nicols 903f04a320 Merge branch 'MDL-74608' of https://github.com/timhunt/moodle 2022-08-18 10:52:02 +08:00
Tim Hunt 8babdbd396 MDL-74608 activities: a new option to force the activity language
For a long time, Moodle has had the feature to force the language
for a whole course. This change adds the same feature at activity
level.

The course-level feature was controlled by a capability
moodle/course:setforcedlanguage, and I decided to use the same
capability to control this feature. I think a new capability would be
overkill.
2022-08-15 22:15:52 +01:00
Kevin Pham af71e4f412 MDL-49795 core: Add foreign keys to core tables in lib
- Includes changes to tables like course, enrol, stage, etc
2022-08-03 15:17:04 +10:00
Paul Holden 67b15496c3 MDL-72377 grade: increase size of category hidden fields.
As well as storing 1/0 to indicate hidden state, they are also used
to store a timestamp indicating hidden until date. Increasing field
size allows these values to be stored without triggering exceptions.
2022-06-06 15:31:02 +01:00
Sara Arjona df71afbfe9 Merge branch 'MDL-73727-master' of https://github.com/keevan/moodle 2022-06-01 08:41:36 +02:00
Kevin Pham f984566b15 MDL-73727 core_files: Add subquery to avoid a seq scan on larger sites
- Formatted the query to meet SQL coding styles
- Add index on {files} to prevent performance regression
- Fork the SQL query based on DB family based on support
2022-05-30 13:38:45 +10:00
Cameron Ball 8154aa2e03 MDL-67648 tasks: Fair-share scheduling with resource management
This patch changes the way adhoc tasks are chosen to run. It now calculates
how many runners each type of adhoc task should be allowed to use. In the
case that not all the runners are utilised, it attempts to infer which
tasks do not take a long time to run, and gives those to the vacant runners.

Thanks to Brendan Heywood for guidance and SQL help.
2022-05-25 09:38:41 +08:00
Pete Whelpton bc6041158c MDL-71202 webservice: Add index on external_tokens.sid
Without this index, a full table scan / table level locking occurs when
logging out of Moodle.  This can result in slow performance in a busy
Moodle site.
2022-05-10 12:31:25 +08:00
Marc-Alexandre Ghaly c3ac868bf7 MDL-73763 core : Index fixes for reference tables
This commit will add the index for the question_reference
and the question_set_reference table if its not already
added. This commit will also implement the logic of adding
the question area and component in the joins of the question
reference table in order to make sure any other plugin using
the qbank api does not conflict with each other.
2022-03-24 18:04:47 +11:00
Amaia Anabitarte c0196fb096 MDL-73953 core_adminpresets: Marking core presets on DB 2022-03-02 12:49:01 +01:00
Jordi Pujol Ahulló 21f73b29c1 MDL-69764 tool_task: unify crontab verification
Use scheduled_task crontab field verification in
admin/tool/task to unify how Moodle deals with
crontab definition and its verification.
This helps remove duplicated code and fix
crontab definition not allowed in the web form,
but actually was valid.

Updated crontab fields precision on task_scheduled
table to have enough room for the worst case:
all possible different values separated by comma.
2022-02-17 13:24:31 +01:00
Eloy Lafuente (stronk7) 3bb4a4009c MDL-73764 tool_xmldb: Regenerate all the files detected by the report
Note that, instead of going one by one to them from the XMLDB Editor
(load, makes some tiny change, save, revert the change, save), the
report includes a commented line that, once uncommented, does regenerate
the file while reporting.

I've left it there as a commodity for the developer.
2022-02-08 19:25:03 +01:00
Sara Arjona 1d0609bbdd MDL-71696 question: Align new tables with install/upgrade
Amended because, in all cases, install.xml wins and we
have make upgrade.php to match it...

But in the question_versions->status case, that needs to
be NOT_NULL, so upgrade was correct and install.xml has
been changed for it.

Note this has been changed without using the editor because
it has been detected that there are other changes in the xml
file that have been added manually, we'll create a "reconcile"
issue to fix that (mainly whitespace).

So, yes, please, always use the editor.
2022-02-03 16:32:04 +01:00
Guillermo Gomez c34b89a3c2 MDL-71696 core_question: Implement new database schema
This commit implements the new database structure for
versioning in question. It also does the migration of
current data to the new structure.

Co-Authored-By: Safat Shahin <safatshahin@catalyst-au.net>
Co-Authored-By: Guillermo Gomez Arias <guillermogomez@catalyst-au.net>
2022-02-03 22:22:38 +11:00
Sara Arjona 727f0d4daf MDL-73397 adminpresets: Create new core_adminpresets component
The core_adminpresets component has been added and some data and
methods from the tool_admin_presets have been moved here.
2022-01-03 11:51:33 +01:00
Paul Holden eb460d93aa MDL-72598 reportbuilder: schema and model updates for schedules. 2021-12-17 14:33:27 +00:00
Paul Holden be11216d30 MDL-72826 reportbuilder: per-report option to show only unique rows.
This option allows report creators to avoid duplicate data being
displayed in their report. It is applied only when no columns in the
report currently have aggregation methods applied.
2021-11-16 13:59:16 +00:00
Mikel Martín aaa7a5a445 MDL-72565 reportbuilder: Add 'Card view' settings to custom reports
- Create a new 'settings' column in reportbuilder_report table and provide an API to manage it
- Add new card view settings to custom reports
2021-11-11 13:55:29 +01:00
Simey Lameze 89e59a60ef MDL-69561 mod: handle content download on course modules 2021-11-11 18:38:53 +08:00
David Matamoros b2dd94ab8b MDL-72588 reportbuilder: define schema/models for report audiences. 2021-10-27 10:05:44 +02:00
Paul Holden 95967d62d5 MDL-70795 reportbuilder: define updated schema for custom reports.
Define new filter/column models, and updated database schema to
match.
2021-10-19 13:48:27 +01:00
Víctor Déniz da8b658229 Merge branch 'MDL-57980-master_grade_items_index' of https://github.com/agrowe/moodle 2021-10-07 16:02:52 +01:00
Alex Rowe 5ea613c99b MDL-57980 grade_items: add mdl_grade_items index
New index created on itemtype, itemmodule, iteminstance and courseid
2021-10-05 09:30:14 +11:00
Peter 663137748e MDL-52206 core: Add completion based on pass grade
Add new completion based on pass grade to the completion criteria.
2021-10-04 19:42:34 +08:00
Paul Holden 542f2927f7 MDL-70794 reportbuilder: register new core sub-system.
In addition to housekeeping for the new sub-system, define our
table schema to be used in later persistents.
2021-07-28 16:40:50 +01:00
Andrew Nicols 7782eeb55e Merge branch 'MDL-65637-master' of git://github.com/peterRd/moodle 2021-06-09 13:22:49 +08:00
Mikhail Golenkov ee3c6ad3ac MDL-71438 blocks: Add index on mdl_user_preferences.name 2021-06-02 22:10:37 +10:00
Peter Dias 8e71f6b1f1 MDL-65637 core_oauth2: Introduce a new custom linkedin oauth2 client 2021-06-02 08:11:38 +08:00
Jun Pataleta fca42002f7 MDL-71370 course: Make showcompletionconditions nullable
* When completion tracking is not enabled for the course, it does not
make sense for the course's showcompletionconditions setting to
be set according to the default value indicated by the
"moodlecourse | showcompletionconditions" admin setting. Setting
showcompletionconditions as enabled when completion tracking is disabled
makes even less sense. So in such a case, we should not be setting a
default value for showcompletionconditions and allow it to be null.

* When the course is edited and completion tracking is enabled, this
also would set the "Show completion conditions" field to default to the
value set in the "moodlecourse | showcompletionconditions" admin
setting.
2021-04-24 19:07:42 +08:00