Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ def render(self, context, instance, placeholder):
instance.add_classes("carousel-item")
if is_first_child(instance, parent):
instance.add_classes("active")
context["link"] = instance.get_link()
context["mixin_link"] = instance.get_link()
context["aspect_ratio"] = str(width / height)
context["options"] = {"crop": 10, "size": (width, height), "upscale": True}
return super().render(context, instance, placeholder)
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{% load cms_tags frontend %}
<{{ instance.tag_type }}{{ instance.get_attributes }}>
{% if link %}
<a href="{{ link }}"{% if instance.target %} target="{{ instance.target }}"{% endif %}>
{% if mixin_link %}
<a href="{{ mixin_link }}"{% if instance.target %} target="{{ instance.target }}"{% endif %}>
{% endif %}
{% with image=carousel_image.image %}
{% include "djangocms_frontend/bootstrap5/carousel/default/image.html" %}
{% endwith %}
{% if link %}
{% if mixin_link %}
</a>
{% endif %}
<div class="carousel-caption d-none d-md-block">
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{% load cms_tags frontend %}{% if mixin_link %}<a href="{{ mixin_link }}"{% if instance.target %} target="{{ instance.target }}"{% endif %}{{ instance.get_attributes }}>{% endif %}{% if instance.icon_left %}{% include "djangocms_frontend/bootstrap5/link/default/icon.html" with icon_class=instance.icon_left attribute_class="me-1" %}{% endif %}{% for plugin in instance.child_plugin_instances %}{% render_plugin plugin %}{% empty %}{{ instance.name }}{% endfor %}{% if instance.icon_right %}{% include "djangocms_frontend/bootstrap5/link/default/icon.html" with icon_class=instance.icon_right attribute_class="ms-1" %}{% endif %}{% if link %}</a>{% endif %}
{% load cms_tags frontend %}{% if mixin_link %}<a href="{{ mixin_link }}"{% if instance.target %} target="{{ instance.target }}"{% endif %}{{ instance.get_attributes }}>{% endif %}{% if instance.icon_left %}{% include "djangocms_frontend/bootstrap5/link/default/icon.html" with icon_class=instance.icon_left attribute_class="me-1" %}{% endif %}{% for plugin in instance.child_plugin_instances %}{% render_plugin plugin %}{% empty %}{{ instance.name }}{% endfor %}{% if instance.icon_right %}{% include "djangocms_frontend/bootstrap5/link/default/icon.html" with icon_class=instance.icon_right attribute_class="ms-1" %}{% endif %}{% if mixin_link %}</a>{% endif %}
25 changes: 25 additions & 0 deletions tests/carousel/test_plugins.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,3 +104,28 @@ def test_carousel_slide_plugin(self):
or ('<div class="carousel slide"' in response.content.decode("utf-8")),
f'<div class="slide carousel" not found in {response.content.decode("utf-8")}',
)

# Now testing if links are working
row = add_plugin(
placeholder=self.placeholder,
plugin_type=CarouselPlugin.__name__,
language=self.language,
)
row.initialize_from_form(CarouselForm).save()
plugin = add_plugin(
target=row,
placeholder=self.placeholder,
plugin_type=CarouselSlidePlugin.__name__,
language=self.language,
config=dict(
carousel_image=dict(pk=self.image.id, model="filer.Image"),
link=dict(external_link="https://www.divio.com"),
),
)
plugin.initialize_from_form(CarouselSlideForm).save()
self.publish(self.page, self.language)

with self.login_user_context(self.superuser):
response = self.client.get(self.request_url)
self.assertEqual(response.status_code, 200)
self.assertContains(response, 'href="https://www.divio.com"')