示例#1
0
 def form_valid(self, form):
     instance = form.save()
     FeedPhoto.objects.filter(instagram=instance).delete()
     if self.request.FILES:
         for f in self.request.FILES.getlist('images'):
             feed_photo = FeedPhoto(instagram=instance, image=f)
             feed_photo.save()
     return super().form_valid(form)
示例#2
0
 def form_valid(self, form):
     instance = form.save()
     self.message = '{}님이 짝모했어요!. 아래 링크에서 확인해주세요!'.format(self.request.user.name)
     if self.request.FILES:
         for f in self.request.FILES.getlist('images'):
             feed_photo = FeedPhoto(instagram=instance, image=f)
             feed_photo.save()
     # 위짝지가 반드시 포함되어 있으므로, 1을 빼면 참가한 아래짝지 수이다.
     instance.num_down_partner = len(self.request.POST.getlist('participants')) - 1
     instance.check_point()
     return super(PartnerMeetingCreateView, self).form_valid(form)
示例#3
0
    def form_valid(self, form):
        instance = form.save()
        # 기존 점수를 제거해주고, 업데이트된 정보로 점수를 부여한다.
        instance.partner.raise_score(-instance.point)
        instance.num_down_partner = len(self.request.POST.getlist('participants')) - 1
        instance.check_point()
        FeedPhoto.objects.filter(instagram=instance).delete()
        if self.request.FILES:
            for f in self.request.FILES.getlist('images'):
                feed_photo = FeedPhoto(instagram=instance, image=f)
                feed_photo.save()

        return super(PartnerMeetingUpdateView, self).form_valid(form)
示例#4
0
    def form_valid(self, form):
        instance = form.save()
        latest_os = OperationScheme.latest()
        year, semester = latest_os.current_year, latest_os.current_semester
        # 실제 참여한 사람으로만 참가자 목록을 업데이트한다.
        participants = []
        for pk in self.request.POST.getlist('participants'):
            participants.append(
                ActiveUser.objects.get(user=User.objects.get(pk=pk),
                                       active_year=year,
                                       active_semester=semester))
        instance.coffee_meeting.participants.set(participants)
        participants_len = len(participants)
        # 커모에 참여한 사람의 점수를 업데이트한다.
        if participants_len > 0:
            group = Partner.related_partner_activeuser(participants[0])
            # 커모가 한 짝지 그룹으로만 이루어지지 않은 경우 점수를 올린다.
            if group is None or participants_len != len(
                    set(participants).intersection(
                        group.containing_active_users())):
                # 참가자가 4명 이상일 경우만 점수를 올린다.
                if participants_len >= 4:
                    instance.coffee_meeting.update_partner_score()
            # 한 짝지 그룹으로만 이루어진 경우 짝모로 계산한다. 윗짝지가 존재해야한다.
            elif group.up_partner in participants:
                extra = 0
                num_partner = group.down_partner_count() + 1  # 몇 인조인지 확인
                if num_partner == participants_len:
                    if num_partner == 2:
                        extra = latest_os.extra_2_point
                    elif num_partner == 3:
                        extra = latest_os.extra_3_point
                    elif num_partner == 4:
                        extra = latest_os.extra_4_point
                # 아래짝지 수 * 커피점수(모두 모였으면 추가점수까지)만큼 점수를 부여한다.
                group.raise_score((participants_len - 1) *
                                  latest_os.coffee_point + extra)

        if self.request.FILES:
            for f in self.request.FILES.getlist('images'):
                feed_photo = FeedPhoto(instagram=instance, image=f)
                feed_photo.save()

        return super().form_valid(form)