Exemple #1
0
    def save(self, commit=True):
        cleaned_data = super(SprintUpdateUserStoryForm, self).clean()
        #usuario = Usuario.objects.get(user=self.instance)
        #proyecto = Proyecto.objects.get(pk=self.instance.pk)

        sprint = super(SprintUpdateUserStoryForm, self).save(commit=True)

        user_story = UserStory.objects.get(pk=self.cleaned_data['id'])

        if user_story.usuario != cleaned_data['desarrollador']:
            user_story.usuario = self.cleaned_data['desarrollador']
            historial_us = HistorialUserStory(user_story=user_story, operacion='modificado', campo="desarrollador",
                                              valor=self.cleaned_data['desarrollador'], usuario=self.user)
            historial_us.save()

        #if user_story.flujo != self.cleaned_data['flujo']:
        #    user_story.flujo = self.cleaned_data['flujo']
        #    historial_us = HistorialUserStory(user_story=user_story, operacion='modificado', campo="flujo",
        #                                          valor=self.cleaned_data['flujo'], usuario=self.user)
        #    historial_us.save()

        user_story.sprint = self.cleaned_data['sprint']

        user_story.estado = self.cleaned_data['estado']
        user_story.save()

        return sprint
Exemple #2
0
    def save(self, commit=True):
        cleaned_data = super(SprintUpdateUserStoryForm, self).clean()
        #usuario = Usuario.objects.get(user=self.instance)
        #proyecto = Proyecto.objects.get(pk=self.instance.pk)

        sprint = super(SprintUpdateUserStoryForm, self).save(commit=True)

        user_story = UserStory.objects.get(pk=self.cleaned_data['id'])

        if user_story.usuario != cleaned_data['desarrollador']:
            user_story.usuario = self.cleaned_data['desarrollador']
            historial_us = HistorialUserStory(
                user_story=user_story,
                operacion='modificado',
                campo="desarrollador",
                valor=self.cleaned_data['desarrollador'],
                usuario=self.user)
            historial_us.save()

        #if user_story.flujo != self.cleaned_data['flujo']:
        #    user_story.flujo = self.cleaned_data['flujo']
        #    historial_us = HistorialUserStory(user_story=user_story, operacion='modificado', campo="flujo",
        #                                          valor=self.cleaned_data['flujo'], usuario=self.user)
        #    historial_us.save()

        user_story.sprint = self.cleaned_data['sprint']

        user_story.estado = self.cleaned_data['estado']
        user_story.save()

        return sprint
Exemple #3
0
    def save(self, commit=True):
        print "saaaaa"
        cleaned_data = super(AgregarNotaForm, self).clean()
        #usuario = Usuario.objects.get(user=self.instance)
        #proyecto = Proyecto.objects.get(pk=self.instance.pk)

        sprint = super(AgregarNotaForm, self).save(commit=True)

        user_story = UserStory.objects.get(pk=self.cleaned_data['id'].pk)
        #proyecto = Proyecto.objects.get(pk=self.cleaned_data['proyecto'].pk)

        nota = Nota()
        nota.texto = self.cleaned_data['texto']
        nota.user_story = user_story
        nota.usuario = self.user

        print "save nota = %s" % user_story

        user_story.estado = 'Aprobado'
        user_story.save()

        tarea = Tarea()
        tarea.user_story = user_story
        tarea.descripcion = "Aprobar user story"
        tarea.horas_de_trabajo = 0
        tarea.sprint = sprint
        tarea.flujo = user_story.flujo
        tarea.actividad = user_story.userstorydetalle.actividad
        tarea.estado = user_story.userstorydetalle.estado
        tarea.tipo = 'Cambio de Estado'
        tarea.usuario = self.user
        tarea.save()

        historial_us = HistorialUserStory(user_story=user_story, operacion='aprobado', usuario=self.user)
        historial_us.save()






        nota.save()

        return sprint
Exemple #4
0
    def save(self, commit=True):
        cleaned_data = super(SprintAsignarUserStoryForm, self).clean()
        #usuario = Usuario.objects.get(user=self.instance)
        #proyecto = Proyecto.objects.get(pk=self.instance.pk)

        sprint = super(SprintAsignarUserStoryForm, self).save(commit=True)

        user_story = UserStory.objects.get(pk=self.data.get('user_story'))



        user_story.usuario = self.cleaned_data['desarrollador']
        historial_us = HistorialUserStory(user_story=user_story, operacion='modificado', campo="desarrollador",
                                              valor=self.cleaned_data['desarrollador'], usuario=self.user)
        historial_us.save()
        #user_story.flujo = self.cleaned_data['flujo']
        #historial_us = HistorialUserStory(user_story=user_story, operacion='modificado', campo="flujo",
        #                                      valor=self.cleaned_data['flujo'], usuario=self.user)
        #historial_us.save()
        user_story.sprint = sprint
        historial_us = HistorialUserStory(user_story=user_story, operacion='modificado', campo="sprint",
                                              valor=sprint, usuario=self.user)
        historial_us.save()
        user_story.estado = 'Activo'

        historial_us = HistorialUserStory(user_story=user_story, operacion='modificado', campo="estado",
                                              valor='Activo', usuario=self.user)
        historial_us.save()

        user_story.save()


        actividades = user_story.flujo.actividades.all()
        estados = actividades[0].estados.all()
        existe = True
        try:
            UserStoryDetalle.objects.get(user_story=user_story)
        except ObjectDoesNotExist:
            print 'No existe el user story!'
            existe = False
        if existe:
            pass
        else:
            detalle = UserStoryDetalle(user_story=user_story, actividad=actividades[0], estado=estados[0])
            detalle.save()

        return sprint
Exemple #5
0
def desasignar_user_story(request, pk_proyecto, pk_sprint, pk_user_story):
    """
    Funcion que realiza la desasignacion de un user story a un sprint, flujo y developer
    @param request: user story
    @param pk_proyecto: clave primaria de proyecto
    @param pk_sprint: clave primaria de sprint
    @param pk_user_story: clave primaria de user story
    @return: template con texto renderizado
    """
    template = 'sprints/sprint_gestionar_delete.html'
    proyecto = get_object_or_404(Proyecto, pk=pk_proyecto)
    sprint = get_object_or_404(Sprint, pk=pk_sprint)
    user_story = get_object_or_404(UserStory, pk=pk_user_story)
    usuario = request.user
    if request.method == 'POST':

        if str(user_story.estado) == 'Finalizado' or str(
                user_story.estado) == 'Aprobado':
            mensaje = 'No se puede desasignar del sprint un user story Finalizado o Aprobado'

            return render(request, template, locals())

        else:
            user_story.estado = 'No asignado'
            user_story.sprint = None
            #user_story.flujo = None
            user_story.usuario = None
            user_story.save()

            historial_us = HistorialUserStory(user_story=user_story,
                                              operacion='modificado',
                                              campo="desarrollador",
                                              valor='Ninguno',
                                              usuario=usuario)
            historial_us.save()
            historial_us = HistorialUserStory(user_story=user_story,
                                              operacion='modificado',
                                              campo="sprint",
                                              valor='Ninguno',
                                              usuario=usuario)
            historial_us.save()
            #historial_us = HistorialUserStory(user_story=user_story, operacion='modificado', campo="flujo",
            #                                      valor='Ninguno', usuario=usuario)
            #historial_us.save()

            detalle = UserStoryDetalle.objects.get(user_story=user_story)
            detalle.delete()

            return HttpResponseRedirect(
                reverse('sprints:gestionar', args=[pk_proyecto, pk_sprint]))

    return render(request, template, locals())
Exemple #6
0
def descartar_user_story(request, pk_proyecto, pk_sprint, pk_user_story):
    """
    Metodo que descarta un user story

    @param request:
    @type

    @param pk_proyecto: clave primaria del proyecto al cual corresponde el user story
    @type

    @param pk_user_story: clave primaria del user story
    @type

    @rtype: django.http.HttpResponseRedirect
    @return: Renderiza user_stories/delete.html para obtener el formulario o
            redirecciona a la vista index del sprint backlog de User Stories si el user story fue descartado.
    """
    template = 'sprints/user_story_descartar.html'
    proyecto = get_object_or_404(Proyecto, pk=pk_proyecto)
    sprint = get_object_or_404(Sprint, pk=pk_sprint)
    user_story = get_object_or_404(UserStory, pk=pk_user_story)
    usuario = request.user
    if request.method == 'POST':

        if str(user_story.estado) == 'Finalizado' or str(user_story.estado) == 'Aprobado':
            mensaje = 'No se puede descartar un user story Finalizado o Aprobado'

            return render(request, template, locals())

        else:
            user_story.estado = 'Descartado'
            user_story.save()

            historial_us = HistorialUserStory(user_story=user_story, operacion='descartado', usuario=usuario)
            historial_us.save()

            return HttpResponseRedirect(reverse('sprints:backlog', args=[proyecto.pk, sprint.pk]))

    return render(request, template, locals())
Exemple #7
0
def desasignar_user_story(request, pk_proyecto, pk_sprint, pk_user_story):
    """
    Funcion que realiza la desasignacion de un user story a un sprint, flujo y developer
    @param request: user story
    @param pk_proyecto: clave primaria de proyecto
    @param pk_sprint: clave primaria de sprint
    @param pk_user_story: clave primaria de user story
    @return: template con texto renderizado
    """
    template = 'sprints/sprint_gestionar_delete.html'
    proyecto = get_object_or_404(Proyecto, pk=pk_proyecto)
    sprint = get_object_or_404(Sprint, pk=pk_sprint)
    user_story = get_object_or_404(UserStory, pk=pk_user_story)
    usuario = request.user
    if request.method == 'POST':

        if str(user_story.estado) == 'Finalizado' or str(user_story.estado) == 'Aprobado':
            mensaje = 'No se puede desasignar del sprint un user story Finalizado o Aprobado'

            return render(request, template, locals())

        else:
            user_story.estado = 'No asignado'
            user_story.sprint = None
            #user_story.flujo = None
            user_story.usuario = None
            user_story.save()

            historial_us = HistorialUserStory(user_story=user_story, operacion='modificado', campo="desarrollador",
                                                  valor='Ninguno', usuario=usuario)
            historial_us.save()
            historial_us = HistorialUserStory(user_story=user_story, operacion='modificado', campo="sprint",
                                                  valor='Ninguno', usuario=usuario)
            historial_us.save()
            #historial_us = HistorialUserStory(user_story=user_story, operacion='modificado', campo="flujo",
            #                                      valor='Ninguno', usuario=usuario)
            #historial_us.save()


            #detalle = UserStoryDetalle.objects.get(user_story=user_story)
            #detalle.delete()

            return HttpResponseRedirect(reverse('sprints:gestionar', args=[pk_proyecto, pk_sprint]))

    return render(request, template, locals())
Exemple #8
0
    def save(self, commit=True):
        cleaned_data = super(SprintAsignarUserStoryForm, self).clean()
        #usuario = Usuario.objects.get(user=self.instance)
        #proyecto = Proyecto.objects.get(pk=self.instance.pk)

        sprint = super(SprintAsignarUserStoryForm, self).save(commit=True)

        user_story = UserStory.objects.get(pk=self.cleaned_data['user_story'].pk)

        old_flujo = user_story.flujo

        user_story.flujo = self.cleaned_data['flujo']
        user_story.estado = 'Activo'

        user_story.usuario = self.cleaned_data['desarrollador']
        user_story.sprint = sprint

        historial_us = HistorialUserStory(user_story=user_story, operacion='modificado', campo="desarrollador",
                                              valor=self.cleaned_data['desarrollador'], usuario=self.user)
        historial_us.save()

        historial_us = HistorialUserStory(user_story=user_story, operacion='modificado', campo="flujo",
                                              valor=self.cleaned_data['flujo'], usuario=self.user)
        historial_us.save()

        historial_us = HistorialUserStory(user_story=user_story, operacion='modificado', campo="sprint",
                                              valor=sprint, usuario=self.user)
        historial_us.save()


        historial_us = HistorialUserStory(user_story=user_story, operacion='modificado', campo="estado",
                                              valor='Activo', usuario=self.user)
        historial_us.save()

        user_story.save()


        actividades = user_story.flujo.actividades.all()
        print "Actividades asignar %s" % actividades
        for a in actividades:
            print "act: %s - %s" % (a.pk, a)
        estados = actividades[0].estados.all()
        existe = True
        try:
            detalle = UserStoryDetalle.objects.get(user_story=user_story)
            if detalle.user_story.flujo == user_story.flujo:
                pass
            # si se cambia de flujo a un user_story pendiente
            else:

                detalle.actividad = actividades[0]
                detalle.estado = estados[0]
                detalle.save()
        except ObjectDoesNotExist:
            print 'No existe el user story!'
            existe = False
        if existe:
            pass
        else:
            print "act_else: %s - %s" % (actividades[0].pk, actividades[0])
            detalle = UserStoryDetalle(user_story=user_story, actividad=actividades[0], estado=estados[0])
            detalle.save()

        return sprint
Exemple #9
0
    def save(self, commit=True):
        cleaned_data = super(SprintAsignarUserStoryForm, self).clean()
        #usuario = Usuario.objects.get(user=self.instance)
        #proyecto = Proyecto.objects.get(pk=self.instance.pk)

        sprint = super(SprintAsignarUserStoryForm, self).save(commit=True)

        user_story = UserStory.objects.get(pk=self.data.get('user_story'))

        user_story.usuario = self.cleaned_data['desarrollador']
        historial_us = HistorialUserStory(
            user_story=user_story,
            operacion='modificado',
            campo="desarrollador",
            valor=self.cleaned_data['desarrollador'],
            usuario=self.user)
        historial_us.save()
        #user_story.flujo = self.cleaned_data['flujo']
        #historial_us = HistorialUserStory(user_story=user_story, operacion='modificado', campo="flujo",
        #                                      valor=self.cleaned_data['flujo'], usuario=self.user)
        #historial_us.save()
        user_story.sprint = sprint
        historial_us = HistorialUserStory(user_story=user_story,
                                          operacion='modificado',
                                          campo="sprint",
                                          valor=sprint,
                                          usuario=self.user)
        historial_us.save()
        user_story.estado = 'Activo'

        historial_us = HistorialUserStory(user_story=user_story,
                                          operacion='modificado',
                                          campo="estado",
                                          valor='Activo',
                                          usuario=self.user)
        historial_us.save()

        user_story.save()

        actividades = user_story.flujo.actividades.all()
        estados = actividades[0].estados.all()
        existe = True
        try:
            UserStoryDetalle.objects.get(user_story=user_story)
        except ObjectDoesNotExist:
            print 'No existe el user story!'
            existe = False
        if existe:
            pass
        else:
            detalle = UserStoryDetalle(user_story=user_story,
                                       actividad=actividades[0],
                                       estado=estados[0])
            detalle.save()

        return sprint