From 80df282efc0e6191c35dc7dfcd9ee513a2cbef37 Mon Sep 17 00:00:00 2001
From: moogdo49 <moogdo49@mi.fu-berlin.de>
Date: Wed, 5 Jul 2017 15:52:27 +0200
Subject: [PATCH] =?UTF-8?q?=09ge=C3=A4ndert:=20=20=20=20=20=20=20=20=20=20?=
 =?UTF-8?q?=20=20=20=20=20api.py=20=09ge=C3=A4ndert:=20=20=20=20=20=20=20?=
 =?UTF-8?q?=20=20=20=20=20=20=20=20templates/index.html?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 api.py               |  78 ++++++++++++++++++++++-
 templates/index.html | 146 +++++++++++++++----------------------------
 2 files changed, 124 insertions(+), 100 deletions(-)

diff --git a/api.py b/api.py
index de2ded1..77dfe89 100644
--- a/api.py
+++ b/api.py
@@ -14,7 +14,6 @@ session = BaseXClient.Session('localhost', 1984, 'admin', 'admin')
 def main():
     #globvar = session.query("db:open(\"Holzschnitt\")")
     session.execute("open Holzschnitt")
-    query = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in (/root/object[position() lt 5]) return $x")
     merke = []
     
     for i in range(1,5):
@@ -23,7 +22,6 @@ def main():
     	title = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in (/root/object[position() =" + str(i) +" ]/descriptiveMetadata/objectIdentificationWrap/title/text()) return $x" ).execute()
     	eintrag = {"url" : url, "actor" : actor, "title" : title}
     	merke.append(eintrag)
-    	query.close()	
 
     	
     #tree = ET.parse(globvar)
@@ -32,9 +30,83 @@ def main():
     #session.query("db:open(\"Holzschnitt\")").execute()
 
 
-    return render_template('index.html', objects = merke)
+    return render_template('index.html', objects = merke, searchBool = False, text = '')
 
+@app.route('/search', methods=['POST', 'GET'])
+def search():
+	if request.method=='GET':
+		merke = []
+		for i in range(1,5):
+			url = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in (/root/object[position() =" + str(i) +" ]/bildLink/text()) return $x" ).execute()
+			actor = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in (/root/object[position() =" + str(i) +" ]/descriptiveMetadata/actor/text()) return $x" ).execute()
+			title = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in (/root/object[position() =" + str(i) +" ]/descriptiveMetadata/objectIdentificationWrap/title/text()) return $x" ).execute()
+			eintrag = {"url" : url, "actor" : actor, "title" : title}
+			merke.append(eintrag)
 
