summaryrefslogtreecommitdiff
path: root/ishtar_common/utils.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2022-02-09 11:55:10 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2022-02-09 11:55:10 +0100
commitc63bd252372c800f821ec1096089fc41e2970064 (patch)
tree5152b9be1f412eabacc6de2b5c576f43176677d1 /ishtar_common/utils.py
parent7d80814da1b786fce93c884b6462b1458f273ab1 (diff)
downloadIshtar-c63bd252372c800f821ec1096089fc41e2970064.tar.bz2
Ishtar-c63bd252372c800f821ec1096089fc41e2970064.zip
File storage: fix file save on broken link
Diffstat (limited to 'ishtar_common/utils.py')
-rw-r--r--ishtar_common/utils.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py
index e27b26e70..9b2f38819 100644
--- a/ishtar_common/utils.py
+++ b/ishtar_common/utils.py
@@ -52,6 +52,7 @@ from django.contrib.sessions.backends.db import SessionStore
from django.core.cache import cache
from django.core.exceptions import SuspiciousOperation, ObjectDoesNotExist
from django.core.files import File
+from django.core.files.storage import FileSystemStorage
from django.core.validators import EMPTY_VALUES
from django.core.urlresolvers import reverse
from django.db import models
@@ -2072,3 +2073,12 @@ def get_image_path(instance, filename):
n = datetime.datetime.now()
return "upload/{}/{:02d}/{:02d}/{}".format(n.year, n.month, n.day, filename)
return instance._get_image_path(filename)
+
+
+class IshtarFileSystemStorage(FileSystemStorage):
+ def exists(self, name):
+ path_name = self.path(name)
+ if os.path.islink(path_name):
+ if not os.path.exists(os.readlink(path_name)):
+ os.remove(path_name)
+ return os.path.exists(path_name)