Commit Graph

837 Commits

Author SHA1 Message Date
Ferran Recio 70abc44e05 MDL-76225 core_courseformat: fix section title id 2022-11-30 16:47:09 +01:00
Eloy Lafuente (stronk7) 88f2c9bb45 MDL-75880 phpunit: fix all @coversDefaultClass missing @covers
Because @coversDefaultClass doesn't indicate any coverage (it's
just an alias to avoid having to write the class name in @covers),
this commit fixes all the files that were using that annotation
and missing any @covers.

Basically, replacing one by the other and done.
2022-11-04 16:51:24 +01:00
Jun Pataleta 1ae08553b7 MDL-75759 courseformat: Link classes in PHPDocs with @see tags
- Linking classes/methods mentioned in PHPDoc with @see tags help devs
checking the PHPDoc to quickly navigate to the class/method mentioned
and also helps us ensure that it points to the correct class/method.
- Some typo/grammar fixes as well in existing PHPDoc descriptions.
- Fixed parameter type in execute()'s PHPDoc block.
2022-11-03 11:58:18 +08:00
Simey Lameze 97c3804ac3 MDL-75759 courseformat: fix documentation of stateupdates tests 2022-11-03 11:58:18 +08:00
Jun Pataleta 55f0f4e0f4 MDL-75759 courseformat: Fix stateactions test
* Require lib/externallib.php in
\core_courseformat\output\local\state\cm::export_for_template()
* Point @coversDefaultClass to the proper class.
2022-11-03 11:58:18 +08:00
Philipp Memmel 42b3b6da8d MDL-75771 core_courseformat: Add behat test for show_editor function 2022-10-28 17:25:52 +02:00
Philipp Memmel 8db30d32f8 MDL-75771 core_courseformat: Fix capability for edit controls
course_format\base:show_editor now by default uses 'moodle/course:manageactivities', but also accepts other capabilities as param
2022-10-28 17:25:29 +02:00
sam marshall 0a5b0201b4 MDL-75074 core_courseformat: Output classes are not inherited
If you have one course format that extends another one, any course
format output classes that are not defined in the child format will
now inherit from the parent (instead of from the base class as
before).
2022-10-03 11:22:05 +01:00
Eloy Lafuente (stronk7) d24f96a248 MDL-66902 tests: Fix all incorrect namespaces
This issue just goes over all the currently incorrect
namespaces in test cases and:

1. Change the namespace to the correct one.
2. Move/rename it to correct location if needed (level 2 and down).
3. Remove not needed MOODLE_INTERNAL check when possible.
4. Remove file phpdoc when the file only has one class.
5. Make small adjustments in case the change of namespace requires it.
2022-09-26 14:30:41 +02:00
Jun Pataleta 24a00a0d97 Merge branch 'MDL-75714_400' of https://github.com/stronk7/moodle into MOODLE_400_STABLE 2022-09-15 09:26:13 +08:00
Eloy Lafuente (stronk7) 6e672c0a82 MDL-75714 navigation: Cover a couple of situations with behat
- Guest user attempting to access to single-activity course.
- Not enrolled user attempt to access to single-activity course.

Both should, by default, land to the "cannot access/enrol" page.
2022-09-14 23:41:25 +02:00
Ferran Recio 5d6d91b706 MDL-75625 core_courseformat: fix MDL-71979 comments 2022-09-14 20:05:32 +01:00
Justus Dieckmann d6ff7db956 MDL-75555 core_courseformat: Remove duplicate section collapse requests
Previously, by simulating a click, the section toggle listener
was invoked again. Instead, it now uses the bootstrap collapse
function directly.
2022-08-25 23:19:27 +02:00
Ferran Recio 68b3f1e4a7 MDL-74800 core_courseformat: fix accessibility checks 2022-08-08 14:51:23 +02:00
Simey Lameze 437db87b3e MDL-74925 course: use the correct 'remove' action 2022-07-18 14:50:43 +08:00
Eloy Lafuente (stronk7) 8bdba9bdca MDL-73971 phpunit: Move more tests to use correct names and namespaces
Applied the following changes to various testcase classes:

- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.

Special mention to:

- Some fixtures, initially defined in the test files have been
  moved to new files in fixtures subdirectory, leaving the unit
  test files clearer:
  - moodle2_course_format_test.php
- Rename wrong named test:
  - baseoptiogroup_test = baseoptigroup_test
2022-05-06 18:29:16 +02:00
Ilya Tregubov 33829b8b68 Merge branch 'mdl65478-fix-400' of https://github.com/matthewhilton/moodle into MOODLE_400_STABLE 2022-05-03 15:43:59 +06:00
Jason den Dulk 43cbc05a2d MDL-65478 backup, course format: Handle editor elements in course format
Modified course format options reading and writing to be able to handle Editor elements by enabling them to split array values into
multiple values before inserting into database, and combining multiple values into an array when reading from the database.
Modified backup and restore code to use backup_nested_elements, and to interact directly with the database.

Co-authored-by: Jason den Dulk <jasondendulk@catalyst-au.net>
Co-authored-by: Matthew Hilton <matthewhilton@catalyst-au.net>
2022-05-03 14:23:15 +10:00
Eloy Lafuente (stronk7) 205e4152cc MDL-74510 upgrade: add the 4.0.0 separation line to all upgrade scripts 2022-04-22 18:45:16 +02:00
Jun Pataleta 70f6b1605b MDL-74471 versions: bump all versions and requires near release 2022-04-13 10:37:36 +08:00
Andrew Nicols 4b388fc239 MDL-74235 core: Update core uses of activity icons to monologo 2022-04-07 12:56:14 +08:00
Paul Holden 4150685592 MDL-74222 course: add aria-controls attribute to expand/collapse all. 2022-04-01 18:44:24 +01:00
Jun Pataleta 53fc54cce5 Merge branch 'MDL-74257-master' of https://github.com/ferranrecio/moodle 2022-03-28 14:45:14 +08:00
Andrew Nicols 4bb0feb176 MDL-73952 course: Revert iscurrent => highlighted rename 2022-03-28 14:37:55 +08:00
Andrew Nicols 495da02824 MDL-73952 core_course: Rename iscurrent to highlighted
The term 'iscurrent' suggests that something is current, when this may
not be technically true. The term highlight is more appropriate as we
are highlighting content. Whether that content is for the current week
may also be true, but it may be that some course formats allow multiple
sections to be highlighted.
2022-03-28 13:15:12 +08:00
Andrew Nicols a313795354 Merge branch 'MDL-73952-master' of https://github.com/bmbrands/moodle 2022-03-28 13:09:55 +08:00
Jun Pataleta c1c52cfddd Merge branch 'MDL-73556-master' of https://github.com/ferranrecio/moodle 2022-03-24 23:50:07 +08:00
Ferran Recio b4f62d2426 MDL-74257 core_courseforrmat: fix make available badge 2022-03-23 17:31:22 +01:00
Sara Arjona a3de1eff1b Merge branch 'MDL-74160-master' of https://github.com/ferranrecio/moodle 2022-03-22 16:51:05 +01:00
Ferran Recio ce7edab8a8 MDL-74160 core_coureformat: fix legacy renderer methods
To ensure legacy course formats works on Moodle 4.0 some method are
reintroduced (but marked as deprecated) like start_section_list and
end_section_list. Furthermore, the course_section_cm_availability
returns a string again as expected.
2022-03-22 10:59:14 +01:00
Ferran Recio bf642fb6fc MDL-73556 core_courseformat: fix course index click toggle
When the user clicks on a course index chevron the section is toggled.
However, when clicks on the section name the section is expanded but
never collapsed.
2022-03-18 14:39:32 +01:00
Andrew Nicols 27bed0b928 Merge branch 'MDL-72991-master-4' of https://github.com/HuongNV13/moodle 2022-03-17 22:25:10 +08:00
Huong Nguyen bfe14e2312 MDL-72991 Course: Partial course cache rebuild with cache versioning 2022-03-17 15:34:26 +07:00
Dongsheng Cai f97b86e841 MDL-72991 Course: Partial course cache rebuild
When updating/deleting a section/module, the system now only
invalidate of the element (section/module), not the whole course cache
Also, the system now only recalculate the cache for element (section/module)
if necessary, not the whole course cache

