def generate_diploma(self, result): output = StringIO.StringIO() path = 'results/files/diplomas/%i/%i.jpg' % (self.competition_id, result.participant.distance_id) if not os.path.isfile(path): return 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
def generate_diploma(self, result): raise NotImplementedError output = StringIO.StringIO() path = 'results/files/diplomas/%i/%i.jpg' % (self.competition_id, result.participant.distance_id) if not os.path.isfile(path): return 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
def number_pdf(self, participant_id): participant = Participant.objects.get(id=participant_id) output = StringIO.StringIO() 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, unicode(participant.distance)) if participant.primary_number: c.setFont(_baseFontNameB, 35) c.drawString(15*cm, 18.5*cm, unicode(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