curriculum_progress_cookie_value { old_value " " } { new_element " " }What it does:
If not args are supplied, returns the initial value for the CurriculumProgress cookie. If an old value and new element are supplied, returns an appropriate new cookie value."Defined in: /web/philip/tcl/curriculum.tcl
Source code:
if { [empty_string_p $old_value] && [empty_string_p $new_element] } {
return "start"
} elseif { $old_value == "start" } {
return [list $new_element]
} elseif { $old_value == "finished" } {
# if you're finished, adding a new element doesn't change that!
return "finished"
} else {
set tentative_result [lappend old_value $new_element]
if { [llength [util_memoize "curriculum_bar_all_db_rows"]] == [llength $tentative_result] } {
return "finished"
} else {
return $tentative_result
}
}