autocomplete code working on backend

This commit is contained in:
Jocavdh 2018-06-11 12:01:51 +02:00
parent 932ce9102a
commit 3715f0f70f
3 changed files with 30 additions and 22 deletions

View File

@ -159,8 +159,10 @@ $(document).ready(function()
); );
// Autocomplete for search - Contact Joca in case of trouble // Autocomplete for search - Contact Joca in case of trouble
// Check: Code doesn't work inside document.ready function
// Are the other functions correctly closed?
// Send query to server
$('#search').on("input", function() { $('#search').on("input", function() {
var query = this.value; var query = this.value;
@ -168,26 +170,32 @@ $('#search').on("input", function() {
url: "/autocomplete_suggestions", url: "/autocomplete_suggestions",
data: $('form').serialize(), data: $('form').serialize(),
type: "POST", type: "POST",
async: false,
success: function(response) { success: function(response) {
//console.log("Got your query!"); //console.log("Got your query!");
} }
}); });
var JSONItems = ['battle'];
$.getJSON( "/autocomplete_suggestions", callbackFuncWithData);
$.ajax({
type: "GET",
url: "/autocomplete_suggestions",
dataType: "json",
success: function(data) {
// Start autocomplete
var availableTags = data; function callbackFuncWithData() {
console.log(availableTags);
$("#search").autocomplete({ $("#search").autocomplete({
source: availableTags source: function( request, response ) {
}); $.getJSON( "autocomplete_suggestions", {
// End of autocomplete term: extractLast( request.term )
}, response );
} }
}); });
}
}); });
// Get autocomplete_suggestions
console.log("haha");

View File

@ -15,7 +15,6 @@
<![endif]--> <![endif]-->
<link rel="stylesheet" href="/static/css/style.css"> <link rel="stylesheet" href="/static/css/style.css">
<link rel="stylesheet" href="/static/js/jquery-ui-1.12.1.custom/jquery-ui.css"> <link rel="stylesheet" href="/static/js/jquery-ui-1.12.1.custom/jquery-ui.css">
<link rel="stylesheet" href="/static/js/jquery-ui-1.12.1.custom/jquery-ui.js">
{% block css %} {% endblock%} {% block css %} {% endblock%}
</head> </head>
<body> <body>
@ -44,9 +43,8 @@
{% block js %} {% endblock%} {% block js %} {% endblock%}
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.js"></script> <script type="text/javascript" src="http://code.jquery.com/jquery-2.2.4.js"></script>
<script type="text/javascript" src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> <script type="text/javascript" src="http://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>
<script type="text/javascript" src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script type='text/javascript' src='//cdn.jsdelivr.net/jquery.marquee/1.4.0/jquery.marquee.min.js'></script> <script type='text/javascript' src='//cdn.jsdelivr.net/jquery.marquee/1.4.0/jquery.marquee.min.js'></script>
<script type="text/javascript" src="{{ url_for("static", filename="js/jquery.tablesorter.js") }}"></script> <script type="text/javascript" src="{{ url_for("static", filename="js/jquery.tablesorter.js") }}"></script>
<script src="{{ url_for("static", filename="js/app.js") }}"></script> <script src="{{ url_for("static", filename="js/app.js") }}"></script>

View File

@ -21,6 +21,7 @@ from csv import DictWriter, DictReader
import io import io
from sqlalchemy.inspection import inspect from sqlalchemy.inspection import inspect
import autocomplete import autocomplete
from autocomplete import models
import sys import sys
import os import os
@ -399,7 +400,7 @@ def show_instances():
@app.route('/books', methods= ['POST','GET']) @app.route('/books', methods= ['POST','GET'])
def show_books(): def show_books():
autocomplete.load() #Train markov model once, for autocomplete in search #autocomplete.load() #Train markov model once, for autocomplete in search
books = db.session.query(Book).all() books = db.session.query(Book).all()
search = SearchForm(request.form) search = SearchForm(request.form)
@ -439,14 +440,15 @@ autocomplete_suggestions = []
autocomplete.load() #Train markov model once, for autocomplete in search autocomplete.load() #Train markov model once, for autocomplete in search
@app.route('/autocomplete_suggestions', methods=['GET', 'POST']) @app.route('/autocomplete_suggestions', methods=['GET', 'POST'])
def test1(): def autocomplete_search():
if request.method == 'POST': if request.method == 'POST':
query = request.form['search'] query = request.form['search']
query_tokenized = query.lower().split() query_tokenized = query.lower().split()
print(query_tokenized) print(query_tokenized)
word_1 = query_tokenized[-2] word_1 = query_tokenized[-2]
word_2 = query_tokenized[-1] word_2 = query_tokenized[-1]
#print(word_1) print(word_1)
print(word_2)
autocomplete_output = autocomplete.predict(word_1 , word_2) autocomplete_output = autocomplete.predict(word_1 , word_2)
autocomplete_suggestions.clear() autocomplete_suggestions.clear()
for suggestion, score in autocomplete_output: for suggestion, score in autocomplete_output: