Example #1
0
File: views.py Project: Tzesar/is2
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},)
Example #2
0
File: tests.py Project: Tzesar/is2
 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'