Index: openacs-4/packages/xowiki/tcl/xowiki-portlet-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/Attic/xowiki-portlet-procs.tcl,v diff -u -r1.43 -r1.44 --- openacs-4/packages/xowiki/tcl/xowiki-portlet-procs.tcl 2 May 2007 10:13:39 -0000 1.43 +++ openacs-4/packages/xowiki/tcl/xowiki-portlet-procs.tcl 9 May 2007 13:19:23 -0000 1.44 @@ -1339,8 +1339,15 @@ $p set unresolved_references 0 #$p set render_adp 0 - set content [$p get_content] - set content [string map [list "\{\{" "\\\{\{"] $content] + switch [$p info class] { + ::xowiki::Form { + set content [$p render] + } + default { + set content [$p get_content] + set content [string map [list "\{\{" "\\\{\{"] $content] + } + } regexp {^.*:([^:]+)$} $name _ anchor append output "" \ $edit_markup \ @@ -1685,3 +1692,76 @@ } } + + +namespace eval ::xowiki::portlet { + ############################################################################# + Class create form-menu \ + -superclass ::xowiki::Portlet \ + -parameter { + {__decoration none} + {parameter_declaration { + {-form_item_id:integer,required} + }} + } + + form-menu instproc render {} { + my get_parameters + # todo return_url + my instvar __including_page + set base [$package_id pretty_link [$__including_page name]] + set new_link [$package_id make_link -link $base $__including_page new return_url] + set answer_link [$package_id make_link -link $base $__including_page list return_url] + set sql [::xowiki::FormInstance instance_select_query \ + -count true \ + -with_subtypes false \ + -from_clause ", xowiki_page_instance p" \ + -where_clause " p.page_template = $form_item_id and p.page_instance_id = cr.revision_id " \ + -folder_id [$package_id folder_id]] + set count [db_list [my qn count] $sql] + return "
\ + fill out · list answers ($count) +
" + } + + Class create form-instances \ + -superclass ::xowiki::Portlet \ + -parameter { + {__decoration none} + {parameter_declaration { + {-form_item_id:integer,required} + {-orderby "last_modified,desc"} + }} + } + + form-instances instproc render {} { + my get_parameters + + ::xowiki::Page requireCSS "/resources/acs-templating/lists.css" + TableWidget t1 -volatile \ + -columns { + Field last_modified -label "Modification Date" -orderby last_modified + Field creation_user -label "By User" -orderby creation_user + AnchorField view -label "View" + } + + foreach {att order} [split $orderby ,] break + set sql [::xowiki::FormInstance instance_select_query \ + -select_attributes "publish_date creation_user" \ + -from_clause ", xowiki_page_instance p" \ + -with_subtypes 0 \ + -order_clause "order by $att $order" \ + -where_clause " p.page_template = $form_item_id and p.page_instance_id = cr.revision_id " \ + -folder_id [$package_id folder_id]] + + db_foreach [my qn get_pages] $sql { + t1 add \ + -view $name \ + -view.href [$package_id pretty_link $name] \ + -creation_user [::xo::get_user_name $creation_user] \ + -last_modified $publish_date + } + return [t1 asHTML] + } +} + \ No newline at end of file