This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
stats:schema:exercise [2011/09/28 20:06] Patrick Michel [Student Management] |
stats:schema:exercise [2013/07/10 12:49] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Exercise Groups, Sheets and Management ====== | + | ====== Exercise Management and Sheets ====== |
- | This page describes a major part of the [[:stats:start]] [[:stats:schema]], namely the exercise management, including groups, sheets and student results. | + | This page describes a major part of the [[:stats:start]] [[:stats:schema]], namely the exercise management, including groups, sheets and student results. It is a part of [[stats]] and contains [[student]] as well as [[group]]. |
===== Schema ===== | ===== Schema ===== | ||
<code xcend> | <code xcend> | ||
- | element exercises { | + | element exercise * id { |
- | element exercise * id { | + | attribute lecture { string } |
- | attribute lecture { string } | + | attribute term { string } |
- | attribute term { string } | + | attribute open { boolean } |
- | + | ||
- | element assistant * account {[ exists //accounts/account[./account] ]} | + | element assistant * account {[ exists /account[./account]/assistant[..exercise/id] ]} |
- | element groups { | + | </code> |
- | element group * id { [ count(./id, ..exercise/students/student/group) < ./maxSize ] | + | |
- | attribute day { "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday" | "Sunday" } | + | {{page>group#Schema&noheader&nofooter&noindent}} |
- | attribute time { string } | + | |
- | attribute location { string } | + | <code xcend> |
- | attribute maxSize { integer [ . >= 0 ]} | + | element sheet * id { |
- | + | attribute maxPoints { double [ . >= 0 ]} | |
- | element tutor * account {[ exists //accounts/account[./account] ]} | + | } |
- | } | + | </code> |
- | } | + | |
- | element sheets { | + | {{page>student#Schema&noheader&nofooter&noindent}} |
- | element sheet * id { | + | |
- | attribute maxPoints { double [ . >= 0 ]} | + | <code xcend> |
- | } | + | } |
- | } | + | |
- | element students { | + | |
- | element student * id { [ exists //accounts/account/student[./id] ] | + | |
- | attribute group ? { ident [ exists ..exercise/groups/group[.] ]} | + | |
- | element result * sheet { [ exists ..exercise/sheets/sheet[./sheet] ] | + | |
- | attribute points { double [ . >= 0 && . <= ..exercise/sheets/sheet[../sheet]/maxPoints ]} | + | |
- | } | + | |
- | } | + | |
- | } | + | |
- | } | + | |
- | } | + | |
</code> | </code> | ||
Line 56: | Line 45: | ||
==== Group Management ==== | ==== Group Management ==== | ||
- | The tutor role from section [[:stats:schema:account]] and the students depend on groups, which restricts deletion. | + | The tutor role from section [[:stats:schema:account]] and the students depend on groups, which restricts deletion. The [[group]] are a large enough parts of the schema to have their own section and associated procedures. |
{{page>stats:proc:createGroup&noheader&nofooter}} | {{page>stats:proc:createGroup&noheader&nofooter}} | ||
{{page>stats:proc:deleteGroup&noheader&nofooter}} | {{page>stats:proc:deleteGroup&noheader&nofooter}} | ||
- | |||
==== Sheet Management ==== | ==== Sheet Management ==== | ||
Line 73: | Line 61: | ||
==== Student Management ==== | ==== Student Management ==== | ||
- | Students themselves depend on an account, but nothing depends on them; Their results stand for themselves. | + | Students themselves depend on an account, but nothing depends on them; Their results stand for themselves. As with [[group]], [[student]] are large enough to warrant their own section and associated procedures. |
+ | |||
+ | {{page>stats:proc:registerStudent&noheader&nofooter}} | ||
+ | |||
+ | {{page>stats:proc:unregisterStudent&noheader&nofooter}} | ||
- | {{page>stats:proc:addStudent&noheader&nofooter}} | + | {{page>stats:proc:openSignUp&noheader&nofooter}} |
- | {{page>stats:proc:removeStudent&noheader&nofooter}} | + | {{page>stats:proc:closeSignUp&noheader&nofooter}} |