diff options
-rw-r--r-- | ishtar_common/widgets.py | 12 | ||||
-rw-r--r-- | ishtar_common/wizards.py | 8 |
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( |