def photo_card(photo): class_name = "photo-card" anchor_attrs = f'data-rotation="{photo.rotation}" ' f'data-fancybox="gallery"' if photo.album.shareable: anchor_attrs += " data-download={}".format( reverse( "photos:shared-download", args=[photo.album.slug, photo.album.access_token, photo], )) else: anchor_attrs += " data-download={}".format( reverse("photos:download", args=[photo.album.slug, photo])) image_url = get_thumbnail_url(photo.file, settings.THUMBNAIL_SIZES["medium"]) if photo.rotation > 0: class_name += " rotate{}".format(photo.rotation) anchor_attrs += (f" data-options=" f'\'{{"slideClass": "rotate{photo.rotation}"}}\'') return grid_item( title="", url=get_thumbnail_url(photo.file, settings.THUMBNAIL_SIZES["large"], fit=False), image_url=image_url, class_name=class_name, anchor_attrs=anchor_attrs, )
def event_document_card(document): return grid_item( title=document.name, meta_text="", url=document.get_absolute_url(), image_url=static("documents/images/thumb.png"), class_name="event-document-card", )
def membergroup_card(group, language): image_url = static(f"activemembers/images/{language}/" f"placeholder_overview.png") if group.photo: image_url = get_thumbnail_url(group.photo, settings.THUMBNAIL_SIZES["medium"]) return grid_item( title=group.name, meta_text="", url=group.get_absolute_url, image_url=image_url, class_name="membergroup-card", )
def partner_image_card(image): """Return grid item showing partner image.""" class_name = "partner-image-card" image_url = get_thumbnail_url(image, settings.THUMBNAIL_SIZES["medium"]) return grid_item( title="", url=get_thumbnail_url(image, settings.THUMBNAIL_SIZES["large"], fit=False), image_url=image_url, class_name=class_name, anchor_attrs='data-fancybox="gallery"', )
def annual_document_card(doc_type, document): name = "" class_name = "annual-document-card" for t, n in AnnualDocument.SUBCATEGORIES: if t == doc_type: name = n url = "#{}".format(doc_type) image_url = static("documents/images/placeholder.png") if document: url = document.get_absolute_url() image_url = static("documents/images/thumb.png") else: class_name += " empty" return grid_item( title=name, meta_text="", url=url, image_url=image_url, class_name=class_name, )
def partner_card(partner): """Return grid item showing partner.""" image_url = "" if partner.logo: image_url = get_thumbnail_url(partner.logo, settings.THUMBNAIL_SIZES["medium"], fit=False) meta_text = truncatechars(bleach(striptags(partner.company_profile)), 80) return grid_item( title=partner.name, meta_text='<p class="px-2 d-none d-md-block">{}</p>'.format(meta_text), url=partner.get_absolute_url, image_url=image_url, class_name="partner-card", )
def member_card(member, meta_text=None, ribbon=None): if meta_text is None and member.profile.starting_year: meta_text = '<p class="px-1">{}: {}</p>'.format( _("Cohort"), member.profile.starting_year ) image_url = static("members/images/default-avatar.jpg") if member.profile.photo: image_url = get_thumbnail_url( member.profile.photo, settings.THUMBNAIL_SIZES["medium"] ) return grid_item( title=member.profile.display_name(), meta_text=meta_text, url=reverse("members:profile", kwargs={"pk": member.pk}), image_url=image_url, ribbon=ribbon, class_name="member-card", )
def thabloid_card(year, thabloid): view_url = reverse("thabloid:pages", args=[thabloid.year, thabloid.issue]) buttons = ( '<div class="text-center mt-2">' '<a href="{}" class="btn btn-secondary d-inline-flex open mr-1">' '<i class="fas fa-book-open"></i>' "</a>" '<a href="{}" download ' 'class="btn btn-secondary d-inline-flex download ml-1">' '<i class="fas fa-download"></i>' "</a>" "</div>").format(view_url, thabloid.file.url) return grid_item( title="{}-{}, #{}".format(thabloid.year, thabloid.year + 1, thabloid.issue), meta_text=buttons, url=None, image_url=get_thumbnail_url(thabloid.cover, "255x360"), class_name=f"thabloid-card", )
def album_card(album): class_name = "album-card" image_url = "" if album.cover: image_url = get_thumbnail_url(album.cover.file, settings.THUMBNAIL_SIZES["medium"]) if album.cover.rotation > 0: class_name += " rotate{}".format(album.cover.rotation) url = album.get_absolute_url if not album.accessible: class_name += " grayscale" url = None return grid_item( title=album.title, meta_text="<p>{}</p>".format(date(album.date, "Y-m-d")), url=url, image_url=image_url, class_name=class_name, )