Source code for mishmash.web.panels

import random
from pyramid_layout.panel import panel_config
from ..__about__ import __version__, __years__, __project_name__
from .. import orm








[docs]@panel_config(name='album_cover') def album_cover(context, request, album, size=None, link=False): front_covers = [img for img in album.images if img.type == orm.Image.FRONT_COVER_TYPE] cover_id = random.choice(front_covers).id if front_covers else "default" cover_url = request.route_url("images.covers", id=cover_id) width = str(size or "100%") height = str(size or "100%") panel = ( u"<img class='shadow' width='%s' height='%s' src='%s' title='%s'/>" % (width, height, cover_url, "%s - %s" % (album.artist.name, album.title)) ) if link: panel = u"<a href='%s'>%s</a>" % \ (request.route_url('album', id=album.id), panel) return panel