Beispiel #1
0
    def number_pdf(self, participant_id):
        participant = Participant.objects.get(id=participant_id)
        activate(participant.application.language if participant.
                 application else 'lv')
        output = BytesIO()

        c = canvas.Canvas(output, pagesize=A4)
        fill_page_with_image(
            "velo/media/competition/vestule/VBm_2016_vestule_ar_tekstu.jpg", c)

        c.setFont(_baseFontNameB, 18)
        c.drawString(
            8.0 * cm, 20.45 * cm, "%s %s" %
            (participant.full_name.upper(), participant.birthday.year))
        c.drawString(5.8 * cm, 18.2 * cm, str(participant.distance))

        if participant.primary_number:
            c.setFont(_baseFontNameB, 35)
            c.drawString(15 * cm, 19.2 * cm, str(participant.primary_number))
        # elif participant.distance_id == self.GIMENU_DISTANCE_ID:
        #     c.setFont(_baseFontNameB, 25)
        #     c.drawString(15*cm, 18.5*cm, "Amway")
        else:
            c.setFont(_baseFontNameB, 25)
            c.drawString(15 * cm, 19.225 * cm, "-")

        c.showPage()
        c.save()
        output.seek(0)
        return output
Beispiel #2
0
    def generate_diploma(self, result):
        output = BytesIO()
        path = 'velo/results/files/diplomas/%i/%i.jpg' % (
            self.competition_id, result.participant.distance_id)

        if not os.path.isfile(path):
            raise Exception

        c = canvas.Canvas(output, pagesize=A4)

        fill_page_with_image(path, c)

        c.setFont(_baseFontNameB, 35)
        c.drawCentredString(c._pagesize[0] / 2, 16.3 * cm,
                            result.participant.full_name)

        if result.participant.distance_id in (self.SPORTA_DISTANCE_ID,
                                              self.TAUTAS_DISTANCE_ID):
            c.setFont(_baseFontName, 25)
            c.drawCentredString(c._pagesize[0] / 2, 15 * cm,
                                "%i.vieta" % result.result_distance)
            c.setFont(_baseFontName, 18)
            c.drawCentredString(
                c._pagesize[0] / 2, 14 * cm,
                "Laiks: %s" % result.time.replace(microsecond=0))
            c.drawCentredString(c._pagesize[0] / 2, 13 * cm,
                                "Vidējais ātrums: %s km/h" % result.avg_speed)

        c.showPage()
        c.save()
        output.seek(0)
        return output
Beispiel #3
0
    def number_pdf(self, participant_id):
        participant = Participant.objects.get(id=participant_id)
        activate(participant.application.language if participant.application else 'lv')
        output = BytesIO()

        c = canvas.Canvas(output, pagesize=A4)
        fill_page_with_image("velo/media/competition/vestule/VB2017.jpg", c)

        c.setFont(_baseFontNameB, 18)
        c.drawString(9.0*cm, 21.35*cm, "%s %s" % (participant.full_name.upper(), participant.birthday.year))
        c.drawString(6.4*cm, 19.1*cm, str(participant.distance))

        if participant.primary_number:
            c.setFont(_baseFontNameB, 35)
            c.drawString(16*cm, 20.1*cm, str(participant.primary_number))
        # elif participant.distance_id == self.GIMENU_DISTANCE_ID:
        #     c.setFont(_baseFontNameB, 25)
        #     c.drawString(15*cm, 18.5*cm, "Amway")
        else:
            c.setFont(_baseFontNameB, 25)
            c.drawString(16*cm, 20.1*cm, "-")

        c.showPage()
        c.save()
        output.seek(0)
        return output
Beispiel #4
0
    def generate_diploma(self, result):
        output = BytesIO()
        path = 'velo/results/files/diplomas/%i/%i.jpg' % (self.competition_id, result.participant.distance_id)

        if not os.path.isfile(path):
            raise Exception

        c = canvas.Canvas(output, pagesize=A4)

        fill_page_with_image(path, c)

        c.setFont(_baseFontNameB, 35)
        c.drawCentredString(c._pagesize[0] / 2, 16.3*cm, result.participant.full_name)
        c.setFont(_baseFontName, 25)
        c.drawCentredString(c._pagesize[0] / 2, 15*cm, "%i.vieta" % result.result_distance)
        c.setFont(_baseFontName, 18)
        c.drawCentredString(c._pagesize[0] / 2, 14*cm, "Laiks: %s" % result.time.replace(microsecond=0))
        c.drawCentredString(c._pagesize[0] / 2, 13*cm, "Vidējais ātrums: %s km/h" % result.avg_speed)

        # if result.zero_time:
        #     zero_time = datetime.datetime.combine(datetime.date.today(), result.zero_time)
        #     delta = datetime.datetime.combine(datetime.date.today(), datetime.time(0, 0, 0)) - zero_time
        #     zero_time = (datetime.datetime.combine(datetime.date.today(), result.time) + delta).time().replace(microsecond=0)
        #     c.drawCentredString(c._pagesize[0] / 2, 12*cm, "Čipa laiks: %s" % zero_time)

        c.showPage()
        c.save()
        output.seek(0)
        return output
