banner fix master
authorRadek Czajka <rczajka@rczajka.pl>
Tue, 9 Dec 2025 14:45:33 +0000 (15:45 +0100)
committerRadek Czajka <rczajka@rczajka.pl>
Tue, 9 Dec 2025 14:45:33 +0000 (15:45 +0100)
src/annoy/models.py
src/annoy/templates/annoy/banner.html

index 097872b..6af1cc0 100644 (file)
@@ -66,7 +66,13 @@ class Banner(models.Model):
             return self.campaign.image
         else:
             return self.image
-    
+
+    def is_external(self):
+        return (self.url and
+                not self.url.startswith('/') and
+                not self.url.startswith('https://wolnelektury.pl/')
+                )
+
     @classmethod
     def choice(cls, place, request, exemptions=True, book=None):
         Membership = apps.get_model('club', 'Membership')
index bfecd9d..9a67fcd 100644 (file)
@@ -20,7 +20,9 @@
            {% if banner.background_color %}background-color: {{ banner.background_color }};{% endif %}
         ">
     {% if not banner.action_label %}
-      <a href="{{ banner.url }}">
+    <a
+      {% if banner.is_external %}target="_blank"{% endif %}
+      href="{{ banner.url }}">
     {% endif %}
     <div class="annoy-banner-inner">
 
@@ -34,7 +36,9 @@
       </div>
 
       {% if banner.action_label %}
-        <a class="action" href="{{ banner.url }}">
+      <a class="action"
+        {% if banner.is_external %}target="_blank"{% endif %}
+        href="{{ banner.url }}">
           {{ banner.action_label }}
         </a>
       {% endif %}