fanchartdesc: bugfixes after stress test with greek gods

svn: r20420
This commit is contained in:
Benny Malengier 2012-09-19 17:18:13 +00:00
parent 77e8bee449
commit 789fc4bbed

View File

@ -221,6 +221,7 @@ class FanChartDescWidget(FanChartBaseWidget):
spname = name_displayer.display(spouse) spname = name_displayer.display(spouse)
else: else:
spname = '' spname = ''
spouse = None
if family_handle in self.famhandle2desc: if family_handle in self.famhandle2desc:
#family occurs via father and via mother in the chart, only #family occurs via father and via mother in the chart, only
#first to show and count. #first to show and count.
@ -285,9 +286,18 @@ class FanChartDescWidget(FanChartBaseWidget):
for data in self.gen2fam[gen-1]: for data in self.gen2fam[gen-1]:
#obtain start and stop of partner #obtain start and stop of partner
partnerdata = self.gen2people[gen-1][data[5]] partnerdata = self.gen2people[gen-1][data[5]]
nrdescfam = self.famhandle2desc[data[0].handle] dupfam = data[1]
nrdescpartner = self.handle2desc[partnerdata[0].handle] if dupfam:
nrfam = partnerdata[6] # we don't show the descendants here, but in the first
# occurrence of the family
nrdescfam = 0
nrdescpartner = self.handle2desc[partnerdata[0].handle]
nrfam = partnerdata[6]
nrdescfam = 0
else:
nrdescfam = self.famhandle2desc[data[0].handle]
nrdescpartner = self.handle2desc[partnerdata[0].handle]
nrfam = partnerdata[6]
partstart = partnerdata[2] partstart = partnerdata[2]
partslice = partnerdata[3] partslice = partnerdata[3]
if prevpartnerdatahandle != partnerdata[0].handle: if prevpartnerdatahandle != partnerdata[0].handle:
@ -346,7 +356,6 @@ class FanChartDescWidget(FanChartBaseWidget):
elif self.anglealgo == ANGLE_WEIGHT: elif self.anglealgo == ANGLE_WEIGHT:
slice = famslice/(nrdescfam) * (nrdesc + 1) slice = famslice/(nrdescfam) * (nrdesc + 1)
else: else:
print self.anglealgo == ANGLE_WEIGHT,self.anglealgo, ANGLE_WEIGHT
raise NotImplementedError, 'Unknown angle algorithm %d' % self.anglealgo raise NotImplementedError, 'Unknown angle algorithm %d' % self.anglealgo
if prevfamdatahandle != parentfamdata[0].handle: if prevfamdatahandle != parentfamdata[0].handle:
#reset the offset #reset the offset
@ -516,7 +525,11 @@ class FanChartDescWidget(FanChartBaseWidget):
if abs(slice - 2*pi) < 1e-6: if abs(slice - 2*pi) < 1e-6:
full = True full = True
stop_rad = start_rad + slice stop_rad = start_rad + slice
if not dup: if not person:
#an family with partner not set. Don't have a color for this,
# let's make it transparent
r, g, b, a = (255, 255, 255, 0)
elif not dup:
r, g, b, a = self.background_box(person, generation, userdata) r, g, b, a = self.background_box(person, generation, userdata)
else: else:
#duplicate color #duplicate color