ticket_build_advs_queryWhat it does:
build the query from the formDefined in: /web/philip/tcl/ticket-defs.tcl
Source code:
set form [ns_conn form]
if {[empty_string_p $form]} {
return {}
}
set out {}
set field(advs_qs) {ti.one_line}
set field(advs_tt) {ti.one_line}
set field(advs_pr) {ti.project_id}
set field(advs_fa) {ti.domain_id}
set field(tc) {ti.posting_time}
set field(tcl) {ti.closed_date}
set field(tm) {ti.last_modified}
set field(td) {ti.deadline}
# text field queries
foreach key {advs_qs advs_tt} {
set query [ticket_query $form $key $field($key) 1 1]
if {![empty_string_p $query]} {
lappend out $query
}
}
set msg_id [join [collapse [split [ns_set get $form {advs_ti}] {, }] {^[0-9]+$}] {,}]
if {![empty_string_p $msg_id]} {
lappend out "ti.msg_id in ($msg_id)"
}
# build a list of code based multisearches
set args [ticket_advs_multi_vars advs {pr fa type status priority severity source cause}]
ad_page_variables $args
foreach code $args {
if {[empty_string_p [lindex $code 1]]} {
lappend fields [lindex $code 0]
}
if {![info exists field([lindex $code 0])]} {
regsub {advs_} [lindex $code 0] {} code_name
set field([lindex $code 0]) "ti.${code_name}_id"
}
}
foreach key $fields {
if {![empty_string_p [set $key]]} {
lappend out "$field($key) in ([join [set $key] {,}])"
}
}
# do the date comparisons
set sql_comp(le) "<="
set sql_comp(ge) ">="
foreach key {tc tm tcl td} {
foreach comp {le ge} {
set compare [ns_set get $form advs_$key$comp]
if {![empty_string_p $compare]} {
lappend out "trunc($field($key)) $sql_comp($comp) '[DoubleApos $compare]'"
}
}
}
# the stupid email or last name compare
set prefix(advs_tcrat) {users}
set prefix(advs_tasto) {assigned_users}
set prefix(advs_tclby) {closing_users}
foreach key {advs_tcrat advs_tasto advs_tclby} {
set compare [ns_set get $form $key]
if {![empty_string_p $compare]} {
set compare "'%[DoubleApos [string tolower $compare]]%'"
lappend out "lower($prefix($key).first_names || ' ' ||$prefix($key).last_name) like $compare or lower($prefix($key).email) like $compare"
}
}
if {![empty_string_p $out]} {
return "([join $out ")\n and ("]) "
}
return {}