From da07ee465cf837eafe5f8d13a1cb7774b7da313d Mon Sep 17 00:00:00 2001 From: helmutm Date: Fri, 27 Jan 2006 08:47:45 +0000 Subject: [PATCH] Refactored ordered container stuff out of loops package and put into cybertools.container git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@1037 fd906abe-77d9-0310-91a1-e0d9ade77398 --- container/README.txt | 18 +++++------------- container/configure.zcml | 16 ++++++---------- container/contents.pt | 4 +--- container/ordered.py | 33 +++++++++++---------------------- 4 files changed, 23 insertions(+), 48 deletions(-) diff --git a/container/README.txt b/container/README.txt index 3892541..c94e890 100644 --- a/container/README.txt +++ b/container/README.txt @@ -3,19 +3,15 @@ Ordered Containers ($Id$) - >>> from zope.app.testing.setup import placefulSetUp, placefulTearDown - >>> site = placefulSetUp(True) - >>> from zope.interface import implements - Let's add an ordered container and place some objects in it: + >>> from zope.interface import implements >>> from zope.app.container.interfaces import IOrderedContainer >>> import zope.app.container.ordered >>> class OrderedContainer(zope.app.container.ordered.OrderedContainer): ... implements(IOrderedContainer) >>> c1 = OrderedContainer() - >>> site['c1'] = c1 >>> c1['sub1'] = OrderedContainer() >>> c1['sub2'] = OrderedContainer() >>> c1['sub3'] = OrderedContainer() @@ -29,20 +25,16 @@ to the bottom, and to the top >>> from cybertools.container.ordered import OrderedContainerView >>> from zope.publisher.browser import TestRequest >>> view = OrderedContainerView(c1, TestRequest()) - >>> view.moveToBottom(('sub3',)) + >>> view.move_bottom(('sub3',)) >>> c1.keys() ['sub1', 'sub2', 'sub4', 'sub3'] - >>> view.moveUp(('sub4',), 1) + >>> view.move_up(('sub4',), 1) >>> c1.keys() ['sub1', 'sub4', 'sub2', 'sub3'] - >>> view.moveToTop(('sub2',)) + >>> view.move_top(('sub2',)) >>> c1.keys() ['sub2', 'sub1', 'sub4', 'sub3'] - >>> view.moveDown(('sub2',), 2) + >>> view.move_down(('sub2',), 2) >>> c1.keys() ['sub1', 'sub4', 'sub2', 'sub3'] -The end... -========== - - >>> placefulTearDown() diff --git a/container/configure.zcml b/container/configure.zcml index d97817e..2af6c97 100644 --- a/container/configure.zcml +++ b/container/configure.zcml @@ -5,17 +5,13 @@ xmlns:zope="http://namespaces.zope.org/zope" i18n_domain="zope"> - - - - - - - + permission="zope.ManageContent" + menu="zmi_views" title="Contents" + /> diff --git a/container/contents.pt b/container/contents.pt index 505f090..c386fc2 100644 --- a/container/contents.pt +++ b/container/contents.pt @@ -4,9 +4,8 @@
- + -
@@ -199,7 +198,6 @@
- diff --git a/container/ordered.py b/container/ordered.py index 6144d70..e317e41 100644 --- a/container/ordered.py +++ b/container/ordered.py @@ -33,10 +33,6 @@ class OrderedContainerView(JustContents): within an ordered container. """ - @Lazy - def url(self): - return zapi.absoluteURL(self.context, self.request) - @Lazy def orderable(self): return len(self.context) > 1 @@ -45,36 +41,29 @@ class OrderedContainerView(JustContents): request = self.request for var in request: if var.startswith('move_'): - params = [] - if 'delta' in request: - params.append('delta=' + request['delta']) - if 'ids' in request: - for id in request['ids']: - params.append('ids:list=' + id) - request.response.redirect('%s/%s?%s' - % (self.url, var, '&'.join(params))) - return True - return False + delta = request.get('delta', 1) + ids = request.get('ids', []) + if ids: + m = getattr(self, var, None) + if m: + m(ids, delta) + return - def moveDown(self, ids=[], delta=1): + def move_down(self, ids=[], delta=1): self.context.updateOrder( moveByDelta(self.context.keys(), ids, int(delta))) - self.request.response.redirect(self.url + '/contents.html') - def moveUp(self, ids=[], delta=1): + def move_up(self, ids=[], delta=1): self.context.updateOrder( moveByDelta(self.context.keys(), ids, -int(delta))) - self.request.response.redirect(self.url + '/contents.html') - def moveToBottom(self, ids=[]): + def move_bottom(self, ids=[], delta=0): self.context.updateOrder( moveByDelta(self.context.keys(), ids, len(self.context))) - self.request.response.redirect(self.url + '/contents.html') - def moveToTop(self, ids=[]): + def move_top(self, ids=[], delta=0): self.context.updateOrder( moveByDelta(self.context.keys(), ids, -len(self.context))) - self.request.response.redirect(self.url + '/contents.html') def moveByDelta(objs, toMove, delta):