Ejemplo n.º 1
0
Archivo: views.py Proyecto: LS80/FFL
def submit_team(request):
    if request.method == 'POST':
        form = SelectTeamForm(request.POST)
        if form.is_valid():
            team = form.save()

            for field in Formation.fields:
                for player in form.cleaned_data[field]:
                    SquadMember.objects.create(team=team,
                                               player=player,
                                               week_in=gameinfo.gameWeek() + 1)
   
            week = WeekPoints.objects.latest_week()
            if week is not None:
                for w in range(1, week + 1):
                    WeekPoints.objects.create(team=team, week=w)

            html = render_to_string('team_email.html', {'team': team})

            email = EmailMessage('Your Team', html, '*****@*****.**',
                                 to=[team.email],
                                 bcc=['*****@*****.**'],
                                 headers={'Reply-To': '*****@*****.**',
                                          'From': 'Fantasy Football'})
            email.content_subtype = 'html'
            email.send()
            
            return HttpResponseRedirect(reverse(team_submitted))
    else:        
        form = SelectTeamForm()
    
    return render(request, 'submit_team.html',
                  {'form': form,
                   'budget': config.MAX_COST,
                   'week': gameinfo.gameWeek() + 1})
Ejemplo n.º 2
0
Archivo: views.py Proyecto: LS80/FFL
def player(request, code):
    player = Player.objects.code(code)
    return render(request, 'player.html',
                  {'player': player,
                   'playing_for': player.playing_for(),
                   'subbed_by': player.subbed_by(),
                   'week': gameinfo.gameWeek()})
Ejemplo n.º 3
0
def weekly_performance(request, from_week=None, to_week=None):
    week = gameinfo.gameWeek()

    if week:
        MAX_WEEKS = 20

        to_week = week_to(to_week)
        from_week = max(week_from(from_week), (to_week - MAX_WEEKS + 1))

        if from_week <= to_week:

            nweeks = to_week - from_week + 1
            weeknums = range(from_week, to_week + 1)
            table = WeekPoints.objects.table(from_week, to_week)

            return render(
                request, 'weeklyperformance.html', {
                    'ncols': nweeks + 1,
                    'weeknums': weeknums,
                    'points': table,
                    'prev': from_week != 1,
                    'next': to_week != WeekPoints.objects.latest_week()
                })
        else:
            raise Http404()
    else:
        return render(request, 'weeklyperformance.html', {'week': week})
Ejemplo n.º 4
0
Archivo: models.py Proyecto: LS80/FFL
    def update(self):
        game_week = gameinfo.gameWeek()
        length = self.count()

        for i, player in enumerate(self.all()):
            player_update = telegraph.PlayerUpdate(player.code)
            
            player.club = player_update.club()

            week_points = [0]*game_week
            if player.club:
                points_list = player_update.points()
            else:
                # keep the points as they are as they may have been removed from the website
                points_list = player.weekly_points.values_list('week', 'points')
            
            for week, points in points_list:
                week_points[week-1] += points

            WeekPoints.objects.filter(player=player).delete()

            for week, points in enumerate(week_points):
                WeekPoints.objects.create(player=player, week=week+1, points=points)
                
            player.games = player_update.games()
            player.total_points = player_update.total_points()
            
            player.save()
            
            yield "{0} ({1:d}/{2:d})".format(player.name, i+1, length)
Ejemplo n.º 5
0
    def update(self):
        game_week = gameinfo.gameWeek()
        length = self.count()

        for i, player in enumerate(self.all()):
            player_update = telegraph.PlayerUpdate(player.code)

            player.club = player_update.club()

            week_points = [0] * game_week
            if player.club:
                points_list = player_update.points()
            else:
                # keep the points as they are as they may have been removed from the website
                points_list = player.weekly_points.values_list(
                    'week', 'points')

            for week, points in points_list:
                week_points[week - 1] += points

            WeekPoints.objects.filter(player=player).delete()

            for week, points in enumerate(week_points):
                WeekPoints.objects.create(player=player,
                                          week=week + 1,
                                          points=points)

            player.games = player_update.games()
            player.total_points = player_update.total_points()

            player.save()

            yield "{0} ({1:d}/{2:d})".format(player.name, i + 1, length)
Ejemplo n.º 6
0
def player(request, code):
    player = Player.objects.code(code)
    return render(
        request, 'player.html', {
            'player': player,
            'playing_for': player.playing_for(),
            'subbed_by': player.subbed_by(),
            'week': gameinfo.gameWeek()
        })
Ejemplo n.º 7
0
Archivo: models.py Proyecto: LS80/FFL
 def week_best(self, week):
     if not week:
         week = gameinfo.gameWeek()
         
     query_set = self.none()
     week_points = self.filter(week=week).select_related()
     for position in Formation.labels:
         position_points = week_points.filter(player__position=position)
         points = position_points.aggregate(models.Max('points'))['points__max']
         query_set = query_set | position_points.filter(points=points)
     
     return query_set
Ejemplo n.º 8
0
def submit_team(request):
    if request.method == 'POST':
        form = SelectTeamForm(request.POST)
        if form.is_valid():
            team = form.save()

            for field in Formation.fields:
                for player in form.cleaned_data[field]:
                    SquadMember.objects.create(team=team,
                                               player=player,
                                               week_in=gameinfo.gameWeek() + 1)

            week = WeekPoints.objects.latest_week()
            if week is not None:
                for w in range(1, week + 1):
                    WeekPoints.objects.create(team=team, week=w)

            html = render_to_string('team_email.html', {'team': team})

            email = EmailMessage('Your Team',
                                 html,
                                 '*****@*****.**',
                                 to=[team.email],
                                 bcc=['*****@*****.**'],
                                 headers={
                                     'Reply-To': '*****@*****.**',
                                     'From': 'Fantasy Football'
                                 })
            email.content_subtype = 'html'
            email.send()

            return HttpResponseRedirect(reverse(team_submitted))
    else:
        form = SelectTeamForm()

    return render(request, 'submit_team.html', {
        'form': form,
        'budget': config.MAX_COST,
        'week': gameinfo.gameWeek() + 1
    })
Ejemplo n.º 9
0
    def week_best(self, week):
        if not week:
            week = gameinfo.gameWeek()

        query_set = self.none()
        week_points = self.filter(week=week).select_related()
        for position in Formation.labels:
            position_points = week_points.filter(player__position=position)
            points = position_points.aggregate(
                models.Max('points'))['points__max']
            query_set = query_set | position_points.filter(points=points)

        return query_set
Ejemplo n.º 10
0
def graph(request, teams=None, from_week=None, to_week=None):
    week = gameinfo.gameWeek()

    if week:
        if request.GET:
            # form has been submitted - redirect to the full url.
            form = GraphForm(request.GET)
            if form.is_valid():
                teams = '-'.join(
                    [str(team.id) for team in form.cleaned_data['team']])
                from_week = week_from(form.cleaned_data['from_week'])
                to_week = week_to(form.cleaned_data['to_week'])

                return HttpResponseRedirect(
                    reverse(graph, args=[teams, from_week, to_week]))
        else:
            if teams is None:
                # we are at the basic url so render an empty form.
                form = GraphForm()
            else:
                # we are at the full url - add the values into the form and render the page.
                try:
                    ids = map(int, teams.split('-'))
                except ValueError:
                    raise Http404()

                for team_id in ids:
                    if not Team.objects.filter(id=team_id):
                        raise Http404()

                from_week = week_from(from_week)
                to_week = week_to(to_week)

                form = GraphForm(
                    initial={
                        'team': Team.objects.filter(id__in=ids),
                        'from_week': from_week,
                        'to_week': to_week
                    })

        return render(
            request, 'graph.html', {
                'form': form,
                'teams': teams,
                'from_week': from_week,
                'to_week': to_week
            })
    else:
        # the game has yet to start so there is nothing to graph.
        return render('graph.html', {'week': week})
Ejemplo n.º 11
0
Archivo: views.py Proyecto: LS80/FFL
def graph(request, teams=None, from_week=None, to_week=None):
    week = gameinfo.gameWeek()
    
    if week:
        if request.GET:
            # form has been submitted - redirect to the full url.
            form = GraphForm(request.GET)
            if form.is_valid():
                teams = '-'.join([str(team.id) for team in form.cleaned_data['team']])
                from_week = week_from(form.cleaned_data['from_week'])
                to_week = week_to(form.cleaned_data['to_week'])

                return HttpResponseRedirect(reverse(graph,
                                                    args=[teams, from_week, to_week]))
        else:
            if teams is None:
                # we are at the basic url so render an empty form.
                form = GraphForm()
            else:
                # we are at the full url - add the values into the form and render the page.
                try:
                    ids = map(int, teams.split('-'))
                except ValueError:
                    raise Http404()
                
                for team_id in ids:
                    if not Team.objects.filter(id=team_id):
                        raise Http404()
                
                from_week = week_from(from_week)
                to_week = week_to(to_week)
                
                form = GraphForm(initial={'team': Team.objects.filter(id__in=ids),
                                          'from_week': from_week,
                                          'to_week': to_week})

        return render(request, 'graph.html',
                      {'form': form, 'teams': teams,
                       'from_week': from_week,
                       'to_week': to_week})
    else:
        # the game has yet to start so there is nothing to graph.
        return render('graph.html', {'week': week})
Ejemplo n.º 12
0
Archivo: views.py Proyecto: LS80/FFL
def weekly_performance(request, from_week=None, to_week=None):
    week = gameinfo.gameWeek()
    
    if week:
        MAX_WEEKS = 20
    
        to_week = week_to(to_week)
        from_week = max(week_from(from_week), (to_week - MAX_WEEKS + 1))
    
        if from_week <= to_week:
            
            nweeks = to_week - from_week + 1
            weeknums = range(from_week, to_week + 1)
            table = WeekPoints.objects.table(from_week, to_week)

            return render(request, 'weeklyperformance.html',
                          {'ncols': nweeks + 1, 'weeknums': weeknums, 'points': table,
                           'prev': from_week != 1,
                           'next': to_week != WeekPoints.objects.latest_week()})
        else:
            raise Http404()
    else:
        return render(request, 'weeklyperformance.html', {'week': week})
Ejemplo n.º 13
0
Archivo: views.py Proyecto: LS80/FFL
def _players(request, position):
    template = position.lower() + 's.html'
    return render(request, template,
                  {'players': Player.objects.position(position),
                   'week': gameinfo.gameWeek()})
Ejemplo n.º 14
0
def _players(request, position):
    template = position.lower() + 's.html'
    return render(request, template, {
        'players': Player.objects.position(position),
        'week': gameinfo.gameWeek()
    })
Ejemplo n.º 15
0
Archivo: views.py Proyecto: LS80/FFL
def league(request):
    return render(request, 'league.html',
                  {'week': gameinfo.gameWeek(),
                   'teams': Team.objects.order_by('-total_points','id')})
Ejemplo n.º 16
0
def league(request):
    return render(
        request, 'league.html', {
            'week': gameinfo.gameWeek(),
            'teams': Team.objects.order_by('-total_points', 'id')
        })