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) })
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 })