Example #1
0
def adicionartarefa(request,id=None):
    user_check_var = user_check(request=request, user_profile=[Coordenador])
    if not user_check_var.get('exists'): return user_check_var.get('render')
    if Diaaberto.current() is None: return redirect('coordenadores:consultarTarefa')
    if id:
        tarefa = Tarefa.objects.get(id=id)
    else:
        tarefa = None

    if request.method == 'POST':
        if request.POST['tipo']=='tarefaAuxiliar':
            form = TarefaAuxiliarForm(data=request.POST,facul=user_check_var.get('firstProfile').faculdade.id)
        elif request.POST['tipo']=='tarefaAcompanhar':
            form = TarefaAcompanharForm(data=request.POST,facul=user_check_var.get('firstProfile').faculdade.id)
        elif request.POST['tipo']=='tarefaOutra':
            form = TarefaOutraForm(request.POST)
        if form.is_valid():
            coord = Coordenador.objects.get(id=request.user.id)
            save=form.save(user=coord,id=id)
            if id:
                views.enviar_notificacao_automatica(request,sigla="tarefaAlterada",id=id)
            else:
                views.enviar_notificacao_automatica(request,sigla="tarefaAtribuida",id=save)
            return redirect('coordenadores:consultarTarefa')
    return render(request = request,template_name='coordenadores/criarTarefa.html',context={
        'tarefa':tarefa,
    })
Example #2
0
def eliminarAtividade(request, id):
    user_check_var = user_check(request=request,
                                user_profile=[ProfessorUniversitario])
    if user_check_var.get('exists') == False:
        return user_check_var.get('render')

    userId = user_check_var.get('firstProfile').utilizador_ptr_id
    atividade = Atividade.objects.filter(
        id=id, professoruniversitarioutilizadorid=userId)

    atividadecheck = atividade.first()
    sessoes = Sessao.objects.filter(atividadeid=atividadecheck)
    for sessao in sessoes:
        if sessao.vagas != atividadecheck.participantesmaximo:
            return render(request=request,
                          template_name='mensagem.html',
                          context={
                              'tipo': 'error',
                              'm': 'Não tem permissões para esta ação!'
                          })

    if atividade.exists():
        nviews.enviar_notificacao_automatica(
            request, "atividadeApagada",
            id)  #Enviar Notificacao Automatica !!!!!!
        atividade.delete()
        return redirect('atividades:minhasAtividades')
    else:
        return render(request=request,
                      template_name='mensagem.html',
                      context={
                          'tipo': 'error',
                          'm': 'Não tem permissões para esta ação!'
                      })
Example #3
0
def atribuirColaborador(request,id):
    user_check_var = user_check(request=request, user_profile=[Coordenador])
    if not user_check_var.get('exists'): return user_check_var.get('render')
    if request.method == 'POST':
        colab = Colaborador.objects.get(id = int(request.POST.get('colab')))
        Tarefa.objects.filter(id=id).update(colab=colab,estado='naoConcluida')
        views.enviar_notificacao_automatica(request,"tarefaAtribuida",id)
    return redirect('coordenadores:consultarTarefa')
Example #4
0
def eliminartarefa(request,id):
    user_check_var = user_check(request=request, user_profile=[Coordenador])
    if not user_check_var.get('exists'): return user_check_var.get('render')
    
    tarefa = ''
    if Tarefa.objects.filter(id=id,coord=user_check_var.get('firstProfile')).exists():
        tarefa = Tarefa.objects.get(id=id,coord=user_check_var.get('firstProfile'))
        if tarefa.eliminar == True:
            if tarefa.colab is not None:
                views.enviar_notificacao_automatica(request,"tarefaApagada",id)
            tarefa.delete()    
            return redirect('coordenadores:consultarTarefa')
    return redirect('coordenadores:consultarTarefa')
