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