remove all useless .pyc files
[mlpccg-meta.git] / meta / views.py
index a1cf06b..0f71d00 100644 (file)
@@ -1,10 +1,10 @@
-import datetime
+from datetime import datetime
 import difflib
 import json
-from django.shortcuts import render
+from django.shortcuts import render, get_object_or_404
 from django.template import RequestContext
 from django.http import HttpResponse
-from meta.models import TournamentModel, RecordModel
+from meta.models import TournamentModel, RecordModel, DeckListModel
 from mlpccg.CardDb import CARDDB
 from mlpccg.DeckList import DeckList
 from mlpccg.Clustering import Clustering
@@ -24,15 +24,47 @@ def index(request):
 
     return render(request, 'index.html', {
         'ranking': ranking,
-        'tournaments': tournament_data},
-                  context_instance=RequestContext(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')
+    return HttpResponse(json.dumps([{'name': t.name, 'id': t.id} for t in TournamentModel.objects.all()]),
+                        content_type='application/json')
+
+def tournaments_detail(request, tournament_id):
+    tournament = get_object_or_404(TournamentModel, pk=tournament_id)
+    records = [(record.placement,
+                DeckList(name=record.decklist.name, url=record.decklist.url),
+                record.verified) for record in tournament.recordmodel_set.all()]
+
+    records.sort(key=lambda x: x[0])
+
+    return render(request, 'tournament_detail.html', {
+        'records': records,
+        'tournament': tournament})
 
 def rate(request):
     decklist = DeckList(url=request.POST['url'])
 
+    if request.POST.get('d_name') and request.POST.get('t_date') and request.POST.get('t_name') and request.POST.get('t_placement'):
+        try:
+            tournament = TournamentModel.objects.get(name__iexact=request.POST['t_name'])
+
+        except TournamentModel.DoesNotExist:
+            tournament = TournamentModel(name=request.POST['t_name'],
+                                         date=datetime.strptime(request.POST['t_date'], '%Y-%m-%d'),
+                                         verified=False)
+            tournament.save()
+
+        decklist_model = DeckListModel(name=request.POST['d_name'], url=request.POST['url'])
+        decklist_model.save()
+
+        record = RecordModel(placement=request.POST['t_placement'],
+                             tournament=tournament,
+                             decklist=decklist_model,
+                             verified=False)
+        record.save()
+
     records = RecordModel.objects.all()
     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)
@@ -46,4 +78,5 @@ def rate(request):
 
     return render(request, 'rate.html', {
         'deck': decklist,
-        'similiar': similiar}, context_instance=RequestContext(request))
+        'similiar': similiar
+    }, context_instance=RequestContext(request))