Move module/section purging to course_modinfo:
  + course_modinfo::purge_course_section_cache_by_id was created to purge section by id
  + course_modinfo::purge_course_section_cache_by_number was created to purge section by number
  + course_modinfo::purge_course_module_cache was created to purge module
2022-03-17 15:34:01 +07:00
Jun Pataleta b9ff0ff99b MDL-74073 courseformat: Toggle Collapse/Expand all via space key
* Add 'space' keydown event handler on the Collapse/Expand all element
on the course homepage.
* Set aria-expanded attribute of the Expand/Collapse all element
accordingly

Reference:
https://www.w3.org/TR/wai-aria-practices-1.1/#disclosure
2022-03-16 14:09:15 +08:00
Bas Brands c3f0f59134 MDL-73952 core_course: update section badges using JS 2022-03-14 09:10:07 +01:00
Víctor Déniz 2ac75e55a9 Merge branch 'MDL-74090-master' of https://github.com/junpataleta/moodle 2022-03-08 00:00:19 +00:00
Jun Pataleta 3314000eaf MDL-74090 core: Proper RTL/LTR display of collapsed icons 2022-03-05 00:45:32 +08:00
Eloy Lafuente (stronk7) 4003e31983 MDL-73785 phpunit: Move more tests to use correct names and namespaces
Applied the following changes to various testcase classes:

- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.

Special mention to:

- When belonging to other components and being valid api:
  - analytics related tests have been moved to tests/analytics subdir.
  - backup & restore related tests have been moved to tests/backup subdir.
  - events related tests have been moved to tests/event subdir.
  - privacy related tests have been moved to tests/privacy.
  - task related tests have been moved to tests/task subdir.
- Some simple renames, not including the component part anymore (not
  needed now that they are namespaced):
  - some xxxlib_test.php have been renamed lib_test.php
    (when they where testing the corresponding lib.php).
  - cache stores tests have been all renamed store_test, originally
    each one had its own name (file_test, apcu_test, redis_test...)
  - assign feedback tests have been all renamed feedback_test, originally
    each one had its own name (file_test, editpdf_test...)
2022-03-03 12:19:30 +01:00
Ferran Recio ce887084fe MDL-73880 core_courseformat: fix section availability box 2022-03-02 10:31:59 +01:00
Jun Pataleta 1569398c56 Merge branch 'wip_MDL-73877_master' of https://github.com/gjb2048/moodle 2022-03-01 10:09:18 +01:00
Andrew Nicols 1c7a3712fd MDL-73679 core_courseformat: Move section content to separate template
Course formats may want to preserve the existing section information,
but either change the wrapper (.section .course-section-header), or
prepend and append additional content to it.

Prior to this change, the only way to do this was by copying the entire
content of the template.

This change moves the content of the .course-section-header to a
separate template.

This means that a course format can replace the .section
.course-section-header wrapper whilst retaining its content by
overriding the content/section template and including the
content/section/content template. For example:

```
<li id="section-{{num}}"{{!
    }} class="section course-section main clearfix{{!
    }}{{#onlysummary}} section-summary{{/onlysummary}}{{!
    }}{{#ishidden}} hidden{{/ishidden}}{{!
    }}{{#iscurrent}} current{{/iscurrent}}{{!
    }}{{#isstealth}} orphaned{{/isstealth}}{{!
    }}"
    data-sectionid="{{num}}"
    data-sectionreturnid="{{sectionreturnid}}"
    data-for="section"
    data-id="{{id}}"
    data-number="{{num}}"{{!
}}>

  <!--
      Add a custom div to the existing wrapper, without replacing the
      entire content of the section/content.
  -->
  <div class="my-custom-content">

    <!--
        The upstream content is here:
    -->
    <div class="course-section-header d-flex"
        data-for="section_title"
        data-id="{{id}}"
        data-number="{{num}}"
    >
        {{$ core_courseformat/local/content/cm/section/content }}
            {{> core_courseformat/local/content/cm/section/content }}
        {{/ core_courseformat/local/content/cm/section/content }}
    </div>

  </div>

</li>
```

