예제 #1
0
파일: views.py 프로젝트: zengik/tabbycat
    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()))
예제 #2
0
파일: views.py 프로젝트: vicbab/tabbycat
    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)
예제 #3
0
파일: views.py 프로젝트: zengik/tabbycat
 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))
예제 #4
0
파일: views.py 프로젝트: czlee/tabbycat
    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)
예제 #5
0
    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)
예제 #6
0
    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],
                },
            },
        )