im_status_report

one of the documented procedures in this installation of the ACS
Usage:
im_status_report   db   { coverage "" }   { report_date "f" }   { purpose "web_display" }   { ns_share_list "im_status_report_section_list" }
What it does:
Returns a string of new stuff on the site. COVERAGE and REPORT_DATS are ANSI date. The PURPOSE argument can be \"web_display\" (intended for an ordinary user), \"site_admin\" (to help the owner of a site nuke stuff), or \"email_summary\" (in which case we get plain text back). These arguments are passed down to the procedures on the ns_share'd ns_share_list."
Defined in: /web/philip/tcl/intranet-status-report-defs.tcl

Source code:


    # let's default the date if we didn't get one

    if [empty_string_p $coverage] {
	set since_when [database_to_tcl_string $db "select sysdate from dual"]
    }
    if [empty_string_p $report_date] {
	set report_date [database_to_tcl_string $db "select sysdate from dual"]
    }
    ns_share $ns_share_list
    set result_list [list]

    # module_name_proc_history will ensure that we do not have duplicates in the 
    # status report, even if the same procedure is registered twice 
    # with ns_share_list
    set module_name_proc_history [list]

    foreach sublist [set $ns_share_list] {
	
	set module_name [lindex $sublist 0]
	set module_proc [lindex $sublist 1]
	set module_cache_p [lindex $sublist 2]

	if { [lsearch -exact $module_name_proc_history "${module_name}_$module_proc"] > -1 } {
	    # This is a duplicate call to the same procedure! Skip it
	    continue
	}

	set result_elt ""

	set subresult ""
	if { [string compare $module_cache_p "t"] == 0 } {
	    if { [catch {set subresult [util_memoize [list $module_proc $db $coverage $report_date $purpose]]} err_msg] } {
		ns_log error "im_status_report got an error \"$err_msg\" trying to execute: $module_proc $db $coverage $report_date $purpose" 
	    }
	} else {
	    if { [catch {set subresult [eval "$module_proc $db $coverage $report_date $purpose"]} err_msg] } {
		ns_log error "im_status_report got an error \"$err_msg\" trying to execute: $module_proc $db $coverage $report_date $purpose" 
	    } 
	}
	if ![empty_string_p $subresult] {
	    # we got something, let's write a headline 
	    if { $purpose == "email_summary" } {
		append result_elt "[string toupper $module_name]\n\n"
	    } else {
		append result_elt "<h3><a name=\"$module_name\">$module_name</a></h3>\n\n"
	    }
	    append result_elt $subresult
	    append result_elt "\n\n"
	    lappend result_list $result_elt
	}
    }

    return [join $result_list ""]


philg@mit.edu