use template extensions
[mlpccg-meta.git] / meta / views.py
index fc1a7af..bb97599 100644 (file)
@@ -1,5 +1,6 @@
 from django.shortcuts import render
-from meta.models import TournamentModel
+from django.template import RequestContext
+from meta.models import TournamentModel, RecordModel
 from mlpccg.CardDb import CARDDB
 from mlpccg.DeckList import DeckList
 from mlpccg.Clustering import Clustering
@@ -7,21 +8,26 @@ from mlpccg.Clustering import Clustering
 def index(request):
     tournament_models = TournamentModel.objects.all().order_by('-date')
     tournament_data = []
-    placements = []
     for tournament in tournament_models:
         tournament_records = tournament.recordmodel_set.all().order_by('placement')
-        tournament_decks = []
-        for record in tournament_records:
-            decklist = DeckList(name=record.decklist.name, url=record.decklist.url)
-            tournament_decks += [decklist]
-            if len(decklist.cards) > 0:
-                placements += [{'decklist': decklist, 'placement': record.placement}]
-
+        tournament_decks = [DeckList(name=record.decklist.name, url=record.decklist.url) for record in tournament_records]
         tournament_data += [{'tournament': tournament, 'decklists': tournament_decks}]
 
+    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]
     clustering = Clustering(records=placements)
     ranking = [(int(avg), label, [decklist for decklist in clustering.clusters[label]]) for avg, label in clustering.ranking()]
 
     return render(request, 'index.html', {
         'ranking': ranking,
-        'tournaments': tournament_data})
+        'tournaments': tournament_data},
+                  context_instance=RequestContext(request))
+
+def rate(request):
+    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]
+    clustering = Clustering(records=placements)
+    decklist = DeckList(url=request.POST['url'])
+    label = clustering.predict(decklist)
+
+    return render(request, 'rate.html', {})