--- a/src/iconolab/management/commands/generatethumbnails.py Wed May 23 11:08:54 2018 +0200
+++ b/src/iconolab/management/commands/generatethumbnails.py Tue Jun 05 13:56:20 2018 +0200
@@ -2,7 +2,7 @@
from django.core.management.base import BaseCommand, CommandError
from django.core.management import call_command
from django.conf import settings
-from iconolab.models import Collection, Item, ItemMetadata, MetaCategory
+from iconolab.models import Collection, Item, MetaCategory
from sorl.thumbnail import get_thumbnail
import os, csv, pprint, re, json, shutil
@@ -18,7 +18,7 @@
)
def handle(self, *args, **options):
- try:
+ try:
if options.get("collection_id"):
print("## Finding collection with id "+options.get("collection_id"))
try:
@@ -28,7 +28,7 @@
else:
raise ValueError("!!! No collection id, aborting because we don't know which collection to update. !!!")
for item in collection.items.all():
- print("# Generating thumbnails for item: "+str(item.metadatas.inventory_number))
+ print("# Generating thumbnails for item: "+str(item.metadatas.natural_key))
for image in item.images.all():
print("## Processing image "+str(image.name))
for size in settings.PREGENERATE_THUMBNAILS_SIZES:
@@ -36,4 +36,4 @@
get_thumbnail(image.media, size, crop=False)
print("## All done!")
except ValueError as e:
- print(str(e))
\ No newline at end of file
+ print(str(e))
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/iconolab/migrations/0027_auto_20180528_0904.py Tue Jun 05 13:56:20 2018 +0200
@@ -0,0 +1,110 @@
+# Generated by Django 2.0.5 on 2018-05-28 09:04
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('iconolab', '0026_auto_20170524_1107'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='annotation',
+ name='author',
+ field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL),
+ ),
+ migrations.AlterField(
+ model_name='annotation',
+ name='current_revision',
+ field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='current_for_annotation', to='iconolab.AnnotationRevision'),
+ ),
+ migrations.AlterField(
+ model_name='annotation',
+ name='source_revision',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='source_related_annotation', to='iconolab.AnnotationRevision'),
+ ),
+ migrations.AlterField(
+ model_name='annotationrevision',
+ name='annotation',
+ field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='revisions', to='iconolab.Annotation'),
+ ),
+ migrations.AlterField(
+ model_name='annotationrevision',
+ name='author',
+ field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL),
+ ),
+ migrations.AlterField(
+ model_name='annotationrevision',
+ name='merge_parent_revision',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='child_revisions_merge', to='iconolab.AnnotationRevision'),
+ ),
+ migrations.AlterField(
+ model_name='annotationrevision',
+ name='parent_revision',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='child_revisions', to='iconolab.AnnotationRevision'),
+ ),
+ migrations.AlterField(
+ model_name='annotationstats',
+ name='annotation',
+ field=models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, related_name='stats', to='iconolab.Annotation'),
+ ),
+ migrations.AlterField(
+ model_name='bookmark',
+ name='category',
+ field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='iconolab.BookmarkCategory'),
+ ),
+ migrations.AlterField(
+ model_name='bookmark',
+ name='image',
+ field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='iconolab.Image'),
+ ),
+ migrations.AlterField(
+ model_name='bookmarkcategory',
+ name='user',
+ field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL),
+ ),
+ migrations.AlterField(
+ model_name='folder',
+ name='collection',
+ field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='folders', to='iconolab.Collection'),
+ ),
+ migrations.AlterField(
+ model_name='iconolabcomment',
+ name='revision',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='creation_comment', to='iconolab.AnnotationRevision'),
+ ),
+ migrations.AlterField(
+ model_name='image',
+ name='item',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='images', to='iconolab.Item'),
+ ),
+ migrations.AlterField(
+ model_name='imagestats',
+ name='image',
+ field=models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, related_name='stats', to='iconolab.Image'),
+ ),
+ migrations.AlterField(
+ model_name='item',
+ name='collection',
+ field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='items', to='iconolab.Collection'),
+ ),
+ migrations.AlterField(
+ model_name='itemmetadata',
+ name='item',
+ field=models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, related_name='metadatas', to='iconolab.Item'),
+ ),
+ migrations.AlterField(
+ model_name='metacategory',
+ name='collection',
+ field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='metacategories', to='iconolab.Collection'),
+ ),
+ migrations.AlterField(
+ model_name='tag',
+ name='collection',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='iconolab.Collection'),
+ ),
+ ]
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/iconolab/migrations/0028_itemmetadata_metadata.py Tue Jun 05 13:56:20 2018 +0200
@@ -0,0 +1,24 @@
+# Generated by Django 2.0.5 on 2018-06-01 15:33
+
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('iconolab', '0027_auto_20180528_0904'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='itemmetadata',
+ name='metadata',
+ field=models.TextField(default=''),
+ ),
+ migrations.AddField(
+ model_name='itemmetadata',
+ name='natural_key',
+ field=models.CharField(max_length=1024, default=''),
+ ),
+ ]
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/iconolab/migrations/0029_auto_itemmetadata_metadata_data.py Tue Jun 05 13:56:20 2018 +0200
@@ -0,0 +1,39 @@
+# Generated by Django 2.0.5 on 2018-06-01 15:44
+
+from django.db import migrations
+import json
+
+
+
+def copy_metadata(apps, schema_editor):
+ ItemMetadata = apps.get_model('iconolab', 'ItemMetadata')
+ for item_metadata in ItemMetadata.objects.all():
+ new_metadata = {
+ "authors" : item_metadata.authors,
+ "school" : item_metadata.school,
+ "field" : item_metadata.field,
+ "designation" : item_metadata.designation,
+ "datation" : item_metadata.datation,
+ "technics" : item_metadata.technics,
+ "measurements" : item_metadata.measurements,
+ "create_or_usage_location" : item_metadata.create_or_usage_location,
+ "discovery_context" : item_metadata.discovery_context,
+ "conservation_location" : item_metadata.conservation_location,
+ "photo_credits" : item_metadata.photo_credits,
+ "inventory_number" : item_metadata.inventory_number,
+ "joconde_ref" : item_metadata.joconde_ref
+ }
+
+ item_metadata.metadata = json.dumps(new_metadata)
+ item_metadata.natural_key = item_metadata.joconde_ref
+ item_metadata.save()
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('iconolab', '0028_itemmetadata_metadata'),
+ ]
+
+ operations = [
+ migrations.RunPython(copy_metadata),
+ ]
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/iconolab/migrations/0030_auto_20180601_1609.py Tue Jun 05 13:56:20 2018 +0200
@@ -0,0 +1,70 @@
+# Generated by Django 2.0.5 on 2018-06-01 16:09
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('iconolab', '0029_auto_itemmetadata_metadata_data'),
+ ]
+
+ operations = [
+ migrations.RemoveField(
+ model_name='itemmetadata',
+ name='authors',
+ ),
+ migrations.RemoveField(
+ model_name='itemmetadata',
+ name='conservation_location',
+ ),
+ migrations.RemoveField(
+ model_name='itemmetadata',
+ name='create_or_usage_location',
+ ),
+ migrations.RemoveField(
+ model_name='itemmetadata',
+ name='datation',
+ ),
+ migrations.RemoveField(
+ model_name='itemmetadata',
+ name='designation',
+ ),
+ migrations.RemoveField(
+ model_name='itemmetadata',
+ name='discovery_context',
+ ),
+ migrations.RemoveField(
+ model_name='itemmetadata',
+ name='field',
+ ),
+ migrations.RemoveField(
+ model_name='itemmetadata',
+ name='inventory_number',
+ ),
+ migrations.RemoveField(
+ model_name='itemmetadata',
+ name='joconde_ref',
+ ),
+ migrations.RemoveField(
+ model_name='itemmetadata',
+ name='measurements',
+ ),
+ migrations.RemoveField(
+ model_name='itemmetadata',
+ name='photo_credits',
+ ),
+ migrations.RemoveField(
+ model_name='itemmetadata',
+ name='school',
+ ),
+ migrations.RemoveField(
+ model_name='itemmetadata',
+ name='technics',
+ ),
+ migrations.AlterField(
+ model_name='itemmetadata',
+ name='natural_key',
+ field=models.CharField(default='', max_length=1024, unique=True),
+ ),
+ ]
--- a/src/iconolab/models.py Wed May 23 11:08:54 2018 +0200
+++ b/src/iconolab/models.py Tue Jun 05 13:56:20 2018 +0200
@@ -127,30 +127,37 @@
"""
Metadata object for the item class. Each field represents what we can
import from the provided .csv files
+
"""
+
item = models.OneToOneField('Item', related_name='metadatas', on_delete=models.PROTECT)
- authors = models.CharField(max_length=255, default="")
- school = models.CharField(max_length=255, default="")
- field = models.CharField(max_length=255, default="")
- designation = models.CharField(max_length=255, default="")
- datation = models.CharField(max_length=255, default="")
- technics = models.CharField(max_length=255, default="")
- measurements = models.CharField(max_length=255, default="")
- create_or_usage_location = models.CharField(max_length=255, default="")
- discovery_context = models.CharField(max_length=255, default="")
- conservation_location = models.CharField(max_length=255, default="")
- photo_credits = models.CharField(max_length=255, default="")
- inventory_number = models.CharField(max_length=255, default="")
- joconde_ref = models.CharField(max_length=255, default="")
+
+ natural_key = models.CharField(max_length=1024, default="", unique=True)
+
+ """
+ JSON field integration
+ """
+ metadata = models.TextField(default="", null=False)
+
+ def __init__(self, *args, **kwargs):
+ self.__metadata_obj = None
+ super().__init__(*args, **kwargs)
+
+ def __setattr__(self, name, value):
+ if name == 'metadata':
+ self.__metadata_obj = None
+ return super().__setattr__(name, value)
@property
- def get_joconde_url(self):
- return settings.JOCONDE_NOTICE_BASE_URL + self.joconde_ref.rjust(11, '0')
+ def metadata_obj(self):
+ if self.__metadata_obj is None:
+ self.__metadata_obj = json.loads(self.metadata)
+ return self.__metadata_obj
+
def __str__(self):
return "metadatas:for:" + str(self.item.item_guid)
-
class Image(models.Model):
"""
Each image object is linked to one item, users can create annotations on images
@@ -173,37 +180,6 @@
def wh_ratio(self):
return self.width / self.height
- @property
- def collection(self):
- return self.item.collection.name
-
- @property
- def title(self):
- return self.item.metadatas.designation
-
- @property
- def authors(self):
- return self.item.metadatas.authors
-
- @property
- def school(self):
- return self.item.metadatas.school
-
- @property
- def designation(self):
- return self.item.metadatas.designation
-
- @property
- def datation(self):
- return self.item.metadatas.datation
-
- @property
- def technics(self):
- return self.item.metadatas.technics
-
- @property
- def measurements(self):
- return self.item.metadatas.measurements
@property
def latest_annotations(self):
--- a/src/iconolab/search_indexes/indexes.py Wed May 23 11:08:54 2018 +0200
+++ b/src/iconolab/search_indexes/indexes.py Tue Jun 05 13:56:20 2018 +0200
@@ -42,15 +42,8 @@
collection = fields.KeywordField(attr="collection.name")
- authors = fields.TextField(attr="metadatas.authors")
- school = fields.TextField(attr="metadatas.school")
- designation = fields.TextField(attr="metadatas.designation")
- datation = fields.TextField(attr="metadatas.datation")
- technics = fields.TextField(attr="metadatas.technics")
- measurements = fields.TextField(attr="metadatas.measurements")
- create_or_usage_location = fields.TextField(attr="metadatas.create_or_usage_location")
- discovery_context = fields.TextField(attr="metadatas.discovery_context")
- conservation_location = fields.TextField(attr="metadatas.conservation_location")
+ natural_key = fields.KeywordField(attr="metadatas.natural_key")
+
def prepare_text(self, instance):
return render_to_string('search/indexes/iconolab/item_text.txt', { 'object': instance })
--- a/src/iconolab/templates/iconolab/collection_home.html Wed May 23 11:08:54 2018 +0200
+++ b/src/iconolab/templates/iconolab/collection_home.html Tue Jun 05 13:56:20 2018 +0200
@@ -164,7 +164,7 @@
<div class="form-group">
<label class="col-sm-2 control-label">Objet</label>
<div class="col-sm-10">
- <input ype="text" class="form-control bookmark-title" disabled="disabled" value="">
+ <input type="text" class="form-control bookmark-title" disabled="disabled" value="">
</div>
</div>
<div class="form-group bookmark-folder">
--- a/src/iconolab/templates/iconolab/detail_image.html Wed May 23 11:08:54 2018 +0200
+++ b/src/iconolab/templates/iconolab/detail_image.html Tue Jun 05 13:56:20 2018 +0200
@@ -77,26 +77,9 @@
</div>
</div>
<div class="annotation-navigator-metadata">
- <dl class="dl-horizontal">
- {% if item.metadatas.designation %}<dt>Désignation</dt><dd>{{item.metadatas.designation}}</dd>{% endif %}
- {% if item.metadatas.authors %}<dt>Auteur(s)</dt><dd>{{item.metadatas.designation}}</dd>{% endif %}
- {% if item.metadatas.field %}<dt>Domaine</dt><dd>{{item.metadatas.field}}</dd>{% endif %}
- {% if item.metadatas.conservation_location %}<dt>Conservé à</dt><dd>{{item.metadatas.conservation_location}}</dd>{% endif %}
- {% if item.metadatas.datation %}<dt>Datation</dt><dd>{{item.metadatas.datation}}</dd>{% endif %}
- {% if item.metadatas.technics %}<dt>Techniques</dt><dd>{{item.metadatas.technics}}</dd>{% endif %}
- {% if item.metadatas.measurements %}<dt>Mesures : {{item.metadatas.measurements}}</h5>{% endif %}
- {% if item.metadatas.create_or_usage_location %}<dt>Lieu de création/utilisation</dt><dd>{{item.metadatas.create_or_usage_location}}</dd>{% endif %}
- {% if item.metadatas.discovery_context %}<dt>Contexte de découverte</dt><dd>{{item.metadatas.discovery_context}}</dd>{% endif %}
- {% if item.metadatas.photo_credits %}<dt>Crédits photographiques</dt><dd>{{item.metadatas.photo_credits}}</dd>{% endif %}
- {% if item.metadatas.inventory_number %}<dt>Numéro d'inventaire</dt><dd>{{item.metadatas.inventory_number}}</dd>{% endif %}
- </dl>
- {% if item.metadatas.joconde_ref %}
- <p class="text-center">
- <a href="{{item.metadatas.get_joconde_url}}" target="_blank">
- Cet objet dans Joconde, catalogue collectif des collections des musées de France
- </a>
- </p>
- {% endif %}
+
+ {% include "iconolab/metadatas/detail_image_metadatas.html" %}
+
</div>
{% endblock %}
--- a/src/iconolab/templates/iconolab/detail_item.html Wed May 23 11:08:54 2018 +0200
+++ b/src/iconolab/templates/iconolab/detail_item.html Tue Jun 05 13:56:20 2018 +0200
@@ -20,19 +20,7 @@
{% endfor %}
</div>
<div class="col-md-6">
- {% if item.metadatas.designation %}<h3>Désignation : <small>{{item.metadatas.designation}}</small></h3>{% endif %}
- {% if item.metadatas.authors %}<h4>Auteur(s) : <small>{{item.metadatas.designation}}</small></h4>{% endif %}
- {% if item.metadatas.field %}<h4>Domaine : <small>{{item.metadatas.field}}</small></h4>{% endif %}
- {% if item.metadatas.conservation_location %}<h4>Conservé à : <small>{{item.metadatas.conservation_location}}</small></h4>{% endif %}
- {% if item.metadatas.datation %}<h4>Datation : <small>{{item.metadatas.datation}}</small></h4>{% endif %}
- {% if item.metadatas.technics %}<h5>Techniques : <small>{{item.metadatas.technics}}</small></h5>{% endif %}
- {% if item.metadatas.measurements %}<h5>Mesures : {{item.metadatas.measurements}}</h5>{% endif %}
- {% if item.metadatas.create_or_usage_location %}<h5>Lieu de création/utilisation : <small>{{item.metadatas.create_or_usage_location}}</small></h5>{% endif %}
- {% if item.metadatas.discovery_context %}<h5>Contexte de découverte : <small>{{item.metadatas.discovery_context}}</small></h5>{% endif %}
- {% if item.metadatas.photo_credits %}<h5>Crédits photographiques : <small>{{item.metadatas.photo_credits}}</small></h5>{% endif %}
- {% if item.metadatas.inventory_number %}<h5>Numéro d'inventaire : <small>{{item.metadatas.inventory_number}}</small></h5>{% endif %}
- {% if item.metadatas.joconde_ref %}<h5><a href="{{item.metadatas.get_joconde_url}}" target="_blank">Cet objet dans Joconde, catalogue collectif des collections des musées de France</a></h5>{% endif %}
- <br>
+ {% include "iconolab/metadatas/detail_item_metadatas.html" %}
{% if images|length > 1 %}
<h4>Autres images pour cet objet: </h4>
{% for image in images %}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/iconolab/templates/iconolab/metadatas/detail_image_metadatas.html Tue Jun 05 13:56:20 2018 +0200
@@ -0,0 +1,8 @@
+<dl class="dl-horizontal">
+ {% for metadata_key, metadata_value in item.metadatas.metadata_obj.items %}
+ <dt>{{metadata_key}}</dt><dd>{{metadata_value}}</dd>
+ {% endfor %}
+</dl>
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/iconolab/templates/iconolab/metadatas/detail_item_metadatas.html Tue Jun 05 13:56:20 2018 +0200
@@ -0,0 +1,4 @@
+{% for metadata_key, metadata_value in item.metadatas.metadata_obj.items %}
+ <h4>{{metadata_key}} : <small>{{metadata_value}}</small></h4>
+{% endfor %}
+<br>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/iconolab/templates/iconolab/metadatas/image_search_metadatas.html Tue Jun 05 13:56:20 2018 +0200
@@ -0,0 +1,3 @@
+{% for metadata_key, metadata_value in item.object.metadatas.metadata_obj.items %}
+ <h4>{{metadata_key}} : <small>{{metadata_value}}</small></h4>
+{% endfor %}
--- a/src/iconolab/templates/partials/header_breadcrumbs.html Wed May 23 11:08:54 2018 +0200
+++ b/src/iconolab/templates/partials/header_breadcrumbs.html Tue Jun 05 13:56:20 2018 +0200
@@ -6,9 +6,9 @@
{% else %}
<li><a href="{% url 'collection_home' collection.name %}">Fond {{collection.verbose_name}}</a></li>
{% if not annotation %}
- <li class="active">Objet {{ item.metadatas.joconde_ref }}</li>
+ <li class="active">Objet {{ item.metadatas.natural_key }}</li>
{% else %}
- <li><a href="{% url 'item_detail' collection.name image.item.item_guid %}">Objet {{ image.item.metadatas.joconde_ref }}</a></li>
+ <li><a href="{% url 'item_detail' collection.name image.item.item_guid %}">Objet {{ image.item.metadatas.natural_key }}</a></li>
{% if not revision %}
<li class="active">Annotation</li>
{% else %}
--- a/src/iconolab/templates/partials/item_images_preview.html Wed May 23 11:08:54 2018 +0200
+++ b/src/iconolab/templates/partials/item_images_preview.html Tue Jun 05 13:56:20 2018 +0200
@@ -18,7 +18,7 @@
{% if request.user.is_authenticated %}
<a href="#" class="bookmark {% if is_bookmarked %}active{% endif %}"
title="{% if is_bookmarked %}Ajouté à vos favoris{% else %}Ajouter à mes favoris{% endif %}"
- data-item="{{ item.metadatas.joconde_ref }}"
+ data-item="{{ item.metadatas.natural_key }}"
data-image-id="{{ first_image.id }}"
data-image-guid="{{ first_image.image_guid }}">
<span class="fa-stack fa-lg">
--- a/src/iconolab/templates/search/image_search.html Wed May 23 11:08:54 2018 +0200
+++ b/src/iconolab/templates/search/image_search.html Tue Jun 05 13:56:20 2018 +0200
@@ -39,16 +39,7 @@
<div class="search-item-info text-left col-md-7" style="display:inline-block; margin: 10px 0px;">
<h1 class="search-title" style="display:inline-block; margin-top: 0px;"><small>Métadonnées de l'objet</small></h1>
<a class="btn btn-default btn-xs pull-right collection-home-item-btn" href="{% url 'item_detail' item.object.collection.name item.object.item_guid %}" style="display:inline-block;"><i class="fa fa-eye"></i> Détail de l'objet</a>
- {% if item.object.metadatas.designation %}<h3>Désignation : <small>{{item.object.metadatas.designation}}</small></h3>{% endif %}
- {% if item.object.metadatas.authors %}<h4>Auteur(s) : <small>{{item.object.metadatas.designation}}</small></h4>{% endif %}
- {% if item.object.metadatas.conservation_location %}<h4>Conservé à : <small>{{item.object.metadatas.conservation_location}}</small></h4>{% endif %}
- {% if item.object.metadatas.datation %}<h4>Datation : <small>{{item.object.metadatas.datation}}</small></h4>{% endif %}
- {% if item.object.metadatas.technics %}<h5>Techniques : <small>{{item.object.metadatas.technics}}</small></h5>{% endif %}
- {% if item.object.metadatas.measurements %}<h5>Mesures : {{item.object.metadatas.measurements}}</h5>{% endif %}
- {% if item.object.metadatas.create_or_usage_location %}<h5>Lieu de création/utilisation : <small>{{item.object.metadatas.create_or_usage_location}}</small></h5>{% endif %}
- {% if item.object.metadatas.discovery_context %}<h5>Contexte de découverte : <small>{{item.object.metadatas.discovery_context}}</small></h5>{% endif %}
- {% if item.object.metadatas.photo_credits %}<h5>Crédits photographiques : <small>{{item.object.metadatas.photo_credits}}</small></h5>{% endif %}
- {% if item.object.metadatas.inventory_number %}<h5>Numéro d'inventaire : <small>{{item.object.metadatas.inventory_number}}</small></h5>{% endif %}
+ {% include "iconolab/metadatas/image_search_metadatas.html" %}
</div>
</li>
{% endfor %}
--- a/src/iconolab/templates/search/indexes/iconolab/item_text.txt Wed May 23 11:08:54 2018 +0200
+++ b/src/iconolab/templates/search/indexes/iconolab/item_text.txt Tue Jun 05 13:56:20 2018 +0200
@@ -1,9 +1,3 @@
-{{ object.metadatas.school }}
-{{ object.metadatas.authors }}
-{{ object.metadatas.designation }}
-{{ object.metadatas.datation }}
-{{ object.metadatas.technics }}
-{{ object.metadatas.measurements }}
-{{ object.metadatas.create_or_usage_location }}
-{{ object.metadatas.discovery_context }}
-{{ object.metadatas.conservation_location }}
\ No newline at end of file
+{% for metadata_value in object.metadatas.metadata_obj.values %}
+ {{metadata_value}}
+{% endfor %}
--- a/src/iconolab/views/objects.py Wed May 23 11:08:54 2018 +0200
+++ b/src/iconolab/views/objects.py Tue Jun 05 13:56:20 2018 +0200
@@ -266,7 +266,7 @@
adjacent_pages_count = 2
# Paginated objects list
- items_list = collection.items.order_by("metadatas__inventory_number").prefetch_related('images', 'images__stats')
+ items_list = collection.items.order_by("metadatas__natural_key").prefetch_related('images', 'images__stats')
folder = request.GET.get('folder', None)