Switch to using database for browse pages.

This commit is contained in:
Edward Betts 2019-12-18 15:06:24 +00:00
parent 7313df54f7
commit b952213b23
6 changed files with 253 additions and 85 deletions

View file

@ -19,7 +19,7 @@
<ul>
{% for pid, label in props.items() %}
<li><a href="{{ url_for('property_query_page', property_id=pid[1:]) }}">{{ label }}</a>
({{ pid }})
({{ pid }}) &ndash; {{ '{:,d}'.format(counts[pid]) }}
</li>
{% endfor %}
</ul>

View file

@ -20,6 +20,14 @@
{% endfor %}
#}
<p>
Current filter &ndash;
{% for pid, qid in params %}
<span>{{ prop_labels[pid] }}: {{ linked_labels[qid] }}
<a href="{{ set_url_args(page=None, **{pid: None}) }}">[remove filter]</a></span>
{% endfor %}
</p>
<p>
<a href="{{ url_for('browse_page') }}">browse index</a>
{% for pid, qid in params %}
@ -31,34 +39,48 @@
<p class="mb-3">
<a href="#" id="toggle-filters" class="btn btn-primary">toggle filters</a>
{#
<a href="{{ catalog_url }}" class="btn btn-primary">catalog artwork</a>
#}
</p>
<div id="filters">
{% for key, values in facets.items() %}
<p>{{ prop_labels[key] }}:
{% for v in values %}
<a href="{{ set_url_args(**{key: v.qid}) }}">{{ v.label }}</a> ({{ v.count }})
<a href="{{ set_url_args(page=None, **{key: v.qid}) }}">{{ v.label }}</a>
({{ '{:,d}'.format(v.count) }})
{% if not loop.last %}|{% endif %}
{% endfor %}
</p>
{% endfor %}
</div>
{{ render_pagination(pager) }}
<div class="card-columns">
{% for item in items %}
{% set image = item.image %}
<div class="card">
<a href="{{ item.url }}">
<a href="{{ url_for('item_page', item_id=item.item_id) }}">
{# <img src="{{ image.thumburl }}" height="{{ image.thumbheight }}" width="{{ image.thumbwidth }}" class="card-img-top"></a> #}
<img src="{{ image.thumburl }}" class="card-img-top"></a>
<div class="card-body">
<h5 class="card-title">{{ item.label }}</h5>
<p class="card-text">by {{ item.artist_name }}
<p class="card-text">
<div>
{% for qid in item.instance_of %}
{% if not loop.first %} / {% endif %}
<span>{{ linked_labels[qid] }}</span>
{% endfor %}
</div>
{% if item.artist %}
by {{ linked_labels[item.artist] }}
{% endif %}
{% if item.date %}({{ item.date }}){% endif %}
<div>
{% for depicts_label in item.depicts %}
<span class="badge badge-primary">{{ depicts_label }}</span>
{% for depicts_qid in item.depicts %}
<span class="badge badge-primary">{{ linked_labels[depicts_qid] }}</span>
{% endfor %}
</div>
</p>

View file

@ -16,19 +16,17 @@
{% endif %}
</p>
<ul>
{% for row in rows if '/' in row.object.value %}
{% set qid = row.object.value.rpartition('/')[2] %}
{% set row_label = row.objectLabel.value if 'objectLabel' in row else '[ label missing ]' %}
<li>
<a href="{{ url_for('browse_page', **{pid: qid}) }}">{{ row_label }}</a>
{% if 'objectDescription' in row %}
&mdash; {{ row.objectDescription.value }}
{% endif %}
<p>Total: {{ hits | length }}</p>
({{ '{:,d}'.format(row.count.value | int) }} artworks)
{% if 'objectLabel' not in row %}
<a href="https://wikidata.org/wiki/{{ qid }}">view in Wikidata</a>
<ul>
{% for hit in hits %}
<li>
<a href="{{ url_for('browse_page', **{pid: hit.qid}) }}">{{ hit.label }}</a>
({{ '{:,d}'.format(hit.count) }} artworks)
{% if not hit.label %}
<a href="https://wikidata.org/wiki/{{ hit.qid }}">view in Wikidata</a>
{% endif %}
</li>
{% endfor %}