Skip to content
Snippets Groups Projects
Commit d99aad74 authored by Your Name's avatar Your Name
Browse files

merge

Merge branch 'master' of git.imp.fu-berlin.de:pdler/XML-Tech
parents 45063416 c05c6996
No related branches found
No related tags found
No related merge requests found
......@@ -108,6 +108,135 @@ def search():
return render_template('index.html', objects = merke, searchBool = True, text = text)
@app.route('/filter', methods=['GET'])
def filter():
merke = []
merkeLetter = []
actorQuery = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in distinct-values(/root/object/descriptiveMetadata/actor/text()) order by $x return $x")
for a,actor in actorQuery.iter():
anfang = actor[0]
if (len(merkeLetter) == 0):
merkeLetter.append({"name" : anfang})
elif anfang != merkeLetter[len(merkeLetter)-1]["name"]:
merkeLetter.append({"name" : anfang})
merke.append({"anfang" : anfang, "name" : actor})
#Filter für ungefähres Datum:
merkeDate = []
dateQuery = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in distinct-values(/root/object/descriptiveMetadata/datum/text()) order by $x return $x")
for a,datum in dateQuery.iter():
merkeDate.append({"datum" : datum})
#Filter für Ort:
merkeOrt = []
ortQuery = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in distinct-values(/root/object/descriptiveMetadata/ort/text()) order by $x return $x")
for a,ort in ortQuery.iter():
merkeOrt.append({"ort" : ort})
return render_template('filter.html', letters = merkeLetter, objects = merke, dates = merkeDate, orte = merkeOrt, filter = True, text = '')
@app.route('/filter/actor/<path:kunstler>', methods=['GET'])
def filterActor(kunstler):
text = kunstler
merke = []
urlQuery = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in (/root/object[descriptiveMetadata/actor[contains(text(),'" + kunstler + "')]]/bildLink/text()) return $x")
actorQuery = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in (/root/object[descriptiveMetadata/actor[contains(text(),'" + kunstler + "')]]/descriptiveMetadata/actor/text()) return $x")
titleQuery = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in (/root/object[descriptiveMetadata/actor[contains(text(),'" + kunstler + "')]]/descriptiveMetadata/objectIdentificationWrap/title/text()) return $x")
urlList = []
actorList = []
titleList = []
for a,url in urlQuery.iter():
urlList.append(url)
for b,actor in actorQuery.iter():
actorList.append(actor)
for c,title in titleQuery.iter():
titleList.append(title)
for i in range(0, len(urlList)):
url = urlList[i]
actor = actorList[i]
title = titleList[i]
eintrag = {"url" : url, "actor" : actor, "title" : title}
merke.append(eintrag)
urlQuery.close()
actorQuery.close()
titleQuery.close()
return render_template('index.html', objects = merke, searchBool = True, text = text)
@app.route('/filter/ort/<path:ort>', methods=['GET'])
def filterOrt(ort):
text = ort
merke = []
urlQuery = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in (/root/object[descriptiveMetadata/ort[contains(text(),'" + ort + "')]]/bildLink/text()) return $x")
actorQuery = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in (/root/object[descriptiveMetadata/ort[contains(text(),'" + ort + "')]]/descriptiveMetadata/actor/text()) return $x")
titleQuery = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in (/root/object[descriptiveMetadata/ort[contains(text(),'" + ort + "')]]/descriptiveMetadata/objectIdentificationWrap/title/text()) return $x")
urlList = []
actorList = []
titleList = []
for a,url in urlQuery.iter():
urlList.append(url)
for b,actor in actorQuery.iter():
actorList.append(actor)
for c,title in titleQuery.iter():
titleList.append(title)
for i in range(0, len(urlList)):
url = urlList[i]
actor = actorList[i]
title = titleList[i]
eintrag = {"url" : url, "actor" : actor, "title" : title}
merke.append(eintrag)
urlQuery.close()
actorQuery.close()
titleQuery.close()
return render_template('index.html', objects = merke, searchBool = True, text = text)
@app.route('/filter/datum/<path:datum>', methods=['GET'])
def filterDatum(datum):
text = datum
merke = []
urlQuery = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in (/root/object[descriptiveMetadata/datum[contains(text(),'" + datum + "')]]/bildLink/text()) return $x")
actorQuery = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in (/root/object[descriptiveMetadata/datum[contains(text(),'" + datum + "')]]/descriptiveMetadata/actor/text()) return $x")
titleQuery = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in (/root/object[descriptiveMetadata/datum[contains(text(),'" + datum + "')]]/descriptiveMetadata/objectIdentificationWrap/title/text()) return $x")
urlList = []
actorList = []
titleList = []
for a,url in urlQuery.iter():
urlList.append(url)
for b,actor in actorQuery.iter():
actorList.append(actor)
for c,title in titleQuery.iter():
titleList.append(title)
for i in range(0, len(urlList)):
url = urlList[i]
actor = actorList[i]
title = titleList[i]
eintrag = {"url" : url, "actor" : actor, "title" : title}
merke.append(eintrag)
urlQuery.close()
actorQuery.close()
titleQuery.close()
return render_template('index.html', objects = merke, searchBool = True, text = text)
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000, debug=True)
\ No newline at end of file
<!DOCTYPE html>
<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='stylesheet.css') }}">
<html>
<head>
<meta charset="utf-8">
<title>AMK</title>
<h1>AMK</h1>
<h3>Atemberaubende Museums-Holzschnitt Kollektion</h3>
</head>
<body id="Startseite">
<div class="suchfeld">
<form action="{{ url_for('search') }}" method="post">
<input type="text" name="holzschnitte">
<datalist id="Holzschnitte">
<option value="Autor">
</datalist>
<input type="submit" value="suchen">
</form>
</div>
<div class="menue">
<ul id="navibereich">
<li><a href="https://www.wikidata.org/wiki/Wikidata:Main_Page">WikiData</a></li>
<li><a href="{{ url_for('filter') }}">Filter</a></li>
</ul>
</div>
{% if filter %}
<div class="filter">
<form name="kunstler">
<h5> Künstler:</h5>
<ul>
{% for letter in letters %}
<form name="{{ letter.name }}">
<li onclick="renderListe('{{ letter.name }}')" style="display: inline-block;"> {{ letter.name }} <br>
</li><br>
<form name="kunstlerliste">
<ul id="{{ letter.name }}" style=" display: none;">
{% for object in objects %}
{% if object["anfang"] == letter["name"] %}
<li> <a style="display: table-row; color: black;"href="{{ url_for('.filterActor',kunstler=object.name) }}">{{ object.name }}</a> </li> <br>
{% endif %}
{% endfor %}
</ul>
</form>
</form>
{% endfor %}
</ul>
</form>
<form name="datumliste">
<h6> Datum:</h6>
<ul>
{% for date in dates %}
<li> <a style="display: table-row; color: black;"href="{{ url_for('.filterDatum',datum=date.datum) }}">{{ date.datum }}</a> </li> <br>
{% endfor %}
</ul>
</form>
<form name="ortliste">
<h7> Ort:</h7>
<ul>
{% for ort in orte %}
<li> <a style="display: table-row; color: black;"href="{{ url_for('.filterOrt',ort=ort.ort) }}">{{ ort.ort }}</a> </li> <br>
{% endfor %}
</ul>
</form>
</div>
{% else %}
<h6> {{ text }} </h6>
{% endif %}
<script>
function renderListe(letter) {
liste = document.getElementById(letter);
console.log(liste.style.display);
if (liste.style.display == 'none') {
liste.style.display = 'initial';
} else {
liste.style.display = 'none';
}
}
</script>
</html>
......@@ -20,7 +20,7 @@
<div class="menue">
<ul id="navibereich">
<li><a href="https://www.wikidata.org/wiki/Wikidata:Main_Page">WikiData</a></li>
<li><a href="">Filter</a></li>
<li><a href="{{ url_for('filter') }}">Filter</a></li>
</ul>
</div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment