def createProject(request): """ *Vista para la creación de proyectos en el sistema. Opción válida para usuarios con rol de ``Administrador``.* :param request: HttpRequest necesario para crear proyectos, es la solicitud de la acción. :param args: Argumentos para el modelo ``Proyecto``. :param kwargs: Keyword Arguments para la el modelo ``Proyecto``. :return: Proporciona la pagina ``createproject.html`` con el formulario correspondiente Crea el proyecto en el sistema regresando al menu principal """ admin = request.user mensajes = [] if request.method == 'POST': form = NewProjectForm(request.POST) form.fields["lider_proyecto"].queryset = Usuario.objects.exclude(pk__in=(admin.id, -1), is_active=True) if form.is_valid(): form.save() proyectoNuevo = Proyecto.objects.get(nombre=form["nombre"].value()) # logger.info('El usuario ' + request.user.username + ' ha creado el proyecto: ' + # form["nombre"].value() + ' dentro del sistema') vincularLider(proyectoNuevo, form["lider_proyecto"].value()) # Crea el rol Comite de cambios y asigna al Lider a este grupo. grupoComite = Group(name="ComiteDeCambios-"+str(proyectoNuevo.id)) grupoComite.save() rolComite = Rol(grupo=grupoComite, proyecto=proyectoNuevo) rolComite.save() grupoComite.user_set.add(proyectoNuevo.lider_proyecto) error = 0 mensaje = 'Proyecto: ' + proyectoNuevo.nombre + '. Creado con exito. Configuracion inicial aplicada.' mensajes.append(mensaje) request.session['messages'] = mensajes request.session['error'] = error return HttpResponseRedirect('/projectlist/') else: form = NewProjectForm() form.fields["lider_proyecto"].queryset = Usuario.objects.exclude(pk__in=(admin.id, -1), is_active=True) return render(request, 'proyecto/createproject.html', {'user': request.user, 'form': form},)
def test_changeProject_response(self): """ *Test para la vista de modificacion de proyectos en el sistema* """ print '\nInicio - Prueba: changeProject' self.user = Usuario.objects.get(username='******') dato1 = {'nombre': 'Proyecto', 'lider_proyecto': '1', 'estado': 'PEN', 'descripcion': 'Test:CreadoProyecto'} login = self.client.login(username='******', password='******') self.assertTrue(login) form = NewProjectForm(dato1) if form.is_valid(): form.save() print 'Proyecto: '+form['nombre'].value()+' creado exitosamente en la Base de Datos' else: print 'Error en los datos del formulario de creación' dato2 = {'nombre': 'ProyectoModificado', 'lider_proyecto': '1', 'estado': 'PEN', 'descripcion': 'Test:ModificadoProyecto'} request = self.factory.post('changeproject/', dato2) request.user = self.user request.session = {} response = changeProject(request, '1') self.assertEqual(response.status_code, 302, 'Error al modificar el Proyecto') print 'Proyecto Modificado Exitosamente' print Proyecto.objects.all() print 'Fin - Prueba: changeProject'