summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne@peacefrogs.net>2019-08-22 20:18:34 +0200
committerÉtienne Loks <etienne@peacefrogs.net>2019-08-22 20:18:34 +0200
commit3bb3279036f4037ba30729f0900038acb215e912 (patch)
tree91bf7e8f7e14fa7866c92ef77eca927ebd3c027d
parentbb7ed15f636cb3c1346d22f340b79d0752358141 (diff)
downloadishtar-pergamon-3bb3279036f4037ba30729f0900038acb215e912.tar.bz2
ishtar-pergamon-3bb3279036f4037ba30729f0900038acb215e912.zip
First work on find template
-rw-r--r--scss/ishtar_public.scss4
-rw-r--r--showcase/templates/showcase/item-find.html60
-rw-r--r--showcase/templates/showcase/show_case.html3
-rw-r--r--showcase/views.py40
4 files changed, 101 insertions, 6 deletions
diff --git a/scss/ishtar_public.scss b/scss/ishtar_public.scss
index cd7f417..e53c508 100644
--- a/scss/ishtar_public.scss
+++ b/scss/ishtar_public.scss
@@ -66,4 +66,8 @@ main.container{
margin-top: 2rem;
}
+.show-case-detail p{
+ margin-bottom: 0;
+}
+
@import "custom_post"; \ No newline at end of file
diff --git a/showcase/templates/showcase/item-find.html b/showcase/templates/showcase/item-find.html
index 008e55a..5d34092 100644
--- a/showcase/templates/showcase/item-find.html
+++ b/showcase/templates/showcase/item-find.html
@@ -4,6 +4,62 @@
{% block body_class %}template-showcase-item{% endblock %}
{% block content %}
-{{denomination}}
-<img src="{{images.0.thumbnail}}">
+<h3 class="mb-0"><a href="/{{page.slug}}">{{page.title}}</a></h3>
+<div class="font-weight-light mb-2">{{current_number_1}} / {{total}}</div>
+
+<div class="d-flex justify-content-between">
+ <div>
+ {% if previous %}
+ <div class="btn-group mr-2" role="group">
+ <a href="/showcase/display-item/{{page.slug}}/{{previous_number}}" class="btn btn-primary">
+ <span aria-hidden="true">&laquo;</span>
+ </a>
+ <a href="/showcase/display-item/{{page.slug}}/{{previous_number}}" class="btn btn-light">
+ <span aria-hidden="true">{{previous.denomination}}</span>
+ </a>
+ </div>
+ {% else %}
+ &nbsp;
+ {% endif %}
+ </div>
+ <div>
+ {% if next %}
+ <div class="btn-group mr-2" role="group">
+ <a href="/showcase/display-item/{{page.slug}}/{{next_number}}" class="btn btn-light">
+ <span aria-hidden="true">{{next.denomination}}</span>
+ </a>
+ <a href="/showcase/display-item/{{page.slug}}/{{next_number}}" class="btn btn-primary">
+ <span aria-hidden="true">&raquo;</span>
+ </a>
+ </div>
+ {% else %}
+ &nbsp;
+ {% endif %}
+ </div>
+</div>
+
+<hr>
+<div class="clearfix show-case-detail">
+ {% if data.images.0.thumbnail %}
+ <div class="float-left pr-2">
+ <img src="{{data.images.0.thumbnail}}" class="img-fluid img-thumbnail">
+ </div>
+ {% endif %}
+ <h4 class="pt-2 text-right">{{data.denomination}}</h4>
+ {% with data.base_finds.0.context_record.site as site %}
+ <h5>{% trans "Archaeological site" %}</h5>
+ <p>{{site.name}} {% if site.discovery_date %}({{site.discovery_date}}){% endif %}
+ <br><small>{{site.towns.0}}</small></p>
+ {% if site.shipwreck_name %}<p><em>Naufrage du : </em>{{site.shipwreck_name}}
+ {% if site.sinking_date %} <em>en</em> {{site.sinking_date}}{% endif %}</p>
+ {% endif %}
+ {% if site.periods %}
+ <p><em>{% trans "Period(s):" %}</em> {{site.periods|join:" ; "}}</p>
+ {% endif %}
+ {% if site.remains %}
+ <p><em>{% trans "Remain(s):" %}</em> {{site.remains|join:" ; "}}</p>
+ {% endif %}
+
+ {% endwith %}
+</div>
{% endblock %}
diff --git a/showcase/templates/showcase/show_case.html b/showcase/templates/showcase/show_case.html
index 1634f8b..33d6738 100644
--- a/showcase/templates/showcase/show_case.html
+++ b/showcase/templates/showcase/show_case.html
@@ -4,6 +4,8 @@
{% block body_class %}template-showcase{% endblock %}
{% block content %}
+<h3><a href="/{{page.slug}}">{{page.title}}</a></h3>
+
<div class="row justify-content-md-center">
<div class="card" style="max-width: 1024px;">
@@ -14,7 +16,6 @@
</div>
<div class="col-md-6">
<div class="card-body">
- <h5 class="card-title">{{page.title}}</h5>
{{ page.body|richtext }}
</div>
</div>
diff --git a/showcase/views.py b/showcase/views.py
index 7134830..c72cbba 100644
--- a/showcase/views.py
+++ b/showcase/views.py
@@ -6,8 +6,26 @@ from django.utils.translation import ugettext_lazy as _
from .models import ShowCase
+def convert_dict(value):
+ """
+ Convert key in each tree to replace "-" with "_"
+ """
+ if isinstance(value, dict):
+ new_dict = {}
+ for k in value.keys():
+ new_dict[k.replace("-", "_")] = convert_dict(value[k])
+ return new_dict
+ elif isinstance(value, (list, tuple)):
+ new_lst = []
+ for v in value:
+ new_lst.append(convert_dict(v))
+ return new_lst
+ return value
+
+
def display_item(request, slug, number):
q = ShowCase.objects.filter(slug=slug)
+ number = int(number)
if not q.count():
return Http404(_("Unknown source."))
showcase = q.all()[0]
@@ -20,11 +38,27 @@ def display_item(request, slug, number):
str(_("Template {} is not defined. Ask your administrator to "
"define a template for this source type.")).format(
template_name))
- data = source.get_item(int(number))
- if not data:
+ data = showcase.get_context(request)
+ data_source = source.get_item(number)
+ if not data_source:
raise Http404(
str(_("Data unavailable"))
)
- data["showcase"] = slug
+ data["data"] = convert_dict(data_source)
+ data["page"] = showcase
+ data_list = showcase.data
+ data_list_count = len(data_list)
+ if number:
+ previous = source.get_item(number - 1)
+ if previous:
+ data["previous"] = previous
+ data["previous_number"] = number - 1
+ if number < data_list_count:
+ next_item = source.get_item(number + 1)
+ if next_item:
+ data["next"] = next_item
+ data["next_number"] = number + 1
+ data["current_number_1"] = number + 1
+ data["total"] = data_list_count
return HttpResponse(template.render(data, request))