Exemplo n.º 1
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')
Exemplo n.º 2
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')
Exemplo n.º 3
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')
Exemplo n.º 4
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') 
Exemplo n.º 5
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')
Exemplo n.º 6
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')
Exemplo n.º 7
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')
Exemplo n.º 8
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')
Exemplo n.º 9
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')
Exemplo n.º 10
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')
Exemplo n.º 11
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')
Exemplo n.º 12
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')
Exemplo n.º 13
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')
Exemplo n.º 14
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')
Exemplo n.º 15
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')