def get(self, request, *args, **kwargs): obj = self.get_object() event = get_unexpired_checkins(self.tournament, self.window_preference_pref).filter( identifier=obj.checkin_identifier) return Response(self.get_response_dict(request, obj, event.exists()))
def get_context_data(self, **kwargs): self.private_url_key = kwargs['url_key'] self.object = self.get_object(kwargs['url_key']) t = self.tournament try: checkin_id = PersonIdentifier.objects.get(person=self.object) kwargs['checkins_used'] = True checkins = get_unexpired_checkins(t, 'checkin_window_people') try: kwargs['event'] = checkins.filter(identifier=checkin_id).first() except ObjectDoesNotExist: kwargs['event'] = False except ObjectDoesNotExist: kwargs['checkins_used'] = False if hasattr(self.object, 'adjudicator'): kwargs['debateadjudications'] = self.object.adjudicator.debateadjudicator_set.filter( debate__round=t.current_round).select_related('debate__round').prefetch_related('debate__round__motion_set') else: kwargs['debateteams'] = self.object.speaker.team.debateteam_set.select_related( 'debate__round').prefetch_related('debate__round__motion_set').filter( debate__round=t.current_round) kwargs['draw_released'] = t.current_round.draw_status == Round.STATUS_RELEASED kwargs['feedback_pref'] = t.pref('participant_feedback') == 'private-urls' kwargs['ballots_pref'] = t.pref('participant_ballots') == 'private-urls' return super().get_context_data(**kwargs)
def patch(self, request, *args, **kwargs): """Toggles the check-in status""" obj = self.get_object() check = get_unexpired_checkins( self.tournament, self.window_preference_pref).filter( identifier=obj.checkin_identifier).exists() self.broadcast_checkin(obj, not check) return Response(self.get_response_dict(request, obj, not check))
def get_context_data(self, **kwargs): t = self.tournament participant = get_object_or_404(Person, url_key=kwargs['url_key']) kwargs['person'] = participant try: checkin_id = PersonIdentifier.objects.get(person=participant) checkins = get_unexpired_checkins(t, 'checkin_window_people') kwargs['event'] = checkins.filter(identifier=checkin_id).first() except ObjectDoesNotExist: kwargs['event'] = False kwargs['feedback_pref'] = t.pref('participant_feedback') == 'private-urls' kwargs['ballots_pref'] = t.pref('participant_ballots') == 'private-urls' return super().get_context_data(**kwargs)
def get_context_data(self, **kwargs): t = self.tournament participant = get_object_or_404(Person, url_key=kwargs['url_key']) kwargs['person'] = participant try: checkin_id = PersonIdentifier.objects.get(person=participant) checkins = get_unexpired_checkins(t, 'checkin_window_people') kwargs['event'] = checkins.filter(identifier=checkin_id).first() except ObjectDoesNotExist: kwargs['event'] = False kwargs['feedback_pref'] = t.pref( 'participant_feedback') == 'private-urls' kwargs['ballots_pref'] = t.pref( 'participant_ballots') == 'private-urls' return super().get_context_data(**kwargs)
def broadcast_checkin(self, obj, check): # Send result to websocket for treatment when opened; but perform the action here if check: checkin = Event.objects.create(identifier=obj.checkin_identifier, tournament=self.tournament) checkin_dict = checkin.serialize() checkin_dict['owner_name'] = obj.name else: checkins = get_unexpired_checkins(self.tournament, self.window_preference_pref) checkins.filter(identifier=obj.checkin_identifier).delete() checkin_dict = {'identifier': obj.checkin_identifier.barcode} group_name = CheckInEventConsumer.group_prefix + "_" + self.tournament.slug async_to_sync(get_channel_layer().group_send)( group_name, { 'type': 'send_json', 'data': { 'checkins': [checkin_dict], }, }, )