Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 36 additions & 1 deletion dao.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import os
import pymongo
import re
from itertools import groupby

from config.config import Config

Expand Down Expand Up @@ -189,6 +190,40 @@ def update_player_name(self, player, name):
player.name = name
return self.update_player(player)

def get_all_player_tournaments_by_id(self, id):
result = self.players_col.find({"_id": id})
if result.count() == 0:
return None
tournaments = \
[ M.Tournament.load(t, context='db') for t in self.tournaments_col.find({'players': {'$in': [id] }}) ]
return tournaments

def sort_player_tournaments_by_region(self, id):
result = self.players_col.find({"_id": id})
if result.count() == 0:
return None
tournaments = self.get_all_player_tournaments_by_id(id)

region_count = {}
for tournament in tournaments:
if not tournament.regions[0]: pass

region = tournament.regions[0]
if region_count.get(region, None) is None:
region_count[region] = 0
region_count[region] = region_count[region] + 1

counts = []
for region, count in region_count.iteritems():
r = {
'name': region,
'count': count
}
counts.append(r)
counts = sorted(counts, key=lambda x: x['count'], reverse=True)
return counts


def insert_pending_tournament(self, pending_tournament):
return self.pending_tournaments_col.insert(pending_tournament.dump(context='db'))

Expand Down Expand Up @@ -566,7 +601,7 @@ def get_region_ranking_criteria(self, region_id):
result = self.regions_col.find_one({'_id': region_id})
if result:
region = M.Region.load(result, context='db')
return region.dump(context='web')
return region.dump(context='web')

# throws an exception, which is okay because this is called from just create_user
def insert_user(self, user):
Expand Down
32 changes: 32 additions & 0 deletions server.py
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,36 @@ def put(self, region, id):

return player.dump(context='web')

class PlayerTournamentResource(restful.Resource):
def get(self, region, id):
dao = get_dao(None)

try:
tournament_objects = dao.get_all_player_tournaments_by_id(ObjectId(id))
tournaments = []
for t in tournament_objects:
t = t.dump(context='web')
tournaments.append(t)

return tournaments
except Exception as e:
print e
return 400

class PlayerSortedTournamentResource(restful.Resource):
def get(self, region, id):
dao = get_dao(None)

try:
region_sorted_tournament_counts = dao.sort_player_tournaments_by_region(ObjectId(id))
return region_sorted_tournament_counts
except Exception as e:
import traceback
traceback.print_exc(file=sys.stdout)
print 'errrrrrrrror'
print e
return 400


class TournamentSeedResource(restful.Resource):

Expand Down Expand Up @@ -1243,6 +1273,8 @@ def add_cors(resp):

api.add_resource(PlayerListResource, '/<string:region>/players')
api.add_resource(PlayerResource, '/<string:region>/players/<string:id>')
api.add_resource(PlayerTournamentResource, '/<string:region>/players/<string:id>/tournaments')
api.add_resource(PlayerSortedTournamentResource, '/<string:region>/players/<string:id>/sortedtournaments')

api.add_resource(TournamentSeedResource, '/<string:region>/tournamentseed')

Expand Down
23 changes: 19 additions & 4 deletions webapp/app/players/controllers/playerDetail.controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,16 +51,31 @@ angular.module('app.players').controller("PlayerDetailController", function($sco

$scope.postParams = {name: $scope.player.name}
$scope.playerRegionCheckbox = {}
$scope.isSuperAdmin = $scope.sessionService.isSuperAdmin();

$scope.sessionService.getAdminRegions().forEach(
function(regionId){
if($scope.isPlayerInRegion(regionId)){
if ($scope.isPlayerInRegion(regionId)) {
$scope.playerRegionCheckbox[regionId] = "IN_REGION";
}else{
} else if (!$scope.isPlayerInRegion(regionId)) {
$scope.playerRegionCheckbox[regionId] = "NOT_IN_REGION";
}
}
);

$scope.getRemainingRegions = function() {
retRegions = []
adminRegions = $scope.sessionService.getAdminRegions();
$scope.regionService.regions.forEach(
function(region) {
if (!adminRegions.includes(region.id)) {
retRegions.push(region);
}
}
});

)
return retRegions;
}

$scope.disableButtons = false;
$scope.errorMessage = false;
};
Expand Down
5 changes: 5 additions & 0 deletions webapp/app/players/views/player_detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ <h1 class="text-right"><button type="button" class="btn btn-danger mobile" ng-cl
<h2><em>This player has been merged into player <a href="#/{{regionService.region.id}}/players/{{player.merge_parent}}">{{mergeParent.name}}</a>.</em></h2>
</div>
</div>
<!-- Insert Player Region -->
<div class="row">
<!-- Will need to change the formatting if worldwide use is implemented -->
<p class="player-region">{{regionService.region.display_name}}</p>
</div>
<div ng-show="!player.merged">
<div class="row">
<div class="player-rating col-md-12">
Expand Down
10 changes: 9 additions & 1 deletion webapp/app/players/views/player_details_modal.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,19 @@ <h4>
class="mobile"
ng-model="playerRegionCheckbox[regionId]"
ng-true-value="'IN_REGION'"
ng-false-value="'NOT_IN_REGION'">
>
{{regionService.getRegionDisplayNameFromRegionId(regionId)}}
</label>
</h4>
</div>
<div class="checkbox" ng-class="{readonly: !isSuperAdmin}" ng-repeat="region in getRemainingRegions()">
<h4>
<label>
<input type="checkbox" ng-disabled="!isSuperAdmin" class="mobile">
{{region.display_name}}
</label>
</h4>
</div>
</div>
<button type="submit" class="btn btn-primary mobile_small" ng-disabled="disableButtons">Submit</button>
<p class="text-danger" ng-show="errorMessage"><strong>There was an error. Please make sure everything is spelled correctly and try again.</strong></p>
Expand Down
14 changes: 14 additions & 0 deletions webapp/styles/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,20 @@ table{
background-color: rgba(0, 0, 0, 0.3);
}

.player-region {
margin-left: 15px;
font-size: 16pt;
color: #777777;
transform: translateY(-30%);
}

.readonly {
opacity: .50;
font-style: italic;
filter: alpha(opacity=50);
cursor: auto;
}



/*END application-wide styling */
Expand Down