Browse Source

autocomplete code working on backend

ansible-setup-and-deploy
Jocavdh 6 years ago
parent
commit
3715f0f70f
  1. 38
      app/static/js/app.js
  2. 6
      app/templates/base.html
  3. 8
      app/views.py

38
app/static/js/app.js

@ -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;
console.log(availableTags);
$( "#search" ).autocomplete({
source: availableTags
});
// End of autocomplete
}
});
function callbackFuncWithData() {
$("#search").autocomplete({
source: function( request, response ) {
$.getJSON( "autocomplete_suggestions", {
term: extractLast( request.term )
}, response );
}
}); });
}
});
// Get autocomplete_suggestions
console.log("haha");

6
app/templates/base.html

@ -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>

8
app/views.py

@ -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:

Loading…
Cancel
Save