diff options
-rw-r--r-- | scss/ishtar_public.scss | 4 | ||||
-rw-r--r-- | showcase/templates/showcase/item-find.html | 60 | ||||
-rw-r--r-- | showcase/templates/showcase/show_case.html | 3 | ||||
-rw-r--r-- | showcase/views.py | 40 |
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">«</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 %} + + {% 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">»</span> + </a> + </div> + {% else %} + + {% 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)) |