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 nao_tem_permissoes(request, inscricao): """ Retorna a página de "Não tem permissões" se o utilizador logado não for participante, coordenador ou administrador, se for coordenador e a inscrição não tiver sessões do seu departamento ou se for participante e a inscrição não lhe pertencer. Caso contrário retorna False """ result = False user_check_var = user_check( request=request, user_profile=[Coordenador, Participante, Administrador]) if not user_check_var.get('exists'): return user_check_var.get('render') if coordenador_e_inscricao_nao_do_departamento(request, inscricao): result = True if participante_e_inscricao_doutro(request, inscricao): result = True if result: return render(request=request, template_name='mensagem.html', context={ 'tipo': 'error', 'm': 'Não tem permissões para aceder a esta página!' }) return False
def ver_departamentos(request): user_check_var = user_check(request=request, user_profile=[Colaborador]) if not user_check_var.get('exists'): return user_check_var.get('render') value_uo = request.POST.get("value_uo") value_dep = request.POST.get('value_dep') value_uo = is_int(value_uo) if value_uo != 'None' and value_uo is not None and value_uo is not False: uo = Unidadeorganica.objects.filter(id=value_uo).first() departamentos = Departamento.objects.filter(unidadeorganicaid=uo) else: departamentos = Departamento.objects.filter( unidadeorganicaid=user_check_var.get('firstProfile').faculdade) deps = [] for dep in departamentos: deps.append({'key': dep.id, 'value': dep.nome}) value_dep = is_int(value_dep) default = {} if value_dep != 'None' and value_dep is not None and value_dep is not False: dep = Departamento.objects.get(id=value_dep) default = {'key': dep.id, 'value': dep.nome} else: default = {'key': "", 'value': "Qualquer Departamento"} return render(request=request, template_name='configuracao/dropdown.html', context={ 'options': deps, 'default': default })
def newDay(request, id=None): user_check_var = user_check(request=request, user_profile=[Administrador]) if user_check_var.get('exists') == False: return user_check_var.get('render') if Diaaberto.current() is not None and id is None: return redirect('configuracao:diasAbertos') logged_admin = Administrador.objects.get(utilizador_ptr_id = request.user.id) if id is None: dia_aberto = Diaaberto(administradorutilizadorid=logged_admin) else: dia_aberto = Diaaberto.objects.get(id=id,administradorutilizadorid=logged_admin) dia_aberto_form = diaAbertoSettingsForm(instance=dia_aberto) if request.method == 'POST': submitted_data = request.POST.copy() dia_aberto_form = diaAbertoSettingsForm(submitted_data, instance=dia_aberto) if dia_aberto_form.is_valid(): dia_aberto = dia_aberto_form.save() if dia_aberto.escalasessoes > time(0,59): dia_aberto.escalasessoes = time(0,59) dia_aberto.save() return redirect('configuracao:diasAbertos') return render(request=request, template_name = 'configuracao/diaAbertoForm.html', context = {'form': dia_aberto_form})
def dispatch(self, request, *args, **kwargs): user_check_var = user_check(request=request, user_profile=[Colaborador]) if not user_check_var.get('exists'): return user_check_var.get('render') self.user_check_var = user_check_var return super().dispatch(request, *args, **kwargs)
def configurarUO(request, id = None): user_check_var = user_check(request=request, user_profile=[Administrador]) if user_check_var.get('exists') == False: return user_check_var.get('render') uOformSet = uOFormset() uOforms = uOformSet(queryset=Unidadeorganica.objects.none()) uO = Unidadeorganica() allowMore = True allowDelete = True if id is not None: uO = Unidadeorganica.objects.get(id=id) uOforms = uOformSet(queryset=Unidadeorganica.objects.filter(id=uO.id)) allowMore, allowDelete = False, False if(request.method == 'POST'): uOforms = uOformSet(request.POST) if uOforms.is_valid(): uOforms.save() return redirect('configuracao:verUOs') return render(request=request, template_name='configuracao/criarUOs.html', context={'formset': uOforms, 'allowMore': allowMore, 'allowDelete': allowDelete, })
def eliminarTransporte(request, id): user_check_var = user_check(request=request, user_profile=[Administrador]) if user_check_var.get('exists') == False: return user_check_var.get('render') Transportehorario.objects.get(id=id).delete() return redirect('configuracao:verTransportes')
def configurarEdificio(request, id = None): user_check_var = user_check(request=request, user_profile=[Administrador]) if user_check_var.get('exists') == False: return user_check_var.get('render') espacoFormSet = modelformset_factory(model=Espaco, form=EspacoForm,extra=0, min_num = 1, can_delete=True) formSet = espacoFormSet(queryset=Espaco.objects.none()) edificio = Edificio() if id is not None: edificio = Edificio.objects.get(id=id) formSet = espacoFormSet(queryset=Espaco.objects.filter(edificio=edificio)) edificioForm = EdificioForm(instance=edificio) if request.method == 'POST': edificioForm = EdificioForm(request.POST,request.FILES,instance=edificio) formSet = espacoFormSet(request.POST) if edificioForm.is_valid() and formSet.is_valid(): edificio = edificioForm.save() instances = formSet.save(commit=False) for instance in instances: instance.edificio=edificio instance.save() for instance in formSet.deleted_objects: instance.delete() return redirect('configuracao:verEdificios') return render(request=request, template_name='configuracao/criarEdificio.html', context={'form':edificioForm, 'formset':formSet})
def eliminarSessao(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 sessoes = Sessao.objects.filter( id=id, atividadeid__professoruniversitarioutilizadorid=userId) if sessoes.exists(): sessaor = sessoes.first() if sessaor.vagas != sessaor.atividadeid.participantesmaximo: return render(request=request, template_name='mensagem.html', context={ 'tipo': 'error', 'm': 'Não tem permissões para esta ação!' }) atividadeid = sessaor.atividadeid.id sessaor.delete() return redirect('atividades:inserirSessao', atividadeid) else: return render(request=request, template_name='mensagem.html', context={ 'tipo': 'error', 'm': 'Não tem permissões para esta ação!' })
def configurarCurso(request, id = None): user_check_var = user_check(request=request, user_profile=[Administrador]) if user_check_var.get('exists') == False: return user_check_var.get('render') departamentoformSet = cursoFormSet() departamentoforms = departamentoformSet(queryset=Curso.objects.none()) departamento = Curso() allowMore = True allowDelete = True if id is not None: departamento = Curso.objects.get(id=id) departamentoforms = departamentoformSet(queryset=Curso.objects.filter(id=departamento.id)) allowMore, allowDelete = False, False if(request.method == 'POST'): departamentoforms = departamentoformSet(request.POST) if departamentoforms.is_valid(): departamentoforms.save() return redirect('configuracao:verCursos') return render(request=request, template_name='configuracao/criarCursos.html', context={'formset': departamentoforms, 'allowMore': allowMore, 'allowDelete': allowDelete, })
def dispatch(self, request, *args, **kwargs): user_check_var = user_check(request=request, user_profile=[ProfessorUniversitario]) if not user_check_var.get('exists'): return user_check_var.get('render') self.user_check_var = user_check_var return super().dispatch(request, *args, **kwargs)
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 eliminarCurso(request, id): user_check_var = user_check(request=request, user_profile=[Administrador]) if user_check_var.get('exists') == False: return user_check_var.get('render') Curso.objects.filter(id=id).delete() return redirect('configuracao:verCursos')
def newMenu(request, id = None): user_check_var = user_check(request=request, user_profile=[Administrador]) if user_check_var.get('exists') == False: return user_check_var.get('render') PratoFormSet = menuPratoFormset() prato_form_set = PratoFormSet(queryset=Prato.objects.none()) menu_object = Menu() if id is not None: menu_object = Menu.objects.get(id=id) prato_form_set = PratoFormSet(queryset=Prato.objects.filter(menuid=menu_object)) menu_form = menuForm(instance=menu_object) if request.method == 'POST': menu_form = menuForm(request.POST,instance=menu_object) prato_form_set = PratoFormSet(request.POST) #print(request.POST) if menu_form.is_valid() and prato_form_set.is_valid(): menu_object = menu_form.save() instances = prato_form_set.save(commit=False) for instance in instances: instance.menuid = menu_object instance.save() for instance in prato_form_set.deleted_objects: instance.delete() return redirect('configuracao:verMenus') return render(request=request, template_name='configuracao/menuForm.html', context = {'form': menu_form, 'formset': prato_form_set} )
def delMenu(request, id = None): user_check_var = user_check(request=request, user_profile=[Administrador]) if user_check_var.get('exists') == False: return user_check_var.get('render') menu=Menu.objects.get(id=id) menu.delete() return redirect('configuracao:verMenus')
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 eliminarAtribuicao(request, id): user_check_var = user_check(request=request, user_profile=[Administrador]) if user_check_var.get('exists') == False: return user_check_var.get('render') transportehorario=Inscricaotransporte.objects.get(id=id).transporte.id Inscricaotransporte.objects.get(id=id).delete() return redirect('configuracao:atribuirTransporte', transportehorario)
def delPrato(request, id): user_check_var = user_check(request=request, user_profile=[Administrador]) if user_check_var.get('exists') == False: return user_check_var.get('render') prato=Prato.objects.get(id=id) menuid=prato.menuid.id prato.delete() return redirect('configuracao:novoPrato',menuid)
def delDay(request, id=None): user_check_var = user_check(request=request, user_profile=[Administrador]) if user_check_var.get('exists') == False: return user_check_var.get('render') if id is not None: dia_aberto = Diaaberto.objects.filter(id=id) dia_aberto.delete() return redirect('configuracao:diasAbertos')
def dispatch(self, request, *args, **kwargs): user_check_var = user_check(request=request, user_profile=[Coordenador]) if not user_check_var.get('exists'): return user_check_var.get('render') self.user_check_var = user_check_var today = datetime.now(timezone.utc) - timedelta(hours=1, minutes=00) Atividade.objects.filter(estado="nsub", datasubmissao__lte=today).delete() return super().dispatch(request, *args, **kwargs)
def criarTransporte(request, id = None): user_check_var = user_check(request=request, user_profile=[Administrador]) if user_check_var.get('exists') == False: return user_check_var.get('render') if Diaaberto.current() is None: return {'exists': False, 'render': render(request=request, template_name='mensagem.html', context={ 'tipo':'error', 'm':'Crie um dia aberto primeiro!' }) } #vars transport_by_default = Transporte() transport_universitario_default = Transporteuniversitario(transporte=transport_by_default) #forms HorarioFormSet = transporteHorarioFormset() horario_form_set = HorarioFormSet(queryset=Transportehorario.objects.none()) form_transport = transporteForm() form_universitario = transporteUniversitarioForm() if id is not None: transport_by_default = Transportehorario.objects.get(id=id).transporte transport_universitario_default = Transporteuniversitario(transporte=transport_by_default) horario_form_set = HorarioFormSet(queryset=Transportehorario.objects.filter(transporte=transport_by_default)) form_transport = transporteForm(instance=transport_by_default) form_universitario = transporteUniversitarioForm(instance=Transporteuniversitario.objects.get(transporte=transport_by_default)) if request.method == "POST": form_transport = transporteForm(request.POST, instance=transport_by_default) form_universitario = transporteUniversitarioForm(request.POST, instance=transport_universitario_default) horario_form_set = HorarioFormSet(request.POST) if form_transport.is_valid() and form_universitario.is_valid() and horario_form_set.is_valid(): transport = form_transport.save() form_universitario.instance.transporte = transport form_universitario.save() instances = horario_form_set.save(commit=False) for instance in instances: instance.transporte = transport instance.save() for instance in horario_form_set.deleted_objects: instance.delete() return redirect('configuracao:verTransportes') return render(request = request, template_name='configuracao/criarTransporte.html', context={'form_t': form_transport, 'form_uni': form_universitario, 'formset': horario_form_set})
def coordenador_e_inscricao_nao_do_departamento(request, inscricao): """ Retorna a página de "Não tem permissões" se o utilizador logado for coordenador e a inscrição não tiver sessões do seu departamento. Caso contrário retorna False """ user_check_var = user_check(request=request, user_profile=[Coordenador]) if user_check_var.get('exists'): coordenador = Coordenador.objects.get(user_ptr=request.user) if coordenador.departamento not in inscricao.get_departamentos(): return user_check_var.get('render') return False
def proporatividade(request): user_check_var = user_check(request=request, user_profile=[ProfessorUniversitario]) if user_check_var.get('exists') == False: return user_check_var.get('render') today = datetime.now(timezone.utc) diaabertopropostas = Diaaberto.objects.get( datapropostasatividadesincio__lte=today, dataporpostaatividadesfim__gte=today) diainicio = diaabertopropostas.datadiaabertoinicio.date() diafim = diaabertopropostas.datadiaabertofim.date() totaldias = diafim - diainicio + timedelta(days=1) dias_diaaberto = [] for d in range(totaldias.days): dias_diaaberto.append(diainicio + timedelta(days=d)) sessoes = "" if request.method == "POST": activity_object_form = AtividadeForm(request.POST) material_object_form = MateriaisForm(request.POST) espacoid = request.POST["espacoid"] espaco = Espaco.objects.get(id=espacoid) new_form = Atividade( professoruniversitarioutilizadorid=ProfessorUniversitario.objects. get(utilizador_ptr_id=request.user.id), estado="nsub", diaabertoid=diaabertopropostas, espacoid=Espaco.objects.get(id=espaco.id), tema=Tema.objects.get(id=request.POST['tema'])) activity_object_form = AtividadeForm(request.POST, instance=new_form) if activity_object_form.is_valid(): activity_object_formed = activity_object_form.save() new_material = Materiais(atividadeid=activity_object_formed) material_object_form = MateriaisForm(request.POST, instance=new_material) material_object_form.save() return redirect('atividades:inserirSessao', activity_object_formed.id) else: material_object_form = MateriaisForm() activity_object_form = AtividadeForm() return render( request, 'atividades/proporAtividadeAtividade.html', { 'form': activity_object_form, 'campus': Campus.objects.all(), "materiais": material_object_form })
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 verresumo(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) material = Materiais.objects.filter(atividadeid=atividade).first() nsub = 0 if atividade.estado == "nsub": nsub = 1 print(nsub) if request.method == "POST": if 'anterior' in request.POST: return redirect('atividades:inserirSessao', id) sessions_activity = Sessao.objects.filter(atividadeid=atividade) return render(request=request, template_name="atividades/resumo.html", context={ "atividade": atividade, "sessions_activity": sessions_activity, "nsub": nsub, "material": material }) else: return render(request=request, template_name='mensagem.html', context={ 'tipo': 'error', 'm': 'Não tem permissões para esta ação!' })
def participante_e_inscricao_doutro(request, inscricao): """ Retorna a página de "Não tem permissões" se o utilizador logado for participante e a inscrição não lhe pertencer. Caso contrário retorna False """ user_check_var = user_check(request=request, user_profile=[Participante]) if user_check_var.get('exists'): if inscricao.participante != user_check_var['firstProfile']: return render(request=request, template_name='mensagem.html', context={ 'tipo': 'error', 'm': 'Não tem permissões para aceder a esta página!' }) return False
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 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 configurarTema(request, id = None): user_check_var = user_check(request=request, user_profile=[Administrador]) if user_check_var.get('exists') == False: return user_check_var.get('render') tema = Tema() if id is not None: tema = Tema.objects.get(id=id) temaForm = TemaForm(instance=tema) if request.method == 'POST': temaForm = TemaForm(data=request.POST,instance=tema) if temaForm.is_valid(): tema = temaForm.save() return redirect('configuracao:verTemas') return render(request=request, template_name='configuracao/criarTema.html', context={'form':temaForm})
def tipoTarefa(request): user_check_var = user_check(request=request, user_profile=[Coordenador]) template ='' form = '' atividades = None ativ = None if request.method == 'POST': tipo = request.POST['tipo'] if tipo == 'tarefaAuxiliar': template = 'coordenadores/tarefaAuxiliar.html' if request.POST.get('id'): tarefa = TarefaAuxiliar.objects.get(tarefaid=int(request.POST['id'])) form = TarefaAuxiliarForm(initial={'atividade':tarefa.sessao.atividadeid.id,'dia':tarefa.tarefaid.dia, 'horario':tarefa.tarefaid.horario,'sessao':tarefa.sessao}, facul=user_check_var.get('firstProfile').faculdade.id) atividades = Atividade.tarefas_get_atividades(user_check_var.get('firstProfile').faculdade.id) ativ = tarefa.sessao.atividadeid else: form = TarefaAuxiliarForm(facul=user_check_var.get('firstProfile').faculdade.id) elif tipo == 'tarefaAcompanhar': template = 'coordenadores/tarefaAcompanhar.html' if request.POST.get('id'): tarefa = TarefaAcompanhar.objects.get(tarefaid=int(request.POST['id'])) form = TarefaAcompanharForm(initial={'grupo':tarefa.inscricao.id,'dia':tarefa.tarefaid.dia},facul=user_check_var.get('firstProfile').faculdade.id) else: form = TarefaAcompanharForm(facul=user_check_var.get('firstProfile').faculdade.id) elif tipo == 'tarefaOutra': template = 'coordenadores/tarefaOutra.html' if request.POST.get('id'): tarefa = TarefaOutra.objects.get(tarefaid=int(request.POST['id'])) form = TarefaOutraForm(initial={'dia':tarefa.tarefaid.dia,'horario':tarefa.tarefaid.horario,'descricao':tarefa.descricao,'colab':tarefa.tarefaid.colab}) else: form = TarefaOutraForm() if template != '': return render(request=request,template_name=template,context={'form':form,'options':atividades,'ativ':ativ}) else: return HttpResponse()