a1cf06be9c5b3466152e379c4319112d6d88be1b
4 from django
.shortcuts
import render
5 from django
.template
import RequestContext
6 from django
.http
import HttpResponse
7 from meta
.models
import TournamentModel
, RecordModel
8 from mlpccg
.CardDb
import CARDDB
9 from mlpccg
.DeckList
import DeckList
10 from mlpccg
.Clustering
import Clustering
13 tournament_models
= TournamentModel
.objects
.all().order_by('-date')
15 for tournament
in tournament_models
:
16 tournament_records
= tournament
.recordmodel_set
.all().order_by('placement')
17 tournament_decks
= [DeckList(name
=record
.decklist
.name
, url
=record
.decklist
.url
) for record
in tournament_records
]
18 tournament_data
+= [{'tournament': tournament
, 'decklists': tournament_decks
}]
20 records
= RecordModel
.objects
.all()
21 placements
= [{'decklist': DeckList(name
=record
.decklist
.name
, url
=record
.decklist
.url
), 'placement': record
.placement
} for record
in records
if record
.decklist
.url
]
22 clustering
= Clustering(records
=placements
)
23 ranking
= [(int(avg
), label
, [decklist
for decklist
in clustering
.clusters
[label
]]) for avg
, label
in clustering
.ranking()]
25 return render(request
, 'index.html', {
27 'tournaments': tournament_data
},
28 context_instance
=RequestContext(request
))
30 def tournaments(request
):
31 return HttpResponse(json
.dumps([{'name': t
.name
} for t
in TournamentModel
.objects
.all()]), content_type
='application/json')
34 decklist
= DeckList(url
=request
.POST
['url'])
36 records
= RecordModel
.objects
.all()
37 placements
= [{'decklist': DeckList(name
=record
.decklist
.name
, url
=record
.decklist
.url
), 'placement': record
.placement
, 'record': record
} for record
in records
if record
.decklist
.url
]
38 clustering
= Clustering(records
=placements
)
39 label
= clustering
.predict(decklist
)
42 for placement
in placements
:
43 for deck
in clustering
.clusters
[label
]:
44 if placement
['decklist'] == deck
:
45 similiar
+= [(deck
, placement
['record'])]
47 return render(request
, 'rate.html', {
49 'similiar': similiar
}, context_instance
=RequestContext(request
))