示例#1
0
def diaaberto_delete(request, id):
    obj = get_object_or_404(DiaAberto, ano=id)
    if DiaAberto.objects.filter(ano=id).exists():
        user = request.session['user_id']
        if Utilizador.objects.filter(dia_aberto_ano=id,
                                     pk=request.session['user_id']).exists():
            del request.session['user_id']
            del request.session['type']
        obj.delete()
        if not (Utilizador.objects.filter(pk=user).exists()):
            notis = Notificacao.objects.all()
            dias = Dia.objects.all()
            for noti in notis:
                if noti.criadoem.year == id:
                    noti.delete()
            for dia in dias:
                if dia.pk.year == id:
                    dia.delete()
            return redirect("blog:blog-home")
        messages.success(
            request, f'Configurações do Dia Aberto eliminado com Sucesso!')
        noti_views.new_noti(
            request, request.session['user_id'],
            'Submissao das Configurações do Dia Aberto',
            'Configurações do Dia Aberto eliminado com Sucesso!')
    return redirect('menu:diaaberto_list')
def transporte_grupo_view(request, id):
    form = InscricaoForm(request.POST or None)
    if request.method == "POST":
        if form.is_valid():
            #t= Transporte.objects.get(idtransporte=request.POST['transporte_idtransporte'])
            #tra =TransporteHasHorario.objects.get(id_transporte_has_horario = request.POST['horario'])
            #trans = TransporteHasHorario.objects.get(transporte_idtransporte = t, id_transporte_has_horario = tra)
            #inscricao = TransporteHasInscricao.objects.filter(horario = trans)
            #if len(inscricao)>0:
            #    form.inscricao= 'Este grupo já está associado a este transporte'
            #    context = {
            #        'form': form,
            #        'i':len(noti_not_checked(request)),'not_checked':noti_not_checked(request)
            #    }
            #    return render(request, "Transporte/grupos_ass.html", context)
            form.save(id)
            print("aaaaaaaaaaaaaaaaaaa")
            messages.success(request, f'Transporte associado com Sucesso!')
            noti_views.new_noti(request, request.session['user_id'],
                                'Submissao do Transporte',
                                '  Transporte Associado com Sucesso!')
            return redirect("menu:transporte-list")

    context = {
        'form': form,
        'i': len(noti_not_checked(request)),
        'not_checked': noti_not_checked(request)
    }
    return render(request, "Transporte/grupos_ass.html", context)
def type_user(data, user_id, request):
    t = True
    #print(data['departamento']==0)
    #print(type(data['departamento']))
    if data['funcao'] == '1':
        if data['curso'] != '0' and user_id is not None:
            curso_id = Curso.objects.get(pk=data['curso'].split("_")[1])
            colab = Colaborador(pk=user_id, curso_idcurso=curso_id)
            colab.save()
        elif data['UO'] == '0' or data['curso'] == '0':
            t = 1
            return t
    elif data['funcao'] == '2':
        if data['UO'] != 0 and user_id is not None:
            #print("\n"+t)
            Coord = Coordenador(
                pk=user_id,
                unidade_organica_iduo=UnidadeOrganica.objects.get(
                    pk=data['UO']))
            Coord.save()
        elif data['UO'] == '0':
            t = 2
            #print("\n"+t)
            return t
    elif data['funcao'] == '3':
        if data['departamento'] != '0' and user_id is not None:
            DC = ProfessorUniversitario.objects.create(
                pk=user_id,
                departamento_iddepartamento=Departamento.objects.get(
                    pk=data['departamento'].split("_")[1]))
        elif data['UO'] == '0' or data['departamento'] == '0':
            t = 3
            return t
    elif data['funcao'] == '4':
        if user_id is not None:
            admin = Administrador(pk=user_id)
            if len(Administrador.objects.all()) == 0:
                Utilizador.objects.filter(pk=user_id).update(validada=4)
            admin.save()
        else:
            t = 4
            return t
    elif data['funcao'] == '0':
        if user_id is not None:
            part = Participante(pk=user_id)
            part.save()
            Utilizador.objects.filter(pk=user_id).update(validada=0)
            noti_views.new_noti(request, user_id, 'Bem-vindo',
                                'Seja bem-vindo ao site do dia aberto')
    return t
示例#4
0
文件: views.py 项目: RafikiGod/LES
def criar_tarefa_grupo(request):
    user2 = Utilizador.objects.get(idutilizador=request.session["user_id"])
    coord_user = Coordenador.objects.get(utilizador_idutilizador=user2)
    new_form = Tarefa(concluida=0,
                      coordenador_utilizador_idutilizador=coord_user)
    form = TarefasFormGroup(request.POST, instance=new_form)
    dispos = Disponibilidade.objects.exclude(tipo_de_tarefa='Ajudar Docente')
    if request.method == "POST":
        if form.is_valid():
            new_tarefa = form.save(commit=False)
            new_tarefa.hora_inicio = request.POST['hora_inicio']
            new_tarefa.dia_dia = Dia.objects.get(dia=request.POST['dia_dia'])
            if request.POST['id_colaborador_utilizador_idutilizador'] != '':
                user = Utilizador.objects.get(
                    idutilizador=request.
                    POST['id_colaborador_utilizador_idutilizador']
                )  #Vamos Buscar o Utilizador com o ID especificado no formulario
                colaborador_user = Colaborador.objects.get(
                    utilizador_idutilizador=user
                )  #Vamos buscar o colaborador associado aquele objeto utilizador
                new_tarefa.colaborador_utilizador_idutilizador = colaborador_user  #Enviamos esse colaborador para a nova tarefa
            ativid = Atividade.objects.get(
                idatividade=request.POST['atividade_idatividade'])
            new_tarefa.buscar = Espaco.objects.get(
                idespaco=ativid.espaco_idespaco.idespaco)
            new_tarefa.levar = Espaco.objects.get(
                idespaco=request.POST['levar'])
            grupo = Inscricao.objects.get(idinscricao=request.POST['grupos'])
            new_tarefa.inscricao_coletiva_inscricao_idinscricao = InscricaoColetiva.objects.get(
                inscricao_idinscricao=grupo)
            new_tarefa.save()
            if request.POST['id_colaborador_utilizador_idutilizador'] != '':
                noti_views.new_noti(request, colaborador_user.pk, 'Tarefa',
                                    'Foi atribuido uma Nova Tarefa')
            messages.success(request, f'Tarefa Criada com Sucesso!')
            return redirect("tarefa_coordenador:consultar_tarefa")

    return render(request=request,
                  template_name="main/criarTarefaAcompanhar.html",
                  context={
                      'form': form,
                      'i': len(noti_not_checked(request)),
                      'not_checked': noti_not_checked(request),
                      'dispo': dispos
                  })
示例#5
0
def transporte_grupo_view(request, id):
    form = InscricaoForm(request.POST or None)
    if request.method == "POST":
        if form.is_valid():
            form.save(id)
            print("aaaaaaaaaaaaaaaaaaa")
            messages.success(request, f'Transporte associado com Sucesso!')
            noti_views.new_noti(request, request.session['user_id'],
                                'Submissao do Transporte',
                                '  Transporte Associado com Sucesso!')
            return redirect("menu:transporte-list")

    context = {
        'form': form,
        'i': len(noti_not_checked(request)),
        'not_checked': noti_not_checked(request)
    }
    return render(request, "Transporte/grupos_ass.html", context)
def diaaberto_delete(request, id):
    obj = get_object_or_404(DiaAberto, ano=id)
    if DiaAberto.objects.filter(ano=id).exists():
        Utilizador.objects.filter(dia_aberto_ano=id).update(
            dia_aberto_ano=None)
        obj.delete()
        notis = Notificacao.objects.all()
        dias = Dia.objects.all()
        for dia in dias:
            if dia.pk.year == id:
                dia.delete()
        messages.success(
            request, f'Configurações do Dia Aberto eliminado com Sucesso!')
        noti_views.new_noti(
            request, request.session['user_id'],
            'Submissao das Configurações do Dia Aberto',
            'Configurações do Dia Aberto eliminado com Sucesso!')
        return redirect('menu:diaaberto_list')
示例#7
0
def activity_session_view(request, idActivity):
    querysetSession = Sessao.objects.all().filter(
        atividade_idatividade=idActivity)
    atividade = get_object_or_404(Atividade, idatividade=idActivity)
    if request.method == "POST":
        id_prof = atividade.professor_universitario_utilizador_idutilizador.utilizador_idutilizador.idutilizador
        noti_views.new_noti(request, id_prof, "Motivo de rejeição",
                            request.POST.get("motivo"))
        atividade.validada = -1
        atividade.save()
        return redirect("atividades:consultar_atividades_coodernador")
    context = {
        "list": querysetSession,
        "activity": atividade,
        "account": return_account_type(request.session["user_id"]),
        'i': len(noti_not_checked(request)),
        'not_checked': noti_not_checked(request)
    }
    return render(request, "atividades/sessao_info.html", context)
def criar_tarefa_atividade(request):
    user_coord = Utilizador.objects.get(
        idutilizador=request.session["user_id"])
    coord_user = Coordenador.objects.get(utilizador_idutilizador=user_coord)
    atividade = Atividade.objects.filter(
        unidade_organica_iduo=coord_user.unidade_organica_iduo)
    form = TarefasFormAtividade(request.POST)
    if request.method == "POST":
        if form.is_valid():
            new_tarefa = form.save(commit=False)
            new_tarefa.concluida = 0
            new_tarefa.coordenador_utilizador_idutilizador = coord_user
            new_tarefa.sessao_idsessao = Sessao.objects.get(
                idsessao=request.POST['idsession'])
            if request.POST['id_colaborador_utilizador_idutilizador'] != '':
                user = Utilizador.objects.get(
                    idutilizador=request.
                    POST['id_colaborador_utilizador_idutilizador']
                )  #Vamos Buscar o Utilizador com o ID especificado no formulario
                colaborador_user = Colaborador.objects.get(
                    utilizador_idutilizador=user
                )  #Vamos buscar o colaborador associado aquele objeto utilizador
                new_tarefa.colaborador_utilizador_idutilizador = colaborador_user  #Enviamos esse colaborador para a nova tarefa
                new_tarefa.save()
                noti_views.new_noti(
                    request, colaborador_user.pk,
                    'Tarefa ' + '"' + new_tarefa.nome + '"',
                    'Foi atribuido uma Nova Tarefa ' + '"' + new_tarefa.nome +
                    '"')
            else:
                new_tarefa.save()
            messages.success(request, f'Tarefa Criada com Sucesso!')
            return redirect("tarefa_coordenador:consultar_tarefa")

    return render(request=request,
                  template_name="main/criarTarefaAtividade.html",
                  context={
                      'atividade': atividade,
                      'form': form,
                      'i': len(noti_not_checked(request)),
                      'not_checked': noti_not_checked(request)
                  })
def validacoes(request, acao, id):
    if not (Administrador.objects.filter(pk=request.session['user_id']).exists(
    ) or Coordenador.objects.filter(pk=request.session['user_id']).exists()):
        redirect("blog:blog-home")
    id = id
    user = Utilizador.objects.get(pk=id)
    if acao == 1:
        if Colaborador.objects.filter(pk=id).exists():
            user.validada = 1
            Participante.objects.filter(pk=id).delete()
        elif Coordenador.objects.filter(pk=id).exists():
            user.validada = 2
            Participante.objects.filter(pk=id).delete()
        elif ProfessorUniversitario.objects.filter(pk=id).exists():
            user.validada = 3
            Participante.objects.filter(pk=id).delete()
        elif Administrador.objects.filter(pk=id).exists():
            user.validada = 4
            Participante.objects.filter(pk=id).delete()
        user.save()
        noti_views.new_noti(request, id, 'Bem-vindo',
                            'Seja bem-vindo ao site do dia aberto')
        recepient = user.email
        from_user = Utilizador.objects.get(pk=request.session['user_id']).email
        subject = "Validação da conta"
        message = str("A sua conta foi aceite. Faça login no seguinte link: " +
                      request.build_absolute_uri().split("validacoes")[0] +
                      "login/")
        send_mail(subject, message, settings.EMAIL_HOST_USER, [recepient])
        messages.success(request,
                         f'Utilizador {user.nome} validado com sucesso.')
    else:
        recepient = user.email
        subject = "Validação da conta"
        message = str("A sua conta nao foi aceite. Crie uma nova conta " +
                      request.build_absolute_uri().split("validacoes")[0])
        send_mail(subject, message, settings.EMAIL_HOST_USER, [recepient])
        messages.success(request, f'Email enviado com sucesso')
        user.delete()
    return redirect('profile_list')
