Esempio n. 1
0
def matchs_save(request):
    if request.user.id!=None and request.user.is_authenticated and request.user.is_superuser:
        message = "Aucun probleme."
        all_matchs = json.loads(request.POST['all_matchs'])
        event_id = request.POST['event_id']
        for match in all_matchs:
            LOGGER.info("Working on match " + str(match))
            web_match = all_matchs[match]
            py_match = Match.objects.get(id=match)
            if py_match.result==None:
                score = Score()
            else:
                score = Score.objects.get(id=py_match.result.id)
            score.first = web_match[u'score'][u'first']
            score.second = web_match[u'score'][u'second']
            score.name = "Official score " + py_match.name
            score.save()
                
            py_match.result = score
            py_match.save()
        generate_matchs(all_matchs.keys())
        event = BettableEvent.objects.get(id=event_id)
        generates_per_participant_result(event)
        # TODO: Change
        if event.sport.identifier=='SPORT_FOOTBALL':
            compute_fifa_wc_pools(event)
            compute_fifa_wc_8th(event)
        event_meta = get_event_meta(event)
        for m_type in event_meta['final_phases'][1:]:
            complete_meta_for_type(event, m_type)
        return HttpResponse('{"result": true, "message":"' + message + '"}', content_type="application/json");
    else:
        raise PermissionDenied()
Esempio n. 2
0
def group_winner_bet(request):
    if request.user.is_authenticated and request.user.id!=None:
        now = datetime.date.today()
        event_id = request.GET['event_id']
        event = BettableEvent.objects.get(id=event_id)
        admin_groups = Group.objects.filter(owners__id__exact=request.user.id,event__id=event_id).distinct().order_by('name')
        member_groups = Group.objects.filter(Q(members__id__exact=request.user.id) | Q(owners__id__exact=request.user.id), Q(event__id=event_id)).distinct().order_by('name')
        winner_setups = []
        all_setups = WinnerSetup.objects.filter(group__in=list(admin_groups) + list(member_groups))
        for setup in all_setups:
            all_steps = setup.setup.all().order_by('id').values_list('category__identifier', flat=True)
            for step in all_steps:
                if not step in winner_setups:
                    winner_setups.append(step)
        if len(winner_setups)==0:
            winner_setups = None
        event_meta = get_event_meta(event)
        match_types = Attributes.objects.filter(active=True, type='match_type').order_by('id')
        winners_bets = Winner.objects.filter(event__id=event_id, owner__id=request.user.id)
        bets_data = {}
        limits_data = {}
        for bet in winners_bets:
            bets_data[bet.category.identifier] = []
            limits_data[bet.category.identifier] = event_meta['bets_delays'][bet.category.identifier]>=(now - event.start_date).days
            for participant in bet.participants.all():
                bets_data[bet.category.identifier].append(participant.id)
                
        context = {'event_data': event_meta, 'steps_count': COUNT_PER_STEP, 'event': event, 'winner_setups': winner_setups, 'match_types':match_types, 'bets_data': bets_data, 'limits_data': limits_data}
        return render(request,'group_winner_bet.html', context)
    else:
        raise PermissionDenied()
Esempio n. 3
0
def matchs_save(request):
    if request.user.id != None and request.user.is_authenticated and request.user.is_superuser:
        message = "Aucun probleme."
        all_matchs = json.loads(request.POST['all_matchs'])
        event_id = request.POST['event_id']
        for match in all_matchs:
            LOGGER.info("Working on match " + str(match))
            web_match = all_matchs[match]
            py_match = Match.objects.get(id=match)
            if py_match.result == None:
                score = Score()
            else:
                score = Score.objects.get(id=py_match.result.id)
            score.first = web_match[u'score'][u'first']
            score.second = web_match[u'score'][u'second']
            score.name = "Official score " + py_match.name
            score.save()

            py_match.result = score
            py_match.save()
        generate_matchs(all_matchs.keys())
        event = BettableEvent.objects.get(id=event_id)
        generates_per_participant_result(event)
        # TODO: Change
        if event.sport.identifier == 'SPORT_FOOTBALL':
            compute_fifa_wc_pools(event)
            compute_fifa_wc_8th(event)
        event_meta = get_event_meta(event)
        for m_type in event_meta['final_phases'][1:]:
            complete_meta_for_type(event, m_type)
        return HttpResponse('{"result": true, "message":"' + message + '"}',
                            content_type="application/json")
    else:
        raise PermissionDenied()