+		return render_template('index.html', objects = merke, searchBool = False, text = '')
+
+	text = request.form['holzschnitte']
+	#suche nach Künstler:
+	#query = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in (/root/object[descriptiveMetadata/actor[contains(text(), " + text + ")]]) return $x")
+	merke = []
+	urlQuery = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in (/root/object[descriptiveMetadata/actor[contains(text(),'" + text + "')]]/bildLink/text()) return $x")
+	actorQuery = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in (/root/object[descriptiveMetadata/actor[contains(text(),'" + text + "')]]/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(),'" + text + "')]]/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()
+	
+	#Suche nach Titel:
+	urlQuery = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in (/root/object[descriptiveMetadata/objectIdentificationWrap/title[contains(text(),'" + text + "')]]/bildLink/text()) return $x")
+	actorQuery = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in (/root/object[descriptiveMetadata/objectIdentificationWrap/title[contains(text(),'" + text + "')]]/descriptiveMetadata/actor/text()) return $x")
+	titleQuery = session.query("declare namespace lido=\"http://www.lido-schema.org\"; for $x in (/root/object[descriptiveMetadata/objectIdentificationWrap/title[contains(text(),'" + text + "')]]/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__":
diff --git a/templates/index.html b/templates/index.html
index 8964da9..8720509 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -9,12 +9,12 @@
 </head>
 <body id="Startseite">
 	<div class="suchfeld">
-		<form>
-			<a href="#"><input type="search" name="Holzschnitte"></a>
+		<form action="{{ url_for('search') }}" method="post">
+			<input type="text" name="holzschnitte">
 			<datalist id="Holzschnitte">
 				<option value="Autor">
 			</datalist>
-			<button class="btn">suchen</button>
+			<input type="submit" value="suchen">		
 		</form>
 	</div>
 	<div class="menue">
@@ -23,103 +23,55 @@
 			<li><a href="">Filter</a></li>
 		</ul>
 	</div>
-  <ul>
-    {% for object in objects %}
-      <li>{{ loop.index }} <br>
-        Künstler: {{ object.actor }} <br>
-        Titel: {{ object.title }} <br>
-       <img src=" {{ object.url }}"  class="hover-shadow" style="width: 350px; height: 260px; padding: 10px;"> </li>
-    {% endfor %}
-  </ul>
-	<div id="gallery">
-		<div class="row">
-<!--    {% for object in objects %}
-      <div class="column">
-        <figure class="Bild{{ loop.index }}">
-          <img src="{{ object.bildLink }}" onclick="openModal();currentSlide({{ loop.index }})" class="hover-shadow" style="width: 350px; height: 260px; padding: 10px;">
-          <figcaption>Informationen zum Bild  {{ object.bildLink }}</figcaption>
-        </figure> 
-      </div>
-    {% endfor %}
- 		<div class="column">
-  		<figure class="Bild1">
-   			<img src="./Bilder/IE1898.224-1.jpg" onclick="openModal();currentSlide(1)" class="hover-shadow" style="width: 350px; height: 260px; padding: 10px;">
-   			<figcaption>Informationen zum Bild</figcaption>
-   		</figure> 
- 		</div>
-  		<div class="column">
-  		<figure class="Bild2">
-  		  <img src="./Bilder/S2009.259.a-1.jpg" onclick="openModal();currentSlide(2)" class="hover-shadow" style="width: 330px; height: 260px; padding: 10px;">
-			<figcaption>Informationen zum Bild</figcaption>
-		</figure>
-  		</div>
-
-  		<div class="column">
-  		<figure class="Bild3">
-    		<img src="../xmlProject/Bilder/S2009.197-1.jpg" onclick="openModal();currentSlide(3)" class="hover-shadow"  style="width: 350px; height: 260px; padding: 10px;">
-   			<figcaption>Informationen zum Bild</figcaption>
-   		</figure>	
-  		</div>
-
-  		<div class="column">
-  		<figure class="Bild4">
-    		<img src="../xmlProject/Bilder/S2009.259.b-1.jpg" onclick="openModal();currentSlide(4)" class="hover-shadow"  style="width: 350px; height: 260px; padding: 10px;">
-    		<figcaption>Informationen zum Bild</figcaption>
-    	</figure> 
-
-  		</div> -->
-	</div>
-
-		<div id="myModal" class="modal">
-  			<span class="close cursor" onclick="closeModal()">&times;</span>
-  		<div class="modal-content">
-
-    	<div class="mySlides">
-      		<div class="numbertext">1 / 4</div>
-        		<img src="../xmlProject/Bilder/IE1898.224-1.jpg" style="width:100%">
-    	</div>
-
-   		<div class="mySlides">
-     	    <div class="numbertext">2 / 4</div>
-       			<img src="../xmlProject/Bilder/S2009.259.a-1.jpg" style="width:100%">
-   		</div>
 
-    	<div class="mySlides">
-      		<div class="numbertext">3 / 4</div>
-       	 		<img src="../xmlProject/Bilder/S2009.197-1.jpg" style="width:100%">
-    	</div>
+	{% if searchBool %}
+		<h4> {{ text }} </h4>
+	{% endif %}
 
-    	<div class="mySlides">
-      		<div class="numbertext">4 / 4</div>
-        		<img src="../xmlProject/Bilder/S2009.259.b-1.jpg" style="width:100%">
-    	</div>
-
-    	<a class="prev" onclick="plusSlides(-1)">&#10094;</a>
-  		<a class="next" onclick="plusSlides(1)">&#10095;</a>
-
-   		<div class="caption-container">
-     		<p id="caption"></p>
-    	</div>
-    	<div class="slide">
-    	<div class="column">
-     		<img class="demo" src="../xmlProject/Bilder/IE1898.224-1.jpg" onclick="currentSlide(1)" alt="1/4"  style="width: 300px; height: 210px; padding: 20px;">
-    	</div>
-
- 	    <div class="column">
-      		<img class="demo" src="../xmlProject/Bilder/S2009.259.a-1.jpg" onclick="currentSlide(2)" alt="2/4"  style="width: 300px; height: 210px; padding: 20px;">
-    	</div>
-
-    	<div class="column">
-     		<img class="demo" src="../xmlProject/Bilder/S2009.197-1.jpg" onclick="currentSlide(3)" alt="3/4"  style="width: 300px; height: 210px; padding: 20px;">
-   		</div>
-
-   		<div class="column">
-      		<img class="demo" src="../xmlProject/Bilder/S2009.259.b-1.jpg" onclick="currentSlide(4)" alt="4/4"  style="width: 300px; height: 210px; padding: 20px;">
-    	</div>
-    	</div>
-  	</div>
-	</div>
+	<div id="gallery">
+		<div class="row">
+			{% for object in objects %}
+			<div class="column">
+				<figure class="{{ loop.index }}">
+					{{ loop.index }}
+					<img src="{{ object.url }}" onclick="openModal();currentSlide(1)" class="hover-shadow" style="width: 350px; height: 260px; padding: 10px;">
+					<!-- Hovereffekt muss überarbeitet werden, IST: Beschriftung ü+berlagert sich zur Zeit -->
+					<figcaption>Künstler: {{ object.actor }} <br> Titel: {{ object.title }} </figcaption>
+					
+				</figure> 
+			</div>
+			<!-- ab hier kann weg - Verlinkung auf Detailseite stattdessen -->
+			<div id="myModal" class="modal">
+				<span class="close cursor" onclick="closeModal()">&times;</span>
+				<div class="modal-content">
+
+					<div class="mySlides">
+						<div class="numbertext"> {{ loop.index }} / 4</div>
+						<img src="{{ object.url }}" style="width:100%">
+					</div>
+
+					<a class="prev" onclick="plusSlides(-1)">&#10094;</a>
+					<a class="next" onclick="plusSlides(1)">&#10095;</a>
+				
+					<div class="caption-container">
+						<p id="caption"></p>
+					</div>
+					
+					<div class="slide">
+						<div class="column">
+							<img class="demo" src="{{ object.url }}" onclick="currentSlide(1)" alt="1/4"  style="width: 300px; height: 210px; padding: 20px;">
+						</div>
+					</div>
+					
+				</div>
+			</div>
+			{% endfor %}	
+		</div>
 	</div>
+	   
+	
+  
+  
 	<script>
 		function openModal() {
   			document.getElementById('myModal').style.display = "block";
-- 
GitLab