Пример #1
0
def perfil(nome,id):    
    usuario = Usuario.query.get(id)
    if usuario:
        if check_login(0):
            if usuario.id == session['user']['id']:
                return render_template('/usuario/perfil.html', usuario=usuario)
            else:
                if usuario.privado == False:
                    if usuario.permissoes == 0:
                        return render_template('/usuario/perfil.html', usuario=usuario)
                    else:
                        flash(u'Usuario não foi encontrado!', 'danger')
                        return redirect('/inicio')
                else:
                    flash(u'Usuario possui perfil privado', 'danger')
                    return redirect('/inicio')
        elif check_login(1):
            return render_template('/usuario/perfil.html', usuario=usuario)
        else:
            if usuario.privado == False:
                if usuario.permissoes == 0:
                    return render_template('/usuario/perfil.html', usuario=usuario)
                else:
                    flash(u'Usuario não foi encontrado!', 'danger')
                    return redirect('/inicio')
            else:
                flash(u'Usuario possui perfil privado', 'danger')
                return redirect('/inicio')
    else:
        flash(u'Usuario não foi encontrado!', 'danger')
        return redirect('/inicio')
Пример #2
0
def alterar_privacidade(id):
    if check_login(0):           
        usuario = Usuario.query.get(id)        
        if usuario:
            if usuario.id == session['user']['id']:
                if usuario.privado == True:
                    usuario.privado = False
                    db.session.add(usuario)
                    db.session.commit()
                    flash(u'Seu perfil agora é público!', 'success')
                    return redirect('/perfil/'+usuario.nome+'/'+str(usuario.id))
                else:
                    usuario.privado = True
                    db.session.add(usuario)
                    db.session.commit()
                    flash(u'Seu perfil agora é privado!', 'success')
                    return redirect('/perfil/'+usuario.nome+'/'+str(usuario.id))
            else:
                flash(u'Ocorreu um erro!', 'danger')
                return redirect('/painel_usuario')
        else:
            flash(u'Ocorreu um erro!', 'danger')
            return redirect('/painel_usuario')
    else:
        return redirect('/entrar')
Пример #3
0
def remover_membro(nome_projeto,id_usuario):
    if check_login(0):
        projeto = Projeto.query.filter_by(nome = nome_projeto).first()
        if projeto:
            if projeto.id_autor == session['user']['id']:
                usuario = Usuario.query.get(id_usuario)
                if usuario in projeto.usuarios and usuario.id != projeto.id_autor:
                    for tarefa in projeto.tarefas:
                        if usuario in tarefa.usuarios:
                            tarefa.usuarios.remove(usuario)
                            db.session.add(tarefa)
                            db.session.commit()

                    projeto.usuarios.remove(usuario)
                    db.session.add(projeto) 
                    db.session.commit()
                    flash(u'Membro removido com sucesso!', 'success')
                    return redirect('/detalhes/'+projeto.nome)
                else:
                    flash(u'Ocorreu um erro ao remover o membro!', 'danger')
                    return redirect('/painel_usuario')
            else:
                flash(u'Você não possui permissão para realizar a ação!', 'danger')
                return redirect('/painel_usuario')
        else:
            flash(u'Projeto não existe!', 'danger')
            return redirect('/painel_usuario')
    else:
        return redirect('/entrar')
Пример #4
0
def criar_noticia(id_projeto):
    if check_login(0):
        projeto = Projeto.query.get(id_projeto)
        if projeto:
            usuario = Usuario.query.get(session['user']['id'])
            if pertence_projeto(usuario, projeto):
                form = formNoticia()
                if form.validate_on_submit():
                    nome = request.form['nome']
                    conteudo = request.form['conteudo']
                    data_publicacao = date.today()

                    noticia = Noticia(nome=nome,
                                      conteudo=conteudo,
                                      data_publicacao=data_publicacao,
                                      id_usuario=session['user']['id'],
                                      id_projeto=projeto.id)
                    projeto.noticias.append(noticia)
                    db.session.add(projeto)
                    db.session.commit()
                    flash(u'Notícia adicionada com sucesso!', 'success')
                    return redirect('/noticias/' + projeto.nome)
                return render_template('noticia/criar.html',
                                       form=form,
                                       projeto=projeto)
            else:
                flash(u'Você não faz parte deste projeto!', 'danger')
                return redirect('/painel_usuario')
        else:
            flash(u'Projeto não existe!', 'danger')
            return redirect('/painel_usuario')
    else:
        return redirect('/entrar')
