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:12] Patrick Michel [Group 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}} | ||
| - | |||
| - | |||
| - | === Group Procedures === | ||
| - | |||
| - | {{page>stats:proc:changeAttributes (Group)&noheader&nofooter}} | ||
| ==== Sheet Management ==== | ==== Sheet Management ==== | ||
| Line 77: | 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}} |