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()
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()
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()
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()
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 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()
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()