def noti(request, id):
    me_id = id
    noti = pk = UtilizadorHasNotificacao.objects.get(pk=me_id).notificacao
    destinatario = noti.utilizadorrecebe
    tipo = "Destinatario"
    if request.session['user_id'] == noti.utilizadorrecebe:
        if noti.idutilizadorenvia == -1:
            destinatario = "*****@*****.**"
        else:
            destinatario = noti.idutilizadorenvia
            destinatario = Utilizador.objects.get(pk=destinatario).email
        tipo = "Emissor"
    form = NotificationForm(
        initial={
            'Destinatario': destinatario,
            'Assunto': noti.assunto,
            'Descricao': noti.descricao
        })
    print(form)
    UtilizadorHasNotificacao.objects.filter(notificacao=noti).update(estado=1)
    return render(
        request, "consultar_not.html", {
            'form': form,
            'me_id': me_id,
            'funcao': user_views.user(request),
            'i': len(noti_not_checked(request)),
            'not_checked': noti_not_checked(request),
            'tipo': tipo
        })
def enviados(request):
    me_id = request.session['user_id']
    notis = []
    nots = UtilizadorHasNotificacao.objects.all().annotate(
        emissor=Value("", CharField()), recept=Value("", CharField()))
    deletenot(request)
    for noti in nots:
        if noti.notificacao.idutilizadorenvia == me_id and noti.utilizador_idutilizador.pk == noti.notificacao.utilizadorrecebe and not (
                has_noti(notis, noti)):
            noti.recept = Utilizador.objects.get(
                pk=noti.notificacao.utilizadorrecebe).email
            noti.pk = noti.pk
            notis.append(noti)
    func = user_views.user(request)
    my = True
    i = len(noti_not_checked(request))
    return render(
        request, 'check.html', {
            'nots': notis,
            'me_id': me_id,
            'funcao': func,
            'my': my,
            'i': i,
            'not_checked': noti_not_checked(request)
        })
def checknot(request):
    me_id = request.session['user_id']
    i = len(noti_not_checked(request))
    notis = []
    nots = UtilizadorHasNotificacao.objects.all().annotate(
        emissor=Value("", CharField()))
    deletenot(request)
    for noti in nots:
        if noti.notificacao.utilizadorrecebe == me_id:
            print(notis)
        if noti.notificacao.utilizadorrecebe == me_id and noti.utilizador_idutilizador == Utilizador.objects.get(
                pk=me_id) and not (has_noti(notis, noti)):
            if Utilizador.objects.filter(
                    pk=noti.notificacao.idutilizadorenvia).exists():
                noti.emissor = Utilizador.objects.get(
                    pk=noti.notificacao.idutilizadorenvia).email
            else:
                noti.emissor = '*****@*****.**'
            noti.pk = noti.pk
            notis.append(noti)
    func = user_views.user(request)
    #print(func)
    return render(
        request, 'check.html', {
            'nots': notis,
            'me_id': me_id,
            'funcao': func,
            'i': i,
            'not_checked': noti_not_checked(request)
        })
Exemplo n.º 4
0
def curso_form(request):
    cursos = Curso.objects.all()
    cursos = cursos.order_by('-idcurso')
    print(cursos)
    func = views.user(request)
    if request.method == 'POST' and not (
            Curso.objects.filter(nome=request.POST['nome']).exists()
            and UnidadeOrganica.objects.filter(
                sigla=request.POST['unidade_organica_iduo'])):
        form = cursoForm(request.POST)
        if form.is_valid() and request.POST['nome'] != None:
            form.save()
    else:
        form = cursoForm()
    context = {
        'form': form,
        'cursos': cursos,
        'id': request.session['user_id'],
        'funcao': func,
        'i': len(noti_not_checked(request)),
        'not_checked': noti_not_checked(request)
    }
    return render(request, 'cursos.html', context)
def createnot(request):
    list = []
    me_id = request.session['user_id']
    funcao = user_views.user(request)
    contacts = get_my_lists(request, list)
    if request.method == 'POST':
        form = NotificationForm(request.POST)
        emails = request.POST['Destinatario'].split(",")
        if form.is_valid():
            for email in emails:
                email = email.strip()
                form.cleaned_data['idutilizadorenvia'] = request.session[
                    'user_id']
                if user_views.validateEmail(email) is True and (
                        Utilizador.objects.filter(email=email).exists()):
                    if Utilizador.objects.filter(email=email).exists():
                        user_email = Utilizador.objects.get(email=email)
                elif email in list:
                    None
                else:
                    form.add_error('Destinatario',
                                   'email invalido ou não existe')
                    messages.error(request, "Email Invalido")
                    return render(
                        request, 'compor_not.html', {
                            'form': form,
                            'me_id': me_id,
                            'funcao': funcao,
                            'contacts': contacts
                        })
            for email in emails:
                email = email.strip()
                if email in list:
                    send_to_org(email, request)
                else:
                    user_email = Utilizador.objects.get(email=email)
                    d = request.POST['Descricao']
                    a = request.POST['Assunto']
                    destinatario_pk = int(user_email.pk)
                    noti = Notificacao.objects.create(
                        descricao=d,
                        utilizadorrecebe=destinatario_pk,
                        idutilizadorenvia=request.session['user_id'],
                        criadoem=datetime.now(),
                        assunto=a)
                    UtilizadorHasNotificacao.objects.create(
                        utilizador_idutilizador=user_email,
                        notificacao=noti,
                        estado=0)
                    if email != Utilizador.objects.get(
                            pk=request.session['user_id']).email:
                        UtilizadorHasNotificacao.objects.create(
                            utilizador_idutilizador=Utilizador.objects.get(
                                pk=request.session['user_id']),
                            notificacao=noti,
                            estado=1)
            messages.success(request, 'Notificação enviada com sucesso')
            return redirect('check_not')
        else:
            for email in emails:
                email = email.strip()
                form.cleaned_data['idutilizadorenvia'] = request.session[
                    'user_id']
                if user_views.validateEmail(email) is True and (
                        Utilizador.objects.filter(email=email).exists()):
                    if Utilizador.objects.filter(email=email).exists():
                        user_email = Utilizador.objects.get(email=email)
                elif email in list:
                    None
                else:
                    form.add_error('Destinatario',
                                   'email invalido ou não existe')
                    messages.error(request, "Email Invalido")
    else:
        form = NotificationForm()
    for f in form:
        print(type(f.errors))
    return render(
        request, 'compor_not.html', {
            'form': form,
            'me_id': me_id,
            'funcao': funcao,
            'i': len(noti_not_checked(request)),
            'not_checked': noti_not_checked(request),
            'contacts': contacts
        })