Esempio n. 4
0
def event_view(request):
    viewed_user = None
    if request.GET.has_key('user_id'):
        user_id = request.GET['user_id']
        viewed_user = User.objects.get(id=user_id)
    event_id = request.GET['event_id']
    event = BettableEvent.objects.get(id=event_id)
    event_data = utilities.get_event_meta(event)
    context = {"event": event, "event_data": event_data, "viewed_user": viewed_user}
    return render(request,'event_view.html', context)
 def handle(self, *args, **options):
     begin = dt.combine(dates.AddDay(datetime.date.today(),-7), dt.min.time())
     active_events = BettableEvent.objects.filter(end_date__gte=begin).order_by('name')
     for event in active_events:
         providers = Provider.objects.filter(event__id=event.id)
         event_meta = get_event_meta(event)
         for provider in providers:
             provider.get_all_matches_info()
         for m_type in event_meta['final_phases'][1:]:
             complete_meta_for_type(event, m_type)
     compute_event_ranking()
     compute_group_ranking()
     compute_overall_ranking()
     generate_matchs()
Esempio n. 6
0
def event_view(request):
    viewed_user = None
    if request.GET.has_key('user_id'):
        user_id = request.GET['user_id']
        viewed_user = User.objects.get(id=user_id)
    event_id = request.GET['event_id']
    event = BettableEvent.objects.get(id=event_id)
    event_data = utilities.get_event_meta(event)
    context = {
        "event": event,
        "event_data": event_data,
        "viewed_user": viewed_user
    }
    return render(request, 'event_view.html', context)
Esempio n. 7
0
def group_winner_bet(request):
    if request.user.is_authenticated and request.user.id != None:
        now = datetime.date.today()
        event_id = request.GET['event_id']
        event = BettableEvent.objects.get(id=event_id)
        admin_groups = Group.objects.filter(
            owners__id__exact=request.user.id,
            event__id=event_id).distinct().order_by('name')
        member_groups = Group.objects.filter(
            Q(members__id__exact=request.user.id)
            | Q(owners__id__exact=request.user.id),
            Q(event__id=event_id)).distinct().order_by('name')
        winner_setups = []
        all_setups = WinnerSetup.objects.filter(group__in=list(admin_groups) +
                                                list(member_groups))
        for setup in all_setups:
            all_steps = setup.setup.all().order_by('id').values_list(
                'category__identifier', flat=True)
            for step in all_steps:
                if not step in winner_setups:
                    winner_setups.append(step)
        if len(winner_setups) == 0:
            winner_setups = None
        event_meta = get_event_meta(event)
        match_types = Attributes.objects.filter(
            active=True, type='match_type').order_by('id')
        winners_bets = Winner.objects.filter(event__id=event_id,
                                             owner__id=request.user.id)
        bets_data = {}
        limits_data = {}
        for bet in winners_bets:
            bets_data[bet.category.identifier] = []
            limits_data[bet.category.identifier] = event_meta['bets_delays'][
                bet.category.identifier] >= (now - event.start_date).days
            for participant in bet.participants.all():
                bets_data[bet.category.identifier].append(participant.id)

        context = {
            'event_data': event_meta,
            'steps_count': COUNT_PER_STEP,
            'event': event,
            'winner_setups': winner_setups,
            'match_types': match_types,
            'bets_data': bets_data,
            'limits_data': limits_data
        }
        return render(request, 'group_winner_bet.html', context)
    else:
        raise PermissionDenied()
Esempio n. 8
0
 def handle(self, *args, **options):
     begin = dt.combine(dates.AddDay(datetime.date.today(), -7),
                        dt.min.time())
     active_events = BettableEvent.objects.filter(
         end_date__gte=begin).order_by('name')
     for event in active_events:
         providers = Provider.objects.filter(event__id=event.id)
         event_meta = get_event_meta(event)
         for provider in providers:
             provider.get_all_matches_info()
         for m_type in event_meta['final_phases'][1:]:
             complete_meta_for_type(event, m_type)
     compute_event_ranking()
     compute_group_ranking()
     compute_overall_ranking()
     generate_matchs()