django-cms / djangocms-versioning

General purpose versioning package for Django CMS 4 and above.
Other
33 stars 29 forks source link

[BUG] placeholder inherit does not work #410

Closed aacimov closed 1 month ago

aacimov commented 2 months ago

Description

I have a placeholder named "Header image" called this way:

{% placeholder "Header image" inherit or %}
        {% include "layouts/_includes/hero.html" %}
{% endplaceholder %}

The point is to inherit a placeholder which has an Image plugin (from parent page on child pages). If there is no plugin added in "Header image" placeholder on the parent page, show a default header image defined in my include template. Parent page has an Image plugin and it should be shown on a child page but it does not.

Both templates (on parent and child) are the same (in my case content.html template).

Steps to reproduce

  1. Add plugin to a parent page placeholder
  2. The placeholder should have inherit or attributes (placeholder "Some name" inherit or) as described at the beginning
  3. Publish the page
  4. Create a subpage
  5. Publish the subpage

Expected behaviour

A child page / subpage should inherit the parent page placeholder.

Actual behaviour

Child page / subpage does not inherit the placeholder but rather shows the included default code chunk (in my case).

As extra info I can add that the parent page is not a homepage, nor has any AppHooks attached - just a regular page. Child page is the first child. I have an example with the same example but with multiple child pages and their subpages (3 levels) - same behavior.

Additional information (CMS/Python/Django versions)

  1. Django 4.2.11
  2. Django CMS 4.1.0
  3. Python 3.10

Do you want to help fix this issue?

fsbraun commented 2 months ago

@aacimov Any idea if this also happens without the or keyword?

aacimov commented 2 months ago

It does. Forgot to mention.

aacimov commented 1 month ago

Hey @fsbraun any updates on this one? Not a crucial issue but kind of a DRY principle interruption hehe.

fsbraun commented 1 month ago

@aacimov I have been able to verify that the issue comes from interaction with djangocms-versioining. I keep on investigating.

fsbraun commented 1 month ago

Root cause identified: