Show existing depicts on browse page
This commit is contained in:
parent
a2aa063dd5
commit
2cbc88a947
|
@ -83,6 +83,7 @@ def build_browse_item_map(bindings):
|
||||||
item = {
|
item = {
|
||||||
'image_filename': image_filename,
|
'image_filename': image_filename,
|
||||||
'date': d,
|
'date': d,
|
||||||
|
'depicts': row['depictsList']['value'].split('|'),
|
||||||
}
|
}
|
||||||
if artist_name:
|
if artist_name:
|
||||||
item['artist_name'] = artist_name
|
item['artist_name'] = artist_name
|
||||||
|
@ -103,6 +104,7 @@ def build_browse_item_map(bindings):
|
||||||
artist_names = []
|
artist_names = []
|
||||||
labels = set()
|
labels = set()
|
||||||
when = None
|
when = None
|
||||||
|
depicts = []
|
||||||
for item in items:
|
for item in items:
|
||||||
if 'title' in item:
|
if 'title' in item:
|
||||||
lang, title = item['title']
|
lang, title = item['title']
|
||||||
|
@ -115,6 +117,9 @@ def build_browse_item_map(bindings):
|
||||||
labels.add(item['label'])
|
labels.add(item['label'])
|
||||||
if when is None and item.get('date'):
|
if when is None and item.get('date'):
|
||||||
when = item['date']
|
when = item['date']
|
||||||
|
for d in item['depicts']:
|
||||||
|
if d not in depicts:
|
||||||
|
depicts.append(d)
|
||||||
|
|
||||||
item = {
|
item = {
|
||||||
'qid': f'Q{item_id}',
|
'qid': f'Q{item_id}',
|
||||||
|
@ -122,6 +127,7 @@ def build_browse_item_map(bindings):
|
||||||
'image_filename': list(filenames),
|
'image_filename': list(filenames),
|
||||||
'artist_name': ', '.join(artist_names),
|
'artist_name': ', '.join(artist_names),
|
||||||
'date': when,
|
'date': when,
|
||||||
|
'depicts': depicts,
|
||||||
}
|
}
|
||||||
if artist_names:
|
if artist_names:
|
||||||
item['artist_name'] = ', '.join(artist_names)
|
item['artist_name'] = ', '.join(artist_names)
|
||||||
|
|
|
@ -56,6 +56,11 @@
|
||||||
<h5 class="card-title">{{ item.label }}</h5>
|
<h5 class="card-title">{{ item.label }}</h5>
|
||||||
<p class="card-text">by {{ item.artist_name }}
|
<p class="card-text">by {{ item.artist_name }}
|
||||||
{% if item.date %}({{ item.date }}){% endif %}
|
{% if item.date %}({{ item.date }}){% endif %}
|
||||||
|
<div>
|
||||||
|
{% for depicts_label in item.depicts %}
|
||||||
|
<span class="badge badge-primary">{{ depicts_label }}</span>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,6 +1,16 @@
|
||||||
select ?item ?itemLabel ?image ?artist ?artistLabel ?title ?titleLang ?time ?timeprecision {
|
select ?item
|
||||||
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
|
?itemLabel
|
||||||
VALUES ?isa { {% for isa in isa_list %} wd:{{ isa }} {% endfor %} }
|
?image
|
||||||
|
?artist
|
||||||
|
?artistLabel
|
||||||
|
?title
|
||||||
|
?titleLang
|
||||||
|
?time
|
||||||
|
?timeprecision
|
||||||
|
(group_concat(distinct ?depictsLabel; SEPARATOR="|") as ?depictsList)
|
||||||
|
where {
|
||||||
|
service wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
|
||||||
|
values ?isa { {% for isa in isa_list %} wd:{{ isa }} {% endfor %} }
|
||||||
|
|
||||||
?item wdt:P31 ?isa .
|
?item wdt:P31 ?isa .
|
||||||
{% for pid, qid in params %}
|
{% for pid, qid in params %}
|
||||||
|
@ -17,4 +27,10 @@ select ?item ?itemLabel ?image ?artist ?artistLabel ?title ?titleLang ?time ?tim
|
||||||
BIND(LANG(?title) as ?titleLang)
|
BIND(LANG(?title) as ?titleLang)
|
||||||
}
|
}
|
||||||
OPTIONAL { ?item wdt:P170 ?artist }
|
OPTIONAL { ?item wdt:P170 ?artist }
|
||||||
}
|
OPTIONAL {
|
||||||
|
?item wdt:P180 ?depicts .
|
||||||
|
?depicts rdfs:label ?depictsLabel .
|
||||||
|
FILTER(LANG(?depictsLabel) = "en").
|
||||||
|
}
|
||||||
|
} group by ?item ?itemLabel ?image ?artist ?artistLabel
|
||||||
|
?title ?titleLang ?time ?timeprecision
|
||||||
|
|
Loading…
Reference in a new issue