예제 #1
0
def league_answers_submit(request):
    user = request.user
    league_name = request.POST.get('league_name')
    answers = {}
    for title, response in request.POST.items():
        if title != 'league_name' and title != 'csrfmiddlewaretoken':
            answers[title] = True if response == 'true' else False
    league = classes.league.League(league_name)
    member = classes.member.Member(user, league_name)
    is_member = member.is_member()
    is_admin = member.is_admin()
    if (answers and is_admin):
        success = league.update_answers(answers)
        if success:
            message = 'Successfully updated league answers.'
        else:
            message = 'Unable to update league answers.'
    elif answers and is_member:
        message = 'Error: You must be an admin to update league answers.'
    elif answers:
        message = 'Error: League is invalid or you are not a member.'
        return landing(request, message)
    else:
        message = 'Error: Answers block is invalid or missing.'
    return league_home(request, league_name, message)
예제 #2
0
def league_answers_or_picks(request, league_name, answers_or_picks):
    if answers_or_picks == 'answers':
        answers = True
    elif answers_or_picks == 'picks':
        answers = False
    else:
        return page_not_found(request)
    user = request.user
    league = classes.league.League(league_name)
    member = classes.member.Member(user.username, league_name)
    if not league.get_object() or not member.is_member():
        message = 'Error: League is invalid or you are not a member.'
        return landing(request, message)
    if answers and not member.is_admin():
        message = 'Error: You must be an admin to update league answers.'
        return league_home(request, league_name, message)
    prop_bets = league.get_prop_bets()
    if not answers:
        picks = member.get_picks()
        prop_bet_picks = {}
        for bet in prop_bets.keys():
            if bet in picks:
                prop_bet_picks[bet] = picks[bet]
            else:
                prop_bet_picks[bet] = None
        prop_bets = prop_bet_picks
    context = {
        'user': user,
        'league_name': league_name,
        'prop_bets': prop_bets,
        'answers': answers
    }
    return render(request, 'ui/league_entry.html', context)
예제 #3
0
def league_scoreboard(request, league_name):
    user = request.user
    member = classes.member.Member(user, league_name)
    league = classes.league.League(league_name)
    if member.is_member():
        scores = league.get_scoreboard()
    else:
        message = 'Error: League is invalid or you are not a member.'
        return landing(request, message)
    context = {'scores': scores}
    return render(request, 'ui/league_scoreboard.html', context)
예제 #4
0
def member_admin(request):
    required_params = ['league_name']
    validation = InputValidation(request, required_params)
    if validation.success:
        user = request.user
        league_name = validation.request_data['league_name']
        member = classes.member.Member(user.username, league_name)

        if not member.is_member():
            validation.add_error('League and user do not match.')
        else:
            response_data = {}
            response_data['admin'] = member.is_admin()
            validation.add_response_data(response_data)
    return validation.create_output_json()
예제 #5
0
def member_update_picks(request):
    required_params = ['league_name', 'picks']
    validation = InputValidation(request, required_params)
    if validation.success:
        user = request.user
        league_name = validation.request_data['league_name']
        picks = validation.request_data['picks']
        member = classes.member.Member(user.username, league_name)

        if not member.is_member():
            validation.add_error('League and user do not match.')
        else:
            success = member.update_picks(picks)
            if not success:
                validation.add_error('Unable to update picks.')
    return validation.create_output_json()
예제 #6
0
def league_scoreboard(request):
    required_params = ['league_name']
    validation = InputValidation(request, required_params)
    if validation.success:
        user = request.user
        league_name = validation.request_data['league_name']
        league = classes.league.League(league_name)
        member = classes.member.Member(user.username, league_name)

        if not member.is_member():
            validation.add_error('League and user do not match.')
        else:
            response_data = {}
            response_data['scoreboard'] = league.get_scoreboard()
            validation.add_response_data(response_data)
    return validation.create_output_json()
예제 #7
0
def league_home(request, league_name, message=''):
    user = request.user
    league = classes.league.League(league_name)
    member = classes.member.Member(user.username, league_name)
    if member.is_member():
        admin = member.is_admin()
        context = {
            'message': message,
            'admin': admin,
            'user': user,
            'league': league.get_object()
        }
        return render(request, 'ui/league_home.html', context)
    else:
        message = 'Error: League is invalid or you are not a member.'
        return landing(request, message)
예제 #8
0
def league_picks_submit(request):
    user = request.user
    league_name = request.POST.get('league_name')
    picks = {}
    for title, response in request.POST.items():
        if title != 'league_name' and title != 'csrfmiddlewaretoken':
            picks[title] = True if response == 'true' else False
    member = classes.member.Member(user, league_name)
    is_member = member.is_member()
    if (picks and is_member):
        success = member.update_picks(picks)
        if success:
            message = 'Successfully updated picks.'
        else:
            message = 'Unable to update picks.'
    elif picks:
        message = 'Error: League is invalid or you are not a member.'
        return landing(request, message)
    else:
        message = 'Error: Picks block is invalid or missing.'
    return league_home(request, league_name, message)
예제 #9
0
def member_get_picks(request):
    required_params = ['league_name']
    validation = InputValidation(request, required_params)
    if validation.success:
        user = request.user
        league_name = validation.request_data['league_name']
        league = classes.league.League(league_name)
        member = classes.member.Member(user.username, league_name)

        if not member.is_member():
            validation.add_error('League and user do not match.')
        else:
            prop_bets = league.get_prop_bets()
            existing_picks = member.get_picks()
            all_picks = {}
            for prop_bet in prop_bets.keys():
                if prop_bet in existing_picks:
                    all_picks[prop_bet] = existing_picks[prop_bet]
                else:
                    all_picks[prop_bet] = False
            response_data = {}
            response_data['picks'] = all_picks
            validation.add_response_data(response_data)
    return validation.create_output_json()