[Zope] batching/looping to find next item in python-scripts
Dieter Maurer
dieter@handshake.de
Thu, 20 Sep 2001 20:37:10 +0200 (CEST)
Trevor Toenjes writes:
> What am I doing wrong here?...I realize I am missing some fundamentals.
>
> # getPrevious Script (Python)
> #
> # determine the position of the current object
> y=0
> for o in context.objectIds():
> y=y+1
> if sequence-item
> currentPosition=y
>
> ## loop to the previousItem and get ID
> for o in context.objectIds():
> if sequence-item == currentPosition-1
> previousObject=sequence-item.id
>
> return previousObject
Lots of things!
Basic Python syntax errors:
all compound statement headerlines end in ':',
not only "for" but also "if" and "else"
"sequence-item" is "sequence" minus "item".
Usually, you have the following correspondence (very weak!):
DTML:
<dtml-in sequence>
...
<dtml-var sequence-item>
...
</dtml-in>
Python Script:
for item in sequence:
...
item
...
But this makes no sense with your code.
You "o" is an "id". It does not make sense to
have "if o:" nor "if o == cuttentPosition-1".
You must carefully think again....
Dieter