Example #5
0
def validaratividade(request, id, action):

    user_check_var = user_check(request=request, user_profile=[Coordenador])
    if user_check_var.get('exists') == False:
        return user_check_var.get('render')

    atividade = Atividade.objects.get(id=id)
    if action == 0:
        nviews.enviar_notificacao_automatica(
            request, "rejeitarAtividade",
            id)  #Enviar Notificacao Automatica !!!!!!
        atividade.estado = 'Recusada'
    if action == 1:
        nviews.enviar_notificacao_automatica(
            request, "confirmarAtividade",
            id)  #Enviar Notificacao Automatica !!!!!!
        atividade.estado = 'Aceite'
    atividade.save()
    return redirect('atividades:atividadesUOrganica')
Example #6
0
def rejeitar_cancelamento_tarefa(request, id_notificacao):
    if request.user.is_authenticated:
        user = get_user(request)
        if user.groups.filter(name="Coordenador").exists():
            u = "Coordenador"
        else:
            return redirect('utilizadores:mensagem', 5)
    else:
        return redirect('utilizadores:mensagem', 5)
    try:
        notificacao = Notificacao.objects.get(id=id_notificacao)
        notificacao.deleted = True
        notificacao.save()
        id_tarefa = notificacao.action_object.id
        views.enviar_notificacao_automatica(request, "rejeitarCancelarTarefa",
                                            id_tarefa)
    except:
        return redirect('utilizadores:mensagem', 11)
    return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
Example #7
0
def confirmarResumo(request, id):
    user_check_var = user_check(request=request,
                                user_profile=[ProfessorUniversitario])
    if user_check_var.get('exists') == False:
        return user_check_var.get('render')

    userId = user_check_var.get('firstProfile').utilizador_ptr_id
    atividade = Atividade.objects.filter(
        id=id, professoruniversitarioutilizadorid=userId)

    atividadecheck = atividade.first()
    sessoes = Sessao.objects.filter(atividadeid=atividadecheck)
    for sessao in sessoes:
        if sessao.vagas != atividadecheck.participantesmaximo:
            return render(request=request,
                          template_name='mensagem.html',
                          context={
                              'tipo': 'error',
                              'm': 'Não tem permissões para esta ação!'
                          })

    if atividade.exists():
        atividade = Atividade.objects.get(id=id)
        if atividade.estado == "nsub":
            atividade.estado = "Pendente"
            atividade.save()
            print(atividade.id)
            nviews.enviar_notificacao_automatica(
                request, "validarAtividades", atividade.id
            )  #Enviar Notificacao Automatica !!!!!!!!!!!!!!!!!!!!!!!!!
        else:
            nviews.enviar_notificacao_automatica(
                request, "atividadeAlterada",
                atividade.id)  #Enviar Notificacao Automatica !!!!!!
        return redirect("atividades:minhasAtividades")
    else:
        return render(request=request,
                      template_name='mensagem.html',
                      context={
                          'tipo': 'error',
                          'm': 'Não tem permissões para esta ação!'
                      })
Example #8
0
def cancelar_tarefa(request, id):
    ''' Funcionalidade de cancelamento de uma tarefa do colaborador '''
    if request.user.is_authenticated:
        user = get_user(request)
        if user.groups.filter(name="Colaborador").exists():
            u = "Colaborador"
        else:
            return redirect('utilizadores:mensagem', 5)
    else:
        return redirect('utilizadores:mensagem', 5)
    # Envio de notificação automática
    views.enviar_notificacao_automatica(
        request, "cancelarTarefa", id)  #Envio de notificação automática !!!!
    tarefa = Tarefa.objects.get(id=id)
    nome = tarefa.coord.first_name + " " + tarefa.coord.last_name
    msg = "A enviar pedido de cancelamento de tarefa a " + nome
    return render(
        request=request,
        template_name="colaboradores/enviar_notificacao_informativa.html",
        context={"msg": msg})
