* When an editing teacher has not the capability to change visibility
(for example if for a given module the capability is removed), the visibility
drop down menu in the card should not be available.
* When forced groupmode is enabled for the course:
- the group selection in the activity card be disabled
- the activity action menu groupmode will not be visible.
- only the icon will be visible
* Add new test to check for visibility
When duplicating a course module, availability restrictions was not rendering
properly. That happened because 'editing' was not being exported for template
for a single course module. This patch adds 'editing' to the cm exported data.
When bulk-updating course module visibility, set_coursemodule_visibily
was triggering a partial cache purge and rebuild for each course module.
This potentially led to 2 cache sets each requiring a lock to be
acquired and released per course module, plus any other cache updates
for other changes to the course in the same request.
This adds a new $rebuildcache paramter to the
set_coursemodule_visibilty, which is true by default to retain the
existing behaviour. If set false, it will skip doing the partial purge
and rebuild for that course module, and it is up to the calling code to
ensure the cache is updated as requried.
To assist with this, there is a new
course_modinfo::purge_course_module_cache_multiple() method, which
allows multiple course modules to be purged from the cache in a single
cache set.
* When toggling bulk editing, updating the page's title can help users,
especially screen reader users, to determine the current editing state
of the course homepage.
Deprecate core_course\output\activity_information class and move its code to two
new classes: core_course\output\activity_completion and core_course\output\activity_dates.
In this process refactor activity_completion improving readability and and also deprecate
renderer_base::activity_information() and core_course_renderer::render_activity_information().
Basically all them are comments.
Only remaining occurrence remaining is
in composer.lock file, because friends-of-behat/mink-extension
still has the old goutte as dev requirement, but that doesn't
affect us at all (no goutte is installed anymore, see the vendor
directory and/or the lock file).
In course page activity icon was showing as a link even when the user
does not have access to the activity. This commit fixes this behaviour
checking if activity is visible for the user and showing the icon without
link if not.
- Update completion dropdown button styles for students depending on activity
overall completion status.
- Add new behat partial named selector 'core_courseformat > Activity completion'
- Add new behat Feature to test activity completion criteria button or dropdown
for students and teachers.
- Move completion information to a new output class 'core_courseformat\output\local\content\cm\completion'
- Replace current dropdown with 'core\output\local\dropdown\dialog'
- Modify manual conditions logic in course page. Now 'Mark as done' button will only be displayed to
tracked users (with moodle/course:isincompletionreports capability)
- Add new styles for completion dialog contents
Also removed the 10rem bottom margin form the quiz editing page. It was
there to make sure that there is enough room for the 'add new question'
dropdown. But it's not needed anymore (hasn't been since long time ago).
- Create new availability template, so it can be reused from both
section/availability and cm/availability mustaches.
- When rendering activity or section restrictions with long or multiline text
display a condensed version (excerpt) and use 'showmore' component to add
showmore/showless behaviour.
Co-authored-by: Ferran Recio <ferran@moodle.com>
- Refactor activity card templates to use a grid layout.
- Remove 'description-inner' related classes and styles.
- Add small comments to SCSS for future better understanding.
- Add independent renderable for course module icon
The new activity card design proposed for Moodle 4.3 differentiates badge
information from other HTML content (displayed using the afterlink feature).
This commit adds a new activitybadge class that can be extended by any
module to display any content in a badge near the activity name. These
are the main features:
- The badge content is always plain text (no HTML).
- The badge style can be set (by default is initialized with badge-none,
but it can be set by any module).
- An optional URL to redirect the user when the badge is clicked.
- An optional ID to add the element in case the module wants to add some
JS to the badge events.
- Optionally, any other extra HTML attributes to the badge element (for
example, data attributes).
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.