Skip to content

Commit ea4e208

Browse files
SNoiraudNick-Hall
authored andcommitted
Fix narrated web when 2 places have same name but different type
Fixes #13841.
1 parent 7a3a2bc commit ea4e208

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

gramps/plugins/webreport/narrativeweb.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1083,7 +1083,8 @@ def _add_place(self, place_handle, bkref_class, bkref_handle, event):
10831083
place.gramps_id,
10841084
event,
10851085
)
1086-
self.obj_dict[PlaceName][place_name] = (
1086+
p_name = place_name + ":" + place.get_gramps_id()
1087+
self.obj_dict[PlaceName][p_name] = (
10871088
place_handle,
10881089
place_name,
10891090
splace_name,

gramps/plugins/webreport/place.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,9 @@ def display_pages(self, the_lang, the_title):
152152
plc_dict = (p_fname, place_name, place.gramps_id, None)
153153
self.report.obj_dict[Place][place_ref] = plc_dict
154154
p_name = _pd.display(self.r_db, place, fmt=0)
155-
cplace_name = p_name.split()[-1]
155+
cplace_name = ""
156+
if p_name:
157+
cplace_name = p_name.split()[-1]
156158
if len(place_name.split()) > 1:
157159
splace_name = place_name.split()[-2]
158160
else:
@@ -165,20 +167,20 @@ def display_pages(self, the_lang, the_title):
165167
place.gramps_id,
166168
None,
167169
)
168-
self.report.obj_dict[PlaceName][p_name] = plc_dict
170+
plc_name = p_name + ":" + place.get_gramps_id()
171+
self.report.obj_dict[PlaceName][plc_name] = plc_dict
169172

170173
with self.r_user.progress(
171174
progress_title, message, len(self.report.obj_dict[Place]) + 1
172175
) as step:
173176
index = 1
174177
for place_name in self.report.obj_dict[PlaceName].keys():
178+
pname = place_name.split(":")[0]
175179
step()
176180
p_handle = self.report.obj_dict[PlaceName][place_name]
177181
index += 1
178182
if isinstance(p_handle, tuple):
179-
self.placepage(
180-
self.report, the_lang, the_title, p_handle[0], place_name
181-
)
183+
self.placepage(self.report, the_lang, the_title, p_handle[0], pname)
182184
step()
183185
self.placelistpage(self.report, the_lang, the_title)
184186

@@ -363,7 +365,8 @@ def part_placelistpage(
363365

364366
# begin table body
365367
for place_handle, pname in places_handle_list:
366-
val = self.report.obj_dict[PlaceName][pname]
368+
gid = self.report.obj_dict[Place][place_handle][2]
369+
val = self.report.obj_dict[PlaceName][pname + ":" + gid]
367370
nbelem = len(val)
368371
if val and nbelem > 3:
369372
if isinstance(place_handle, tuple):
@@ -416,7 +419,9 @@ def placelistpage(self, report, the_lang, the_title):
416419
# self.report.obj_dict[PlaceName] is a dict with key place_name and
417420
# values (place_fname, place_name, place.gramps_id, event)
418421
for place_name, value in self.report.obj_dict[PlaceName].items():
419-
index.addRecord(place_name, [(value[0], value[1])])
422+
gid = self.report.obj_dict[Place][value[0]][2]
423+
p_name = place_name + ":" + gid
424+
index.addRecord(p_name, [(value[0], value[1])])
420425

421426
# Extract the buckets from the index
422427
index_list = []

0 commit comments

Comments
 (0)