Support for projects without icons.
authorRadek Czajka <rczajka@rczajka.pl>
Thu, 18 Mar 2021 13:58:48 +0000 (14:58 +0100)
committerRadek Czajka <rczajka@rczajka.pl>
Thu, 18 Mar 2021 13:58:48 +0000 (14:58 +0100)
src/archive/models.py
src/archive/tasks.py

index 869641c..1fc033b 100644 (file)
@@ -1,9 +1,11 @@
 import io
 import json
 import os.path
+from urllib.parse import urljoin
 
 from django.db import models
 from time import sleep
+from django.contrib.sites.models import Site
 from django.utils.functional import cached_property
 from django.utils.timezone import now
 from django.utils.translation import gettext_lazy as _
@@ -47,6 +49,14 @@ class Project(models.Model):
             " finansowanego przez %s" % self.sponsors if self.sponsors else "",
         )
 
+    def get_icon_url(self):
+        if not self.icon:
+            return ''
+        return urljoin(
+            'https://' + Site.objects.get_current().domain,
+            self.icon.url
+        )
+
 
 def source_upload_to(intance, filename):
     return os.path.join(FILES_SAVE_PATH, filename) # FIXME: what about really long file names?
index 17d98cc..9d236db 100644 (file)
@@ -83,7 +83,7 @@ class AudioFormatTask(Task):
 
             'project': {
                 'description': audiobook.project.get_description(),
-                'icon': audiobook.project.icon.url,
+                'icon': audiobook.project.get_icon_url(),
             }
         }
         with open(path, 'rb') as f: