adapting list views

This commit is contained in:
reverend 2020-09-12 12:02:25 +02:00
parent 0ee5fc59d3
commit 21124ec2ad
2 changed files with 39 additions and 36 deletions

View File

@ -2,57 +2,57 @@
{% load static %} {% load static %}
{% block additional_head %} {% block additional_head %}
<link rel="stylesheet" href="{% static 'maps/ol.css' %}" type="text/css"> <link rel="stylesheet" href="{% static 'maps/ol.css' %}" type="text/css">
<script src="{% static 'maps/ol.js' %}"></script> <script src="{% static 'maps/ol.js' %}"></script>
{% endblock additional_head %} {% endblock additional_head %}
{% block title %}Lost Places{% endblock %} {% block title %}Lost Places{% endblock %}
{% block maincontent %} {% block maincontent %}
{% include 'partials/osm_map.html' %} {% include 'partials/osm_map.html' with config=map_config %}
<div class="LP-PlaceList"> <div class="LP-PlaceList">
<h1 class="LP-Headline">Listing our places</h1> <h1 class="LP-Headline">Listing our places</h1>
<ul class="LP-PlaceList__List"> <ul class="LP-PlaceList__List">
{% for place in place_list %} {% for place in place_list %}
<li class="LP-PlaceList__Item"> <li class="LP-PlaceList__Item">
<a href="{% url 'place_detail' pk=place.pk %}" class="LP-Link"> <a href="{% url 'place_detail' pk=place.pk %}" class="LP-Link">
<article class="LP-PlaceTeaser LP-PlaceTeaser--extended"> <article class="LP-PlaceTeaser LP-PlaceTeaser--extended">
<div class="LP-PlaceTeaser__Image"> <div class="LP-PlaceTeaser__Image">
<img class="LP-Image" src="{{ place.images.first.filename.thumbnail.url }}" /> <img class="LP-Image" src="{{ place.images.first.filename.thumbnail.url }}" />
</div>
<div class="LP-PlaceTeaser__Meta">
<div class="LP-PlaceTeaser__Info">
<span class="LP-PlaceTeaser__Title">
<h2 class="LP-Headline LP-Headline--teaser">{{place.name}}</h2>
</span>
<span class="LP-PlaceTeaser__Detail">
<p class="LP-Paragraph">{{place.location}}</p>
</span>
</div> </div>
<div class="LP-PlaceTeaser__Meta"> <div class="LP-PlaceTeaser__Description">
<div class="LP-PlaceTeaser__Info"> <p class="LP-Paragraph">
<span class="LP-PlaceTeaser__Title"> {% if place.description|length > 210 %}
<h2 class="LP-Headline LP-Headline--teaser">{{place.name}}</h2> {{place.description|truncatechars:210|truncatewords:-1}}
</span> {% else %}
<span class="LP-PlaceTeaser__Detail"> {{place.description}}
<p class="LP-Paragraph">{{place.location}}</p> {% endif %}
</span> </p>
</div> </div>
<div class="LP-PlaceTeaser__Description"> <div class="LP-PlaceTeaser__Icons">
<p class="LP-Paragraph"> <ul class="LP-Icon__List">
{% if place.description|length > 210 %} <li class="LP-Icon__Item"><img class="LP-Icon" src="{% static '/icons/favourite.svg' %}" /></li>
{{place.description|truncatechars:210|truncatewords:-1}}
{% else %}
{{place.description}}
{% endif %}
</p>
</div>
<div class="LP-PlaceTeaser__Icons">
<ul class="LP-Icon__List">
<li class="LP-Icon__Item"><img class="LP-Icon" src="{% static '/icons/favourite.svg' %}" /></li>
<li class="LP-Icon__Item"><img class="LP-Icon" src="{% static '/icons/location.svg' %}" /></li> <li class="LP-Icon__Item"><img class="LP-Icon" src="{% static '/icons/location.svg' %}" /></li>
<li class="LP-Icon__Item"><img class="LP-Icon" src="{% static '/icons/flag.svg' %}" /></li> <li class="LP-Icon__Item"><img class="LP-Icon" src="{% static '/icons/flag.svg' %}" /></li>
</ul> </ul>
</div>
</div> </div>
</article> </div>
</a> </article>
</li> </a>
</li>
{% endfor %} {% endfor %}
</ul> </ul>
{% include 'partials/nav/pagination.html' %} {% include 'partials/nav/pagination.html' %}
</div> </div>

View File

@ -23,7 +23,10 @@ class PlaceListView(IsAuthenticated, ListView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
context['place_map_center'] = Place.average_latlon(context['place_list']) context['map_config'] = {
'point_list': context['place_list'],
'map_center': Place.average_latlon(context['place_list'])
}
return context return context
class PlaceDetailView(IsAuthenticated, View): class PlaceDetailView(IsAuthenticated, View):