Example #9
0
def mudar_perfil(request, tipo):
    ''' Alterar perfil do próprio utilizador
    Redireciona para uma pagina que contem os dados já existentes do utilizador a alterar
    sendo que apenas os campos diferentes não estão preenchidos '''

    if request.user.is_authenticated:
        user = get_user(request)
        id = user.id
        if user.groups.filter(name="Proponente").exists():
            u = "Proponente"
        elif user.groups.filter(name="Administrador").exists():
            u = "Administrador"
        elif user.groups.filter(name="Participante").exists():
            u = "Participante"
        else:
            u = ""
    else:
        return redirect('utilizadores:mensagem', 5)

    if tipo == 1:
        form = ParticipanteAlterarPerfilForm()
        perfil = "Participante"
    elif tipo == 2:
        form = ProponenteAlterarPerfilForm()
        perfil = "Proponente"
    elif tipo == 3:
        form = AdministradorAlterarPerfilForm()
        perfil = "Administrador"
    else:
        return redirect('utilizadores:mensagem', 5)

    user = User.objects.get(id=user.id)
    if user.groups.filter(name="Administrador").exists():
        utilizador_object = Administrador.objects.get(id=user.id)
        gabinete = utilizador_object.gabinete
    elif user.groups.filter(name="Participante").exists():
        utilizador_object = Participante.objects.get(id=user.id)
        gabinete = ""
    elif user.groups.filter(name="Proponente").exists():
        utilizador_object = Proponente.objects.get(id=user.id)
        gabinete = ""
    else:
        return redirect('utilizadores:mensagem', 5)
    msg = False
    if request.method == "POST":
        submitted_data = request.POST
        if tipo == 1:
            form = ParticipanteAlterarPerfilForm(submitted_data)
            my_group = Group.objects.get(name='Participante')
        elif tipo == 2:
            form = ProponenteAlterarPerfilForm(submitted_data)
            my_group = Group.objects.get(name='Proponente')
        elif tipo == 3:
            form = AdministradorAlterarPerfilForm(submitted_data)
            my_group = Group.objects.get(name='Administrador')
        else:
            return redirect('utilizadores:mensagem', 5)

        username = request.POST.get('username')
        email = request.POST.get('email')

        erros = []
        if username and User.objects.exclude(
                username=utilizador_object.username).filter(
                    username=username).exists():
            erros.append('O username já existe')
        elif username == "":
            erros.append('Todos os campos são obrigatórios!')

        if email and User.objects.exclude(
                email=utilizador_object.email).filter(email=email).exists():
            erros.append('O email já existe')
        elif email == None:
            erros.append('O email é inválido')

        if form.is_valid() and len(erros) == 0:

            utilizador_form_object = form.save(commit=False)
            utilizador_form_object.username = username
            if tipo == 2 or tipo == 3 or tipo == 4:
                utilizador_form_object.faculdade = Unidadeorganica.objects.get(
                    id=submitted_data['faculdade'])
                utilizador_form_object.departamento = Departamento.objects.get(
                    id=submitted_data['departamento'])

            if tipo == 1:
                utilizador_form_object.valido = "True"
            else:
                utilizador_form_object.valido = "False"
            utilizador_form_object.password = utilizador_object.password
            utilizador_object.delete()
            utilizador_form_object.id = id
            utilizador_form_object.save()
            my_group.user_set.add(utilizador_form_object)

            if tipo == 2 or tipo == 3 or tipo == 4 or tipo == 5:  #Enviar Notificacao Automatica !!!!!!!!!
                recipient_id = utilizador_form_object.id  #Enviar Notificacao Automatica !!!!!!!!!
                views.enviar_notificacao_automatica(
                    request, "validarAlteracoesPerfil",
                    recipient_id)  #Enviar Notificacao Automatica !!!!!!!!!
            return redirect('utilizadores:logout')
        else:
            msg = True
            return render(request=request,
                          template_name="utilizadores/mudar_perfil.html",
                          context={
                              "form": form,
                              'perfil': perfil,
                              'u': u,
                              'user': utilizador_object,
                              'registo': tipo,
                              'msg': msg,
                              'erros': erros,
                              'gabinete': gabinete,
                              'username': username
                          })
    else:
        username = utilizador_object.username
        return render(request=request,
                      template_name="utilizadores/mudar_perfil.html",
                      context={
                          "form": form,
                          'perfil': perfil,
                          'u': u,
                          'registo': tipo,
                          'user': utilizador_object,
                          'msg': msg,
                          'gabinete': gabinete,
                          'username': username
                      })