def send_notification(request, form):
    #New
    #return None
    #print(form.sessao.extra_forms())
    for sessao_form in form.sessao.extra_forms:
        sessao = sessao_form.cleaned_data['sessao_idsessao']
        message = NEW_INSCRICAO_CONTENT.replace(
            "__ATV__", sessao.atividade_idatividade.titulo)
        message = message.replace(
            "__NUM__", str(sessao_form.cleaned_data['nr_inscritos']))
        message = message.replace(
            "__HORAS__",
            sessao.horario_has_dia_id_dia_hora.horario_hora.__str__())
        message = message.replace("__LUGARES__",
                                  str(sessao.capacidade - sessao.nrinscritos))
        new_noti(
            request, sessao.atividade_idatividade.
            professor_universitario_utilizador_idutilizador.
            utilizador_idutilizador.pk,
            NEW_INSCRICAO_TITLE.replace('__ATV__',
                                        sessao.atividade_idatividade.titulo),
            message)

    #Deleted
    for sessao_form in form.sessao.deleted_forms:
        sessao = sessao_form.cleaned_data['sessao_idsessao']
        message = DELETE_INSCRICAO_CONTENT.replace(
            "__ATV__", sessao.atividade_idatividade.titulo)
        message = message.replace(
            "__NUM__", str(sessao_form.cleaned_data['nr_inscritos']))
        message = message.replace(
            "__HORAS__",
            sessao.horario_has_dia_id_dia_hora.horario_hora.__str__())
        message = message.replace("__LUGARES__",
                                  str(sessao.capacidade - sessao.nrinscritos))
        new_noti(
            request, sessao.atividade_idatividade.
            professor_universitario_utilizador_idutilizador.
            utilizador_idutilizador.pk,
            DELETE_INSCRICAO_TITLE.replace(
                '__ATV__', sessao.atividade_idatividade.titulo), message)

    #Changed
    for sessao_form in form.sessao.initial_forms:
        if sessao_form in form.sessao.deleted_forms:
            return
        sessao = sessao_form.cleaned_data['sessao_idsessao']
        message = CHANGE_INSCRICAO_CONTENT.replace(
            "__ATV__", sessao.atividade_idatividade.titulo)
        message = message.replace(
            "__HORAS__",
            sessao.horario_has_dia_id_dia_hora.horario_hora.__str__())
        message = message.replace("__LUGARES__",
                                  str(sessao.capacidade - sessao.nrinscritos))
        new_noti(
            request, sessao.atividade_idatividade.
            professor_universitario_utilizador_idutilizador.
            utilizador_idutilizador.pk,
            CHANGE_INSCRICAO_TITLE.replace(
                '__ATV__', sessao.atividade_idatividade.titulo), message)
示例#11
0
文件: views.py 项目: RafikiGod/LES
def criar_tarefa_atividade(request):
    user_coord = Utilizador.objects.get(
        idutilizador=request.session["user_id"])
    coord_user = Coordenador.objects.get(utilizador_idutilizador=user_coord)
    new_form = Tarefa(concluida=0,
                      coordenador_utilizador_idutilizador=coord_user)
    form = TarefasFormAtividade(request.POST, instance=new_form)
    dispos = Disponibilidade.objects.exclude(tipo_de_tarefa='Guiar Grupo')
    if request.method == "POST":
        if form.is_valid():
            new_tarefa = form.save(commit=False)
            new_tarefa.sessao_idsessao = Sessao.objects.get(
                idsessao=request.POST['idsession'])
            if request.POST['id_colaborador_utilizador_idutilizador'] != '':
                user = Utilizador.objects.get(
                    idutilizador=request.
                    POST['id_colaborador_utilizador_idutilizador']
                )  #Vamos Buscar o Utilizador com o ID especificado no formulario
                colaborador_user = Colaborador.objects.get(
                    utilizador_idutilizador=user
                )  #Vamos buscar o colaborador associado aquele objeto utilizador
                new_tarefa.colaborador_utilizador_idutilizador = colaborador_user  #Enviamos esse colaborador para a nova tarefa
                new_tarefa.save()
                noti_views.new_noti(request, colaborador_user.pk, 'Tarefa',
                                    'Foi atribuido uma Nova Tarefa')
            else:
                new_tarefa.save()
            print(new_tarefa)
            messages.success(request, f'Tarefa Criada com Sucesso!')
            return redirect("tarefa_coordenador:consultar_tarefa")

    return render(request=request,
                  template_name="main/criarTarefaAtividade.html",
                  context={
                      'form': form,
                      'i': len(noti_not_checked(request)),
                      'not_checked': noti_not_checked(request),
                      'dispo': dispos
                  })
示例#12
0
def editar_local_view(request, idActivity):
    account = return_account_type(request.session["user_id"])
    atividade = get_object_or_404(Atividade, idatividade=idActivity)
    espaco = []
    allbuildings = []
    selectedBuilding = None
    fields = 0
    if request.method == "POST":
        if request.POST.get('espaco'):
            if atividade.espaco_idespaco != request.POST.get('espaco'):
                notification = "Novo local: " + get_object_or_404(
                    Espaco, idespaco=request.POST.get('espaco')).nome
                # Notificação de vagas-> part
                vagas(request, atividade.idatividade,
                      "Mudança na local da atividade " + atividade.titulo,
                      notification)
            atividade.espaco_idespaco = get_object_or_404(
                Espaco, idespaco=request.POST.get('espaco'))
            atividade.save()
            if account == 'coordinator':
                return redirect("atividades:consultar_atividades_coodernador")
            elif account == 'professor':
                return redirect("../../editar_sesao/" + str(idActivity))
        elif request.POST.get('semSala'):
            atividade.espaco_idespaco = None
            atividade.save()
            uo = get_object_or_404(
                ProfessorUniversitario,
                utilizador_idutilizador=request.session["user_id"]
            ).departamento_iddepartamento.unidade_organica_iduo
            for x in get_list_or_404(Coordenador, unidade_organica_iduo=uo):
                noti_views.new_noti(request,
                                    x.utilizador_idutilizador.idutilizador,
                                    "Especificações de sala e material",
                                    request.POST.get("infoSala"))
            return redirect("../../editar_sesao/" + str(idActivity))
        elif request.POST.get('tipoSala') == '1':
            fields = 1
            for edificio in get_list_or_404(
                    Espaco,
                    campus_idcampus=atividade.unidade_organica_iduo.
                    campus_idcampus):
                if edificio.idespaco in Sala.objects.all().values_list(
                        'espaco_idespaco', flat=True) and get_object_or_404(
                            Sala, espaco_idespaco=edificio.idespaco
                        ).edificio not in allbuildings:
                    allbuildings.append(
                        get_object_or_404(
                            Sala, espaco_idespaco=edificio.idespaco).edificio)
            if request.POST.get('edificio'):
                selectedBuilding = request.POST.get('edificio')
                for edificio in get_list_or_404(Sala,
                                                edificio=selectedBuilding):
                    espaco.append(
                        get_object_or_404(
                            Espaco,
                            idespaco=edificio.espaco_idespaco.idespaco))
        elif request.POST.get('tipoSala') == '2':
            fields = 2
            for edificio in get_list_or_404(
                    Espaco,
                    campus_idcampus=atividade.unidade_organica_iduo.
                    campus_idcampus):
                if edificio.idespaco in Anfiteatro.objects.all().values_list(
                        'espaco_idespaco', flat=True) and get_object_or_404(
                            Anfiteatro, espaco_idespaco=edificio.idespaco
                        ).edificio not in allbuildings:
                    allbuildings.append(
                        get_object_or_404(
                            Anfiteatro,
                            espaco_idespaco=edificio.idespaco).edificio)
            if request.POST.get('edificio'):
                selectedBuilding = request.POST.get('edificio')
                for edificio in get_list_or_404(Anfiteatro,
                                                edificio=selectedBuilding):
                    espaco.append(
                        get_object_or_404(
                            Espaco,
                            idespaco=edificio.espaco_idespaco.idespaco))
        elif request.POST.get('tipoSala') == '3':
            fields = 3
            selectedBuilding = None
            if Arlivre.objects.exists():
                for local in get_list_or_404(Arlivre):
                    espaco.append(
                        get_object_or_404(
                            Espaco, idespaco=local.espaco_idespaco.idespaco))
        elif atividade.espaco_idespaco:
            if account == 'coordinator':
                return redirect("atividades:consultar_atividades_coodernador")
            elif account == 'professor':
                return redirect("../../editar_sesao/" + str(idActivity))
    context = {
        "activity": atividade,
        "espacos": espaco,
        "account": account,
        "fields": fields,
        "edificios": allbuildings,
        "selectedBuilding": selectedBuilding,
        'i': len(noti_not_checked(request)),
        'not_checked': noti_not_checked(request)
    }
    return render(request, "atividades/editar_local.html", context)