Пример #5
0
def entrar():
    if check_login(2):
        form=formLogin()
        if form.validate_on_submit():
            usuario = Usuario.query.filter_by(email = request.form['email']).first()
            senha = md5(request.form['senha'].encode())
            if usuario:
                if usuario.senha == senha.hexdigest():
                    usuario = usuario.as_dict()
                    if usuario["permissoes"] == False:
                        session['user'] = usuario
                        session['logado'] = 'usuario'
                        flash(u'Login efetuado com sucesso!', 'success')
                        return redirect('/painel_usuario')    
                    elif usuario['permissoes'] == True:
                        session['user'] = usuario
                        session['logado'] = 'administrador'
                        flash(u'Login efetuado com sucesso!', 'success')
                        return redirect('/projetos')    
                    else:
                        return redirect('/entrar')
                else:
                    flash(u'Senha incorreta!', 'danger')
                    return redirect('/entrar')
            else:
                flash(u'Email incorreto!', 'danger')
                return redirect('/entrar')
        return render_template('/usuario/entrar.html',form=form)
    else:
        return redirect("/inicio")
Пример #6
0
def criar_arquivo(id_projeto):
    if check_login(0):
        projeto = Projeto.query.get(id_projeto)
        if projeto:
            usuario = Usuario.query.get(session['user']['id'])
            if pertence_projeto(usuario, projeto):
                form = formArquivo()
                if form.validate_on_submit():
                    nome = request.form['nome']
                    arquivo = form.arquivo.data
                    extencao = arquivo.filename.split('.')[-1].lower()
                    data_publicacao = date.today()

                    novo_nome_arquivo = uuid4()
                    is_permitido = permitido(extencao)

                    if is_permitido:
                        novo_nome_arquivo = str(
                            novo_nome_arquivo) + '.' + extencao
                        arquivo_aux = secure_filename(arquivo.filename)

                        diretorio = os.path.join(
                            app.config['UPLOAD_FOLDER'] + 'arquivos/',
                            arquivo_aux)

                        diretorio_novo = os.path.join(
                            app.config['UPLOAD_FOLDER'] + 'arquivos/',
                            novo_nome_arquivo)

                        arquivo.save(diretorio)
                        os.rename(diretorio, diretorio_novo)

                        arquivo = Arquivo(nome=nome + '.' + extencao,
                                          data_publicacao=data_publicacao,
                                          id_usuario=session['user']['id'],
                                          id_projeto=projeto.id,
                                          caminho=novo_nome_arquivo)

                        projeto.arquivos.append(arquivo)
                        db.session.add(projeto)
                        db.session.commit()
                        flash(u'Arquivo adicionado com sucesso!', 'success')
                        return redirect('/arquivos/' + projeto.nome)
                    else:
                        flash(u'Extensão de arquivo não permitida!', 'danger')
                        return render_template('arquivo/criar.html',
                                               form=form,
                                               projeto=projeto)
                return render_template('arquivo/criar.html',
                                       form=form,
                                       projeto=projeto)
            else:
                flash(u'Você não faz parte deste projeto!', 'danger')
                return redirect('/painel_usuario')
        else:
            flash(u'Projeto não existe!', 'danger')
            return redirect('/painel_usuario')
    else:
        return redirect('/entrar')
