Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
I
intranet-simple-survey
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
project-open
intranet-simple-survey
Commits
d4c0ccf8
Commit
d4c0ccf8
authored
Dec 11, 2008
by
Frank Bergmann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- added survsimp-results.tcl report
parent
d0375a86
Pipeline
#442
failed with stages
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
338 additions
and
0 deletions
+338
-0
survsimp-results.tcl
www/reporting/survsimp-results.tcl
+338
-0
No files found.
www/reporting/survsimp-results.tcl
0 → 100644
View file @
d4c0ccf8
# /packages/intranet-simple-survey/www/reporting/survsimp-results.tcl
#
# Copyright (c
)
2003-2008
]
project-open
[
#
# All rights reserved. Please check
# http://www.project-open.com/ for licensing details.
ad_page_contract
{
Shows the results of the evaluated users
}
{
{
start_date
""
}
{
end_date
""
}
{
level_of_detail 2
}
{
output_format
"html"
}
{
survey_id
""
}
{
evaluee_id 0
}
}
# ------------------------------------------------------------
# Security
# ------------------------------------------------------------
set
menu_label
"reporting-survsimp-results"
set
current_user_id
[
ad_maybe_redirect_for_registration
]
set
read_p
[
db_string report_perms
"
select im_object_permission_p(m.menu_id, :current_user_id, 'read')
from im_menus m
where m.label = :menu_label
"
-default 'f'
]
set
read_p
"t"
if
{
!
[
string
equal
"t"
$read
_p
]}
{
ad_return_complaint 1
"<li>
[
lang::message::lookup
""
intranet-reporting.You_dont_have_permissions
"You don't have the necessary permissions to view this page"
]
"
return
}
set
page_title
"Simple Survey Results"
set
context_bar
[
im_context_bar
$page
_title
]
set
context
""
if
{
""
==
$survey
_id
}
{
set survey_id
[
db_string sid
"
select survey_id
from (
select survey_id,
count(*) as cnt
from survsimp_responses
group by survey_id
) s
order by s.cnt DESC
limit 1
"
-default 0
]
}
# Check Date formats
set
start_date
[
string
range
$start
_date 0 9
]
if
{
""
!=
$start
_date && !
[
regexp
{
^
[
0-9
][
0-9
][
0-9
][
0-9
]
\-
[
0-9
][
0-9
]
\-
[
0-9
][
0-9
]
$
}
$start
_date
]}
{
ad_return_complaint 1
"Start Date doesn't have the right format.<br>
Current value: '
$start
_date'<br>
Expected format: 'YYYY-MM-DD'"
}
set
end_date
[
string
range
$end
_date 0 9
]
if
{
""
!=
$end
_date && !
[
regexp
{
^
[
0-9
][
0-9
][
0-9
][
0-9
]
\-
[
0-9
][
0-9
]
\-
[
0-9
][
0-9
]
$
}
$end
_date
]}
{
ad_return_complaint 1
"Start Date doesn't have the right format.<br>
Current value: '
$end
_date'<br>
Expected format: 'YYYY-MM-DD'"
}
# ------------------------------------------------------------
# Defaults
# ------------------------------------------------------------
set
days_in_future 31
db_1row todays_date
"
select
to_char(sysdate::date + :days_in_future::integer, 'YYYY') as todays_year,
to_char(sysdate::date + :days_in_future::integer, 'MM') as todays_month
from dual
"
if
{
""
==
$start
_date
}
{
set start_date
"2000-01-01"
}
if
{
""
==
$end
_date
}
{
set end_date
"
$todays
_year-
$todays
_month-01"
}
set
user_url
"/intranet/users/view?user_id="
set
this_url
[
export_vars -base
"/intranet-reporting/timesheet-productivity"
{
start_date
}
]
set
levels
{
2
"Evaluees + Evaluators"
}
set survey_options
[
db_list_of_lists soptions
"
select name, survey_id
from survsimp_surveys
order by name
"
]
# ------------------------------------------------------------
# Conditional SQL Where-Clause
#
set
criteria
[
list
]
if
{[
info
exists evaluee_id
]
&& 0 !=
$evaluee
_id &&
""
!=
$evaluee
_id
}
{
lappend criteria
"h.user_id = :evaluee_id"
}
if
{[
exists_and_not_null start_date
]}
{
lappend criteria
"ro.creation_date >= :start_date::timestamptz"
}
if
{[
exists_and_not_null end_date
]}
{
lappend criteria
"ro.creation_date <= :end_date::timestamptz"
}
set
where_clause
[
join
$criteria
" and
\n
"
]
if
{
!
[
empty_string_p
$where
_clause
]
}
{
set where_clause
" and
$where
_clause"
}
# ------------------------------------------------------------
# Questions - converted into horizontal columns
#
set
question_sql
"
select q.question_id,
substring(q.question_text for 30) as question_text
from survsimp_questions q
where q.survey_id = :survey_id
order by sort_key;
"
# ------------------------------------------------------------
# Define the report - SQL, counters, headers and footers
#
set
question_select
""
set
cnt 0
db_foreach q_sql
$question
_sql
{
append question_select
"
,( select coalesce(sqc.label,qr.clob_answer,qr.number_answer::varchar)
from survsimp_question_responses qr
LEFT OUTER JOIN survsimp_question_choices sqc ON (qr.choice_id = sqc.choice_id)
where qr.response_id = r.response_id and
qr.question_id =
$question
_id
) as answer_
$cnt
"
incr cnt
}
set
sql
"
select
r.response_id,
to_char(ro.creation_date, 'YYYY-MM-DD') as creation_date_pretty,
ro.creation_user as creation_user_id,
im_name_from_user_id(ro.creation_user) as creation_user_name,
r.related_context_id,
acs_object__name(r.related_context_id) as related_context_name,
r.related_object_id,
acs_object__name(r.related_object_id) as related_object_name
$question
_select
from
survsimp_responses r,
acs_objects ro
where
r.survey_id = :survey_id and
ro.object_id = r.response_id
$where
_clause
order by
r.related_object_id,
r.response_id DESC
"
# ---------------------------------------------
# Report Definition
# Fixed columns
set
column_vars
{
$related
_object_name
$creation
_user_name
$related
_context_name
$creation
_date_pretty
}
# Add cols for survey questions
set
cnt 0
db_foreach q_sql
$question
_sql
{
lappend column_vars
"
\$
answer_
$cnt
"
incr cnt
}
set
report_def
[
list
\
group_by related_object_id
\
header
{
"
\#
colspan=99 <b>
$related
_object_name</b>"
}
\
content
[
list
\
header
$column
_vars
\
content
{}
\
footer
{
"#colspan=99"
}
\
]
\
footer
{
"
\#
colspan=99 "
}
\
]
# Global header/footer
set
header0
{
"Evaluee"
"Evaluator"
"Context"
"Date"
}
set
footer0
{}
# Add cols for survey questions
db_foreach q_sql
$question
_sql
{
lappend header0
"
$question
_text"
incr cnt
}
set
counters
[
list
]
# ------------------------------------------------------------
# Start formatting the page
#
# Write out HTTP header, considering CSV/MS-Excel formatting
im_report_write_http_headers -output_format
$output
_format
# Add the HTML select box to the head of the page
switch
$output
_format
{
html
{
ns_write
"
[
im_header
]
[
im_navbar
]
<form>
<table border=0 cellspacing=1 cellpadding=1>
<tr>
<td class=form-label>Level of Details</td>
<td class=form-widget>
[
im_select -translate_p 0 level_of_detail
$levels
$level
_of_detail
]
</td>
</tr>
<tr>
<td class=form-label>Start Date</td>
<td class=form-widget>
<input type=textfield name=start_date value=
$start
_date>
</td>
</tr>
<tr>
<td class=form-label>End Date</td>
<td class=form-widget>
<input type=textfield name=end_date value=
$end
_date>
</td>
</tr>
<tr>
<td class=form-label>Survey</td>
<td class=form-widget>
[
im_select -ad_form_option_list_style_p 1 -translate_p 0 survey_id
$survey
_options
$survey
_id
]
</td>
<tr>
<td class=form-label>Format</td>
<td class=form-widget>
[
im_report_output_format_select output_format
""
$output
_format
]
</td>
</tr>
<tr>
<td class=form-label></td>
<td class=form-widget><input type=submit value=Submit></td>
</tr>
</table>
</form>
<table border=0 cellspacing=1 cellpadding=1>
\n
"
}
}
im_report_render_row
\
-output_format
$output
_format
\
-row
$header0
\
-row_class
"rowtitle"
\
-cell_class
"rowtitle"
set
footer_array_list
[
list
]
set
last_value_list
[
list
]
set
class
"rowodd"
db_foreach sql
$sql
{
if
{
""
==
$related
_object_name
}
{
set related_object_name
"undefined"
}
im_report_display_footer
\
-output_format
$output
_format
\
-group_def
$report
_def
\
-footer_array_list
$footer
_array_list
\
-last_value_array_list
$last
_value_list
\
-level_of_detail
$level
_of_detail
\
-row_class
$class
\
-cell_class
$class
im_report_update_counters -counters
$counters
set last_value_list
[
im_report_render_header
\
-output_format
$output
_format
\
-group_def
$report
_def
\
-last_value_array_list
$last
_value_list
\
-level_of_detail
$level
_of_detail
\
-row_class
$class
\
-cell_class
$class
]
set footer_array_list
[
im_report_render_footer
\
-output_format
$output
_format
\
-group_def
$report
_def
\
-last_value_array_list
$last
_value_list
\
-level_of_detail
$level
_of_detail
\
-row_class
$class
\
-cell_class
$class
]
}
im_report_display_footer
\
-output_format
$output
_format
\
-group_def
$report
_def
\
-footer_array_list
$footer
_array_list
\
-last_value_array_list
$last
_value_list
\
-level_of_detail
$level
_of_detail
\
-display_all_footers_p 1
\
-row_class
$class
\
-cell_class
$class
im_report_render_row
\
-output_format
$output
_format
\
-row
$footer0
\
-row_class
$class
\
-cell_class
$class
switch
$output
_format
{
html
{
ns_write
"</table>
\n
[
im_footer
]
\n
"
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment