My favourite function! :-) On Sat, May 23, 2015 at 1:33 PM, Mathias Ettinger < [email protected]> wrote:
> Mmmh… random.choice ? It's a function that is so underrated. > > Anyway, I understand your statement as to why we might not be able to > implement a one size fits most approach. > > > Le samedi 23 mai 2015 21:33:26 UTC+2, Stephen McDonald a écrit : >> >> Sure, but what if a product belongs to multiple categories? >> >> >> >> On Sat, May 23, 2015 at 12:21 PM, Mathias Ettinger <[email protected] >> > wrote: >> >>> I meant a shop_menu tag, the page_menu already exists. >>> >>> >>> >>> Le samedi 23 mai 2015 21:20:35 UTC+2, Mathias Ettinger a écrit : >>>> >>>> What about implementing a page_menu tag in >>>> cartridge.shop.templatetags.shop_tags? And changing the shop/product.html >>>> template to use >>>> >>>> {% block breadcrumb_menu %}{% shop_menu "pages/menu/breadcrumb.html" >>>> %}{% endblock %} >>>> >>>> Is it worth taking some time to provide it in cartridge? >>>> >>>> >>>> Le samedi 23 mai 2015 18:57:35 UTC+2, Stephen McDonald a écrit : >>>>> >>>>> BTW you should be able to implement your own breadcrumb logic by >>>>> overriding "{% block breadcrumb_menu %}" in your product.html template - >>>>> at >>>>> that point you have your product variable, and access to its >>>>> category/categories. >>>>> >>>>> That wouldn't be a "one size fits all" solution, but will absolutely >>>>> work for your own project. >>>>> >>>>> On Sat, May 23, 2015 at 8:15 AM, Mathias Ettinger < >>>>> [email protected]> wrote: >>>>> >>>>>> So, as I understand, you’re talking about: >>>>>> https://github.com/stephenmcd/cartridge/blob/master/cartridge/shop/templates/shop/product.html#L45-L48 >>>>>> <https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fstephenmcd%2Fcartridge%2Fblob%2Fmaster%2Fcartridge%2Fshop%2Ftemplates%2Fshop%2Fproduct.html%23L45-L48&sa=D&sntz=1&usg=AFQjCNGaRwDqDpf3rqW61_9I-dIh7EfvpA> >>>>>> not displaying Shop > Category > Subcategory > Product.title but only >>>>>> Shop >>>>>> > Product.title >>>>>> >>>>>> The block uses the page_menu template tag. But also uses the >>>>>> PageMiddleware mechanisms because the page_menu function uses the page >>>>>> object populated in the context by the PageMiddleware: >>>>>> https://github.com/stephenmcd/mezzanine/blob/master/mezzanine/pages/templatetags/pages_tags.py#L57-L64 >>>>>> >>>>>> PageMiddleware rely on the PageManager to query the pages in the >>>>>> hierarchy of the page we are curently on: >>>>>> https://github.com/stephenmcd/mezzanine/blob/master/mezzanine/pages/middleware.py#L76-L80 >>>>>> >>>>>> You can see in PageMiddleware that the hierarchy is queryed by >>>>>> searching for pages with their slug being a subset of the slug we are >>>>>> currently on: >>>>>> https://github.com/stephenmcd/mezzanine/blob/master/mezzanine/pages/managers.py#L68-L69 >>>>>> >>>>>> And here is the problem you are facing. Since the url of your product >>>>>> is SHOP_SLUG/product/PRODUCT_SLUG, only SHOP_SLUG is being matched as a >>>>>> valid page, hence the short breadcrumb. >>>>>> >>>>>> I haven't thought of a way to solve it efficiently, but suggestions >>>>>> are welcome. >>>>>> >>>>>> >>>>>> >>>>>> Le samedi 23 mai 2015 11:51:42 UTC+2, David Unric a écrit : >>>>>>> >>>>>>> Yes, you've nailed it. Thanks for rephrasing the question. >>>>>>> >>>>>>> It seems Product model derives only from Displayable, unlike >>>>>>> Category which derives from Page, so it won't be handled with >>>>>>> PageMiddleware. >>>>>>> I'd guess for Product it would be prefixed directly by its app_label. >>>>>>> >>>>>>> After inserting tracing output in mentioned pages_tags.py, >>>>>>> shop_product view receives in context both Shop and Category instances, >>>>>>> but >>>>>>> the former is used. >>>>>>> >>>>>>> >>>>>>> On Saturday, May 23, 2015 at 3:53:13 AM UTC+2, Chris Trengove wrote: >>>>>>>> >>>>>>>> As I understand it, this happens in PageMiddleware >>>>>>>> (pages/middleware.py) which is responsible for coming up with a "page" >>>>>>>> to >>>>>>>> add to the template context. This happens as well for non-page views, >>>>>>>> like >>>>>>>> blog pages and shop products, in which case the "page" that gets added >>>>>>>> to >>>>>>>> the context is the root "blog" or "shop" page. >>>>>>>> >>>>>>>> For shop products, I think a useful feature would be to have the >>>>>>>> context page be the category with the deepest (most specific) "path". >>>>>>>> So if >>>>>>>> a product was in "Shop > Mens Wear > Shirts" and "Shop > Mens Wear" >>>>>>>> (as a >>>>>>>> featured product), then when viewing the product, the "page" set in the >>>>>>>> context would be "Shirts", so that the breadcrumbs then showed "Shop > >>>>>>>> Mens >>>>>>>> Wear > Shirts" and not (as happens at present) "Shop". >>>>>>>> >>>>>>>> So, the question is how best to achieve this, presumably by >>>>>>>> modifying PageMiddleware in some way. >>>>>>>> >>>>>>>> On Friday, May 22, 2015 at 11:11:51 PM UTC+10, David Unric wrote: >>>>>>>>> >>>>>>>>> Hello, >>>>>>>>> >>>>>>>>> how can I configure/tweak Mezzanine >>>>>>>>> *cartridge.shop.models.Product* won't be prefixes with *Shop* in >>>>>>>>> menus and breadcrumbs ? >>>>>>>>> >>>>>>>>> For example I've created product category Pages named "Cars" and >>>>>>>>> "Acessories" and each product belongs only to one of them. >>>>>>>>> Both categories are rendered as root in page_menu >>>>>>>>> "pages/menus/tree.html" (bellow Shop), links in category view >>>>>>>>> (including >>>>>>>>> nested ones) correspond to current category in a categories tree. So >>>>>>>>> far >>>>>>>>> so good. >>>>>>>>> However when navigate to a specific product, instead of real >>>>>>>>> parent categories path, page_menu places product directly as a >>>>>>>>> descendant >>>>>>>>> of *Shop*, which is not correct. >>>>>>>>> >>>>>>>>> It seems the logic is in Mezzanine's pages_tags.py in >>>>>>>>> pages/templatetags, but having a harder time to completely understand >>>>>>>>> it, >>>>>>>>> incl. where *menu_pages* in context comes from etc. >>>>>>>>> >>>>>>>>> I do not know if I'am on the right track and would welcome if >>>>>>>>> anybody can give me an advice how Cartridge products to be linked as >>>>>>>>> descendants of their primary category instead of a generic Shop ? >>>>>>>>> >>>>>>>>> Thanks. >>>>>>>>> >>>>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Mezzanine Users" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to [email protected]. >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Stephen McDonald >>>>> http://jupo.org >>>>> >>>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Mezzanine Users" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> >> >> -- >> Stephen McDonald >> http://jupo.org >> > -- > You received this message because you are subscribed to the Google Groups > "Mezzanine Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- Stephen McDonald http://jupo.org -- You received this message because you are subscribed to the Google Groups "Mezzanine Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
