diff options
Diffstat (limited to 'ishtar_common')
| -rw-r--r-- | ishtar_common/forms_common.py | 8 | ||||
| -rw-r--r-- | ishtar_common/models.py | 16 | ||||
| -rw-r--r-- | ishtar_common/templates/ishtar/sheet_source.html | 43 | ||||
| -rw-r--r-- | ishtar_common/wizards.py | 2 | 
4 files changed, 50 insertions, 19 deletions
| diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index f6889ae1f..2788283db 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -649,6 +649,7 @@ class MergeOrganizationForm(MergeForm):  ######################  class SourceForm(ManageOldType, forms.Form):      form_label = _(u"Documentation informations") +    file_upload = True      associated_models = {'source_type': models.SourceType}      title = forms.CharField(label=_(u"Title"),                              validators=[validators.MaxLengthValidator(200)]) @@ -677,6 +678,13 @@ class SourceForm(ManageOldType, forms.Form):          required=False)      duplicate = forms.BooleanField(label=_(u"Has a duplicate"),                                     required=False) +    image = forms.ImageField( +        label=_(u"Image"), help_text=mark_safe( +            _(u"<p>Heavy images are resized to: %(width)dx%(height)d " +              u"(ratio is preserved).</p>") % { +                'width': settings.IMAGE_MAX_SIZE[0], +                'height': settings.IMAGE_MAX_SIZE[1]}), +        required=False, widget=widgets.ImageFileInput())      def __init__(self, *args, **kwargs):          super(SourceForm, self).__init__(*args, **kwargs) diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 186d88f1a..4e46693de 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -331,6 +331,8 @@ class GeneralType(Cached, models.Model):      @classmethod      def _get_initial_types(cls, initial, type_pks):          new_vals = [] +        if not initial: +            return []          for value in initial:              try:                  pk = int(value) @@ -580,10 +582,21 @@ class ImageModel(models.Model):                                    null=True)      IMAGE_MAX_SIZE = settings.IMAGE_MAX_SIZE      THUMB_MAX_SIZE = settings.THUMB_MAX_SIZE +    IMAGE_PREFIX = '/'      class Meta:          abstract = True +    def __init__(self, *args, **kwargs): +        super(ImageModel, self).__init__(*args, **kwargs) +        image = self._meta.get_field_by_name("image")[0] +        IMAGE_PREFIX = self.IMAGE_PREFIX +        if not IMAGE_PREFIX.endswith('/'): +            IMAGE_PREFIX += u'/' +        image.upload_to = IMAGE_PREFIX +        thumbnail = self._meta.get_field_by_name("thumbnail")[0] +        thumbnail.upload_to = IMAGE_PREFIX + "thumbs/" +      def has_changed(self, field):          if not self.pk:              return True @@ -2541,7 +2554,7 @@ class Format(GeneralType):          verbose_name_plural = _(u"Formats") -class Source(models.Model): +class Source(ImageModel, models.Model):      title = models.CharField(_(u"Title"), max_length=300)      external_id = models.CharField(_(u"External ID"), max_length=12, null=True,                                     blank=True) @@ -2576,6 +2589,7 @@ class Source(models.Model):      duplicate = models.BooleanField(_(u"Has a duplicate"), default=False)      TABLE_COLS = ['title', 'source_type', 'authors', 'associated_url']      COL_LINK = ['associated_url'] +    IMAGE_PREFIX = 'sources'      class Meta:          abstract = True diff --git a/ishtar_common/templates/ishtar/sheet_source.html b/ishtar_common/templates/ishtar/sheet_source.html index 7d291f37f..08406286d 100644 --- a/ishtar_common/templates/ishtar/sheet_source.html +++ b/ishtar_common/templates/ishtar/sheet_source.html @@ -4,26 +4,33 @@  {% block content %}  {% block window_nav %}{% endblock %}  {% block general %} -{% field "Title" item.title %} -{% field "Index" item.index %} -{% field "Source type" item.source_type %} -{% field "Format type" item.format_type %} -{% field "Scale" item.scale %} -{% field_url "Web link" item.associated_url %} -{% field "Authors" item.authors|add_links:'person' %} -{% field "Item number" item.item_number %} -{% field "Ref." item.reference %} -{% field "Internal ref." item.internal_reference %} -{% field "Creation date" item.creation_date %} -{% field "Receipt date" item.receipt_date %} -{% field "Receipt date in documentation" item.receipt_date_in_documentation %} -{% field "Has a duplicate" item.duplicate %} -{% field "Description" item.description %} -{% field "Comment" item.comment %} -{% field "Additional information" item.additional_information %} -{% endblock %}  {% block related %}  {% field "Related item" item.owner %}  {% endblock %} + +{% if item.image %} +<a href='{{item.image.url}}' rel="prettyPhoto" title="{{item.label}}" class='photo'><img src='{{item.thumbnail.url}}'/></a> +{% endif%} + +<ul class='form-flex'> +{% field_li "Title" item.title %} +{% field_li "Index" item.index %} +{% field_li "Source type" item.source_type %} +{% field_li "Format type" item.format_type %} +{% field_li "Scale" item.scale %} +{% field_li_url "Web link" item.associated_url %} +{% field_li "Authors" item.authors|add_links:'person' %} +{% field_li "Item number" item.item_number %} +{% field_li "Ref." item.reference %} +{% field_li "Internal ref." item.internal_reference %} +{% field_li "Creation date" item.creation_date %} +{% field_li "Receipt date" item.receipt_date %} +{% field_li "Receipt date in documentation" item.receipt_date_in_documentation %} +{% field_li "Has a duplicate" item.duplicate %} +{% field_li "Description" item.description %} +{% field_li "Comment" item.comment %} +{% field_li "Additional information" item.additional_information %} +</ul> +{% endblock %}  {% endblock %} diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index a42e2d8b5..7fc22f1a9 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -26,6 +26,7 @@ from django.contrib.formtools.wizard.views import NamedUrlWizardView, \  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.mail import send_mail  from django.db.models.fields.files import FileField  from django.db.models.fields.related import ManyToManyField @@ -123,6 +124,7 @@ class Wizard(NamedUrlWizardView):      wizard_templates = {}      filter_owns = {}      current_obj_slug = '' +    file_storage = default_storage      '''      # buggy and unecessary... | 