It also means that a course format can append additional information to
this wrapper, for example:

```
{{< core_courseformat/local/content/section }}
    {{$ core_courseformat/local/content/cm/section/content }}
        <div class="some-custom-class">
            <!--
                Some custom content appended _before_ the course section
                content but within the wrapper
            -->
        </div>

        {{> core_courseformat/local/content/cm/section/content }}

        <div class="some-custom-class">
            <!--
                Some custom content appended _after_ the course section
                content but within the wrapper
            -->
        </div>
    {{/ core_courseformat/local/content/cm/section/content }}
{{/ core_courseformat/local/content/section }}
```
2022-03-01 12:03:47 +08:00
Andrew Nicols 9771a81a12 MDL-73679 core_courseformat: Move activity content to separate template
Course formats may want to preserve the existing activity information,
but either change the wrapper (.activity-item), or prepend and append
additional content to it.

Prior to this change, the only way to do this was by copying the entire
content of the template.

This change moves the content of the activity-item to a separate
template.

This means that a course format can replace the activity-item wrapper
whilst retaining its content by overriding the cm template and including
the cm/activity template. For example:

```
<div class="my-custom-activity-item {{!
        }}{{#modstealth}}hiddenactivity{{/modstealth}}{{!
        }}{{#modhiddenfromstudents}}hiddenactivity{{/modhiddenfromstudents}}{{!
        }}{{#modinline}}activityinline{{/modinline}}" data-activityname="{{activityname}}">
    {{#moveicon}} {{{moveicon}}} {{/moveicon}}
    {{$ core_courseformat/local/content/cm/activity }}
        {{> core_courseformat/local/content/cm/activity }}
    {{/ core_courseformat/local/content/cm/activity }}
</div>
```

It also means that a course format can append additional information to
this wrapper, for example:

```
{{< core_courseformat/local/content/cm }}
    {{$ core_courseformat/local/content/cm/activity }}
        {{> core_courseformat/local/content/cm/activity }}
    {{#cmmeta}}
    <div class="ct-activity-meta-container">
        {{{cmmeta}}}
    </div>
    {{/cmmeta}}
    {{/ core_courseformat/local/content/cm/activity }}
{{/ core_courseformat/local/content/cm }}
```
2022-03-01 12:03:47 +08:00
Andrew Nicols ccb7d6db62 MDL-73679 courseformat: Wrap template inclusions in blocks 2022-03-01 12:03:47 +08:00
Andrew Nicols d6052154a6 MDL-73679 courseformat: Add support for course format templating 2022-03-01 12:03:46 +08:00
Andrew Nicols 6544843894 Merge branch 'MDL-73762-master' of https://github.com/ferranrecio/moodle 2022-03-01 09:35:59 +08:00
Gareth Barnard d1a473a3d6 MDL-73877 core_course: current class not applied to highlighted section 2022-02-26 11:52:32 +00:00
Ferran Recio 479faca428 MDL-73762 core_courseformat: fix coursedisplay dependency
For legacy reasons, the course renderings uses a format setting to know
if the page is multiple sections per page or a single section per page.
This format specific dependency is not solved using a get_course_display
format method any plugin can extend.
2022-02-25 13:35:23 +01:00
Ferran Recio 23856b1086 MDL-73762 core_courseformat: refactor cm and section outputs 2022-02-25 13:35:23 +01:00
Andrew Nicols faa6c74404 Merge branch 'MDL-73547-master-v03' of https://github.com/ferranrecio/moodle 2022-02-25 10:55:20 +08:00