示例#1
0
def adicionar_professor(id):
    if current_user.papel == 'prof':
        prof = Usuario.dbGetUser(id)
        form = AdicionarTurmaProfessorForm()
        form.turma_id.choices = Turma.dbGetAllTurmaIdMateriaTitulo()

        if form.validate_on_submit():
            turma = Turma.dbGetTurma(form.turma_id.data)
            turma.dbAddProfessor(prof)
            return redirect(url_for('home'))

        return render_template('turmas/adicionar_turma_professor.html',
                               form=form,
                               professor=prof)

    else:
        turma = Turma.dbGetTurma(id)
        form = AdicionarProfessorTurmaForm()
        form.professor_id.choices = Professor.dbGetAllProfIdNome()

        if form.validate_on_submit():
            professor = Professor.dbGetUser(form.professor_id.data)
            turma.dbAddProfessor(professor)
            return redirect(url_for('turmas.listar_professores', id=turma.id))

        return render_template('turmas/adicionar_professor_turma.html',
                               form=form,
                               turma=turma)
示例#2
0
def criar():
    form = CriarTurmaForm()
    form.materia_id.choices = Materia.dbGetAllMateria()

    if form.validate_on_submit():
        materia = Materia.dbGetMateria(form.materia_id.data)
        nova_turma = Turma(titulo=form.titulo.data, materia=materia)
        nova_turma.dbAddTurma()
        return redirect(url_for('turmas.listar'))

    return render_template('turmas/criar_turma.html', form=form)
示例#3
0
def listar(id=None):
    if id is None:
        turmas = Turma.dbGetAllTurma()
        return render_template('turmas/listar_turmas.html', turmas=turmas)
    else:
        turma = Turma.dbGetTurma(id)
        postagens = Postagem.dbGetPostsByTurma(turma.id)
        modulos = Modulo.dbGetModulosByTurma(turma.id)
        ehProf = turma.ehProfessor(current_user.id)
        return render_template('turmas/detalhes_turma.html',
                               turma=turma,
                               postagens=postagens,
                               ehProf=ehProf,
                               modulos=modulos,
                               embed_url=embed_url)
示例#4
0
def postar(id, id_prof):
    turma = Turma.dbGetTurma(id)
    prof = turma.getProfessor(id_prof)
    data = datetime.today()

    # Só professor/admin pode criar postagens
    if (current_user.papel == 'al'):
        return redirect(url_for('turmas.listar', id=turma.id))

    form = CriarPostForm()

    if form.validate_on_submit():
        titulo = form.titulo.data
        texto = form.texto.data
        link = form.video.data
        novaPostagem = Postagem(titulo=titulo,
                                turma=turma,
                                professorId=prof.id,
                                professor=prof,
                                texto=texto,
                                data=data,
                                video=link)
        novaPostagem.dbAddPost()
        return redirect(url_for('turmas.listar', id=id))
    return render_template('turmas/criar_postagem.html', form=form)
示例#5
0
def excluirModulo(id, modulo_id):
    turma = Turma.dbGetTurma(id)
    if not turma.ehProfessor(current_user.id):
        return redirect(url_for('turmas.listar', id=turma.id))

    Modulo.dbDeleteModulo(modulo_id)
    return redirect(url_for('turmas.listar', id=turma.id))
示例#6
0
def excluirPostagem(id, post_id):
    turma = Turma.dbGetTurma(id)
    post = Postagem.dbGetPost(post_id)

    # Só quem fez a postagem pode deletá-la
    if current_user.id != post.professor_id:
        return redirect(url_for('turmas.listar', id=turma.id))

    Postagem.dbDeletePost(post_id)
    return redirect(url_for('turmas.listar', id=turma.id))
示例#7
0
def matricula(id):
    if current_user.papel == 'al':
        aluno = Usuario.dbGetUser(id)
        turmas = Turma.dbGetAllTurmaIdMateriaTitulo()
        sugestoes = get_sugestoes_matricula(turmas)

        form = MatriculaAlunoTurma()
        form.turma_id.choices = turmas

        if form.validate_on_submit():  #adiciona aluno na turma
            turma = Turma.dbGetTurma(form.turma_id.data)
            if turma.ehAluno(id):
                mensagem_erro = "Você já está matriculado na turma " + turma.materia.nome + " - " + turma.titulo + "."
                return render_template('turmas/matricula.html',
                                       form=form,
                                       aluno=aluno,
                                       sugestoes=sugestoes,
                                       mensagem_erro=mensagem_erro)
            turma.dbAddAluno(aluno)
            return redirect(url_for('home'))
        return render_template('turmas/matricula.html',
                               form=form,
                               aluno=aluno,
                               sugestoes=sugestoes)
示例#8
0
def adicionar_aluno(id):
    turma = Turma.dbGetTurma(id)
    form = AdicionarAlunoTurmaForm()

    form.aluno_id.choices = Aluno.dbGetAllAlunoIdNome()

    if form.validate_on_submit():
        # Não precisamos validar essa busca,
        # pois os dados do SelectField eram válidos
        aluno = getAluno(form.aluno_id.data)
        turma.dbAddAluno(aluno)
        return redirect(url_for('turmas.listar_membros', id=turma.id))

    return render_template('turmas/adicionar_aluno_turma.html',
                           form=form,
                           turma=turma)
示例#9
0
def editarModulo(id, modulo_id):
    turma = Turma.dbGetTurma(id)
    if not turma.ehProfessor(current_user.id):
        return redirect(url_for('turmas.listar', id=turma.id))

    modulo = Modulo.dbGetModulo(modulo_id)
    form = EditarModuloForm()

    if form.validate_on_submit():
        titulo = form.titulo.data
        texto = form.texto.data
        modulo.dbUpdateModulo(titulo=titulo, texto=texto)
        return redirect(url_for('turmas.listar', id=turma.id))
    return render_template('turmas/editar_modulo.html',
                           form=form,
                           modulo=modulo)
示例#10
0
def criarModulo(id):
    turma = Turma.dbGetTurma(id)

    # Só professor da turma pode criar módulo
    if not turma.ehProfessor(current_user.id):
        return redirect(url_for('turmas.listar', id=turma.id))

    form = CriarModuloForm()

    if form.validate_on_submit():
        titulo = form.titulo.data
        texto = form.texto.data
        novoModulo = Modulo(titulo=titulo, turma=turma, texto=texto)
        novoModulo.dbAddModulo()
        return redirect(url_for('turmas.listar', id=id))
    return render_template('turmas/criar_modulo.html', form=form)
示例#11
0
def editarPostagem(id, post_id):
    turma = Turma.dbGetTurma(id)
    post = Postagem.dbGetPost(post_id)

    # Só quem fez a postagem pode editar
    if current_user.id != post.professor_id:
        return redirect(url_for('turmas.listar', id=turma.id))

    form = EditarPostForm()

    if form.validate_on_submit():
        titulo = form.titulo.data
        texto = form.texto.data
        link = form.video.data
        post.dbUpdatePost(titulo=titulo, texto=texto, video=link)
        return redirect(url_for('turmas.listar', id=turma.id))
    return render_template('turmas/editar_postagem.html', form=form, post=post)
示例#12
0
def atualizar(id):
    turma = Turma.dbGetTurma(id)
    form = AtualizarTurmaForm()

    # Monta as opções para escolher matéria, o append e reverse abaixo são
    # para garantir que a matéria atual esteja pré-selecionada para o usuário
    matId = turma.materia_id
    form.materia_id.choices = Materia.dbGetAllMateriaIdNomeExcept(matId)
    materiaatual = Materia.dbGetMateriaIdNome(matId)
    form.materia_id.choices.append(materiaatual)
    form.materia_id.choices.reverse()

    if form.validate_on_submit():
        materia = Materia.dbGetMateria(form.materia_id.data)
        turma.dbUpdateTurma(form.titulo.data, materia)
        return redirect(url_for('turmas.listar'))
    elif request.method == 'GET':
        form.titulo.data = turma.titulo
        form.materia_id.data = turma.materia_id

    return render_template('turmas/atualizar_turma.html', form=form)
示例#13
0
def listar_professores(id):
    turma = Turma.dbGetTurma(id)
    return render_template('turmas/professores_turma.html',
                           turma=turma,
                           professores=turma.professores)
示例#14
0
def listar_membros(id):
    turma = Turma.dbGetTurma(id)
    return render_template('turmas/membros_turma.html',
                           turma=turma,
                           alunos=turma.alunos)
示例#15
0
def remover_professor(id, id_professor):
    turma = Turma.dbGetTurma(id)
    professor = Professor.dbGetUser(id_professor)
    turma.dbDeleteProfessor(professor)
    return redirect(url_for('turmas.listar_professores', id=turma.id))
示例#16
0
def excluir(id):
    Turma.dbDeleteTurma(id)
    return redirect(url_for('turmas.listar'))
示例#17
0
def remover_aluno(id, id_aluno):
    turma = Turma.dbGetTurma(id)
    aluno = getAluno(id_aluno)
    turma.dbDeleteAluno(aluno)

    return redirect(url_for('turmas.listar_membros', id=turma.id))