This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
stats:schema:exam [2011/10/09 10:49] Patrick Michel [Change Attributes] |
stats:schema:exam [2013/07/10 12:48] (current) |
||
---|---|---|---|
Line 6: | Line 6: | ||
<code xcend> | <code xcend> | ||
- | element exams { | + | element exam * id { |
- | element exam * id { # 2.13 | + | attribute title { string } |
- | attribute title { string } | + | attribute date { string } |
- | attribute date { string } | + | attribute time { string } |
- | attribute time { string } | + | attribute location { string } |
- | attribute location { string } | + | attribute free { boolean } |
- | + | attribute published { boolean } | |
- | element examiner * account {[ //accounts/account[./account]/examiner[..exam/id] ]} # 1.9, 2.14 | + | |
- | } | + | attribute exercise { ident [ exists /exercise[.] ]} |
- | element tasks { | + | |
- | element task * id { # 2.15 | + | element examiner * account {[ /account[./account]/examiner[..exam/id] ]} |
- | attribute maxPoints { double [ . >= 0 ]} # 3.4 | + | |
- | } | + | element task * id { |
- | } | + | attribute maxPoints { double [ . >= 0 ]} |
- | element grades { | + | } |
- | element grade * { | + | element grade * id { |
- | attribute value { double } | + | attribute name { string } [count(./name, ../grade/name) = 1] |
- | attribute minPoints { double } | + | attribute value { double } |
- | } [ {x != y} ./grade[x]/value != ./grade[y]/value ] # 2.16 | + | attribute minPoints { double } |
- | [ {x != y} ./grade[x]/minPoints != ./grade[y]/minPoints ] # 2.19 | + | } [ {exists ./grade[x], exists ./grade[y], x != y} ./grade[x]/value != ./grade[y]/value ] |
- | [ ./grade[x]/value < ./grade[y]/value -> ./grade[x]/minPoints > ./grade[y]/minPoints ] # 3.5 | + | [ {exists ./grade[x], exists ./grade[y], x != y} ./grade[x]/minPoints != ./grade[y]/minPoints ] |
- | } | + | [ {exists ./grade[x], exists ./grade[y], ./grade[x]/value < ./grade[y]/value} |
- | element results { | + | ./grade[x]/minPoints > ./grade[y]/minPoints ] |
- | element participant * id { [ exists //accounts/account/student[./id] ] # 2.17, NEW | + | element participant * id { [ count (./id, /account/student/id) = 1 ] |
- | element result * task { [ exists ..exam/tasks/task[./task] ] # 1.10, 2.18 | + | element result * task { [ exists ..exam/task[./task] ] |
- | attribute points { double [ . >= 0 && . <= ..exam/tasks/task[../task]/maxPoints ]} # NEW | + | attribute points { double [ . >= 0 && . <= ..exam/task[../task]/maxPoints ]} |
- | } | + | |
- | } | + | |
} | } | ||
} | } | ||
Line 75: | Line 73: | ||
Currently, the participants are not hardwired to an account, I just changed that fact for the schema. Besides that, participants stand for themselves, so deleting one does not affect anything. | Currently, the participants are not hardwired to an account, I just changed that fact for the schema. Besides that, participants stand for themselves, so deleting one does not affect anything. | ||
- | {{page>stats:proc:addParticipant&noheader&nofooter}} | + | {{page>stats:proc:openRegistration&noheader&nofooter}} |
+ | {{page>stats:proc:closeRegistration&noheader&nofooter}} | ||
+ | {{page>stats:proc:addParticipant&noheader&nofooter}} | ||
{{page>stats:proc:removeParticipant&noheader&nofooter}} | {{page>stats:proc:removeParticipant&noheader&nofooter}} | ||
Line 87: | Line 87: | ||
{{page>stats:proc:addResult (Task)&noheader&nofooter}} | {{page>stats:proc:addResult (Task)&noheader&nofooter}} | ||
+ | {{page>stats:proc:changeResult (Task)&noheader&nofooter}} | ||
{{page>stats:proc:removeResult (Task)&noheader&nofooter}} | {{page>stats:proc:removeResult (Task)&noheader&nofooter}} | ||
+ | |||
+ | {{page>stats:proc:publishResults&noheader&nofooter}} | ||
+ | {{page>stats:proc:hideResults&noheader&nofooter}} | ||
+ | |||