X-Git-Url: https://git.yukkurigames.com/?p=mlpccg-meta.git;a=blobdiff_plain;f=meta%2Fviews.py;h=011eccf563a14e4e6d2a6a86e6ab341a330f9aae;hp=a1cf06be9c5b3466152e379c4319112d6d88be1b;hb=227cf8c2dd8053ffd94c027365f88d04c2b85e3a;hpb=ac0c692e40ad6aca1b28199a4ef9c850fa680427 diff --git a/meta/views.py b/meta/views.py index a1cf06b..011eccf 100644 --- a/meta/views.py +++ b/meta/views.py @@ -1,10 +1,9 @@ -import datetime -import difflib +from datetime import datetime 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 @@ -14,7 +13,7 @@ def index(request): tournament_data = [] for tournament in tournament_models: tournament_records = tournament.recordmodel_set.all().order_by('placement') - tournament_decks = [DeckList(name=record.decklist.name, url=record.decklist.url) for record in tournament_records] + tournament_decks = [(record.placement, 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() @@ -24,15 +23,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 +77,5 @@ def rate(request): return render(request, 'rate.html', { 'deck': decklist, - 'similiar': similiar}, context_instance=RequestContext(request)) + 'similiar': similiar + }, context_instance=RequestContext(request))