MDL-53700 competency: Migrate capabilities to core
[moodle.git] / admin / tool / lp / db / services.php
1 <?php
2 // This file is part of Moodle - http://moodle.org/
3 //
4 // Moodle is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // Moodle is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
18 /**
19  * Learning plan webservice functions.
20  *
21  *
22  * @package    tool_lp
23  * @copyright  2015 Damyon Wiese
24  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
25  */
27 defined('MOODLE_INTERNAL') || die();
29 $functions = array(
31     // Learning plan related functions.
33     'tool_lp_create_competency_framework' => array(
34         'classname'    => 'tool_lp\external',
35         'methodname'   => 'create_competency_framework',
36         'classpath'    => '',
37         'description'  => 'Creates new competency frameworks.',
38         'type'         => 'write',
39         'capabilities' => 'moodle/competency:competencymanage',
40         'ajax'         => true,
41     ),
42     'tool_lp_read_competency_framework' => array(
43         'classname'    => 'tool_lp\external',
44         'methodname'   => 'read_competency_framework',
45         'classpath'    => '',
46         'description'  => 'Load a summary of a competency framework.',
47         'type'         => 'read',
48         'capabilities' => 'moodle/competency:competencyview',
49         'ajax'         => true,
50     ),
51     'tool_lp_duplicate_competency_framework' => array(
52         'classname'    => 'tool_lp\external',
53         'methodname'   => 'duplicate_competency_framework',
54         'classpath'    => '',
55         'description'  => 'Duplicate a competency framework.',
56         'type'         => 'write',
57         'capabilities' => 'moodle/competency:competencymanage',
58         'ajax'         => true,
59     ),
60     'tool_lp_delete_competency_framework' => array(
61         'classname'    => 'tool_lp\external',
62         'methodname'   => 'delete_competency_framework',
63         'classpath'    => '',
64         'description'  => 'Delete a competency framework.',
65         'type'         => 'write',
66         'capabilities' => 'moodle/competency:competencymanage',
67         'ajax'         => true,
68     ),
69     'tool_lp_update_competency_framework' => array(
70         'classname'    => 'tool_lp\external',
71         'methodname'   => 'update_competency_framework',
72         'classpath'    => '',
73         'description'  => 'Update a competency framework.',
74         'type'         => 'write',
75         'capabilities' => 'moodle/competency:competencymanage',
76         'ajax'         => true,
77     ),
78     'tool_lp_list_competency_frameworks' => array(
79         'classname'    => 'tool_lp\external',
80         'methodname'   => 'list_competency_frameworks',
81         'classpath'    => '',
82         'description'  => 'Load a list of a competency frameworks.',
83         'type'         => 'read',
84         'capabilities' => 'moodle/competency:competencyview',
85         'ajax'         => true,
86     ),
87     'tool_lp_count_competency_frameworks' => array(
88         'classname'    => 'tool_lp\external',
89         'methodname'   => 'count_competency_frameworks',
90         'classpath'    => '',
91         'description'  => 'Count a list of a competency frameworks.',
92         'type'         => 'read',
93         'capabilities' => 'moodle/competency:competencyview',
94         'ajax'         => true,
95     ),
96     'tool_lp_competency_framework_viewed' => array(
97         'classname'    => 'tool_lp\external',
98         'methodname'   => 'competency_framework_viewed',
99         'classpath'    => '',
100         'description'  => 'Log event competency framework viewed',
101         'type'         => 'read',
102         'capabilities' => 'moodle/competency:competencyview',
103         'ajax'         => true,
104     ),
105     'tool_lp_data_for_competency_frameworks_manage_page' => array(
106         'classname'    => 'tool_lp\external',
107         'methodname'   => 'data_for_competency_frameworks_manage_page',
108         'classpath'    => '',
109         'description'  => 'Load the data for the competency frameworks manage page template',
110         'type'         => 'read',
111         'capabilities' => 'moodle/competency:competencyview',
112         'ajax'         => true,
113     ),
114     'tool_lp_create_competency' => array(
115         'classname'    => 'tool_lp\external',
116         'methodname'   => 'create_competency',
117         'classpath'    => '',
118         'description'  => 'Creates new competencies.',
119         'type'         => 'write',
120         'capabilities' => 'moodle/competency:competencymanage',
121         'ajax'         => true,
122     ),
123     'tool_lp_read_competency' => array(
124         'classname'    => 'tool_lp\external',
125         'methodname'   => 'read_competency',
126         'classpath'    => '',
127         'description'  => 'Load a summary of a competency.',
128         'type'         => 'read',
129         'capabilities' => 'moodle/competency:competencyview',
130         'ajax'         => true,
131     ),
132     'tool_lp_competency_viewed' => array(
133         'classname'    => 'tool_lp\external',
134         'methodname'   => 'competency_viewed',
135         'classpath'    => '',
136         'description'  => 'Log event competency viewed',
137         'type'         => 'read',
138         'capabilities' => 'moodle/competency:competencyview',
139         'ajax'         => true,
140     ),
141     'tool_lp_delete_competency' => array(
142         'classname'    => 'tool_lp\external',
143         'methodname'   => 'delete_competency',
144         'classpath'    => '',
145         'description'  => 'Delete a competency.',
146         'type'         => 'write',
147         'capabilities' => 'moodle/competency:competencymanage',
148         'ajax'         => true,
149     ),
150     'tool_lp_update_competency' => array(
151         'classname'    => 'tool_lp\external',
152         'methodname'   => 'update_competency',
153         'classpath'    => '',
154         'description'  => 'Update a competency.',
155         'type'         => 'write',
156         'capabilities' => 'moodle/competency:competencymanage',
157         'ajax'         => true,
158     ),
159     'tool_lp_data_for_competency_summary' => array(
160         'classname'    => 'tool_lp\external',
161         'methodname'   => 'data_for_competency_summary',
162         'classpath'    => '',
163         'description'  => 'Load competency data for summary template.',
164         'type'         => 'read',
165         'capabilities' => 'moodle/competency:competencyview',
166         'ajax'         => true,
167     ),
168     'tool_lp_list_competencies' => array(
169         'classname'    => 'tool_lp\external',
170         'methodname'   => 'list_competencies',
171         'classpath'    => '',
172         'description'  => 'Load a list of a competencies.',
173         'type'         => 'read',
174         'capabilities' => 'moodle/competency:competencyview',
175         'ajax'         => true,
176     ),
177     'tool_lp_list_competencies_in_template' => array(
178         'classname'    => 'tool_lp\external',
179         'methodname'   => 'list_competencies_in_template',
180         'classpath'    => '',
181         'description'  => 'Load a list of a competencies for a given template.',
182         'type'         => 'read',
183         'capabilities' => 'moodle/competency:competencyview',
184         'ajax'         => true,
185     ),
186     'tool_lp_count_competencies' => array(
187         'classname'    => 'tool_lp\external',
188         'methodname'   => 'count_competencies',
189         'classpath'    => '',
190         'description'  => 'Count a list of a competencies.',
191         'type'         => 'read',
192         'capabilities' => 'moodle/competency:competencyview',
193         'ajax'         => true,
194     ),
195     'tool_lp_count_competencies_in_template' => array(
196         'classname'    => 'tool_lp\external',
197         'methodname'   => 'count_competencies_in_template',
198         'classpath'    => '',
199         'description'  => 'Count a list of a competencies for a given template.',
200         'type'         => 'read',
201         'capabilities' => 'moodle/competency:competencyview',
202         'ajax'         => true,
203     ),
204     'tool_lp_search_competencies' => array(
205         'classname'    => 'tool_lp\external',
206         'methodname'   => 'search_competencies',
207         'classpath'    => '',
208         'description'  => 'Search a list of a competencies.',
209         'type'         => 'read',
210         'capabilities' => 'moodle/competency:competencyview',
211         'ajax'         => true,
212     ),
213     'tool_lp_data_for_competencies_manage_page' => array(
214         'classname'    => 'tool_lp\external',
215         'methodname'   => 'data_for_competencies_manage_page',
216         'classpath'    => '',
217         'description'  => 'Load the data for the competencies manage page template',
218         'type'         => 'read',
219         'capabilities' => 'moodle/competency:competencyview',
220         'ajax'         => true,
221     ),
222     'tool_lp_set_parent_competency' => array(
223         'classname'    => 'tool_lp\external',
224         'methodname'   => 'set_parent_competency',
225         'classpath'    => '',
226         'description'  => 'Set a new parent for a competency.',
227         'type'         => 'write',
228         'capabilities' => 'moodle/competency:competencymanage',
229         'ajax'         => true,
230     ),
231     'tool_lp_move_up_competency' => array(
232         'classname'    => 'tool_lp\external',
233         'methodname'   => 'move_up_competency',
234         'classpath'    => '',
235         'description'  => 'Re-order a competency.',
236         'type'         => 'write',
237         'capabilities' => 'moodle/competency:competencymanage',
238         'ajax'         => true,
239     ),
240     'tool_lp_move_down_competency' => array(
241         'classname'    => 'tool_lp\external',
242         'methodname'   => 'move_down_competency',
243         'classpath'    => '',
244         'description'  => 'Re-order a competency.',
245         'type'         => 'write',
246         'capabilities' => 'moodle/competency:competencymanage',
247         'ajax'         => true,
248     ),
249     'tool_lp_list_course_competencies' => array(
250         'classname'    => 'tool_lp\external',
251         'methodname'   => 'list_course_competencies',
252         'classpath'    => '',
253         'description'  => 'List the competencies in a course',
254         'type'         => 'read',
255         'capabilities' => 'moodle/competency:coursecompetencyview',
256         'ajax'         => true,
257     ),
258     'tool_lp_list_courses_using_competency' => array(
259         'classname'    => 'tool_lp\external',
260         'methodname'   => 'list_courses_using_competency',
261         'classpath'    => '',
262         'description'  => 'List the courses using a competency',
263         'type'         => 'read',
264         'capabilities' => 'moodle/competency:coursecompetencyview',
265         'ajax'         => true,
266     ),
267     'tool_lp_count_competencies_in_course' => array(
268         'classname'    => 'tool_lp\external',
269         'methodname'   => 'count_competencies_in_course',
270         'classpath'    => '',
271         'description'  => 'List the competencies in a course',
272         'type'         => 'read',
273         'capabilities' => 'moodle/competency:coursecompetencyview',
274         'ajax'         => true,
275     ),
276     'tool_lp_count_courses_using_competency' => array(
277         'classname'    => 'tool_lp\external',
278         'methodname'   => 'count_courses_using_competency',
279         'classpath'    => '',
280         'description'  => 'List the courses using a competency',
281         'type'         => 'read',
282         'capabilities' => 'moodle/competency:coursecompetencyview',
283         'ajax'         => true,
284     ),
285     'tool_lp_add_competency_to_course' => array(
286         'classname'    => 'tool_lp\external',
287         'methodname'   => 'add_competency_to_course',
288         'classpath'    => '',
289         'description'  => 'Add the competency to a course',
290         'type'         => 'write',
291         'capabilities' => 'moodle/competency:coursecompetencymanage',
292         'ajax'         => true,
293     ),
294     'tool_lp_add_competency_to_template' => array(
295         'classname'    => 'tool_lp\external',
296         'methodname'   => 'add_competency_to_template',
297         'classpath'    => '',
298         'description'  => 'Add the competency to a template',
299         'type'         => 'write',
300         'capabilities' => 'moodle/competency:templatemanage',
301         'ajax'         => true,
302     ),
303     'tool_lp_remove_competency_from_course' => array(
304         'classname'    => 'tool_lp\external',
305         'methodname'   => 'remove_competency_from_course',
306         'classpath'    => '',
307         'description'  => 'Remove a competency from a course',
308         'type'         => 'write',
309         'capabilities' => 'moodle/competency:coursecompetencymanage',
310         'ajax'         => true,
311     ),
312     'tool_lp_set_course_competency_ruleoutcome' => array(
313         'classname'    => 'tool_lp\external',
314         'methodname'   => 'set_course_competency_ruleoutcome',
315         'classpath'    => '',
316         'description'  => 'Modify the ruleoutcome value for course competency',
317         'type'         => 'write',
318         'capabilities' => 'moodle/competency:coursecompetencymanage',
319         'ajax'         => true,
320     ),
321     'tool_lp_remove_competency_from_template' => array(
322         'classname'    => 'tool_lp\external',
323         'methodname'   => 'remove_competency_from_template',
324         'classpath'    => '',
325         'description'  => 'Remove a competency from a template',
326         'type'         => 'write',
327         'capabilities' => 'moodle/competency:templatemanage',
328         'ajax'         => true,
329     ),
330     'tool_lp_data_for_course_competencies_page' => array(
331         'classname'    => 'tool_lp\external',
332         'methodname'   => 'data_for_course_competencies_page',
333         'classpath'    => '',
334         'description'  => 'Load the data for the course competencies page template.',
335         'type'         => 'read',
336         'capabilities' => 'moodle/competency:coursecompetencyview',
337         'ajax'         => true,
338     ),
339     'tool_lp_data_for_template_competencies_page' => array(
340         'classname'    => 'tool_lp\external',
341         'methodname'   => 'data_for_template_competencies_page',
342         'classpath'    => '',
343         'description'  => 'Load the data for the template competencies page template.',
344         'type'         => 'read',
345         'capabilities' => 'moodle/competency:templateview',
346         'ajax'         => true,
347     ),
348     'tool_lp_reorder_course_competency' => array(
349         'classname'    => 'tool_lp\external',
350         'methodname'   => 'reorder_course_competency',
351         'classpath'    => '',
352         'description'  => 'Move a course competency to a new relative sort order.',
353         'type'         => 'write',
354         'capabilities' => 'moodle/competency:coursecompetencymanage',
355         'ajax'         => true,
356     ),
357     'tool_lp_reorder_template_competency' => array(
358         'classname'    => 'tool_lp\external',
359         'methodname'   => 'reorder_template_competency',
360         'classpath'    => '',
361         'description'  => 'Move a template competency to a new relative sort order.',
362         'type'         => 'write',
363         'capabilities' => 'moodle/competency:templatemanage',
364         'ajax'         => true,
365     ),
366     'tool_lp_create_template' => array(
367         'classname'    => 'tool_lp\external',
368         'methodname'   => 'create_template',
369         'classpath'    => '',
370         'description'  => 'Creates new learning plan templates.',
371         'type'         => 'write',
372         'capabilities' => 'moodle/competency:templatemanage',
373         'ajax'         => true,
374     ),
375     'tool_lp_duplicate_template' => array(
376         'classname'    => 'tool_lp\external',
377         'methodname'   => 'duplicate_template',
378         'classpath'    => '',
379         'description'  => 'Duplicate learning plan template.',
380         'type'         => 'write',
381         'capabilities' => 'moodle/competency:templatemanage',
382         'ajax'         => true,
383     ),
384     'tool_lp_read_template' => array(
385         'classname'    => 'tool_lp\external',
386         'methodname'   => 'read_template',
387         'classpath'    => '',
388         'description'  => 'Load a summary of a learning plan template.',
389         'type'         => 'read',
390         'capabilities' => 'moodle/competency:templateview',
391         'ajax'         => true,
392     ),
393     'tool_lp_delete_template' => array(
394         'classname'    => 'tool_lp\external',
395         'methodname'   => 'delete_template',
396         'classpath'    => '',
397         'description'  => 'Delete a learning plan template.',
398         'type'         => 'write',
399         'capabilities' => 'moodle/competency:templatemanage',
400         'ajax'         => true,
401     ),
402     'tool_lp_update_template' => array(
403         'classname'    => 'tool_lp\external',
404         'methodname'   => 'update_template',
405         'classpath'    => '',
406         'description'  => 'Update a learning plan template.',
407         'type'         => 'write',
408         'capabilities' => 'moodle/competency:templatemanage',
409         'ajax'         => true,
410     ),
411     'tool_lp_list_templates' => array(
412         'classname'    => 'tool_lp\external',
413         'methodname'   => 'list_templates',
414         'classpath'    => '',
415         'description'  => 'Load a list of a learning plan templates.',
416         'type'         => 'read',
417         'capabilities' => 'moodle/competency:templateview',
418         'ajax'         => true,
419     ),
420     'tool_lp_list_templates_using_competency' => array(
421         'classname'    => 'tool_lp\external',
422         'methodname'   => 'list_templates_using_competency',
423         'classpath'    => '',
424         'description'  => 'Load a list of a learning plan templates for a given competency.',
425         'type'         => 'read',
426         'capabilities' => 'moodle/competency:templateview',
427         'ajax'         => true,
428     ),
429     'tool_lp_count_templates' => array(
430         'classname'    => 'tool_lp\external',
431         'methodname'   => 'count_templates',
432         'classpath'    => '',
433         'description'  => 'Count a list of a learning plan templates.',
434         'type'         => 'read',
435         'capabilities' => 'moodle/competency:templateview',
436         'ajax'         => true,
437     ),
438     'tool_lp_count_templates_using_competency' => array(
439         'classname'    => 'tool_lp\external',
440         'methodname'   => 'count_templates_using_competency',
441         'classpath'    => '',
442         'description'  => 'Count a list of a learning plan templates for a given competency.',
443         'type'         => 'read',
444         'capabilities' => 'moodle/competency:templateview',
445         'ajax'         => true,
446     ),
447     'tool_lp_data_for_templates_manage_page' => array(
448         'classname'    => 'tool_lp\external',
449         'methodname'   => 'data_for_templates_manage_page',
450         'classpath'    => '',
451         'description'  => 'Load the data for the learning plan templates manage page template',
452         'type'         => 'read',
453         'capabilities' => 'moodle/competency:templateview',
454         'ajax'         => true,
455     ),
456     'tool_lp_create_plan' => array(
457         'classname'    => 'tool_lp\external',
458         'methodname'   => 'create_plan',
459         'classpath'    => '',
460         'description'  => 'Creates a learning plan.',
461         'type'         => 'write',
462         'capabilities' => 'moodle/competency:planmanage',
463         'ajax'         => true,
464     ),
465     'tool_lp_update_plan' => array(
466         'classname'    => 'tool_lp\external',
467         'methodname'   => 'update_plan',
468         'classpath'    => '',
469         'description'  => 'Updates a learning plan.',
470         'type'         => 'write',
471         'capabilities' => 'moodle/competency:planmanage',
472         'ajax'         => true,
473     ),
474     'tool_lp_complete_plan' => array(
475         'classname'    => 'tool_lp\external',
476         'methodname'   => 'complete_plan',
477         'classpath'    => '',
478         'description'  => 'Complete learning plan.',
479         'type'         => 'write',
480         'capabilities' => 'moodle/competency:planmanage',
481         'ajax'         => true,
482     ),
483     'tool_lp_reopen_plan' => array(
484         'classname'    => 'tool_lp\external',
485         'methodname'   => 'reopen_plan',
486         'classpath'    => '',
487         'description'  => 'Reopen learning plan.',
488         'type'         => 'write',
489         'capabilities' => 'moodle/competency:planmanage',
490         'ajax'         => true,
491     ),
492     'tool_lp_read_plan' => array(
493         'classname'    => 'tool_lp\external',
494         'methodname'   => 'read_plan',
495         'classpath'    => '',
496         'description'  => 'Load a learning plan.',
497         'type'         => 'read',
498         'capabilities' => 'moodle/competency:planviewown',
499         'ajax'         => true,
500     ),
501     'tool_lp_delete_plan' => array(
502         'classname'    => 'tool_lp\external',
503         'methodname'   => 'delete_plan',
504         'classpath'    => '',
505         'description'  => 'Delete a learning plan.',
506         'type'         => 'write',
507         'capabilities' => 'moodle/competency:planmanage',
508         'ajax'         => true,
509     ),
510     'tool_lp_list_user_plans' => array(
511         'classname'    => 'tool_lp\external',
512         'methodname'   => 'list_user_plans',
513         'classpath'    => '',
514         'description'  => 'List a user\'s learning plans.',
515         'type'         => 'read',
516         'capabilities' => 'moodle/competency:planviewown',
517         'ajax'         => true,
518     ),
519     'tool_lp_data_for_plans_page' => array(
520         'classname'    => 'tool_lp\external',
521         'methodname'   => 'data_for_plans_page',
522         'classpath'    => '',
523         'description'  => 'Load the data for the plans page template',
524         'type'         => 'read',
525         'capabilities' => 'moodle/competency:planviewown',
526         'ajax'         => true,
527     ),
528     'tool_lp_data_for_plan_page' => array(
529         'classname'    => 'tool_lp\external',
530         'methodname'   => 'data_for_plan_page',
531         'classpath'    => '',
532         'description'  => 'Load the data for the plan page template.',
533         'type'         => 'read',
534         'capabilities' => 'moodle/competency:planview',
535         'ajax'         => true,
536     ),
537     'tool_lp_list_plan_competencies' => array(
538         'classname'    => 'tool_lp\external',
539         'methodname'   => 'list_plan_competencies',
540         'classpath'    => '',
541         'description'  => 'List the competencies in a plan',
542         'type'         => 'read',
543         'capabilities' => 'moodle/competency:planviewown',
544         'ajax'         => true,
545     ),
546     'tool_lp_add_competency_to_plan' => array(
547         'classname'    => 'tool_lp\external',
548         'methodname'   => 'add_competency_to_plan',
549         'classpath'    => '',
550         'description'  => 'Add the competency to a learning plan',
551         'type'         => 'write',
552         'capabilities' => 'moodle/competency:planmanage',
553         'ajax'         => true,
554     ),
555     'tool_lp_remove_competency_from_plan' => array(
556         'classname'    => 'tool_lp\external',
557         'methodname'   => 'remove_competency_from_plan',
558         'classpath'    => '',
559         'description'  => 'Remove the competency from a learning plan',
560         'type'         => 'write',
561         'capabilities' => 'moodle/competency:planmanage',
562         'ajax'         => true,
563     ),
564     'tool_lp_reorder_plan_competency' => array(
565         'classname'    => 'tool_lp\external',
566         'methodname'   => 'reorder_plan_competency',
567         'classpath'    => '',
568         'description'  => 'Move a plan competency to a new relative sort order.',
569         'type'         => 'write',
570         'capabilities' => 'moodle/competency:planmanage',
571         'ajax'         => true,
572     ),
573     'tool_lp_plan_request_review' => array(
574         'classname'    => 'tool_lp\external',
575         'methodname'   => 'plan_request_review',
576         'classpath'    => '',
577         'description'  => 'Request for a plan to be reviewed.',
578         'type'         => 'write',
579         'capabilities' => 'moodle/competency:planmanagedraft',
580         'ajax'         => true,
581     ),
582     'tool_lp_plan_start_review' => array(
583         'classname'    => 'tool_lp\external',
584         'methodname'   => 'plan_start_review',
585         'classpath'    => '',
586         'description'  => 'Start the review of a plan.',
587         'type'         => 'write',
588         'capabilities' => 'moodle/competency:planmanage',
589         'ajax'         => true,
590     ),
591     'tool_lp_plan_stop_review' => array(
592         'classname'    => 'tool_lp\external',
593         'methodname'   => 'plan_stop_review',
594         'classpath'    => '',
595         'description'  => 'Stop the review of a plan.',
596         'type'         => 'write',
597         'capabilities' => 'moodle/competency:planmanage',
598         'ajax'         => true,
599     ),
600     'tool_lp_plan_cancel_review_request' => array(
601         'classname'    => 'tool_lp\external',
602         'methodname'   => 'plan_cancel_review_request',
603         'classpath'    => '',
604         'description'  => 'Cancel the review of a plan.',
605         'type'         => 'write',
606         'capabilities' => 'moodle/competency:planmanagedraft',
607         'ajax'         => true,
608     ),
609     'tool_lp_approve_plan' => array(
610         'classname'    => 'tool_lp\external',
611         'methodname'   => 'approve_plan',
612         'classpath'    => '',
613         'description'  => 'Approve a plan.',
614         'type'         => 'write',
615         'capabilities' => 'moodle/competency:planmanage',
616         'ajax'         => true,
617     ),
618     'tool_lp_unapprove_plan' => array(
619         'classname'    => 'tool_lp\external',
620         'methodname'   => 'unapprove_plan',
621         'classpath'    => '',
622         'description'  => 'Unapprove a plan.',
623         'type'         => 'write',
624         'capabilities' => 'moodle/competency:planmanage',
625         'ajax'         => true,
626     ),
627      'tool_lp_template_has_related_data' => array(
628         'classname'    => 'tool_lp\external',
629         'methodname'   => 'template_has_related_data',
630         'classpath'    => '',
631         'description'  => 'Check if a template has related data',
632         'type'         => 'read',
633         'capabilities' => 'moodle/competency:templateview',
634         'ajax'         => true,
635     ),
636     'tool_lp_get_scale_values' => array(
637         'classname'    => 'tool_lp\external',
638         'methodname'   => 'get_scale_values',
639         'classpath'    => '',
640         'description'  => 'Fetch the values for a specific scale',
641         'type'         => 'read',
642         'capabilities' => 'moodle/competency:competencymanage',
643         'ajax'         => true,
644     ),
645     'tool_lp_add_related_competency' => array(
646         'classname'    => 'tool_lp\external',
647         'methodname'   => 'add_related_competency',
648         'classpath'    => '',
649         'description'  => 'Adds a related competency',
650         'type'         => 'write',
651         'capabilities' => 'moodle/competency:competencymanage',
652         'ajax'         => true,
653     ),
654     'tool_lp_remove_related_competency' => array(
655         'classname'    => 'tool_lp\external',
656         'methodname'   => 'remove_related_competency',
657         'classpath'    => '',
658         'description'  => 'Remove a related competency',
659         'type'         => 'write',
660         'capabilities' => 'moodle/competency:competencymanage',
661         'ajax'         => true,
662     ),
663     'tool_lp_data_for_related_competencies_section' => array(
664         'classname'    => 'tool_lp\external',
665         'methodname'   => 'data_for_related_competencies_section',
666         'classpath'    => '',
667         'description'  => 'Load the data for the related competencies template.',
668         'type'         => 'read',
669         'capabilities' => 'moodle/competency:competencyview',
670         'ajax'         => true,
671     ),
672     'tool_lp_search_users' => array(
673         'classname'    => 'tool_lp\external',
674         'methodname'   => 'search_users',
675         'classpath'    => '',
676         'description'  => 'Search for users.',
677         'type'         => 'read',
678         'capabilities' => '',
679         'ajax'         => true,
680     ),
681     'tool_lp_search_cohorts' => array(
682         'classname'    => 'tool_lp\external',
683         'methodname'   => 'search_cohorts',
684         'classpath'    => '',
685         'description'  => 'Search for cohorts.',
686         'type'         => 'read',
687         'capabilities' => 'moodle/cohort:view',
688         'ajax'         => true,
689     ),
691     // User evidence.
692     'tool_lp_read_user_evidence' => array(
693         'classname'    => 'tool_lp\external',
694         'methodname'   => 'read_user_evidence',
695         'classpath'    => '',
696         'description'  => 'Read an evidence of prior learning.',
697         'type'         => 'read',
698         'capabilities' => 'moodle/competency:userevidenceview',
699         'ajax'         => true,
700     ),
701     'tool_lp_delete_user_evidence' => array(
702         'classname'    => 'tool_lp\external',
703         'methodname'   => 'delete_user_evidence',
704         'classpath'    => '',
705         'description'  => 'Delete an evidence of prior learning.',
706         'type'         => 'write',
707         'capabilities' => 'moodle/competency:userevidencemanageown',
708         'ajax'         => true,
709     ),
710     'tool_lp_data_for_user_evidence_list_page' => array(
711         'classname'    => 'tool_lp\external',
712         'methodname'   => 'data_for_user_evidence_list_page',
713         'classpath'    => '',
714         'description'  => 'Load the data for the user evidence list page template',
715         'type'         => 'read',
716         'capabilities' => 'moodle/competency:userevidenceview',
717         'ajax'         => true,
718     ),
719     'tool_lp_data_for_user_evidence_page' => array(
720         'classname'    => 'tool_lp\external',
721         'methodname'   => 'data_for_user_evidence_page',
722         'classpath'    => '',
723         'description'  => 'Load the data for the user evidence page template',
724         'type'         => 'read',
725         'capabilities' => 'moodle/competency:userevidenceview',
726         'ajax'         => true,
727     ),
728     'tool_lp_create_user_evidence_competency' => array(
729         'classname'    => 'tool_lp\external',
730         'methodname'   => 'create_user_evidence_competency',
731         'classpath'    => '',
732         'description'  => 'Create an evidence of prior learning relationship with a competency.',
733         'type'         => 'read',
734         'capabilities' => 'moodle/competency:userevidencemanageown, moodle/competency:competencyview',
735         'ajax'         => true,
736     ),
737     'tool_lp_delete_user_evidence_competency' => array(
738         'classname'    => 'tool_lp\external',
739         'methodname'   => 'delete_user_evidence_competency',
740         'classpath'    => '',
741         'description'  => 'Delete an evidence of prior learning relationship with a competency.',
742         'type'         => 'write',
743         'capabilities' => 'moodle/competency:userevidencemanageown',
744         'ajax'         => true,
745     ),
747     // User competency.
748     'tool_lp_user_competency_cancel_review_request' => array(
749         'classname'    => 'tool_lp\external',
750         'methodname'   => 'user_competency_cancel_review_request',
751         'classpath'    => '',
752         'description'  => 'Cancel a review request.',
753         'type'         => 'write',
754         'capabilities' => 'moodle/competency:userevidencemanageown',
755         'ajax'         => true,
756     ),
757     'tool_lp_user_competency_request_review' => array(
758         'classname'    => 'tool_lp\external',
759         'methodname'   => 'user_competency_request_review',
760         'classpath'    => '',
761         'description'  => 'Request a review.',
762         'type'         => 'write',
763         'capabilities' => 'moodle/competency:userevidencemanageown',
764         'ajax'         => true,
765     ),
766     'tool_lp_user_competency_start_review' => array(
767         'classname'    => 'tool_lp\external',
768         'methodname'   => 'user_competency_start_review',
769         'classpath'    => '',
770         'description'  => 'Start a review.',
771         'type'         => 'write',
772         'capabilities' => 'moodle/competency:competencygrade',
773         'ajax'         => true,
774     ),
775     'tool_lp_user_competency_stop_review' => array(
776         'classname'    => 'tool_lp\external',
777         'methodname'   => 'user_competency_stop_review',
778         'classpath'    => '',
779         'description'  => 'Stop a review.',
780         'type'         => 'write',
781         'capabilities' => 'moodle/competency:competencygrade',
782         'ajax'         => true,
783     ),
785     'tool_lp_data_for_user_competency_summary' => array(
786         'classname'    => 'tool_lp\external',
787         'methodname'   => 'data_for_user_competency_summary',
788         'classpath'    => '',
789         'description'  => 'Load a summary of a user competency.',
790         'type'         => 'read',
791         'capabilities' => 'moodle/competency:planview',
792         'ajax'         => true,
793     ),
794     'tool_lp_user_competency_viewed' => array(
795         'classname'    => 'tool_lp\external',
796         'methodname'   => 'user_competency_viewed',
797         'classpath'    => '',
798         'description'  => 'Log the user competency viewed event.',
799         'type'         => 'read',
800         'capabilities' => 'moodle/competency:usercompetencyview',
801         'ajax'         => true,
802     ),
803     'tool_lp_user_competency_viewed_in_plan' => array(
804         'classname'    => 'tool_lp\external',
805         'methodname'   => 'user_competency_viewed_in_plan',
806         'classpath'    => '',
807         'description'  => 'Log the user competency viewed in plan event.',
808         'type'         => 'read',
809         'capabilities' => 'moodle/competency:usercompetencyview',
810         'ajax'         => true,
811     ),
812     'tool_lp_user_competency_viewed_in_course' => array(
813         'classname'    => 'tool_lp\external',
814         'methodname'   => 'user_competency_viewed_in_course',
815         'classpath'    => '',
816         'description'  => 'Log the user competency viewed in course event',
817         'type'         => 'read',
818         'capabilities' => 'moodle/competency:usercompetencyview',
819         'ajax'         => true,
820     ),
821     'tool_lp_user_competency_plan_viewed' => array(
822         'classname'    => 'tool_lp\external',
823         'methodname'   => 'user_competency_plan_viewed',
824         'classpath'    => '',
825         'description'  => 'Log the user competency plan viewed event.',
826         'type'         => 'read',
827         'capabilities' => 'moodle/competency:usercompetencyview',
828         'ajax'         => true,
829     ),
830     'tool_lp_grade_competency' => array(
831         'classname'    => 'tool_lp\external',
832         'methodname'   => 'grade_competency',
833         'classpath'    => '',
834         'description'  => 'Grade a competency.',
835         'type'         => 'write',
836         'capabilities' => 'moodle/competency:competencygrade',
837         'ajax'         => true,
838     ),
839     'tool_lp_grade_competency_in_plan' => array(
840         'classname'    => 'tool_lp\external',
841         'methodname'   => 'grade_competency_in_plan',
842         'classpath'    => '',
843         'description'  => 'Grade a competency from the user plan page.',
844         'type'         => 'write',
845         'capabilities' => 'moodle/competency:competencygrade',
846         'ajax'         => true,
847     ),
848     'tool_lp_data_for_user_competency_summary_in_plan' => array(
849         'classname'    => 'tool_lp\external',
850         'methodname'   => 'data_for_user_competency_summary_in_plan',
851         'classpath'    => '',
852         'description'  => 'Load a summary of a user competency.',
853         'type'         => 'read',
854         'capabilities' => 'moodle/competency:planview',
855         'ajax'         => true,
856     ),
857     'tool_lp_grade_competency_in_course' => array(
858         'classname'    => 'tool_lp\external',
859         'methodname'   => 'grade_competency_in_course',
860         'classpath'    => '',
861         'description'  => 'Grade a competency from the course page.',
862         'type'         => 'write',
863         'capabilities' => 'moodle/competency:competencygrade',
864         'ajax'         => true,
865     ),
866     'tool_lp_data_for_user_competency_summary_in_course' => array(
867         'classname'    => 'tool_lp\external',
868         'methodname'   => 'data_for_user_competency_summary_in_course',
869         'classpath'    => '',
870         'description'  => 'Load a summary of a user competency.',
871         'type'         => 'read',
872         'capabilities' => 'moodle/competency:coursecompetencyview',
873         'ajax'         => true,
874     ),
875     'tool_lp_unlink_plan_from_template' => array(
876         'classname'    => 'tool_lp\external',
877         'methodname'   => 'unlink_plan_from_template',
878         'classpath'    => '',
879         'description'  => 'Unlink a plan form it template.',
880         'type'         => 'write',
881         'capabilities' => 'moodle/competency:planmanage',
882         'ajax'         => true,
883     ),
884     'tool_lp_view_template' => array(
885         'classname'     => 'tool_lp\external',
886         'methodname'    => 'template_viewed',
887         'classpath'     => '',
888         'description'   => 'Log event template viewed',
889         'type'          => 'read',
890         'capabilities'  => 'moodle/competency:templateview',
891         'ajax'          => true,
892     ),
893     'tool_lp_request_review_of_user_evidence_linked_competencies' => array(
894         'classname'     => 'tool_lp\external',
895         'methodname'    => 'request_review_of_user_evidence_linked_competencies',
896         'classpath'     => '',
897         'description'   => 'Send user evidence competencies in review',
898         'type'          => 'write',
899         'capabilities'  => 'moodle/competency:userevidencemanageown',
900         'ajax'          => true,
901     ),
902     'tool_lp_update_course_competency_settings' => array(
903         'classname'     => 'tool_lp\external',
904         'methodname'    => 'update_course_competency_settings',
905         'classpath'     => '',
906         'description'   => 'Update the course competency settings',
907         'type'          => 'write',
908         'capabilities'  => 'moodle/competency:coursecompetencyconfigure',
909         'ajax'          => true,
910     ),
911 );