add typeahead for tournament names
[mlpccg-meta.git] / meta / views.py
index bb97599..a1cf06b 100644 (file)
@@ -1,5 +1,9 @@
+import datetime
+import difflib
+import json
 from django.shortcuts import render
 from django.template import RequestContext
+from django.http import HttpResponse
 from meta.models import TournamentModel, RecordModel
 from mlpccg.CardDb import CARDDB
 from mlpccg.DeckList import DeckList
@@ -23,11 +27,23 @@ def index(request):
         'tournaments': tournament_data},
                   context_instance=RequestContext(request))
 
+def tournaments(request):
+    return HttpResponse(json.dumps([{'name': t.name} for t in TournamentModel.objects.all()]), content_type='application/json')
+
 def rate(request):
+    decklist = DeckList(url=request.POST['url'])
+
     records = RecordModel.objects.all()
-    placements = [{'decklist': DeckList(name=record.decklist.name, url=record.decklist.url), 'placement': record.placement} for record in records if record.decklist.url]
+    placements = [{'decklist': DeckList(name=record.decklist.name, url=record.decklist.url), 'placement': record.placement, 'record': record} for record in records if record.decklist.url]
     clustering = Clustering(records=placements)
-    decklist = DeckList(url=request.POST['url'])
     label = clustering.predict(decklist)
 
-    return render(request, 'rate.html', {})
+    similiar = []
+    for placement in placements:
+        for deck in clustering.clusters[label]:
+            if placement['decklist'] == deck:
+                similiar += [(deck, placement['record'])]
+
+    return render(request, 'rate.html', {
+        'deck': decklist,
+        'similiar': similiar}, context_instance=RequestContext(request))