/
as-item-type-swcat-procs.tcl
153 lines (129 loc) · 4.21 KB
/
as-item-type-swcat-procs.tcl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#
ad_library {
Procedures for sitewide category item type
@author Dave Bauer (dave@solutiongrove.com)
@creation-date 2005-05-15
@arch-tag: ba556f8e-d5bf-4455-bb19-06be198014d8
@cvs-id $Id$
}
namespace eval as::item_type_swcat {}
ad_proc -public as::item_type_swcat::new {
{-title ""}
{-tree_id:required}
} {
@author Dave Bauer (dave@solutiongrove.com)
@creation-date 2005-05-15
New SW Category item to the database
} {
set package_id [ad_conn package_id]
set folder_id [as::assessment::folder_id -package_id $package_id]
# Insert as_item_type_swcat in the CR (and as_item_type_swcat table) getting the revision_id (as_item_type_id)
db_transaction {
set item_item_type_swcat_id [content::item::new -parent_id $folder_id -content_type {as_item_type_swcat} -name [as::item::generate_unique_name]]
set as_item_type_swcat_id [content::revision::new \
-item_id $item_item_type_swcat_id \
-content_type {as_item_type_swcat} \
-title $title \
-attributes [list [list tree_id $tree_id]]]
}
return $as_item_type_swcat_id
}
ad_proc -public as::item_type_swcat::edit {
-as_item_type_id:required
-tree_id:required
} {
@author Dave Bauer (dave@solutiongrove.com)
@creation-date 2005-05-15
Edit SW Category Answers item to the database
} {
# Update as_item_type_swcat in the CR (and as_item_type_swcat table) getting the revision_id (as_item_type_id)
db_transaction {
set type_item_id [db_string type_item_id {}]
set new_item_type_id [content::revision::new \
-item_id $type_item_id \
-content_type {as_item_type_swcat} \
-title $title \
-attributes [list [list tree_id $tree_id] ]
}
return $new_item_type_id
}
ad_proc -public as::item_type_swcat::copy {
-type_id:required
} {
@author Dave Bauer (dave@solutiongrove.com)
@creation-date 2005-05-15
Copy a Short Answer Type
} {
set package_id [ad_conn package_id]
set folder_id [as::assessment::folder_id -package_id $package_id]
# Insert as_item_type_swcat in the CR (and as_item_type_swcat table) getting the revision_id (as_item_type_id)
db_transaction {
db_1row item_type_data {}
set new_item_type_id [new -tree_id $tree_id]
}
return $new_item_type_id
}
ad_proc -public as::item_type_swcat::render {
-type_id:required
-section_id:required
-as_item_id:required
{-default_value ""}
{-session_id ""}
{-show_feedback ""}
} {
@author Dave Bauer (dave@solutiongrove.com)
@creation-date 2005-05-15
Render a SW Category Type
} {
if {![empty_string_p $default_value]} {
array set values $default_value
set default $values(text_answer)
} else {
set default ""
}
set display_choices [list]
set tree_id [db_string get_tree_id "" -default ""]
set categories [category_tree::get_tree -all $tree_id]
foreach cat $categories {
lassign $cat category_id category_name deprecated_p level
lappend display_choices [list $category_name $category_id]
}
return [list $default $display_choices]
}
ad_proc -public as::item_type_swcat::process {
-type_id:required
-session_id:required
-as_item_id:required
-section_id:required
-subject_id:required
{-staff_id ""}
{-response ""}
{-max_points 0}
{-allow_overwrite_p t}
{-package_id ""}
} {
@author Dave Bauer (dave@solutiongrove.com)
@creation-date 2005-05-15
Process a Response to a SW Category Answer
} {
as::item_data::new -session_id $session_id -subject_id $subject_id -staff_id $staff_id -as_item_id $as_item_id -section_id $section_id -text_answer [lindex $response 0] -points "" -allow_overwrite_p $allow_overwrite_p -package_id $package_id
}
ad_proc -public as::item_type_swcat::results {
-as_item_item_id:required
-section_item_id:required
-data_type:required
-sessions:required
} {
@author Dave Bauer (dave@solutiongrove.com)
@creation-date 2005-05-15
Return the results of a given item in a given list of sessions as an array
} {
db_foreach get_results {} {
set results($session_id) $text_answer
}
if {[array exists results]} {
return [array get results]
} else {
return
}
}