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, })
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!' })
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')
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')
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')
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', '/'))
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!' })
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})
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 })