summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-04-24 11:37:26 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-06-12 08:43:58 +0200
commit3ed2a3da11228913465226eee9137c93fc3c5374 (patch)
tree8d1db95cd9630df7c0d702889f82fb90766d1d08
parent7fefd49eb981b2ddad42b879df2821949ba24e39 (diff)
downloadIshtar-3ed2a3da11228913465226eee9137c93fc3c5374.tar.bz2
Ishtar-3ed2a3da11228913465226eee9137c93fc3c5374.zip
Forms: preview posted images
-rw-r--r--ishtar_common/widgets.py12
-rw-r--r--ishtar_common/wizards.py8
2 files changed, 18 insertions, 2 deletions
diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py
index 60e5fc016..192de6f65 100644
--- a/ishtar_common/widgets.py
+++ b/ishtar_common/widgets.py
@@ -25,6 +25,7 @@ from django import forms
from django.conf import settings
from django.core.urlresolvers import reverse, NoReverseMatch
from django.db.models import fields
+from django.db.models.fields.files import ImageFieldFile
from django.forms import ClearableFileInput
from django.forms.utils import flatatt
from django.forms.widgets import CheckboxSelectMultiple as \
@@ -294,6 +295,17 @@ class ImageFileInput(ClearableFileInput):
template_name = 'widgets/image_input.html'
NO_FORM_CONTROL = True
+ def format_value(self, value):
+ if self.is_initial(value):
+ return value
+ # try to display posted images
+ if hasattr(value, 'file'):
+ full_path = unicode(value.file)
+ if full_path.startswith(settings.MEDIA_ROOT):
+ value.url = settings.MEDIA_URL + full_path[
+ len(settings.MEDIA_ROOT):]
+ return value
+
class SquareMeterWidget(forms.TextInput):
def render(self, name, value, attrs=None, renderer=None):
diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py
index 8e7cd0c74..e47d5b48b 100644
--- a/ishtar_common/wizards.py
+++ b/ishtar_common/wizards.py
@@ -19,6 +19,7 @@
import datetime
import logging
+import os
# from functools import wraps
from django.conf import settings
@@ -28,7 +29,7 @@ from formtools.wizard.views import NamedUrlWizardView, normalize_name, \
from django.contrib.sites.models import Site
from django.core.exceptions import ObjectDoesNotExist
from django.core.files.images import ImageFile
-from django.core.files.storage import default_storage
+from django.core.files.storage import default_storage, FileSystemStorage
from django.core.mail import send_mail
from django.db.models.fields.files import FileField, ImageFieldFile
from django.db.models.fields.related import ManyToManyField
@@ -143,7 +144,9 @@ class Wizard(NamedUrlWizardView):
current_obj_slug = ''
current_object_key = 'pk'
ignore_init_steps = []
- file_storage = default_storage
+ file_storage = FileSystemStorage(
+ location=os.path.join(settings.MEDIA_ROOT, 'tmp')
+ )
main_item_select_keys = ('selec-',)
formset_pop_deleted = True
@@ -358,6 +361,7 @@ class Wizard(NamedUrlWizardView):
# not last step: validation
if current_step != self.steps.last:
return context
+
final_form_list = []
for form_key in self.get_form_list().keys():
form_obj = self.get_form(