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 } }