ad_audit_trail_for_table db main_table_name audit_table_name id_column { start_date " " } { end_date " " } { audit_url " " } { restore_url " " }What it does:
Returns the audit trail for each id from the id_column for updates and deletes from main_table_name and audit_table_name that occured between start_date and end_date. If start_date is blank, then it is assumed to be when the table was created, if end_date is blank then it is assumed to be the current time. The audit_url, if it exists, will be given the calling arguments for ad_audit_trail.Defined in: /web/philip/tcl/ad-audit-trail.tcl
Source code:
# Text being returned by the proc
set return_html ""
# Build a sql string to only return records which where last modified
# between the start date and end date
set date_clause_list [list]
if { ![empty_string_p $end_date] } {
lappend date_clause_list "last_modified < to_date('$end_date','YYYY-MM-DD HH24:MI:SS')"
}
if { ![empty_string_p $start_date] } {
lappend date_clause_list "last_modified > to_date('$start_date','YYYY-MM-DD HH24:MI:SS')"
}
# Generate a list of ids for records that where modified in the time
# between start_date and end_date.
set id_list [database_to_tcl_list $db "select distinct $id_column from $main_table_name where [join $date_clause_list "\nand "]"]
# Display the grouped modifications to each id in id_list
foreach id $id_list {
# Set the HTML link tags to a page which displays the full
# audit history.
if { ![empty_string_p $audit_url] } {
set id_href "<a href=\"$audit_url?[export_url_vars id id_column main_table_name audit_table_name]\">"
set id_href_close "</a>"
} else {
set id_href ""
set id_href_close ""
}
append return_html "
<h4>$id_column is $id_href$id$id_href_close</h4>
<blockquote>
[ad_audit_trail $db $id $audit_table_name $main_table_name $id_column "" $start_date $end_date]
</blockquote>
"
}
# We will now repeate the process to display the modifications
# that took place between start_date and end_date but occured on
# records that have been deleted.
# Add a constraint to view only deleted ids and
# look into the audit table instead of the main table
lappend date_clause_list "delete_p = 't'"
set id_list [database_to_tcl_list $db "select distinct $id_column from $audit_table_name where [join $date_clause_list "\nand "] "]
# Display the grouped modifications to each id in id_list
foreach id $id_list {
# Set the HTML link tags to a page which displays the full
# audit history.
if { ![empty_string_p $audit_url] } {
set id_href "<a href=\"$audit_url?[export_url_vars id id_column main_table_name audit_table_name]\">"
set id_href_close "</a>"
} else {
set id_href ""
set id_href_close ""
}
append return_html "
<h4>Deleted $id_column is $id_href$id$id_href_close</h4>
<blockquote>
[ad_audit_trail $db $id $audit_table_name $main_table_name $id_column "" $start_date $end_date $restore_url]
</blockquote>
"
}
return $return_html