def editar_tarefa(request, pk):
    tarefa = Tarefa.objects.get(idtarefa=pk)
    colab = tarefa.colaborador_utilizador_idutilizador
    sala = Sala.objects.all()
    anfi = Anfiteatro.objects.all()
    ar = Arlivre.objects.all()
    ati = Atividade.objects.filter(
        unidade_organica_iduo=tarefa.coordenador_utilizador_idutilizador.
        unidade_organica_iduo).exclude(idatividade=tarefa.sessao_idsessao.
                                       atividade_idatividade.idatividade)
    ati_levar = Atividade.objects.filter(
        unidade_organica_iduo=tarefa.coordenador_utilizador_idutilizador.
        unidade_organica_iduo)
    if tarefa.inscricao_coletiva_inscricao_idinscricao != None:
        # dispos=disponibilidades('Guiar Grupo')
        dispos = Disponibilidade.objects.exclude(
            tipo_de_tarefa='Ajudar Docente')
        template = "main/editarTarefaAcompanhar.html"
        form = TarefasFormGroup(instance=tarefa)
        if request.method == "POST":
            form = TarefasFormGroup(request.POST, instance=tarefa)
            if form.is_valid():
                tarefa.nome = request.POST["nome"]
                tarefa.concluida = 0
                ativid = Atividade.objects.get(
                    idatividade=request.POST['atividade_idatividade'])
                tarefa.buscar = Espaco.objects.get(
                    idespaco=ativid.espaco_idespaco.idespaco)
                tarefa.levar = Espaco.objects.get(
                    idespaco=request.POST['levar'])
                grupo = Inscricao.objects.get(
                    idinscricao=request.POST['grupos'])
                tarefa.inscricao_coletiva_inscricao_idinscricao = InscricaoColetiva.objects.get(
                    inscricao_idinscricao=grupo)
                inicio = Sessao.objects.get(
                    idsessao=request.POST['idsession']
                ).horario_has_dia_id_dia_hora.horario_hora.hora
                duracao = ativid.duracao * 60
                inicio_s = inicio.hour * 3600 + inicio.minute * 60 + inicio.second
                total = inicio_s + duracao
                tarefa.hora_inicio = time.strftime('%H:%M:%S',
                                                   time.gmtime(total))
                tarefa.dia_dia = Dia.objects.get(
                    dia=Sessao.objects.get(idsessao=request.POST['idsession']).
                    horario_has_dia_id_dia_hora.dia_dia.dia)
                if request.POST['id_colaborador_utilizador_idutilizador'] != '':
                    c = Colaborador.objects.get(
                        utilizador_idutilizador=Utilizador.objects.get(
                            idutilizador=request.
                            POST["id_colaborador_utilizador_idutilizador"]))
                    tarefa.colaborador_utilizador_idutilizador = c
                    noti_views.new_noti(
                        request, c.pk,
                        'Tarefa Editada ' + '"' + tarefa.nome + '"',
                        'Foi editado a Tarefa ' + '"' + tarefa.nome + '"')
                else:
                    tarefa.colaborador_utilizador_idutilizador = None
                tarefa.save()
                messages.success(request, f'Tarefa Editada com Sucesso!')
                return redirect("tarefa_coordenador:consultar_tarefa")
    else:
        dispos = Disponibilidade.objects.exclude(tipo_de_tarefa='Guiar Grupo')
        # dispos=disponibilidades('Ajudar Docente')
        template = "main/editarTarefaAtividade.html"
        form = TarefasFormAtividade(instance=tarefa)
        if request.method == "POST":
            form = TarefasFormAtividade(request.POST, instance=tarefa)
            if form.is_valid():
                tarefa = form.save(commit=False)
                tarefa.concluida = 0
                tarefa.nome = request.POST["nome"]
                tarefa.sessao_idsessao = Sessao.objects.get(
                    idsessao=request.POST["idsession"])
                if request.POST['id_colaborador_utilizador_idutilizador'] != '':
                    c = Colaborador.objects.get(
                        utilizador_idutilizador=Utilizador.objects.get(
                            idutilizador=request.
                            POST["id_colaborador_utilizador_idutilizador"]))
                    tarefa.colaborador_utilizador_idutilizador = c
                    noti_views.new_noti(
                        request, c.pk,
                        'Tarefa Editada ' + '"' + tarefa.nome + '"',
                        'Foi editado a Tarefa ' + '"' + tarefa.nome + '"')
                else:
                    tarefa.colaborador_utilizador_idutilizador = None
                tarefa.save()
                messages.success(request, f'Tarefa Editada com Sucesso!')
                return redirect("tarefa_coordenador:consultar_tarefa")
    return render(request=request,
                  template_name=template,
                  context={
                      'sala': sala,
                      'ar': ar,
                      'anfi': anfi,
                      'ati': ati,
                      'ati_levar': ati_levar,
                      'tarefa': tarefa,
                      'form': form,
                      'i': len(noti_not_checked(request)),
                      'not_checked': noti_not_checked(request),
                      'dispo': dispos
                  })
