Ejemplo n.º 1
0
def team(request, team_id):
    base = base_ctx('Teams', None, request)
    base.update(csrf(request)) 

    team = get_object_or_404(Group, id=team_id)
    base['team'] = team

    base['messages'] += generate_messages(team)

    # Make modifications
    if 'op' in request.POST and request.POST['op'] == 'Submit' and base['adm'] == True:

        name = request.POST['name']
        if name!= '' and name != team.name:
            team.set_name(name)
            base['messages'].append(Message('Changed team name.', type=Message.SUCCESS))

        akas = request.POST['AKA']
        if akas != '':
            aka = [s.strip() for s in akas.split(',')]
        else:
            aka = None
        team.set_aliases(aka)

        shortname = request.POST['shortname']
        if shortname != team.shortname:
            if team.shortname or shortname != '':
                team.set_shortname(shortname)
                base['messages'].append(Message('Changed short name.', type=Message.SUCCESS))

        homepage = request.POST['homepage']
        if homepage != team.homepage:
            if team.homepage or homepage != '':
                team.set_homepage(homepage)
                base['messages'].append(Message('Changed short homepage.', type=Message.SUCCESS))

        lp_name = request.POST['lp_name']
        if lp_name != team.lp_name:
            if team.lp_name or lp_name != '':
                team.set_lp_name(lp_name)
                base['messages'].append(Message('Changed Liquipedia title.', type=Message.SUCCESS))


    players = GroupMembership.objects.filter(group=team, current=True, playing=True)
    base['players'] = players 
    base['zerg'] = players.filter(player__race__exact='Z') 
    base['protoss'] = players.filter(player__race__exact='P') 
    base['terran'] = players.filter(player__race__exact='T')

    earnings = Earnings.objects.filter(player__in=players.values('player'))
    base['earnings'] = earnings.aggregate(Sum('earnings'))['earnings__sum']

    try: 
        base['aliases'] = Alias.objects.filter(team=team)
    except:
        pass
        
    total = 0
    offline = 0
    if players:
        for p in players:
            total += Match.objects.filter(Q(pla=p.player) | Q(plb=p.player)).count()
            offline += Match.objects.filter((Q(pla=p.player) | Q(plb=p.player)), offline=True).count()
        base['offline'] = round((100*float(offline)/float(total)),2)
     
    base['active'] = Rating.objects.filter(player__groupmembership__group=team,\
            player__groupmembership__current=True, player__groupmembership__playing=True,\
            period=base['curp']).order_by('-rating')
    base['active'] = filter_active_ratings(base['active'])
    base['inactive'] = Rating.objects.filter(player__groupmembership__group=team,\
            player__groupmembership__current=True, player__groupmembership__playing=True,\
            period=base['curp']).order_by('-rating')
    base['inactive'] = filter_inactive_ratings(base['inactive'])
    base['nonplaying'] = GroupMembership.objects.filter(group=team, 
            current=True, playing=False).order_by('player__tag')
    base['past'] = GroupMembership.objects.filter(group=team, current=False).order_by('-end', 'player__tag')

    return render_to_response('team.html', base)
Ejemplo n.º 2
0
def team(request, team_id):
    base = base_ctx('Teams', None, request)
    base.update(csrf(request)) 

    team = get_object_or_404(Team, id=team_id)
    base['team'] = team

    # Make modifications
    if 'op' in request.POST and request.POST['op'] == 'Submit' and base['adm'] == True:

        name = request.POST['name']

        akas = request.POST['AKA']
        if akas != '':
            aka = [s for s in akas.split(',')]
        else:
            aka = None

        shortname = request.POST['shortname']
        if shortname == '':
            shortname = None

        homepage = request.POST['homepage']
        if homepage == '':
            homepage = None

        lp_name = request.POST['lp_name']
        if lp_name == '':
            lp_name = None

        if name!= '':
            team.set_name(name)
        team.set_aliases(aka)
        team.set_shortname(shortname)
        team.set_homepage(homepage)
        team.set_lp_name(lp_name)

    players = TeamMembership.objects.filter(team__name=team, current=True, playing=True)
    base['players'] = players 
    base['zerg'] = players.filter(player__race__exact='Z') 
    base['protoss'] = players.filter(player__race__exact='P') 
    base['terran'] = players.filter(player__race__exact='T')

    earnings = Earnings.objects.filter(player__in=players.values('player'))
    base['earnings'] = earnings.aggregate(Sum('earnings'))['earnings__sum']

    try: 
        base['aliases'] = Alias.objects.filter(team=team)
    except:
        pass
        
    total = 0
    offline = 0
    if players:
        for p in players:
            total += Match.objects.filter(Q(pla=p.player) | Q(plb=p.player)).count()
            offline += Match.objects.filter((Q(pla=p.player) | Q(plb=p.player)), offline=True).count()
        base['offline'] = round((100*float(offline)/float(total)),2)
     
    base['active'] = Rating.objects.filter(player__teammembership__team=team,\
            player__teammembership__current=True, player__teammembership__playing=True,\
            period=base['curp']).order_by('-rating')
    base['active'] = filter_active_ratings(base['active'])
    base['inactive'] = Rating.objects.filter(player__teammembership__team=team,\
            player__teammembership__current=True, player__teammembership__playing=True,\
            period=base['curp']).order_by('-rating')
    base['inactive'] = filter_inactive_ratings(base['inactive'])
    base['nonplaying'] = TeamMembership.objects.filter(team=team, current=True, playing=False).order_by('player__tag')
    base['past'] = TeamMembership.objects.filter(team=team, current=False).order_by('-end', 'player__tag')

    return render_to_response('team.html', base)