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
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
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())
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())
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
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())
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
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
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