The #in tag and spanning multiple rows in tables
I'm displaying rows of data (stored in a TinyTable) with the #in tag. The first data column is a year, and if two or more rows have the same year I need to show the year once in a ROWSPAN cell. The start-nnn and end-nnn tell me when to do this, but I can't know the number of rows to span. Is there any way to find this out? When I couldn't find any, I patched DocumentTemplate/DT_InSV.py to return a more-nnn variable that returns how many more items have the same nnn value as the current item. So I can do: <!--#if start-year--> <DL ROWSPAN=<!--#var "_['more-year']+1"-->> <!--#var year--> </DL> <!--#/if--> But I'm really an absolute beginner in Zope... especially when it comes to the source. Does this look like a good thing to do? Here's the patch if anyone's interested, or if anyone wants to critique my code: *** DT_InSV.py.old Mon Apr 26 13:32:05 1999 --- DT_InSV.py Mon Apr 26 13:39:59 1999 *************** *** 193,196 **** --- 193,209 ---- return self.value(index,name) != self.value(index+1,name) + def more(self,name,key=''): + data=self.data + index=data['sequence-index'] + if data.has_key('sequence-step-end'): + end=data['sequence-step-end'] + else: + end=len(self.items) + m=0 + for i in range(data['sequence-index'],end-1): + if self.value(i,name) != self.value(i+1,name): break + m=m+1 + return m + def length(self, ignored): l=self.data['sequence-length']=len(self.items) *************** *** 362,365 **** --- 375,379 ---- 'first': first, 'last': last, + 'more': more, 'previous': previous_batches, 'next': next_batches, -- Itai Tavor -- "Je sautille, donc je suis." -- itavor@vic.bigpond.net.au -- - Kermit the Frog -- -- -- -- "If you haven't got your health, you haven't got anything" --
participants (1)
-
Itai Tavor