diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-09-05 18:30:24 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-09-05 18:31:52 +0200 |
commit | 7fb1ff25e2491e94c3446a401e644de9793006f5 (patch) | |
tree | 54a97773eef1b633895480a8b8caeb768bf7b43a /ishtar_common | |
parent | d3d84ed7cc5ff3cb9c164838c78cfcee73fbc44e (diff) | |
download | Ishtar-7fb1ff25e2491e94c3446a401e644de9793006f5.tar.bz2 Ishtar-7fb1ff25e2491e94c3446a401e644de9793006f5.zip |
Add images for operation, context records and sources (refs #2927, refs #351)
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... |