예제 #1
0
                     costo_monetario=10,
                     lider=usuario4)
proyecto5 = Proyecto(nombre='epsilon project',
                     descripcion='este proyecto corresponde a Bruce Banner',
                     costo_temporal=10,
                     costo_monetario=10,
                     lider=usuario5)

proyecto1.save()
proyecto2.save()
proyecto3.save()
proyecto4.save()
proyecto5.save()

fase1 = Fase(nombre='primera fase',
             descripcion='primera fase ',
             proyecto=proyecto1)
fase2 = Fase(nombre='segunda fase',
             descripcion='segunda fase',
             proyecto=proyecto1)
fase3 = Fase(nombre='tercera fase',
             descripcion='tercera fase',
             proyecto=proyecto1)
fase4 = Fase(nombre='cuarta fase',
             descripcion='cuarta fase',
             proyecto=proyecto1)
fase5 = Fase(nombre='quinta fase',
             descripcion='quinta fase',
             proyecto=proyecto1)

fase1.save()
예제 #2
0
def registrar_fase(request,id_proyecto):
    '''
        Vista para registrar una nueva fase dentro de un proyecto. Asigna automaticamente el orden,
        realiza las comprobaciones necesarias con respecto a la fecha de inicio y comprueba tambien que los roles
        asociados no pertenezcan a otra fase.
    '''
    proyecto = get_object_or_404(Proyecto, id=id_proyecto)
    if proyecto.estado!='PEN':
        return HttpResponseRedirect ('/denegado')
    if request.method=='POST':
        nombre=0
        formulario = CrearFaseForm(request.POST)
        if formulario.is_valid():
            if not verificarNombre(proyecto.id,request.POST["nombre"] ):
                messages.add_message(request, settings.DELETE_MESSAGE, "Error: Ya existe ese nombre de fase en el proyecto")
                nombre=1
            else:
                if len(str(request.POST["fInicio"])) != 10 : #Comprobacion de formato de fecha
                    messages.add_message(request, settings.DELETE_MESSAGE, "Error: El formato de Fecha es: DD/MM/AAAA")
                else:
                    fecha=datetime.strptime(str(request.POST["fInicio"]),'%d/%m/%Y')
                    fecha=fecha.strftime('%Y-%m-%d')
                    fecha1=datetime.strptime(fecha,'%Y-%m-%d')
                    newFase = Fase(nombre = request.POST["nombre"],descripcion = request.POST["descripcion"],maxItems = request.POST["maxItems"],fInicio = fecha,estado = "PEN", proyecto_id = id_proyecto)
                    aux=0
                    orden=Fase.objects.filter(proyecto_id=id_proyecto)
                    roles = request.POST.getlist("roles")
                    for rol in roles:
                        fase=Fase.objects.filter(roles__id=rol)
                        if(fase.count()>0):
                            aux=1
                    if aux>0:#comprobacion de pertenencia de roles
                        messages.add_message(request, settings.DELETE_MESSAGE, "Error: El Rol ya ha sido asignado a otra fase")
                    else:
                        proyecto=Proyecto.objects.get(id=id_proyecto)
                        cantidad = orden.count()
                        if cantidad>0:#comprobaciones de fecha
                            anterior = Fase.objects.get(orden=cantidad, proyecto_id=id_proyecto)
                            if fecha1<datetime.strptime(str(anterior.fInicio),'%Y-%m-%d'):
                                messages.add_message(request, settings.DELETE_MESSAGE, "Error: Fecha de inicio no concuerda con fase anterior")
                            else:
                                if datetime.strptime(str(proyecto.fecha_ini),'%Y-%m-%d')>=fecha1 or datetime.strptime(str(proyecto.fecha_fin),'%Y-%m-%d')<=fecha1:
                                    messages.add_message(request, settings.DELETE_MESSAGE, "Error: Fecha de inicio no concuerda con proyecto")
                                else:
                                    roles = request.POST.getlist("roles")
                                    newFase.orden=orden.count()+1 #Calculo del orden de la fase a crear
                                    newFase.save()
                                    for rol in roles:
                                        newFase.roles.add(rol)
                                        newFase.save()
                                    return render_to_response('fases/creacion_correcta.html',{'id_proyecto':id_proyecto}, context_instance=RequestContext(request))
                        else:
                            roles = request.POST.getlist("roles")
                            newFase.orden=1
                            newFase.save()
                            for rol in roles:
                                newFase.roles.add(rol)
                                newFase.save()
                            return render_to_response('fases/creacion_correcta.html',{'id_proyecto':id_proyecto}, context_instance=RequestContext(request))
    else:
        formulario = CrearFaseForm()
    return render_to_response('fases/registrarFase.html',{'formulario':formulario}, context_instance=RequestContext(request))