Beispiel #5
0
    def number_pdf(self, participant_id):
        participant = Participant.objects.get(id=participant_id)
        output = BytesIO()

        c = canvas.Canvas(output, pagesize=A4)
        fill_page_with_image(
            "media/competition/vestule/RVm_2015_vestule_ar_tekstu.jpg", c)

        c.setFont(_baseFontNameB, 18)
        c.drawString(
            5 * cm, 20 * cm, "%s %s" %
            (participant.full_name.upper(), participant.birthday.year))
        c.drawString(5 * cm, 18 * cm, str(participant.distance))

        if participant.primary_number:
            c.setFont(_baseFontNameB, 35)
            c.drawString(15 * cm, 18.5 * cm, str(participant.primary_number))
        elif participant.distance_id == self.GIMENU_DISTANCE_ID:
            c.setFont(_baseFontNameB, 25)
            c.drawString(15 * cm, 18.5 * cm, "Amway")
        else:
            c.setFont(_baseFontNameB, 25)
            c.drawString(15 * cm, 18.5 * cm, "-")

        c.showPage()
        c.save()
        output.seek(0)
        return output
Beispiel #6
0
    def generate_diploma(self, result):
        output = BytesIO()
        path = 'velo/results/files/diplomas/%i/%i.jpg' % (self.competition_id, result.participant.distance_id)

        if not os.path.isfile(path):
            raise Exception

        c = canvas.Canvas(output, pagesize=A4)

        fill_page_with_image(path, c)

        c.setFont(_baseFontNameB, 35)
        c.drawCentredString(c._pagesize[0] / 2, 16.3*cm, result.participant.full_name)

        if result.participant.distance_id in (self.SPORTA_DISTANCE_ID, self.TAUTAS_DISTANCE_ID):
            c.setFont(_baseFontName, 25)
            c.drawCentredString(c._pagesize[0] / 2, 15*cm, "%i.vieta" % result.result_distance)
            c.setFont(_baseFontName, 18)
            c.drawCentredString(c._pagesize[0] / 2, 14*cm, "Laiks: %s" % result.time.replace(microsecond=0))
            c.drawCentredString(c._pagesize[0] / 2, 13*cm, "Vidējais ātrums: %s km/h" % result.avg_speed)

        c.showPage()
        c.save()
        output.seek(0)
        return output
Beispiel #7
0
    def generate_diploma(self, result):
        output = BytesIO()
        path = 'velo/results/files/diplomas/%i/%i.jpg' % (
            self.competition_id, result.participant.distance_id)

        if not os.path.isfile(path):
            raise Exception

        c = canvas.Canvas(output, pagesize=A4)

        fill_page_with_image(path, c)

        c.setFont(_baseFontNameB, 35)
        c.drawCentredString(c._pagesize[0] / 2, 16.3 * cm,
                            result.participant.full_name)
        c.setFont(_baseFontName, 25)
        c.drawCentredString(c._pagesize[0] / 2, 15 * cm,
                            "%i.vieta" % result.result_distance)
        c.setFont(_baseFontName, 18)
        c.drawCentredString(c._pagesize[0] / 2, 14 * cm,
                            "Laiks: %s" % result.time.replace(microsecond=0))
        c.drawCentredString(c._pagesize[0] / 2, 13 * cm,
                            "Vidējais ātrums: %s km/h" % result.avg_speed)

        # if result.zero_time:
        #     zero_time = datetime.datetime.combine(datetime.date.today(), result.zero_time)
        #     delta = datetime.datetime.combine(datetime.date.today(), datetime.time(0, 0, 0)) - zero_time
        #     zero_time = (datetime.datetime.combine(datetime.date.today(), result.time) + delta).time().replace(microsecond=0)
        #     c.drawCentredString(c._pagesize[0] / 2, 12*cm, "Čipa laiks: %s" % zero_time)

        c.showPage()
        c.save()
        output.seek(0)
        return output
Beispiel #8
0
    def number_pdf(self, participant_id):
        activate('lv')
        participant = Participant.objects.get(id=participant_id)
        output = BytesIO()

        c = canvas.Canvas(output, pagesize=A4)
        fill_page_with_image("velo/media/competition/vestule/RVm_2018_vestule_ar_tekstu.jpg", c)

        c.setFont(_baseFontNameB, 18)
        c.drawString(5*cm, 20.4*cm, "%s %s" % (participant.full_name.upper(), participant.birthday.year))
        c.drawString(4*cm, 18.4*cm, str(participant.distance))

        if participant.primary_number:
            c.setFont(_baseFontNameB, 35)
            c.drawString(15*cm, 19.4*cm, str(participant.primary_number))
        # elif participant.distance_id == self.GIMENU_DISTANCE_ID:
        #     c.setFont(_baseFontNameB, 25)
        #     c.drawString(14*cm, 19.4*cm, "Ģimeņu br.")
        else:
            c.setFont(_baseFontNameB, 25)
            c.drawString(15.5*cm, 19.4*cm, "-")

        c.showPage()
        c.save()
        output.seek(0)
        return output
Beispiel #9
0
    def generate_diploma(self, result):
        output = BytesIO()
        path = 'velo/results/files/diplomas/%i/%i.jpg' % (
            self.competition_id, result.participant.distance_id)

        if not os.path.isfile(path):
            raise Exception

        # total_participants = result.participant.distance.participant_set.filter(is_participating=True).count()
        # total_group_participants = result.participant.distance.participant_set.filter(is_participating=True, group=result.participant.group).count()
        total_participants = result.competition.result_set.filter(
            participant__distance=result.participant.distance).count()
        total_group_participants = result.competition.result_set.filter(
            participant__distance=result.participant.distance,
            participant__group=result.participant.group).count()

        c = canvas.Canvas(output, pagesize=A4)

        fill_page_with_image(path, c)

        c.setFont(_baseFontNameB, 28)
        c.setFillColor(HexColor(0xf16b60))
        c.drawString(c._pagesize[0] - 3.3 * cm, 28.3 * cm,
                     str(result.participant.primary_number))

        c.setFont(_baseFontNameB, 32)
        c.setFillColor(HexColor(0x46445c))
        c.drawString(1 * cm, 28.2 * cm, result.participant.full_name)

        c.setFont(_baseFontName, 25)
        c.drawCentredString(5.55 * cm, 10 * cm,
                            str(result.time.replace(microsecond=0)))

        c.drawCentredString(3 * cm, 6.5 * cm, str(result.result_distance))
        c.drawCentredString(7.6 * cm, 6.5 * cm, str(total_participants))

        c.drawCentredString(15.5 * cm, 6.5 * cm, "%s km/h" % result.avg_speed)

        c.drawCentredString(13.2 * cm, 9.3 * cm, str(result.result_group))
        c.drawCentredString(17.7 * cm, 9.3 * cm, str(total_group_participants))

        c.setFont(_baseFontName, 18)
        c.drawCentredString(15.5 * cm, 10.9 * cm,
                            str(result.participant.group))

        c.showPage()
        c.save()
        output.seek(0)
        return output
Beispiel #10
0
    def generate_diploma(self, result):
        output = BytesIO()
        path = 'velo/results/files/diplomas/%i/%i.jpg' % (self.competition_id, result.participant.distance_id)

        if not os.path.isfile(path):
            raise Exception


        riga_tz = pytz.timezone("Europe/Riga")
        now = riga_tz.normalize(timezone.now())
        if (now.date() == self.competition.competition_date) and now.hour < 17:
            total_participants = result.participant.distance.participant_set.filter(is_participating=True).count()
            total_group_participants = result.participant.distance.participant_set.filter(is_participating=True, group=result.participant.group).count()
        else:
            total_participants = result.competition.result_set.filter(participant__distance=result.participant.distance).count()
            total_group_participants = result.competition.result_set.filter(participant__distance=result.participant.distance, participant__group=result.participant.group).count()

        c = canvas.Canvas(output, pagesize=A4)

        fill_page_with_image(path, c)

        c.setFont(_baseFontNameB, 30)

        if result.participant.distance_id in (self.SPORTA_DISTANCE_ID, self.TAUTAS_DISTANCE_ID, self.GIMENU_DISTANCE_ID):

            c.drawCentredString(c._pagesize[0] / 2, 12.5*cm, result.participant.full_name)
            c.drawString(5.75*cm, 11.1 * cm, str(result.participant.primary_number))

            if result.participant.distance_id in (self.SPORTA_DISTANCE_ID, self.TAUTAS_DISTANCE_ID):
                c.setFont(_baseFontName, 25)
                c.drawCentredString(14*cm, 7.7*cm, str(result.result_distance) if result.result_distance else '-')
                c.drawCentredString(17.5 * cm, 7.7 * cm, str(total_participants))
                c.drawCentredString(5.25*cm, 7.7*cm, str(result.time.replace(microsecond=0)))

                c.drawCentredString(15.75*cm, 4.7*cm, "%s km/h" % result.avg_speed)
                c.drawCentredString(3.4*cm, 4.7*cm, str(result.result_group) if result.result_group else '-')
                c.drawCentredString(7.0 * cm, 4.7 * cm, str(total_group_participants))
            elif result.participant.distance_id in (self.GIMENU_DISTANCE_ID, ):
                c.drawCentredString(5.25 * cm, 7.7 * cm, str(result.time.replace(microsecond=0)))

        else:
            c.drawCentredString(c._pagesize[0] / 2, 10.5 * cm, result.participant.full_name)


        c.showPage()
        c.save()
        output.seek(0)
        return output
Beispiel #11
0
    def generate_diploma(self, result):
        output = BytesIO()
        path = 'velo/results/files/diplomas/%i/%i.jpg' % (
            self.competition_id, result.participant.distance_id)

        if not os.path.isfile(path):
            raise Exception

        total_participants = result.competition.result_set.filter(
            participant__distance=result.participant.distance).count()
        total_group_participants = result.competition.result_set.filter(
            participant__distance=result.participant.distance,
            participant__group=result.participant.group).count()

        c = canvas.Canvas(output, pagesize=A4)

        fill_page_with_image(path, c)

        c.setFont(_baseFontNameB, 28)
        c.setFillColor(HexColor(0x9F2B36))
        c.drawString(7 * cm, 13 * cm, str(result.participant.primary_number))

        c.setFont(_baseFontNameB, 25)
        c.setFillColor(HexColor(0x46445c))
        c.drawCentredString(c._pagesize[0] / 2, 14.5 * cm,
                            result.participant.full_name)
        print(c._pagesize[0])
        c.setFont(_baseFontName, 25)
        c.drawCentredString(176, 10.2 * cm,
                            str(result.time.replace(microsecond=0)))

        c.drawCentredString(128, 7 * cm, str(result.result_group))
        c.drawCentredString(230, 7 * cm, str(total_group_participants))

        c.drawCentredString(420, 7 * cm, "%s km/h" % result.avg_speed)

        c.drawCentredString(370, 10.2 * cm, str(result.result_distance))
        c.drawCentredString(472, 10.2 * cm, str(total_participants))

        c.setFont(_baseFontName, 16)
        c.setFillColor(HexColor(0x9F2B36))
        c.drawRightString(523, 11.6 * cm, str(result.participant.group))

        c.showPage()
        c.save()
        output.seek(0)
        return output
Beispiel #12
0
    def generate_diploma(self, result):
        output = BytesIO()
        path = 'velo/results/files/diplomas/%i/%i.jpg' % (self.competition_id, result.participant.distance_id)

        if not os.path.isfile(path):
            raise Exception

        total_participants = result.competition.result_set.filter(participant__distance=result.participant.distance).count()
        total_group_participants = result.competition.result_set.filter(participant__distance=result.participant.distance, participant__group=result.participant.group).count()

        c = canvas.Canvas(output, pagesize=A4)

        fill_page_with_image(path, c)

        c.setFont(_baseFontNameB, 28)
        c.setFillColor(HexColor(0x9F2B36))
        c.drawString(7 * cm, 13 * cm, str(result.participant.primary_number))

        c.setFont(_baseFontNameB, 25)
        c.setFillColor(HexColor(0x46445c))
        c.drawCentredString(c._pagesize[0]/2, 14.5*cm, result.participant.full_name)
        print(c._pagesize[0])
        c.setFont(_baseFontName, 25)
        c.drawCentredString(176, 10.2 * cm, str(result.time.replace(microsecond=0)))

        c.drawCentredString(128, 7*cm, str(result.result_group))
        c.drawCentredString(230, 7*cm, str(total_group_participants))

        c.drawCentredString(420, 7*cm, "%s km/h" % result.avg_speed)

        c.drawCentredString(370, 10.2*cm, str(result.result_distance))
        c.drawCentredString(472, 10.2*cm, str(total_participants))

        c.setFont(_baseFontName, 16)
        c.setFillColor(HexColor(0x9F2B36))
        c.drawRightString(523, 11.6 * cm, str(result.participant.group))

        c.showPage()
        c.save()
        output.seek(0)
        return output
Beispiel #13
0
    def generate_diploma(self, result):
        output = BytesIO()
        path = 'velo/results/files/diplomas/%i/%i.jpg' % (self.competition_id, result.participant.distance_id)

        if not os.path.isfile(path):
            raise Exception

        # Until most of participants have finished, we show total registered participants.
        riga_tz = pytz.timezone("Europe/Riga")
        now = riga_tz.normalize(timezone.now())
        if (now.date() == self.competition.competition_date) and now.hour < 17:
            total_participants = result.participant.distance.participant_set.filter(is_participating=True).count()
            total_group_participants = result.participant.distance.participant_set.filter(is_participating=True, group=result.participant.group).count()
        else:
            total_participants = result.competition.result_set.filter(participant__distance=result.participant.distance).count()
            total_group_participants = result.competition.result_set.filter(participant__distance=result.participant.distance, participant__group=result.participant.group).count()

        if self.competition_index == 1:
            c = canvas.Canvas(output, pagesize=(29.7*cm, 33.55*cm))

            fill_page_with_image(path, c)

            c.setFont(_baseFontNameB, 32)
            c.setFillColor(HexColor(0x43455a))
            c.drawString(c._pagesize[0] - 3.3 * cm, 23.7 * cm, str(result.participant.primary_number))

            c.setFont(_baseFontNameB, 26)
            c.setFillColor(HexColor(0x43455a))
            c.drawCentredString(c._pagesize[0] - 6.5 * cm, 25.7*cm, result.participant.full_name)

            c.setFont(_baseFontName, 32)
            c.drawCentredString(c._pagesize[0] - 7 * cm, 18.3 * cm, str(result.time.replace(microsecond=0)))

            c.drawCentredString(c._pagesize[0] - 9.3 * cm, 14.5 * cm, str(result.result_distance))
            c.drawCentredString(c._pagesize[0] - 4.7 * cm, 14.5 * cm, str(total_participants))

            c.drawCentredString(c._pagesize[0] - 7 * cm, 7.3 * cm, "%s km/h" % result.avg_speed)

            c.drawCentredString(c._pagesize[0] - 9.3 * cm, 10.8*cm, str(result.result_group))
            c.drawCentredString(c._pagesize[0] - 4.7 * cm, 10.8*cm, str(total_group_participants))

        elif self.competition_index == 2:

            c = canvas.Canvas(output, pagesize=(21*1.5*cm, 29.7*1.5*cm))

            move_cm_w = 9*cm

            fill_page_with_image(path, c)

            c.setFont(_baseFontNameB, 32)
            c.setFillColor(HexColor(0x43455a))
            c.drawString(c._pagesize[0] - 3.3 * cm - move_cm_w, 23.7 * cm, str(result.participant.primary_number))

            c.setFont(_baseFontNameB, 26)
            c.setFillColor(HexColor(0x43455a))
            c.drawCentredString(c._pagesize[0] - 6.5 * cm - move_cm_w, 26 * cm, result.participant.full_name)

            c.setFont(_baseFontName, 32)
            c.drawCentredString(c._pagesize[0] - 7 * cm - move_cm_w, 18.3 * cm, str(result.time.replace(microsecond=0)))

            c.drawCentredString(c._pagesize[0] - 9.3 * cm - move_cm_w, 13.5 * cm, str(result.result_distance))
            c.drawCentredString(c._pagesize[0] - 4.7 * cm - move_cm_w, 13.5 * cm, str(total_participants))

            c.drawCentredString(c._pagesize[0] - 7 * cm - move_cm_w, 4 * cm, "%s km/h" % result.avg_speed)

            c.drawCentredString(c._pagesize[0] - 9.3 * cm - move_cm_w, 8.8 * cm, str(result.result_group))
            c.drawCentredString(c._pagesize[0] - 4.7 * cm - move_cm_w, 8.8 * cm, str(total_group_participants))

        elif self.competition_index == 3:
            c = canvas.Canvas(output, pagesize=(29.7 * cm, 42 * cm))

            fill_page_with_image(path, c)

            move_cm_w = 14*cm
            move_cm_h = 3*cm

            c.setFont(_baseFontNameB, 32)
            c.setFillColor(HexColor(0x43455a))
            c.drawString(c._pagesize[0] - 3.3 * cm - move_cm_w - 2*cm, 23.7 * cm - move_cm_h - 0.2*cm, str(result.participant.primary_number))

            c.setFont(_baseFontNameB, 26)
            c.setFillColor(HexColor(0x43455a))
            c.drawCentredString(c._pagesize[0] - 6.5 * cm - move_cm_w, 25.7 * cm - move_cm_h, result.participant.full_name)

            c.setFont(_baseFontName, 32)
            c.drawCentredString(c._pagesize[0] - 7 * cm - move_cm_w, 18.3 * cm - move_cm_h, str(result.time.replace(microsecond=0)))

            c.drawCentredString(c._pagesize[0] - 9.3 * cm - move_cm_w, 14.5 * cm - move_cm_h - 1*cm, str(result.result_distance))
            c.drawCentredString(c._pagesize[0] - 4.7 * cm - move_cm_w, 14.5 * cm - move_cm_h - 1*cm, str(total_participants))

            c.drawCentredString(c._pagesize[0] - 7 * cm - move_cm_w, 7.3 * cm - move_cm_h - 2*cm, "%s km/h" % result.avg_speed)

            c.drawCentredString(c._pagesize[0] - 9.3 * cm - move_cm_w, 10.8 * cm - move_cm_h - 1.5*cm, str(result.result_group))
            c.drawCentredString(c._pagesize[0] - 4.7 * cm - move_cm_w, 10.8 * cm - move_cm_h - 1.5*cm, str(total_group_participants))

        # c.setFont(_baseFontName, 18)
        # c.drawCentredString(c._pagesize[0] - 7 * cm, 10.1 * cm, str(result.participant.group))

        c.showPage()
        c.save()
        output.seek(0)
        return output
Beispiel #14
0
    def generate_diploma(self, result):
        output = BytesIO()
        path = 'velo/results/files/diplomas/%i/%i.jpg' % (
            self.competition_id, result.participant.distance_id)

        if not os.path.isfile(path):
            raise Exception

        # Until most of participants have finished, we show total registered participants.
        riga_tz = pytz.timezone("Europe/Riga")
        now = riga_tz.normalize(timezone.now())
        if (now.date() == self.competition.competition_date) and now.hour < 17:
            total_participants = result.participant.distance.participant_set.filter(
                is_participating=True).count()
            total_group_participants = result.participant.distance.participant_set.filter(
                is_participating=True, group=result.participant.group).count()
        else:
            total_participants = result.competition.result_set.filter(
                participant__distance=result.participant.distance).count()
            total_group_participants = result.competition.result_set.filter(
                participant__distance=result.participant.distance,
                participant__group=result.participant.group).count()

        if self.competition_index == 1:
            c = canvas.Canvas(output, pagesize=(29.7 * cm, 33.55 * cm))

            fill_page_with_image(path, c)

            c.setFont(_baseFontNameB, 32)
            c.setFillColor(HexColor(0x43455a))
            c.drawString(c._pagesize[0] - 3.3 * cm, 23.7 * cm,
                         str(result.participant.primary_number))

            c.setFont(_baseFontNameB, 26)
            c.setFillColor(HexColor(0x43455a))
            c.drawCentredString(c._pagesize[0] - 6.5 * cm, 25.7 * cm,
                                result.participant.full_name)

            c.setFont(_baseFontName, 32)
            c.drawCentredString(c._pagesize[0] - 7 * cm, 18.3 * cm,
                                str(result.time.replace(microsecond=0)))

            c.drawCentredString(c._pagesize[0] - 9.3 * cm, 14.5 * cm,
                                str(result.result_distance))
            c.drawCentredString(c._pagesize[0] - 4.7 * cm, 14.5 * cm,
                                str(total_participants))

            c.drawCentredString(c._pagesize[0] - 7 * cm, 7.3 * cm,
                                "%s km/h" % result.avg_speed)

            c.drawCentredString(c._pagesize[0] - 9.3 * cm, 10.8 * cm,
                                str(result.result_group))
            c.drawCentredString(c._pagesize[0] - 4.7 * cm, 10.8 * cm,
                                str(total_group_participants))

        elif self.competition_index == 2:

            c = canvas.Canvas(output,
                              pagesize=(21 * 1.5 * cm, 29.7 * 1.5 * cm))

            move_cm_w = 9 * cm

            fill_page_with_image(path, c)

            c.setFont(_baseFontNameB, 32)
            c.setFillColor(HexColor(0x43455a))
            c.drawString(c._pagesize[0] - 3.3 * cm - move_cm_w, 23.7 * cm,
                         str(result.participant.primary_number))

            c.setFont(_baseFontNameB, 26)
            c.setFillColor(HexColor(0x43455a))
            c.drawCentredString(c._pagesize[0] - 6.5 * cm - move_cm_w, 26 * cm,
                                result.participant.full_name)

            c.setFont(_baseFontName, 32)
            c.drawCentredString(c._pagesize[0] - 7 * cm - move_cm_w, 18.3 * cm,
                                str(result.time.replace(microsecond=0)))

            c.drawCentredString(c._pagesize[0] - 9.3 * cm - move_cm_w,
                                13.5 * cm, str(result.result_distance))
            c.drawCentredString(c._pagesize[0] - 4.7 * cm - move_cm_w,
                                13.5 * cm, str(total_participants))

            c.drawCentredString(c._pagesize[0] - 7 * cm - move_cm_w, 4 * cm,
                                "%s km/h" % result.avg_speed)

            c.drawCentredString(c._pagesize[0] - 9.3 * cm - move_cm_w,
                                8.8 * cm, str(result.result_group))
            c.drawCentredString(c._pagesize[0] - 4.7 * cm - move_cm_w,
                                8.8 * cm, str(total_group_participants))

        elif self.competition_index == 3:
            c = canvas.Canvas(output, pagesize=(29.7 * cm, 42 * cm))

            fill_page_with_image(path, c)

            move_cm_w = 14 * cm
            move_cm_h = 3 * cm

            c.setFont(_baseFontNameB, 32)
            c.setFillColor(HexColor(0x43455a))
            c.drawString(c._pagesize[0] - 3.3 * cm - move_cm_w - 2 * cm,
                         23.7 * cm - move_cm_h - 0.2 * cm,
                         str(result.participant.primary_number))

            c.setFont(_baseFontNameB, 26)
            c.setFillColor(HexColor(0x43455a))
            c.drawCentredString(c._pagesize[0] - 6.5 * cm - move_cm_w,
                                25.7 * cm - move_cm_h,
                                result.participant.full_name)

            c.setFont(_baseFontName, 32)
            c.drawCentredString(c._pagesize[0] - 7 * cm - move_cm_w,
                                18.3 * cm - move_cm_h,
                                str(result.time.replace(microsecond=0)))

            c.drawCentredString(c._pagesize[0] - 9.3 * cm - move_cm_w,
                                14.5 * cm - move_cm_h - 1 * cm,
                                str(result.result_distance))
            c.drawCentredString(c._pagesize[0] - 4.7 * cm - move_cm_w,
                                14.5 * cm - move_cm_h - 1 * cm,
                                str(total_participants))

            c.drawCentredString(c._pagesize[0] - 7 * cm - move_cm_w,
                                7.3 * cm - move_cm_h - 2 * cm,
                                "%s km/h" % result.avg_speed)

            c.drawCentredString(c._pagesize[0] - 9.3 * cm - move_cm_w,
                                10.8 * cm - move_cm_h - 1.5 * cm,
                                str(result.result_group))
            c.drawCentredString(c._pagesize[0] - 4.7 * cm - move_cm_w,
                                10.8 * cm - move_cm_h - 1.5 * cm,
                                str(total_group_participants))

        # c.setFont(_baseFontName, 18)
        # c.drawCentredString(c._pagesize[0] - 7 * cm, 10.1 * cm, str(result.participant.group))

        c.showPage()
        c.save()
        output.seek(0)
        return output
Beispiel #15
0
    def generate_diploma(self, result):
        output = BytesIO()
        path = 'velo/results/files/diplomas/%i/%i.jpg' % (self.competition_id, result.participant.distance_id)

        if not os.path.isfile(path):
            raise Exception

        # Until most of participants have finished, we show total registered participants.
        riga_tz = pytz.timezone("Europe/Riga")
        now = riga_tz.normalize(timezone.now())
        if (now.date() == self.competition.competition_date) and now.hour < 17:
            total_participants = result.participant.distance.participant_set.filter(is_participating=True).count()
            total_group_participants = result.participant.distance.participant_set.filter(is_participating=True, group=result.participant.group).count()
        else:
            total_participants = result.competition.result_set.filter(participant__distance=result.participant.distance).count()
            total_group_participants = result.competition.result_set.filter(participant__distance=result.participant.distance, participant__group=result.participant.group).count()


        if self.competition_id in (80, 83):
            c = canvas.Canvas(output, pagesize=(21*cm, 29.7*cm))

            fill_page_with_image(path, c)

            c.setFont(_baseFontNameB, 32)
            c.setFillColor(HexColor(0x47455b))
            c.drawString(c._pagesize[0] - 9.3 * cm, 16.1 * cm, str(result.participant.primary_number))

            c.setFont(_baseFontNameB, 26)
            c.setFillColor(HexColor(0x47455b))
            c.drawCentredString(c._pagesize[0] - 9.8 * cm, 17.7*cm, result.participant.full_name)

            c.setFont(_baseFontName, 32)
            c.drawCentredString(c._pagesize[0] - 10.2 * cm, 12.6 * cm, str(result.time.replace(microsecond=0)))

            if result.participant.distance_id != self.VESELIBAS_DISTANCE_ID:
                c.drawCentredString(c._pagesize[0] - 12.1 * cm, 9.5 * cm, str(result.result_distance))
                c.drawCentredString(c._pagesize[0] - 8.4 * cm, 9.5 * cm, str(total_participants))

                c.drawCentredString(c._pagesize[0] - 10 * cm, 3.7 * cm, "%s km/h" % result.avg_speed)

                c.drawCentredString(c._pagesize[0] - 12.1 * cm, 6.5*cm, str(result.result_group))
                c.drawCentredString(c._pagesize[0] - 8.4 * cm, 6.5*cm, str(total_group_participants))
        else:
            c = canvas.Canvas(output, pagesize=(21 * cm, 29.7 * cm))

            fill_page_with_image(path, c)

            c.setFont(_baseFontNameB, 32)
            c.setFillColor(HexColor(0x47455b))
            c.drawString(c._pagesize[0] - 14.5 * cm, 10.5 * cm, str(result.participant.primary_number))

            c.setFont(_baseFontNameB, 26)
            c.setFillColor(HexColor(0x47455b))
            c.drawCentredString(c._pagesize[0] - 12.0 * cm, 12.1 * cm, result.participant.full_name)

            c.setFont(_baseFontName, 32)
            c.drawCentredString(c._pagesize[0] - 16.5 * cm, 7.7 * cm, str(result.time.replace(microsecond=0)))

            if result.participant.distance_id != self.VESELIBAS_DISTANCE_ID:
                c.drawCentredString(c._pagesize[0] - 10.1 * cm, 7.7 * cm, str(result.result_distance))
                c.drawCentredString(c._pagesize[0] - 6.4 * cm, 7.7 * cm, str(total_participants))

                c.drawCentredString(c._pagesize[0] - 8 * cm, 4.5 * cm, "%s km/h" % result.avg_speed)

                c.drawCentredString(c._pagesize[0] - 18.2 * cm, 4.5 * cm, str(result.result_group))
                c.drawCentredString(c._pagesize[0] - 14.5 * cm, 4.5 * cm, str(total_group_participants))



        c.showPage()
        c.save()
        output.seek(0)
        return output
Beispiel #16
0
    def generate_diploma(self, result):
        output = BytesIO()
        path = 'velo/results/files/diplomas/%i/%i.jpg' % (
            self.competition_id, result.participant.distance_id)

        if not os.path.isfile(path):
            raise Exception

        riga_tz = pytz.timezone("Europe/Riga")
        now = riga_tz.normalize(timezone.now())
        if (now.date() == self.competition.competition_date) and now.hour < 17:
            total_participants = result.participant.distance.participant_set.filter(
                is_participating=True).count()
            total_group_participants = result.participant.distance.participant_set.filter(
                is_participating=True, group=result.participant.group).count()
        else:
            total_participants = result.competition.result_set.filter(
                participant__distance=result.participant.distance).count()
            total_group_participants = result.competition.result_set.filter(
                participant__distance=result.participant.distance,
                participant__group=result.participant.group).count()

        c = canvas.Canvas(output, pagesize=A4)

        fill_page_with_image(path, c)

        c.setFont(_baseFontNameB, 30)

        if result.participant.distance_id in (self.SPORTA_DISTANCE_ID,
                                              self.TAUTAS_DISTANCE_ID,
                                              self.GIMENU_DISTANCE_ID):

            c.drawCentredString(c._pagesize[0] / 2, 12.5 * cm,
                                result.participant.full_name)
            c.drawString(5.75 * cm, 11.1 * cm,
                         str(result.participant.primary_number))

            if result.participant.distance_id in (self.SPORTA_DISTANCE_ID,
                                                  self.TAUTAS_DISTANCE_ID):
                c.setFont(_baseFontName, 25)
                c.drawCentredString(
                    14 * cm, 7.7 * cm,
                    str(result.result_distance)
                    if result.result_distance else '-')
                c.drawCentredString(17.5 * cm, 7.7 * cm,
                                    str(total_participants))
                c.drawCentredString(5.25 * cm, 7.7 * cm,
                                    str(result.time.replace(microsecond=0)))

                c.drawCentredString(15.75 * cm, 4.7 * cm,
                                    "%s km/h" % result.avg_speed)
                c.drawCentredString(
                    3.4 * cm, 4.7 * cm,
                    str(result.result_group) if result.result_group else '-')
                c.drawCentredString(7.0 * cm, 4.7 * cm,
                                    str(total_group_participants))
            elif result.participant.distance_id in (self.GIMENU_DISTANCE_ID, ):
                c.drawCentredString(5.25 * cm, 7.7 * cm,
                                    str(result.time.replace(microsecond=0)))

        else:
            c.drawCentredString(c._pagesize[0] / 2, 10.5 * cm,
                                result.participant.full_name)

        c.showPage()
        c.save()
        output.seek(0)
        return output
Beispiel #17
0
    def generate_diploma(self, result):
        output = BytesIO()
        path = 'velo/results/files/diplomas/%i/%i.jpg' % (
            self.competition_id, result.participant.distance_id)

        if not os.path.isfile(path):
            raise Exception

        # Until most of participants have finished, we show total registered participants.
        riga_tz = pytz.timezone("Europe/Riga")
        now = riga_tz.normalize(timezone.now())
        if (now.date() == self.competition.competition_date) and now.hour < 17:
            total_participants = result.participant.distance.participant_set.filter(
                is_participating=True).count()
            total_group_participants = result.participant.distance.participant_set.filter(
                is_participating=True, group=result.participant.group).count()
        else:
            total_participants = result.competition.result_set.filter(
                participant__distance=result.participant.distance).count()
            total_group_participants = result.competition.result_set.filter(
                participant__distance=result.participant.distance,
                participant__group=result.participant.group).count()

        if self.competition_id in (80, 83):
            c = canvas.Canvas(output, pagesize=(21 * cm, 29.7 * cm))

            fill_page_with_image(path, c)

            c.setFont(_baseFontNameB, 32)
            c.setFillColor(HexColor(0x47455b))
            c.drawString(c._pagesize[0] - 9.3 * cm, 16.1 * cm,
                         str(result.participant.primary_number))

            c.setFont(_baseFontNameB, 26)
            c.setFillColor(HexColor(0x47455b))
            c.drawCentredString(c._pagesize[0] - 9.8 * cm, 17.7 * cm,
                                result.participant.full_name)

            c.setFont(_baseFontName, 32)
            c.drawCentredString(c._pagesize[0] - 10.2 * cm, 12.6 * cm,
                                str(result.time.replace(microsecond=0)))

            if result.participant.distance_id != self.VESELIBAS_DISTANCE_ID:
                c.drawCentredString(c._pagesize[0] - 12.1 * cm, 9.5 * cm,
                                    str(result.result_distance))
                c.drawCentredString(c._pagesize[0] - 8.4 * cm, 9.5 * cm,
                                    str(total_participants))

                c.drawCentredString(c._pagesize[0] - 10 * cm, 3.7 * cm,
                                    "%s km/h" % result.avg_speed)

                c.drawCentredString(c._pagesize[0] - 12.1 * cm, 6.5 * cm,
                                    str(result.result_group))
                c.drawCentredString(c._pagesize[0] - 8.4 * cm, 6.5 * cm,
                                    str(total_group_participants))
        else:
            c = canvas.Canvas(output, pagesize=(21 * cm, 29.7 * cm))

            fill_page_with_image(path, c)

            c.setFont(_baseFontNameB, 32)
            c.setFillColor(HexColor(0x47455b))
            c.drawString(c._pagesize[0] - 14.5 * cm, 10.5 * cm,
                         str(result.participant.primary_number))

            c.setFont(_baseFontNameB, 26)
            c.setFillColor(HexColor(0x47455b))
            c.drawCentredString(c._pagesize[0] - 12.0 * cm, 12.1 * cm,
                                result.participant.full_name)

            c.setFont(_baseFontName, 32)
            c.drawCentredString(c._pagesize[0] - 16.5 * cm, 7.7 * cm,
                                str(result.time.replace(microsecond=0)))

            if result.participant.distance_id != self.VESELIBAS_DISTANCE_ID:
                c.drawCentredString(c._pagesize[0] - 10.1 * cm, 7.7 * cm,
                                    str(result.result_distance))
                c.drawCentredString(c._pagesize[0] - 6.4 * cm, 7.7 * cm,
                                    str(total_participants))

                c.drawCentredString(c._pagesize[0] - 8 * cm, 4.5 * cm,
                                    "%s km/h" % result.avg_speed)

                c.drawCentredString(c._pagesize[0] - 18.2 * cm, 4.5 * cm,
                                    str(result.result_group))
                c.drawCentredString(c._pagesize[0] - 14.5 * cm, 4.5 * cm,
                                    str(total_group_participants))

        c.showPage()
        c.save()
        output.seek(0)
        return output