Narweb: enclosed places not correctly sorted. (#977)
* Narweb: enclosed places nor correctly sorted. Fixes #11487 * Narweb: some cleanup
This commit is contained in:
parent
50d8b110ae
commit
8184f1b603
@ -2755,7 +2755,25 @@ class BasePage: # pylint: disable=C1001
|
|||||||
class_="ColumnAttribute", inline=True),
|
class_="ColumnAttribute", inline=True),
|
||||||
)
|
)
|
||||||
tbody += trow
|
tbody += trow
|
||||||
for placeref in place.get_placeref_list():
|
|
||||||
|
def sort_by_enclosed_by(obj):
|
||||||
|
"""
|
||||||
|
Sort by enclosed by
|
||||||
|
"""
|
||||||
|
place_name = ""
|
||||||
|
parent_place = self.r_db.get_place_from_handle(obj.ref)
|
||||||
|
if parent_place:
|
||||||
|
place_name = parent_place.get_name().get_value()
|
||||||
|
return place_name
|
||||||
|
|
||||||
|
def sort_by_encl(obj):
|
||||||
|
"""
|
||||||
|
Sort by encloses
|
||||||
|
"""
|
||||||
|
return obj[0]
|
||||||
|
|
||||||
|
for placeref in sorted(place.get_placeref_list(),
|
||||||
|
key=sort_by_enclosed_by):
|
||||||
parent_place = self.r_db.get_place_from_handle(placeref.ref)
|
parent_place = self.r_db.get_place_from_handle(placeref.ref)
|
||||||
if parent_place:
|
if parent_place:
|
||||||
place_name = parent_place.get_name().get_value()
|
place_name = parent_place.get_name().get_value()
|
||||||
@ -2777,6 +2795,7 @@ class BasePage: # pylint: disable=C1001
|
|||||||
class_="ColumnAttribute", inline=True),
|
class_="ColumnAttribute", inline=True),
|
||||||
)
|
)
|
||||||
tbody += trow
|
tbody += trow
|
||||||
|
encloses = []
|
||||||
for link in self.r_db.find_backlink_handles(
|
for link in self.r_db.find_backlink_handles(
|
||||||
place.handle, include_classes=['Place']):
|
place.handle, include_classes=['Place']):
|
||||||
child_place = self.r_db.get_place_from_handle(link[1])
|
child_place = self.r_db.get_place_from_handle(link[1])
|
||||||
@ -2784,12 +2803,17 @@ class BasePage: # pylint: disable=C1001
|
|||||||
for placeref in child_place.get_placeref_list():
|
for placeref in child_place.get_placeref_list():
|
||||||
if placeref.ref == place.handle:
|
if placeref.ref == place.handle:
|
||||||
place_name = child_place.get_name().get_value()
|
place_name = child_place.get_name().get_value()
|
||||||
if child_place.handle in self.report.obj_dict[Place]:
|
if link[1] in self.report.obj_dict[Place]:
|
||||||
place_hyper = self.place_link(child_place.handle,
|
encloses.append((place_name, link[1]))
|
||||||
place_name,
|
else:
|
||||||
|
encloses.append((place_name, ""))
|
||||||
|
for (name, handle) in sorted(encloses, key=sort_by_encl):
|
||||||
|
place_name = child_place.get_name().get_value()
|
||||||
|
if handle and handle in self.report.obj_dict[Place]:
|
||||||
|
place_hyper = self.place_link(handle, name,
|
||||||
uplink=self.uplink)
|
uplink=self.uplink)
|
||||||
else:
|
else:
|
||||||
place_hyper = place_name
|
place_hyper = name
|
||||||
trow = Html("tr") + (
|
trow = Html("tr") + (
|
||||||
Html("td", place_hyper,
|
Html("td", place_hyper,
|
||||||
class_="ColumnPlace", inline=True))
|
class_="ColumnPlace", inline=True))
|
||||||
|
Loading…
Reference in New Issue
Block a user