[Checkins] SVN: Products.CMFDefault/branches/charlie_formlib_for_folders/Products/CMFDefault/browser/ Added support for hidden variables if required for redirection.
Charlie Clark
charlie at begeistert.org
Tue Jun 9 09:02:58 EDT 2009
Log message for revision 100757:
Added support for hidden variables if required for redirection.
Changed:
U Products.CMFDefault/branches/charlie_formlib_for_folders/Products/CMFDefault/browser/new_folder.py
U Products.CMFDefault/branches/charlie_formlib_for_folders/Products/CMFDefault/browser/templates/contents.pt
-=-
Modified: Products.CMFDefault/branches/charlie_formlib_for_folders/Products/CMFDefault/browser/new_folder.py
===================================================================
--- Products.CMFDefault/branches/charlie_formlib_for_folders/Products/CMFDefault/browser/new_folder.py 2009-06-09 11:55:23 UTC (rev 100756)
+++ Products.CMFDefault/branches/charlie_formlib_for_folders/Products/CMFDefault/browser/new_folder.py 2009-06-09 13:02:57 UTC (rev 100757)
@@ -63,6 +63,23 @@
vocabulary=u'cmf.contents delta vocabulary',
default=1)
+
+class IHidden(Interface):
+ """Scheme for hidden items"""
+
+ b_start = Int(
+ title=u"Batch start",
+ required=False)
+
+ key = TextLine(
+ title=u"Sort key",
+ required=False)
+
+ reverse = Bool(
+ title=u"Reverse sort order",
+ required=False)
+
+
class BatchViewBase(ViewBase):
# helpers
@@ -258,15 +275,16 @@
def __init__(self, *args, **kw):
super(ContentsView, self).__init__(*args, **kw)
+ self.hidden_fields =form.FormFields(IHidden)
self.form_fields = form.FormFields()
self.delta_field = form.FormFields(IDeltaItem)
self.contents = self.context.contentValues()
for item in self.contents:
- for n, f in schema.getFieldsInOrder(IFolderItem):
- field = form.FormField(f, n, item.id)
+ for name, field in schema.getFieldsInOrder(IFolderItem):
+ field = form.FormField(field, name, item.id)
self.form_fields += form.FormFields(field)
-
+
@memoize
@decode
def up_info(self):
@@ -292,12 +310,16 @@
data = {}
for i in self.contents:
data['%s.name' %i.id] = i.getId()
+ self.hidden_widgets = form.setUpDataWidgets(
+ self.hidden_fields, "", self.context,
+ self.request, data=self._get_hidden_vars(),
+ ignore_request=ignore_request)
self.widgets = form.setUpDataWidgets(
self.form_fields, self.prefix, self.context,
self.request, data=data, ignore_request=ignore_request)
- self.widgets += form.setUpDataWidgets(self.delta_field, self.prefix,
- self.context, self.request,
- ignore_request=ignore_request)
+ self.widgets += form.setUpDataWidgets(
+ self.delta_field, self.prefix, self.context,
+ self.request, ignore_request=ignore_request)
def _get_sorting(self):
"""How should the contents be sorted"""
@@ -355,6 +377,12 @@
"""Identify objects that have been selected"""
ids = [k.split(".")[0] for k, v in data.items() if v == True]
return ids
+
+ def _get_hidden_vars(self):
+ b_start = self._get_batch_start()
+ is_default = self.context.getDefaultSorting()
+ (key, reverse) = is_default and ('', 0) or self._get_sorting()
+ return {'b_start': b_start, 'key': key, 'reverse': reverse}
#Action conditions
@memoize
@@ -395,8 +423,12 @@
#Action handlers
def handle_rename(self, action, data):
"""Redirect to rename view passing the ids of objects to be renamed"""
- return self._setRedirect('portal_types', 'object/rename_items')
-
+ # currently redirects to a PythonScript
+ # should be replaced with a dedicated form
+ self.request.form['ids'] = self._get_ids(data)
+ keys = ",".join(self._get_hidden_vars().keys() + ['ids'])
+ return self._setRedirect('portal_types', 'object/rename_items', keys)
+
def handle_cut(self, action, data):
"""Cut the selected objects and put them in the clipboard"""
ids = self._get_ids(data)
Modified: Products.CMFDefault/branches/charlie_formlib_for_folders/Products/CMFDefault/browser/templates/contents.pt
===================================================================
--- Products.CMFDefault/branches/charlie_formlib_for_folders/Products/CMFDefault/browser/templates/contents.pt 2009-06-09 11:55:23 UTC (rev 100756)
+++ Products.CMFDefault/branches/charlie_formlib_for_folders/Products/CMFDefault/browser/templates/contents.pt 2009-06-09 13:02:57 UTC (rev 100757)
@@ -25,6 +25,8 @@
<form class="form" action="." method="post" enctype="multipart/form-data"
tal:attributes="action request/ACTUAL_URL">
+ <tal:block repeat="widget view/hidden_widgets"
+ replace="structure widget/hidden" />
<table tal:condition="view/has_subobjects">
<tr>
<th tal:repeat="column view/column_headings"
More information about the Checkins
mailing list