Пример #7
0
def adicionar_membro_tarefa(nome_projeto, id_tarefa, id_usuario):
    if check_login(0):
        projeto = Projeto.query.filter_by(nome=nome_projeto).first()
        if projeto:
            usuario = Usuario.query.get(session['user']['id'])
            if pertence_projeto(usuario, projeto):
                tarefa = Tarefa.query.get(id_tarefa)
                if tarefa:
                    if tarefa.id_projeto == projeto.id:
                        if tarefa.id_autor == session['user']['id'] or session[
                                'user']['id'] == projeto.id_autor:
                            membro = Usuario.query.get(id_usuario)
                            if membro:
                                if membro in projeto.usuarios:
                                    if membro not in tarefa.usuarios:
                                        tarefa.usuarios.append(membro)
                                        db.session.add(tarefa)
                                        db.session.commit()
                                        flash(u'Membro adicionado a tarefa!',
                                              'success')
                                        return redirect('/editar_tarefa/' +
                                                        projeto.nome + '/' +
                                                        str(tarefa.id))
                                    else:
                                        flash(
                                            u'Usuário ja está atribuido a tarefa!',
                                            'danger')
                                        return redirect('/tarefas/' +
                                                        projeto.nome)
                                else:
                                    flash(u'Usuário não pertence ao projeto!',
                                          'danger')
                                    return redirect('/tarefas/' + projeto.nome)
                            else:
                                flash(u'Usuário não existe!', 'danger')
                                return redirect('/tarefas/' + projeto.nome)
                        else:
                            flash(
                                u'Você não possui permissão para realizar a ação!',
                                'danger')
                            return redirect('/tarefas/' + projeto.nome)
                    else:
                        flash(u'Tarefa não esta vinculada ao projeto',
                              'danger')
                        return redirect('/tarefas/' + projeto.nome)
                else:
                    flash(u'Tarefa não existe!', 'danger')
                    return redirect('/detalhes/' + projeto.nome)
            else:
                flash(u'Você não possui permissão para realizar a ação!',
                      'danger')
                return redirect('/tarefas/' + projeto.nome)
        else:
            flash(u'Projeto não existe!', 'danger')
            return redirect('/painel_usuario')
    else:
        return redirect('/entrar')
Пример #8
0
def painel_usuario():
    if check_login(0):
        usuario = Usuario.query.get(session['user']['id'])
        if usuario:
            return render_template('usuario/painel.html',usuario=usuario)
        else:
            flash(u'Ocorreu um erro!', 'danger')
            return redirect('/sair')
    else:
        return redirect('/entrar')
Пример #9
0
def deletar_usuario(id):
    if check_login(1):
        usuario = Usuario.query.get(id)
        if usuario:
            if usuario.permissoes == False:
                for projeto in usuario.projetos:
                    if projeto.id_autor == usuario.id:
                        for arquivo in projeto.arquivos:
                            os.remove(app.config['UPLOAD_FOLDER']+'arquivos/'+arquivo.caminho)
                        projeto.arquivos.clear()

                        for foto in projeto.fotos:
                            os.remove(app.config['UPLOAD_FOLDER']+'fotos/'+foto.caminho)
                        projeto.fotos.clear()

                        for tarefa in projeto.tarefas:
                            tarefa.usuarios.clear()
                            db.session.add(tarefa)
                            db.session.commit()
                        projeto.tarefas.clear()

                        projeto.usuarios.clear()
                        projeto.noticias.clear()
                        projeto.repositorios.clear()
                            
                        db.session.commit()
                        db.session.delete(projeto)
                        db.session.commit()
                    else:
                        projeto.usuarios.remove(usuario)
                for tarefa in usuario.tarefas:
                    if tarefa.id_autor == usuario.id:
                        for membro in tarefa.usuarios:
                            tarefa.usuarios.remove(membro)
                            db.session.add(tarefa) 
                            db.session.commit()
                        tarefa.usuarios.clear()
                        db.session.delete(tarefa)
                        db.session.commit()
                    else:
                        tarefa.usuarios.remove(usuario)
                        db.session.add(tarefa) 
                        db.session.commit()
                db.session.delete(usuario)
                db.session.commit()
                flash(u'Usuário deletado com sucesso!', 'success')
                return redirect('/painel_usuario')
            else:
                flash(u'Usuário não pode ser deletado!', 'danger')
                return redirect('/painel_usuario')
        else:
            flash(u'Usuário não existe!', 'danger')
            return redirect('/painel_usuario')
    else:
        return redirect('/entrar')
Пример #10
0
def detalhes(nome):
    projeto = Projeto.query.filter_by(nome = nome).first()
    if projeto: 
        if check_login(0):
            usuario = Usuario.query.get(session['user']['id'])
            if pertence_projeto(usuario, projeto):
                pass
        else:
            pass
        return render_template('projeto/detalhes.html',projeto=projeto)
    else:
        flash(u'Projeto não existe!', 'danger')
        return redirect('/inicio') 
Пример #11
0
def editar_tarefa(nome_projeto, id_tarefa):
    if check_login(0):
        projeto = Projeto.query.filter_by(nome=nome_projeto).first()
        if projeto:
            usuario = Usuario.query.get(session['user']['id'])
            if pertence_projeto(usuario, projeto):
                form = formTarefa()
                tarefa = Tarefa.query.get(id_tarefa)
                if tarefa:
                    if tarefa.id_projeto == projeto.id:
                        if pertence_tarefa(
                                usuario, tarefa
                        ) or session['user']['id'] == projeto.id_autor:
                            if form.validate_on_submit():
                                tarefa = Tarefa.query.filter_by(
                                    id=id_tarefa).update(
                                        dict(nome=request.form['nome'],
                                             prioridade=request.
                                             form['prioridade'],
                                             status=request.form['status'],
                                             tipo=request.form['tipo'],
                                             data_alteracao=date.today()))
                                db.session.commit()
                                flash(u'Tarefa editada com sucesso!',
                                      'success')
                                return redirect('/tarefas/' + projeto.nome)
                            return render_template('tarefa/editar.html',
                                                   form=form,
                                                   projeto=projeto,
                                                   tarefa=tarefa)
                        else:
                            flash(
                                u'Você não tem permissão para realizar a ação!',
                                'danger')
                            return redirect('/entrar')
                    else:
                        flash(
                            u'Tarefa não existe ou não está vinculada ao projeto!',
                            'danger')
                        return redirect('/tarefas/' + projeto.nome)
                else:
                    flash(u'Tarefa não existe!', 'danger')
                    return redirect('/detalhes/' + projeto.nome)
            else:
                flash(u'Você não faz parte deste projeto!', 'danger')
                return redirect('/painel_usuario')
        else:
            flash(u'Projeto não existe!', 'danger')
            return redirect('/painel_usuario')
    else:
        return redirect('/entrar')
Пример #12
0
def deletar_projeto(id):
    if check_login(0) or check_login(1):
        projeto = Projeto.query.get(id)
        if projeto:
            if projeto.id_autor == session['user']['id'] or check_login(1):
                for arquivo in projeto.arquivos:
                    os.remove(app.config['UPLOAD_FOLDER']+'arquivos/'+arquivo.caminho)
                projeto.arquivos.clear()

                for foto in projeto.fotos:
                    os.remove(app.config['UPLOAD_FOLDER']+'fotos/'+foto.caminho)
                projeto.fotos.clear()

                for tarefa in projeto.tarefas:
                    tarefa.usuarios.clear()
                    db.session.add(tarefa)
                    db.session.commit()
                projeto.tarefas.clear()

                projeto.usuarios.clear()
                projeto.noticias.clear()
                projeto.repositorios.clear()
                    
                db.session.commit()
                db.session.delete(projeto)
                db.session.commit()
                flash(u'Projeto deletado com sucesso!', 'success')
                return redirect('/painel_usuario')
            else:
                flash(u'Você não possui permissão para realizar a ação!', 'danger')
                return redirect('/painel_usuario')
        else:
            flash(u'Projeto não existe!', 'danger')
            return redirect('/painel_usuario')
    else:
        return redirect('/entrar')
Пример #13
0
def editar_repositorio(nome_projeto, id_repositorio):
    if check_login(0):
        projeto = Projeto.query.filter_by(nome=nome_projeto).first()
        if projeto:
            usuario = Usuario.query.get(session['user']['id'])
            if pertence_projeto(usuario, projeto):
                form = formRepo()
                repositorio = Repositorio.query.get(id_repositorio)
                if repositorio:
                    if repositorio.id_projeto == projeto.id:
                        if repositorio.id_usuario == session['user'][
                                'id'] or session['user'][
                                    'id'] == projeto.id_autor:
                            if form.validate_on_submit():
                                repositorio = Repositorio.query.filter_by(
                                    id=id_repositorio).update(
                                        dict(nome=request.form['nome'],
                                             link=request.form['link'],
                                             data_alteracao=date.today()))
                                db.session.commit()
                                flash(u'Repositório editado com sucesso!',
                                      'success')
                                return redirect('/repositorios/' +
                                                projeto.nome)
                            return render_template('repositorio/editar.html',
                                                   form=form,
                                                   projeto=projeto,
                                                   repositorio=repositorio)
                        else:
                            flash(
                                u'Você não tem permissão para realizar a ação!',
                                'danger')
                            return redirect('/entrar')
                    else:
                        flash(u'Repositório não está vinculado ao projeto!',
                              'danger')
                        return redirect('/repositorios/' + projeto.nome)
                else:
                    flash(u'Repositório não existe!', 'danger')
                    redirect('/painel_usuario')
            else:
                flash(u'Você não faz parte deste projeto!', 'danger')
                return redirect('/painel_usuario')
        else:
            flash(u'Projeto não existe!', 'danger')
            return redirect('/painel_usuario')
    else:
        return redirect('/entrar')
