Narrated Web: bad event links on media pages (#983)

* Navweb: Don't use media regions in some case:

- If we don't show families
- If we don't show events

Fixes #011500

* Navweb: side effect between event and media pages

When a media is processed in the media display section for an event
page, it's remove from the media_list, so when we try to create the
media regions in the media page, the media list is empty and we
can't display the regions.

* Narweb: Don't show the regions for a thumbnail
This commit is contained in:
Serge Noiraud 2020-01-10 17:38:41 +01:00 committed by GitHub
parent 34beeaad70
commit 675dfdbc70
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1840,7 +1840,7 @@ class BasePage: # pylint: disable=C1001
_linkurl = self.report.build_url_fname_html(_obj.handle, _linkurl = self.report.build_url_fname_html(_obj.handle,
"ppl", "ppl",
linkurl) linkurl)
elif classname == "Family": elif classname == "Family" and self.inc_families:
_obj = self.r_db.get_family_from_handle(newhandle) _obj = self.r_db.get_family_from_handle(newhandle)
partner1_handle = _obj.get_father_handle() partner1_handle = _obj.get_father_handle()
partner2_handle = _obj.get_mother_handle() partner2_handle = _obj.get_mother_handle()
@ -1866,7 +1866,7 @@ class BasePage: # pylint: disable=C1001
"ppl", True) "ppl", True)
if not _name: if not _name:
_name = self._("Unknown") _name = self._("Unknown")
elif classname == "Event": elif classname == "Event" and self.inc_events:
_obj = self.r_db.get_event_from_handle(newhandle) _obj = self.r_db.get_event_from_handle(newhandle)
_name = _obj.get_description() _name = _obj.get_description()
if not _name: if not _name:
@ -1952,57 +1952,16 @@ class BasePage: # pylint: disable=C1001
# make a thumbnail of this region # make a thumbnail of this region
newpath = self.copy_thumbnail(photo_handle, photo, region) newpath = self.copy_thumbnail(photo_handle, photo, region)
newpath = self.report.build_url_fname(newpath, uplink=True) newpath = self.report.build_url_fname(newpath, uplink=True)
snapshot += self.media_link(photo_handle, newpath, descr, snapshot += self.media_link(photo_handle, newpath, descr,
uplink=self.uplink, uplink=self.uplink,
usedescr=False) usedescr=False)
else: else:
dummy_rpath, newpath = self.report.prepare_copy_media(photo) dummy_rpath, newpath = self.report.prepare_copy_media(photo)
newpath = self.report.build_url_fname(newpath, uplink=True) newpath = self.report.build_url_fname(newpath, uplink=True)
snapshot += self.media_link(photo_handle, newpath,
# FIXME: There doesn't seem to be any point in highlighting descr,
# a sub-region in the thumbnail and linking back to the uplink=self.uplink,
# person or whatever. First it is confusing when the link usedescr=False)
# probably has nothing to do with the page on which the
# thumbnail is displayed, and second on a thumbnail it is
# probably too small to see, and third, on the thumbnail,
# the link is shown above the image (which is pretty
# useless!)
_region_items = self.media_ref_rect_regions(photo_handle,
linkurl=False)
if _region_items:
with Html("div", id="GalleryDisplay") as mediadisplay:
snapshot += mediadisplay
ordered = Html("ol", class_="RegionBox")
mediadisplay += ordered
while _region_items:
(name, coord_x, coord_y,
width, height, linkurl) = _region_items.pop()
ordered += Html("li",
style="left:%d%%; top:%d%%; "
"width:%d%%; height:%d%%;" % (
coord_x, coord_y,
width, height))
ordered += Html("a", name, href=linkurl)
# Need to add link to mediadisplay to get the links:
mediadisplay += self.media_link(photo_handle,
newpath, descr,
self.uplink, False)
else:
try:
# Begin hyperlink. Description is given only for
# the purpose of the alt tag in img element
snapshot += self.media_link(photo_handle, newpath,
descr,
uplink=self.uplink,
usedescr=False)
except (IOError, OSError) as msg:
self.r_user.warn(_("Could not add photo to page"),
str(msg))
else: else:
# begin hyperlink # begin hyperlink
snapshot += self.doc_link(photo_handle, descr, snapshot += self.doc_link(photo_handle, descr,
@ -2030,12 +1989,6 @@ class BasePage: # pylint: disable=C1001
if photoref.ref in photolist_handles: if photoref.ref in photolist_handles:
photo = photolist_handles[photoref.ref] photo = photolist_handles[photoref.ref]
photolist_ordered.append(photo) photolist_ordered.append(photo)
try:
if photo in photolist:
photolist.remove(photo)
except ValueError:
LOG.warning("Error trying to remove '%s' from photolist",
photo)
# and add any that are left (should there be any?) # and add any that are left (should there be any?)
photolist_ordered += photolist photolist_ordered += photolist