-
Notifications
You must be signed in to change notification settings - Fork 327
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[docs] workshop #746
base: main
Are you sure you want to change the base?
[docs] workshop #746
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,63 @@ | ||||||||||||||
--- | ||||||||||||||
title: Workshop | ||||||||||||||
tags: [] | ||||||||||||||
--- | ||||||||||||||
:::info | ||||||||||||||
Work in progress | ||||||||||||||
::: | ||||||||||||||
|
||||||||||||||
import { Since } from '@site/src/components'; | ||||||||||||||
|
||||||||||||||
<Since versions={["2.0"]} /> | ||||||||||||||
Comment on lines
+10
to
+11
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
There's no point really including any really old since tags. No-one should be using 1.9- and no-one should be developing for it. We're trying to update our dev docs to be version specific to avoid having to spend a lot of time understanding which items only relate to an ancient version of Moodle. |
||||||||||||||
|
||||||||||||||
This page describes the current implementation of the [Workshop module](https://docs.moodle.org/dev/Workshop_module). See also [Workshop 2.0 specification](https://docs.moodle.org/dev/Workshop_2.0_specification) and [Workshop 2.0 testing](https://docs.moodle.org/dev/Workshop_2.0_testing). | ||||||||||||||
|
||||||||||||||
## Overview of Workshop architecture | ||||||||||||||
|
||||||||||||||
Rewriting Workshop from scratch for Moodle 2.0 was a great opportunity to use new APIs and approaches to activity module development. In some areas, Workshop was a pioneering component adopting new frameworks - like `File API`, HTML rendering or subplugins support. | ||||||||||||||
Comment on lines
+15
to
+17
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thsi is just fluff. We don't need to know about 2.0, and the changes from 1.9, etc. We don't need the Overview title. We just need to know that this page describes the implementation, and that it uses subplugins.
Suggested change
|
||||||||||||||
|
||||||||||||||
Many of Workshop features are implemented as subplugins (see `mod/workshop/db/subplugins.php`). That allows to extend current functionality without hacking Workshop core system. | ||||||||||||||
|
||||||||||||||
### Workshop core | ||||||||||||||
|
||||||||||||||
Workshop core consists of common module functions in `lib.php` (required by Moodle itself) and methods of class workshop defined in `locallib.php`. | ||||||||||||||
|
||||||||||||||
### Grading strategies | ||||||||||||||
|
||||||||||||||
Grading strategies are defined as workshopform subplugins in `mod/workshop/form/` subdirectories. At any given time, just one type of the subplugin is used by workshop. But the data are kept so teachers can switch strategies as they need. | ||||||||||||||
|
||||||||||||||
### Allocators | ||||||||||||||
|
||||||||||||||
Allocation subplugins are used to allocate submissions to the students for peer-review. They are defined as workshopallocation subplugins in `mod/workshop/allocation/` subdirectories. Teacher can use any installed allocator to distribute submission. Allocators are responsible for creating records in `workshop_assessment` table. | ||||||||||||||
|
||||||||||||||
### Grading evaluators | ||||||||||||||
|
||||||||||||||
Grading evaluators calculate grades for assessments (aka grading grades). They are defined workshopeval subplugins in `mod/workshop/eval/` subdirectories. | ||||||||||||||
|
||||||||||||||
## Diagrams and schemas | ||||||||||||||
|
||||||||||||||
### Database structure | ||||||||||||||
|
||||||||||||||
[400px](https://docs.moodle.org/Image/workshop_erd.png) | ||||||||||||||
<br clear="all"/> | ||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should be unnecessary
Suggested change
|
||||||||||||||
|
||||||||||||||
### XML structure | ||||||||||||||
|
||||||||||||||
For the purpose of backup/moodle2, the following XML schema is used. | ||||||||||||||
[400px](https://docs.moodle.org/Image/workshop_xml.png) | ||||||||||||||
<br clear="all"/> | ||||||||||||||
|
||||||||||||||
### Classes | ||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ditto... and the rest |
||||||||||||||
|
||||||||||||||
The following UML diagram explains the structure of classes defined in workshop subplugins. | ||||||||||||||
[400px](https://docs.moodle.org/Image/workshop_classes.png) | ||||||||||||||
<br clear="all"/> | ||||||||||||||
|
||||||||||||||
### Gradebook integration | ||||||||||||||
|
||||||||||||||
[400px](https://docs.moodle.org/Image/workshop_grades_calculation.png) | ||||||||||||||
<br clear="all"/> | ||||||||||||||
|
||||||||||||||
## Debugging and testing | ||||||||||||||
|
||||||||||||||
- [Workshop/fakesubmissions.php](https://docs.moodle.org/dev/Workshop/fakesubmissions.php) | ||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This throws a spelling warning. We can fix that by either: Putting it in backticks:
Suggested change
OR Adding to a cspell ignore list:
Suggested change
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rather than using an admonition: