def reporte_proyectoLider(id_proyecto): ''' Funcion que genera el reporte de roles del sistema ''' proyecto=get_object_or_404(Proyecto, id=id_proyecto) doc = SimpleDocTemplate(str(settings.BASE_DIR)+"/reporte_proyecto"+proyecto.nombre+".pdf",pagesize=letter, rightMargin=72,leftMargin=72, topMargin=30,bottomMargin=18) Story=[] logo = str(settings.BASE_DIR)+"/static/icono.png" costos=itemsProyecto(id_proyecto) total=0 for costo in costos: total=costo.costo+total styles=getSampleStyleSheet() styles.add(ParagraphStyle(name='Principal',alignment=1,spaceAfter=20, fontSize=24)) styles.add(ParagraphStyle(name='Justify',fontName='Courier-Oblique', alignment=TA_JUSTIFY, fontSize=14,spaceAfter=5)) styles.add(ParagraphStyle(name='Titulo', fontName='Helvetica', fontSize=18, alignment=0, spaceAfter=25, spaceBefore=15)) styles.add(ParagraphStyle(name='Header',fontName='Helvetica',fontSize=20)) styles.add(ParagraphStyle(name='SubItems',fontName='Helvetica',fontSize=10,spaceAfter=3)) styles.add(ParagraphStyle(name='Items',fontName='Helvetica',fontSize=12,spaceAfter=10, spaceBefore=10)) styles.add(ParagraphStyle(name='Subtitulos',fontSize=12,spaceAfter=3)) styles.add(ParagraphStyle(name='Encabezado',fontSize=10,spaceAfter=10, left=1, bottom=1)) im = Image(logo, width=100,height=50) Story.append(im) contador_act=1 titulo="<b>Proyecto </b>" Story.append(Paragraph(titulo,styles['Principal'])) Story.append(Spacer(1, 12)) titulo="<b>"+ proyecto.nombre+ "</b>" Story.append(Paragraph(titulo,styles['Principal'])) Story.append(Spacer(1, 12)) date=datetime.now() dateFormat = date.strftime("%d-%m-%Y") Story.append(Paragraph('Fecha: ' + str(dateFormat),styles['Subtitulos'])) name=dibujarProyecto(id_proyecto) grafo = str(settings.BASE_DIR)+'/static/img/'+str(name) referencias=str(settings.BASE_DIR)+'/static/referencias2.jpg' im = Image(grafo) h=im.imageHeight*0.35 w=im.imageWidth*0.35 im2=Image(referencias) im = Image(grafo,width=w,height=h) h=im2.imageHeight*0.15 w=im2.imageWidth*0.15 im2=Image(referencias, width=w, height=h) Story.append(im) Story.append(im2) text ="<strong>Descripcion: </strong>" + proyecto.descripcion+ "<br>" Story.append(Paragraph(text, styles["Items"])) text ="<strong>Observaciones: </strong>" + proyecto.observaciones+ "<br>" Story.append(Paragraph(text, styles["Items"])) text ="<strong>Costo Total: </strong>" + str(total) + " GS <br>" Story.append(Paragraph(text, styles["Items"])) dato=get_object_or_404(Proyecto,pk=id_proyecto) dateFormat = dato.fecha_ini.strftime("%d-%m-%Y") text ="<strong>Fecha de inicio: </strong>" + dateFormat+ "<br>" Story.append(Paragraph(text, styles["Items"])) dateFormat = dato.fecha_fin.strftime("%d-%m-%Y") text ="<strong>Fecha de finalizacion planificada: </strong>" + dateFormat+ "<br>" Story.append(Paragraph(text, styles["Items"])) if proyecto.estado=='FIN': dateFormat = dato.fecha_fin_real.strftime("%d-%m-%Y") text ="<strong>Fecha de finalizacion real: </strong>" + dateFormat+ "<br>" Story.append(Paragraph(text, styles["Items"])) today = datetime.now() #fecha actual dateFormat = today.strftime("%Y-%m-%d") # fecha con format dias=proyecto.fecha_fin_real-proyecto.fecha_fin dias= int(str(dias.days)) if dias>0: text ="<strong>Se ha atrasado: </strong>" + "<b style=\"color=red\">" + str(dias) +"</b>"+ " dia(s)" "<br>" Story.append(Paragraph(text, styles["Items"])) else: if dias<0: dias=dias*-1 text ="<strong>Se ha adelantado: </strong>" + '<b style="color=green">' + str(dias) +"</b>"+ " dia(s)" "<br>" Story.append(Paragraph(text, styles["Items"])) else: text ="<strong>Finalizado en el plazo estimado: </strong>" Story.append(Paragraph(text, styles["Items"])) else: today = datetime.now() #fecha actual dateFormat = today.strftime("%Y-%m-%d") # fecha con format dias=today.date()-proyecto.fecha_fin dias= int(str(dias.days)) if dias>0: text ="<strong>Proyecto atrasado: </strong>" + "<b style=\"color=red\">" + str(dias) +"</b>"+ " dia(s)" "<br>" Story.append(Paragraph(text, styles["Items"])) else: if dias<=0: dias=dias*-1 text ="<strong>Quedan: </strong>" + '<b style="color=green">' + str(dias) +"</b>"+ " dia(s) para finalizar el proyecto" "<br>" Story.append(Paragraph(text, styles["Items"])) comite = User.objects.filter(comite__id=id_proyecto) text ="<strong>Miembros del comite: </strong> <br>" Story.append(Paragraph(text, styles["Items"])) for miembro in comite: Story.append(Indenter(30)) text ="- " + miembro.first_name + " " + miembro.last_name + "<br>" Story.append(Paragraph(text, styles["SubItems"])) Story.append(Indenter(-30)) lider = get_object_or_404(User, pk=dato.lider_id) text ="<strong>Lider: </strong>" + lider.first_name + " " + lider.last_name + "<br>" Story.append(Paragraph(text, styles["Items"])) fases=Fase.objects.filter(proyecto_id=id_proyecto) nombre_roles=[] text ="<strong>Equipo: </strong>" "<br>" Story.append(Paragraph(text, styles["Items"])) for fase in fases: roles=Group.objects.filter(fase__id=fase.id) for rol in roles: nombre_roles.append(rol) u=User.objects.filter(groups__id=rol.id) for user in u: Story.append(Indenter(30)) uu=user.first_name + " " + user.last_name + " - " + rol.name +" en la fase " + fase.nombre +"\n" Story.append(Paragraph(uu, styles["SubItems"])) Story.append(Indenter(-30)) doc.build(Story) return str(settings.BASE_DIR)+"/reporte_proyecto"+proyecto.nombre+".pdf"