Changeset - c3487917ceba
[Not reviewed]
0 2 0
Lance Edgar (lance) - 3 years ago 2021-11-06 17:35:15
lance@edbob.org
Only show POD image if so configured; use "image not found" fallback

also update a random docstring
2 files changed with 26 insertions and 10 deletions:
0 comments (0 inline, 0 general)
rattail/config.py
Show inline comments
 
@@ -577,12 +577,16 @@ class RattailConfig(object):
 
        return self.get('rattail', 'product.key', default=default) or default
 

	
 
    def product_key_title(self, key=None):
 
        """
 
        Returns the title string to be used when displaying product key field,
 
        e.g. "UPC" or "Part No." etc.
 

	
 
        :param key: The product key for which to return a label.  This
 
           is optional; if not specified then :meth:`product_key()`
 
           will be called to determine the key.
 
        """
 
        title = self.get('rattail', 'product.key_title')
 
        if title:
 
            return title
 
        if not key:
 
            key = self.product_key()
rattail/products.py
Show inline comments
 
@@ -181,23 +181,35 @@ class ProductsHandler(GenericHandler):
 
        return products
 

	
 
    def get_image_url(self, product=None, upc=None, **kwargs):
 
        """
 
        Return the preferred image URL for the given UPC or product.
 
        """
 
        base_url = self.config.base_url()
 

	
 
        # we prefer the "image on file" if available
 
        if product and product.image:
 
            url = self.config.base_url()
 
            if url:
 
                return '{}/products/{}/image'.format(url, product.uuid)
 

	
 
        # fallback to the POD image, if available
 
        if product and not upc:
 
            upc = product.upc
 
        if upc:
 
            return self.get_pod_image_url(upc)
 
        if base_url and product and product.image:
 
            return '{}/products/{}/image'.format(base_url, product.uuid)
 

	
 
        # and if this product is a pack item, then we prefer the unit
 
        # item image as fallback, if available
 
        if base_url and product and product.is_pack_item():
 
            unit = product.unit
 
            if unit and unit.image:
 
                return '{}/products/{}/image'.format(base_url, unit.uuid)
 

	
 
        # fallback to the POD image, if available and so configured
 
        if self.config.getbool('tailbone', 'products.show_pod_image',
 
                               default=False):
 
            if product and not upc:
 
                upc = product.upc
 
            if upc:
 
                return self.get_pod_image_url(upc)
 

	
 
        if base_url:
 
            return '{}/tailbone/img/product.png'.format(base_url)
 

	
 
    def get_pod_image_url(self, upc, **kwargs):
 
        """
 
        Return the POD image URL for the given UPC.
 
        """
 
        if upc:
0 comments (0 inline, 0 general)