def criar_tarefa_grupo(request):
    user2 = Utilizador.objects.get(idutilizador=request.session["user_id"])
    coord_user = Coordenador.objects.get(utilizador_idutilizador=user2)
    new_form = Tarefa(concluida=0,
                      coordenador_utilizador_idutilizador=coord_user)
    atividade = Atividade.objects.filter(
        unidade_organica_iduo=coord_user.unidade_organica_iduo)
    ati = Atividade.objects.filter(
        unidade_organica_iduo=coord_user.unidade_organica_iduo)
    form = TarefasFormGroup(request.POST, instance=new_form)
    # dispos = disponibilidades("Guiar Grupo")
    if request.method == "POST":
        if form.is_valid():
            new_tarefa = form.save(commit=False)
            if request.POST['id_colaborador_utilizador_idutilizador'] != '':
                user = Utilizador.objects.get(
                    idutilizador=request.
                    POST['id_colaborador_utilizador_idutilizador']
                )  #Vamos Buscar o Utilizador com o ID especificado no formulario
                colaborador_user = Colaborador.objects.get(
                    utilizador_idutilizador=user
                )  #Vamos buscar o colaborador associado aquele objeto utilizador
                new_tarefa.colaborador_utilizador_idutilizador = colaborador_user  #Enviamos esse colaborador para a nova tarefa
            ativid = Atividade.objects.get(
                idatividade=request.POST['atividade_idatividade'])
            new_tarefa.buscar = Espaco.objects.get(
                idespaco=ativid.espaco_idespaco.idespaco)
            new_tarefa.levar = Espaco.objects.get(
                idespaco=request.POST['levar'])
            grupo = Inscricao.objects.get(idinscricao=request.POST['grupos'])
            new_tarefa.inscricao_coletiva_inscricao_idinscricao = InscricaoColetiva.objects.get(
                inscricao_idinscricao=grupo)
            new_tarefa.sessao_idsessao = Sessao.objects.get(
                idsessao=request.POST['idsession'])
            inicio = Sessao.objects.get(
                idsessao=request.POST['idsession']
            ).horario_has_dia_id_dia_hora.horario_hora.hora
            duracao = ativid.duracao * 60
            inicio_s = inicio.hour * 3600 + inicio.minute * 60 + inicio.second
            total = inicio_s + duracao
            new_tarefa.hora_inicio = time.strftime('%H:%M:%S',
                                                   time.gmtime(total))
            new_tarefa.dia_dia = Dia.objects.get(
                dia=Sessao.objects.get(idsessao=request.POST['idsession']).
                horario_has_dia_id_dia_hora.dia_dia.dia)
            new_tarefa.save()
            if request.POST['id_colaborador_utilizador_idutilizador'] != '':
                noti_views.new_noti(
                    request, colaborador_user.pk,
                    'Tarefa ' + '"' + new_tarefa.nome + '"',
                    'Foi atribuido uma Nova Tarefa ' + '"' + new_tarefa.nome +
                    '"')
            messages.success(request, f'Tarefa Criada com Sucesso!')
            return redirect("tarefa_coordenador:consultar_tarefa")

    return render(request=request,
                  template_name="main/criarTarefaAcompanhar.html",
                  context={
                      'ati': ati,
                      'atividade': atividade,
                      'form': form,
                      'i': len(noti_not_checked(request)),
                      'not_checked': noti_not_checked(request)
                  })
def modify_user(request, id):
    #print(id!=request.session['user_id'] or not(Administrador.objects.filter(pk=request.session['user_id']).exists()))
    if id != request.session['user_id'] and not (Administrador.objects.filter(
            pk=request.session['user_id']).exists()):
        context = {
            'i': len(noti_not_checked(request)),
            'not_checked': noti_not_checked(request)
        }
        return render(request, "not_for-u.html", context)
    name = Utilizador.objects.get(idutilizador=id).nome
    me = request.session['user_id']
    if request.method == 'POST':
        form = ModifyForm(request.POST)
        print(request.POST['name'] != "")
        print(request.POST['email'] != "")
        print(not Utilizador.objects.filter(
            email=request.POST['email']).exists())
        print(not Utilizador.objects.filter(
            telefone=request.POST['telefone']).exists())
        print(request.POST['telefone'] != "")
        print(bool(validateEmail(request.POST['email'])))
        if (request.POST['name'] != "") and (request.POST['email'] != "") and (
                not (Utilizador.objects.filter(
                    email=request.POST['email']).exists())
                or Utilizador.objects.get(pk=id).email == request.POST['email']
        ) and (request.POST['telefone'] != "") and (validateEmail(
                request.POST['email'])):
            t = Utilizador.objects.get(pk=id)
            t.nome = request.POST['name']
            t.email = request.POST['email']
            t.telefone = request.POST['telefone']
            if t.validada == 5:
                t.validada = 0
            t.save()
            print("1")
            noti_views.new_noti(
                request, t.pk, 'Alteração de dados no perfil',
                'Foram feitas alterações nos dados do seu perfil. Por favor consulte as alterações.'
            )
            messages.success(request, f"Utilizador alterado com sucesso")
            if id == request.session['user_id']:
                return redirect('blog:blog-home')
            return redirect('profile_list')
        else:
            error = False
            error3 = False
            error5 = False
            data = request.POST
            telefone = data['telefone']
            funcao = data['funcao']
            email = data['email']
            curso = False
            dep = False
            UO = False
            ano = False
            if 'ano' in data:
                ano = data['ano']
            if 'curso' in data:
                curso = data['curso']
            if 'dep' in data:
                dep = data['dep']
            if 'UO' in data:
                UO = data['UO']
            if request.POST['telefone'] == "":
                error3 = 'Preencha este campo.'
            if Utilizador.objects.filter(email=request.POST['email']).exists(
            ) and Utilizador.objects.get(
                    email=request.POST['email']).idutilizador != id:
                error = "Email ja existe"
            return render(
                request, 'profile_modify.html', {
                    'email': email,
                    'UO': UO,
                    'telefone': telefone,
                    'funcao': funcao,
                    'curso': curso,
                    'dep': dep,
                    "form": form,
                    'error4': error3,
                    "error1": error,
                    'me': me,
                    'id': id,
                    'nome': name,
                    'ano': ano,
                    'i': len(noti_not_checked(request)),
                    'not_checked': noti_not_checked(request),
                    'error5': error5
                })
    else:
        form = ModifyForm()
        email = Utilizador.objects.get(idutilizador=id).email
        telefone = Utilizador.objects.get(idutilizador=id).telefone
    UO = False
    dep = False
    ano = False
    curso = False
    funcao = False
    atual = datetime.now().year
    u = Utilizador.objects.get(pk=id)
    if Administrador.objects.filter(utilizador_idutilizador=id).exists():
        funcao = "Administardor"
        ano = year(u, atual)
    elif ProfessorUniversitario.objects.filter(
            utilizador_idutilizador=id).exists():
        funcao = "Docente Univesitario"
        depid = ProfessorUniversitario.objects.get(
            utilizador_idutilizador=id).departamento_iddepartamento
        dep = Departamento.objects.get(pk=depid.pk).nome
        UO = depid.unidade_organica_iduo.sigla
        ano = year(u, atual)
    elif Coordenador.objects.filter(utilizador_idutilizador=id).exists():
        funcao = "Coordenador"
        IDUO = Coordenador.objects.get(pk=id).unidade_organica_iduo
        UO = UnidadeOrganica.objects.get(pk=IDUO.pk).sigla
        ano = year(u, atual)
    elif Colaborador.objects.filter(utilizador_idutilizador=id).exists():
        funcao = "Colaborador"
        cursoid = Colaborador.objects.get(
            utilizador_idutilizador=id).curso_idcurso
        UO = Curso.objects.get(pk=cursoid.pk).unidade_organica_iduo.sigla
        ano = year(u, atual)
    elif Participante.objects.filter(utilizador_idutilizador=id).exists():
        funcao = "Participante"
        ano = year(u, atual)
    return render(
        request, 'profile_modify.html', {
            "form": form,
            'nome': name,
            'UO': UO,
            'email': email,
            "ano": ano,
            'telefone': telefone,
            'funcao': funcao,
            'ano': ano,
            'curso': curso,
            'dep': dep,
            "me": me,
            'id': id,
            'func': user(request),
            'i': len(noti_not_checked(request)),
            'not_checked': noti_not_checked(request)
        })