Пример #14
0
def usuarios():
    if check_login(1):
        form = formBusca()
        if form.validate_on_submit():
            busca = request.form['busca']
            usuarios = Usuario.query.filter(Usuario.nome.ilike('%'+busca+'%')).filter_by(permissoes = False).order_by(Usuario.nome).all()
            if usuarios:
                pass
            else:
                flash(u'Busca não encontrou resultado!', 'danger')
                return redirect('/usuarios')
            return render_template('usuario/usuarios.html',usuarios=usuarios,form=form,busca=busca)
        usuarios = Usuario.query.filter_by(permissoes = False).order_by(Usuario.nome).all()
        return render_template('usuario/usuarios.html',usuarios=usuarios,form=form,busca="Todos")
    else:
        return redirect('/entrar')
Пример #15
0
def editar_noticia(nome_projeto, id_noticia):
    if check_login(0):
        projeto = Projeto.query.filter_by(nome=nome_projeto).first()
        if projeto:
            usuario = Usuario.query.get(session['user']['id'])
            if pertence_projeto(usuario, projeto):
                form = formNoticia()
                noticia = Noticia.query.get(id_noticia)
                if noticia:
                    if noticia.id_projeto == projeto.id:
                        if noticia.id_usuario == session['user'][
                                'id'] or session['user'][
                                    'id'] == projeto.id_autor:
                            if form.validate_on_submit():
                                noticia = Noticia.query.filter_by(
                                    id=id_noticia).update(
                                        dict(
                                            nome=request.form['nome'],
                                            conteudo=request.form['conteudo']))
                                db.session.commit()
                                flash(u'Notícia editada com sucesso!',
                                      'success')
                                return redirect('/noticias/' + projeto.nome)
                            return render_template('noticia/editar.html',
                                                   form=form,
                                                   projeto=projeto,
                                                   noticia=noticia)
                        else:
                            flash(
                                u'Você não tem permissão para realizar a ação!',
                                'danger')
                            return redirect('/entrar')
                    else:
                        flash(u'Notícia não está vinculada ao projeto!',
                              'danger')
                        return redirect('/noticias/' + projeto.nome)
                else:
                    flash(u'Noticia não existe!', 'danger')
                    redirect('/painel_usuario')
            else:
                flash(u'Você não faz parte deste projeto!', 'danger')
                return redirect('/painel_usuario')
        else:
            flash(u'Projeto não existe!', 'danger')
            return redirect('/painel_usuario')
    else:
        return redirect('/entrar')
Пример #16
0
def editar_foto(nome_projeto, id_foto):
    if check_login(0):
        projeto = Projeto.query.filter_by(nome=nome_projeto).first()
        if projeto:
            usuario = Usuario.query.get(session['user']['id'])
            if pertence_projeto(usuario, projeto):
                form = formFoto()
                foto = Foto.query.get(id_foto)
                if foto:
                    if foto.id_projeto == projeto.id:
                        if foto.id_usuario == session['user']['id'] or session[
                                'user']['id'] == projeto.id_autor:
                            if request.method == 'POST':
                                if form.validate:
                                    foto = Foto.query.filter_by(
                                        id=id_foto).update(
                                            dict(descricao=request.
                                                 form['descricao']))
                                    db.session.commit()
                                    flash(u'Foto editada com sucesso!',
                                          'success')
                                    return redirect('/fotos/' + projeto.nome)
                            return render_template('foto/editar.html',
                                                   form=form,
                                                   projeto=projeto,
                                                   foto=foto)
                        else:
                            flash(
                                u'Você não tem permissão para realizar a ação!',
                                'danger')
                            return redirect('/entrar')
                    else:
                        flash(u'Foto não está vinculada ao projeto!', 'danger')
                        return redirect('/fotos/' + projeto.nome)
                else:
                    flash(u'Foto não existe!', 'danger')
                    redirect('/painel_usuario')
            else:
                flash(u'Você não faz parte deste projeto!', 'danger')
                return redirect('/painel_usuario')
        else:
            flash(u'Projeto não existe!', 'danger')
            return redirect('/painel_usuario')
    else:
        return redirect('/entrar')
Пример #17
0
def cadastro():
    if check_login(2):
        form = formCadastro()
        if form.validate_on_submit():
            nome = request.form['nome']
            senha = md5(request.form['senha'].encode())
            email = request.form['email']
            data_nascimento = request.form['data']
            usuario = Usuario(nome = nome, senha = senha.hexdigest(), email = email, 
            data_nascimento = data_nascimento, permissoes = 0)
            db.session.add(usuario)
            db.session.commit()
            flash(u'Cadastro efetuado com sucesso!', 'success')
            return redirect("/inicio")
        return render_template('usuario/cadastro.html',form=form)
    else:
        flash(u'Você não pode efetuar o cadastro enquanto logado!', 'danger')
        return redirect("/inicio")
Пример #18
0
def editar_projeto(nome):
    if check_login(0):
        form = formProjeto()
        projeto = Projeto.query.filter_by(nome = nome).first()
        if projeto:
            if projeto.id_autor == session['user']['id']:
                if form.validate_on_submit():
                    projeto = Projeto.query.filter_by(nome = nome).update(dict(nome=request.form['nome'],descricao = request.form['descricao'], status=request.form['status']))
                    db.session.commit()
                    flash(u'Projeto editado com sucesso!', 'success')
                    return redirect('/painel_usuario')
                return render_template('projeto/editar.html',form=form,projeto=projeto)
            else:
                flash(u'Você não possui permissão para realizar a ação!', 'danger')
                return redirect('/painel_usuario')
        else:
            flash(u'Projeto não existe!', 'danger')
            return redirect('/painel_usuario')
    else:
        return redirect('/entrar')
Пример #19
0
def deletar_tarefa(nome_projeto, id_tarefa):
    if check_login(0):
        projeto = Projeto.query.filter_by(nome=nome_projeto).first()
        if projeto:
            usuario = Usuario.query.get(session['user']['id'])
            if pertence_projeto(usuario, projeto):
                tarefa = Tarefa.query.get(id_tarefa)
                if tarefa:
                    if tarefa.id_projeto == projeto.id:
                        if tarefa.id_autor == session['user']['id'] or session[
                                'user']['id'] == projeto.id_autor:
                            for membro in tarefa.usuarios:
                                tarefa.usuarios.remove(membro)
                                db.session.add(tarefa)
                                db.session.commit()
                            tarefa.usuarios.clear()
                            projeto.tarefas.remove(tarefa)
                            db.session.add(projeto)
                            db.session.commit()
                            flash(u'Tarefa deletada com sucesso!', 'success')
                            return redirect('/detalhes/' + projeto.nome)
                        else:
                            flash(
                                u'Você não tem permissão para realizar a ação!',
                                'danger')
                            return redirect('/entrar')
                    else:
                        flash(u'Tarefa não está vinculada ao projeto!',
                              'danger')
                        return redirect('/tarefas/' + projeto.nome)
                else:
                    flash(u'Tarefa não existe!', 'danger')
                    return redirect('/detalhes/' + projeto.nome)
            else:
                flash(u'Você não faz parte deste projeto!', 'danger')
                return redirect('/painel_usuario')
        else:
            flash(u'Projeto não existe!', 'danger')
            return redirect('/painel_usuario')
    else:
        return redirect('/entrar')
Пример #20
0
def criar_projeto():
    if check_login(0):
        form = formProjeto()
        if form.validate_on_submit():
            nome = request.form['nome']
            descricao = request.form['descricao']
            status = request.form['status']
            autor = Usuario.query.get(session['user']['id'])
            if autor:
                projeto = Projeto(nome = nome, descricao = descricao, status = status, id_autor = autor.id)
                projeto.usuarios.append(autor)
                db.session.add(projeto) 
                db.session.commit()
                flash(u'Projeto criado com sucesso!', 'success')
                return redirect('/painel_usuario')
            else:
                flash(u'Ocorreu um erro ao adicionar o projeto!', 'danger')
                return redirect('/entrar')
        return render_template('projeto/criar.html',form=form)
    else:
        return redirect('/entrar')
Пример #21
0
def criar_tarefa(id_projeto):
    if check_login(0):
        projeto = Projeto.query.get(id_projeto)
        if projeto:
            usuario = Usuario.query.get(session['user']['id'])
            if pertence_projeto(usuario, projeto):
                form = formTarefa()
                if form.validate_on_submit():
                    nome = request.form['nome']
                    prioridade = request.form['prioridade']
                    status = request.form['status']
                    tipo = request.form['tipo']
                    data_alteracao = date.today()
                    autor = Usuario.query.get(session['user']['id'])

                    tarefa = Tarefa(nome=nome,
                                    prioridade=prioridade,
                                    status=status,
                                    tipo=tipo,
                                    data_alteracao=data_alteracao,
                                    id_autor=autor.id,
                                    id_projeto=projeto.id)
                    tarefa.usuarios.append(autor)
                    projeto.tarefas.append(tarefa)
                    db.session.add(projeto)
                    db.session.commit()
                    flash(u'Tarefa adicionada com sucesso!', 'success')
                    return redirect('/tarefas/' + projeto.nome)

                return render_template('tarefa/criar.html',
                                       form=form,
                                       projeto=projeto)
            else:
                flash(u'Você não faz parte deste projeto!', 'danger')
                return redirect('/painel_usuario')
        else:
            flash(u'Projeto não existe!', 'danger')
            return redirect('/painel_usuario')
    else:
        return redirect('/entrar')
Пример #22
0
def excluir_arquivo(nome_projeto, id_arquivo):
    if check_login(0):
        projeto = Projeto.query.filter_by(nome=nome_projeto).first()
        if projeto:
            usuario = Usuario.query.get(session['user']['id'])
            if pertence_projeto(usuario, projeto):
                arquivo = Arquivo.query.get(id_arquivo)
                if arquivo:
                    if arquivo.id_projeto == projeto.id:
                        if arquivo.id_usuario == session['user'][
                                'id'] or session['user'][
                                    'id'] == projeto.id_autor:
                            os.remove(app.config['UPLOAD_FOLDER'] +
                                      'arquivos/' + arquivo.caminho)
                            db.session.delete(arquivo)
                            db.session.commit()
                            flash(u'Arquivo deletado com sucesso!', 'success')
                            return redirect('/detalhes/' + projeto.nome)
                        else:
                            flash(
                                u'Você não tem permissão para realizar a ação!',
                                'danger')
                            return redirect('/entrar')
                    else:
                        flash(u'Arquivo não está vinculada ao projeto!',
                              'danger')
                        return redirect('/noticias/' + projeto.nome)
                else:
                    flash(u'Arquivo não existe!', 'danger')
                    redirect('/painel_usuario')
            else:
                flash(u'Você não faz parte deste projeto!', 'danger')
                return redirect('/painel_usuario')
        else:
            flash(u'Projeto não existe!', 'danger')
            return redirect('/painel_usuario')
    else:
        return redirect('/entrar')
Пример #23
0
def deletar_repositorio(nome_projeto, id_repositorio):
    if check_login(0):
        projeto = Projeto.query.filter_by(nome=nome_projeto).first()
        if projeto:
            usuario = Usuario.query.get(session['user']['id'])
            if pertence_projeto(usuario, projeto):
                repositorio = Repositorio.query.get(id_repositorio)
                if repositorio:
                    if repositorio.id_projeto == projeto.id:
                        if repositorio.id_usuario == session['user'][
                                'id'] or session['user'][
                                    'id'] == projeto.id_autor:
                            projeto.repositorios.remove(repositorio)
                            db.session.add(projeto)
                            db.session.commit()
                            flash(u'Repositório deletado com sucesso!',
                                  'success')
                            return redirect('/detalhes/' + projeto.nome)
                        else:
                            flash(
                                u'Você não tem permissão para realizar a ação!',
                                'danger')
                            return redirect('/entrar')
                    else:
                        flash(u'Repositório não está vinculado ao projeto!',
                              'danger')
                        return redirect('/repositorios/' + projeto.nome)
                else:
                    flash(u'Repositório não existe!', 'danger')
                    redirect('/painel_usuario')
            else:
                flash(u'Você não faz parte deste projeto!', 'danger')
                return redirect('/painel_usuario')
        else:
            flash(u'Projeto não existe!', 'danger')
            return redirect('/painel_usuario')
    else:
        return redirect('/entrar')