예제 #3
0
def importar_fase(request, id_fase,id_proyecto):

    '''
        Vista para importar los datos de una fase existente para su utilizacion en la creacion de una nueva.
        Realiza las comprobaciones necesarias con respecto a la fecha de inicio y orden de fase.
    '''
    proyecto = get_object_or_404(Proyecto,id=id_proyecto)
    if proyecto.estado!='PEN':
        return render_to_response('fases/error_activo.html')
    fase= Fase.objects.get(id=id_fase)
    if request.method=='POST':

        formulario = CrearFaseForm(request.POST)
        if formulario.is_valid():
            if not verificarNombre(proyecto.id,request.POST["nombre"] ):
                messages.add_message(request, settings.DELETE_MESSAGE, "Error: Ya existe ese nombre de fase en el proyecto")
            else:
                if len(str(request.POST["fInicio"])) != 10 :
                    messages.add_message(request, settings.DELETE_MESSAGE, "Error: El formato de Fecha es: DD/MM/AAAA")
                else:
                    fecha=datetime.strptime(str(request.POST["fInicio"]),'%d/%m/%Y')
                    fecha=fecha.strftime('%Y-%m-%d')
                    fecha1=datetime.strptime(fecha,'%Y-%m-%d')
                    newFase = Fase(nombre = request.POST["nombre"],descripcion = request.POST["descripcion"],maxItems = request.POST["maxItems"],fInicio = fecha, estado = "PEN", proyecto_id = id_proyecto)
                    aux=0
                    orden=Fase.objects.filter(proyecto_id=id_proyecto)
                    roles = request.POST.getlist("roles")
                    for rol in roles:
                        fase=Fase.objects.filter(roles__id=rol)
                        if(fase.count()>0):
                            aux=1
                    if aux>0:
                        messages.add_message(request, settings.DELETE_MESSAGE, "Error: El Rol ya ha sido asignado a otra fase")
                    else:
                        proyecto=Proyecto.objects.get(id=id_proyecto)
                        cantidad = orden.count()
                        if cantidad>0:
                            anterior = Fase.objects.get(orden=cantidad, proyecto_id=id_proyecto)
                            if fecha1<datetime.strptime(str(anterior.fInicio),'%Y-%m-%d'):
                                messages.add_message(request, settings.DELETE_MESSAGE, "Error: Fecha de inicio no concuerda con fase anterior")
                            else:
                                if datetime.strptime(str(proyecto.fecha_ini),'%Y-%m-%d')>=fecha1 or datetime.strptime(str(proyecto.fecha_fin),'%Y-%m-%d')<=fecha1:
                                    messages.add_message(request, settings.DELETE_MESSAGE, "Error: Fecha de inicio no concuerda con proyecto")
                                else:
                                    roles = request.POST.getlist("roles")
                                    newFase.orden=orden.count()+1
                                    newFase.save()
                                    for rol in roles:
                                        newFase.roles.add(rol)
                                        newFase.save()
                                    return render_to_response('fases/creacion_correcta.html',{'id_proyecto':id_proyecto}, context_instance=RequestContext(request))
                        else:
                                roles = request.POST.getlist("roles")
                                newFase.orden=1
                                newFase.save()
                                for rol in roles:
                                    newFase.roles.add(rol)
                                    newFase.save()
                                return render_to_response('fases/creacion_correcta.html',{'id_proyecto':id_proyecto}, context_instance=RequestContext(request))
    else:
        formulario = CrearFaseForm(initial={'descripcion':fase.descripcion, 'maxItems':fase.maxItems, 'fInicio':fase.fInicio, 'orden':fase.orden, 'nombre':fase.nombre}) #'fInicio':datetime.strptime(str(fase.fInicio),'%Y-%m-%d').strftime('%d/%m/%y')
    return render_to_response('fases/registrarFase.html',{'formulario':formulario}, context_instance=RequestContext(request))
예제 #4
0
proyecto2 = Proyecto(nombre='beta project', descripcion='este proyecto corresponde a Homero Simpson', costo_temporal=10,
                     costo_monetario=10, lider=usuario2)
proyecto3 = Proyecto(nombre='gamma project', descripcion='este proyecto corresponde a Walter White', costo_temporal=10,
                     costo_monetario=10, lider=usuario3)
proyecto4 = Proyecto(nombre='delta project', descripcion='este proyecto corresponde a John Snow', costo_temporal=10,
                     costo_monetario=10, lider=usuario4)
proyecto5 = Proyecto(nombre='epsilon project', descripcion='este proyecto corresponde a Bruce Banner',
                     costo_temporal=10, costo_monetario=10, lider=usuario5)

proyecto1.save()
proyecto2.save()
proyecto3.save()
proyecto4.save()
proyecto5.save()

fase1 = Fase(nombre='primera fase', descripcion='primera fase ', proyecto=proyecto1)
fase2 = Fase(nombre='segunda fase', descripcion='segunda fase', proyecto=proyecto1)
fase3 = Fase(nombre='tercera fase', descripcion='tercera fase', proyecto=proyecto1)
fase4 = Fase(nombre='cuarta fase', descripcion='cuarta fase', proyecto=proyecto1)
fase5 = Fase(nombre='quinta fase', descripcion='quinta fase', proyecto=proyecto1)

fase1.save()
fase2.save()
fase3.save()
fase4.save()
fase5.save()

tipo1= Tipo_Item(nombre='requerimiento funcional',descripcion='representa un requerimiento funcional para la fase',fase=fase1)
tipo2= Tipo_Item(nombre='requerimiento no funcional',descripcion='representa un requerimiento no funcional para la fase',fase=fase1)
tipo3= Tipo_Item(nombre='caso de uso',descripcion='representa casos de uso para la fase',fase=fase1)
tipo4= Tipo_Item(nombre='diagrama',descripcion='representa cualquier tipo de diagrama',fase=fase1)