Пример #24
0
def adicionar_membro(nome):
    if check_login(0):
        projeto = Projeto.query.filter_by(nome = nome).first()
        if projeto:
            usuario = Usuario.query.get(session['user']['id'])
            if usuario in projeto.usuarios:
                projeto.pertence = True
            if projeto.id_autor == session['user']['id']:
                form = formMembro()
                if form.validate_on_submit():
                    email = request.form['email']
                    usuario = Usuario.query.filter_by(email = email).first()
                    if usuario:
                        if usuario not in projeto.usuarios:
                            if usuario.permissoes == False:
                                projeto.usuarios.append(usuario)
                                db.session.add(projeto) 
                                db.session.commit()
                                flash(u'Membro adicionado ao projeto!', 'success')
                                return redirect('/detalhes/'+projeto.nome)
                            else:
                                flash(u'Usuário não pode ser adicionado como membro!', 'danger')
                                return redirect('/adicionar_membro/'+projeto.nome)
                        else:
                            flash(u'Usuário já existe no projeto!', 'danger')
                            return redirect('/adicionar_membro/'+projeto.nome)
                    else:
                        flash(u'Não foi encontrado um usuário com o email fornecido!', 'danger')
                        return redirect('/adicionar_membro/'+projeto.nome)
                return render_template('projeto/adicionar-membro.html',form=form,projeto=projeto)
            else:
                flash(u'Você não possui permissão para realizar a ação!', 'danger')
                return redirect('/painel_usuario')
        else:
            flash(u'Projeto não existe!', 'danger')
            return redirect('/painel_usuario')
    else:
        return redirect('/entrar')
Пример #25
0
def detalhes_noticia(nome_projeto, nome_noticia):
    projeto = Projeto.query.filter_by(nome=nome_projeto).first()
    if projeto:
        noticia = Noticia.query.filter_by(nome=nome_noticia).first()
        if noticia:
            if noticia.id_projeto == projeto.id:
                if check_login(0):
                    usuario = Usuario.query.get(session['user']['id'])
                    if pertence_projeto(usuario, projeto):
                        pass
                    else:
                        pass
                return render_template('noticia/noticia.html',
                                       projeto=projeto,
                                       noticia=noticia)
            else:
                flash(u'Notícia não está vinculada ao projeto!', 'danger')
                return redirect('/noticias/' + projeto.nome)
        else:
            flash(u'Notícia não existe!', 'danger')
            return redirect('/painel_usuario')
    else:
        return redirect('/inicio')
Пример #26
0
def deletar_noticia(nome_projeto, id_noticia):
    if check_login(0):
        projeto = Projeto.query.filter_by(nome=nome_projeto).first()
        if projeto:
            usuario = Usuario.query.get(session['user']['id'])
            if pertence_projeto(usuario, projeto):
                noticia = Noticia.query.get(id_noticia)
                if noticia:
                    if noticia.id_projeto == projeto.id:
                        if noticia.id_usuario == session['user'][
                                'id'] or session['user'][
                                    'id'] == projeto.id_autor:
                            projeto.noticias.remove(noticia)
                            db.session.add(projeto)
                            db.session.commit()
                            flash(u'Notícia deletada com sucesso!', 'success')
                            return redirect('/noticias/' + projeto.nome)
                        else:
                            flash(
                                u'Você não tem permissão para realizar a ação!',
                                'danger')
                            return redirect('/entrar')
                    else:
                        flash(u'Notícia não está vinculada ao projeto!',
                              'danger')
                        return redirect('/noticias/' + projeto.nome)
                else:
                    flash(u'Notícia não existe!', 'danger')
                    redirect('/painel_usuario')
            else:
                flash(u'Você não faz parte deste projeto!', 'danger')
                return redirect('/painel_usuario')
        else:
            flash(u'Projeto não existe!', 'danger')
            return redirect('/painel_usuario')
    else:
        return redirect('/entrar')
Пример #27
0
def criar_repositorio(id_projeto):
    if check_login(0):
        projeto = Projeto.query.get(id_projeto)
        if projeto:
            usuario = Usuario.query.get(session['user']['id'])
            if pertence_projeto(usuario, projeto):
                form = formRepo()
                if form.validate_on_submit():
                    nome = request.form['nome']
                    link = request.form['link']
                    data_publicacao = date.today()
                    data_alteracao = date.today()

                    repositorio = Repositorio(nome=nome,
                                              link=link,
                                              data_publicacao=data_publicacao,
                                              data_alteracao=data_alteracao,
                                              id_usuario=session['user']['id'],
                                              id_projeto=projeto.id)
                    projeto.repositorios.append(repositorio)
                    db.session.add(projeto)
                    db.session.commit()
                    flash(u'Repositório adicionado com sucesso!', 'success')
                    return redirect('/repositorios/' + projeto.nome)

                return render_template('repositorio/criar.html',
                                       form=form,
                                       projeto=projeto)
            else:
                flash(u'Você não faz parte deste projeto!', 'danger')
                return redirect('/painel_usuario')
        else:
            flash(u'Projeto não existe!', 'danger')
            return redirect('/painel_usuario')
    else:
        return redirect('/entrar')