def atualizar(request, ocorrencia_id): ''' Atualiza uma ocorrência, muda o status e a observação. ''' SaveInfo(request.user, 'atualizar') ocorrencia = get_object_or_404(Ocorrencia, pk=ocorrencia_id) operador = Operador.objects.get(user=request.user.id) permission = request.user.has_perm('manager.completo') if request.user.has_perm('manager.completo') or ocorrencia.cliente == operador.cliente: if request.method == 'POST': form = FormOcorrenciasEditar(request.POST, request.FILES) if form.is_valid(): formulario = form.save(commit=False) if request.user.has_perm('manager.completo') and not ocorrencia.operador.has_perm('manager.completo'): coment = Assentamento(ocorrencia=ocorrencia, operador = operador, descricao = 'Operador do chamado alterado de %s para %s.' % (ocorrencia.operador, operador)) coment.save() ocorrencia.operador = operador.user comentarios = ocorrencia.assentamento_set.all() if not operador.user.has_perm('manager.completo'): comentarios = ocorrencia.assentamento_set.filter(tipo='Publico') if formulario.observacao != '': ocorrencia.observacao = formulario.observacao if str(ocorrencia.status) != 'Fechado' and str(formulario.status) == 'Fechado': ocorrencia.data_fecha = datetime.now() encerramento_ocorrencia = Encerramento_Ocorrencia(ocorrencia=ocorrencia, operador= operador.user, id_encerramento = int(str(time()).replace(".","")[6:])) encerramento_ocorrencia.save() elif str(ocorrencia.status) == 'Fechado' and str(formulario.status) != 'Fechado': ocorrencia.data_fecha = None ocorrencia.status = formulario.status ocorrencia.save() try: id_encerramento = ocorrencia.encerramento_ocorrencia_set.get().id_encerramento analista_encerramento = ocorrencia.encerramento_ocorrencia_set.get().operador except: id_encerramento = '' analista_encerramento = '' return HttpResponseRedirect('/ocorrencias/%s' % ocorrencia.id) else: form = FormOcorrenciasEditar() form.fields['observacao'].initial = ocorrencia.observacao form.fields['status'].initial = ocorrencia.status return render_to_response("atualizar.html", {'form': form, 'ocorrencia': ocorrencia_id, 'ocorrencias':ocorrencia, 'user':request.user}, context_instance=RequestContext(request)) else: return render_to_response("acessonegado.html")
def encerrar_ocorrencias(request): clientes = Cliente.objects.all() SaveInfo(request.user, 'encerrar_chamados') selecionar = request.GET.get('selecionar','') __filtro__ = Ocorrencia.objects.filter ocorrencias = '' if selecionar != '': ocorrencias = __filtro__(categoria__descricao='Fim de Expediente').filter(status__descricao='Pendente Abertura') ocorrencias = ocorrencias.filter(cliente = selecionar) operador = Operador.objects.get(user=request.user.id) permission = request.user.has_perm('manager.completo') desc = request.GET.get('mensagem','') _id_encerrar_ = request.GET.getlist('encerrar_chamados') if desc != '' and _id_encerrar_ !='': for _id_ in _id_encerrar_: ocorrencia = Ocorrencia.objects.get(pk=int(_id_)) if str(ocorrencia.status) != 'Fechado': encerramento_ocorrencia = Encerramento_Ocorrencia(ocorrencia=ocorrencia, operador= operador.user, id_encerramento = int(str(time()).replace(".","")[6:])) encerramento_ocorrencia.save() ocorrencia.status = Status.objects.get(descricao='Fechado') ocorrencia.observacao = ocorrencia.observacao + '\n' + desc ocorrencia.data_fecha = datetime.now() ocorrencia.save() return render_to_response('encerrar_chamados.html', {'ocorrencias':ocorrencias, 'user':request.user, 'chamados':len(_id_encerrar_), 'permission':permission, 'clientes':clientes}) return render_to_response('encerrar_chamados.html', {'ocorrencias':ocorrencias, 'user':request.user, 'clientes':clientes, 'permission':permission})
def criar_ocorrencias(request): operador = Operador.objects.get(user=request.user.id) SaveInfo(request.user, 'criar_ocorrencias') id_device = request.GET.get('devices','') permission = request.user.has_perm('manager.completo') if id_device: find_device = Ocorrencia.objects.exclude(status__descricao='Fechado').filter(device = int(id_device)) else: find_device = [] if request.method == 'POST': id_device = request.POST.get('_id_','') form = FormOcorrencias(request.POST, request.FILES) if not request.user.has_perm('manager.completo'): form = FormOcorrenciasCliente(request.POST, request.FILES) if form.is_valid(): ocorrencia = form.save(commit=False) ocorrencia.device = Device.objects.get(pk=request.POST.get('_id_','')) if not request.user.has_perm('manager.completo'): ocorrencia.status = Status.objects.get(descricao=request.POST.get('_status_','')) ocorrencia.SLA = SLA.objects.get(descricao=request.POST.get('_sla_','')) ocorrencia.prioridade = Prioridade.objects.get(descricao=request.POST.get('_prioridade_','')) ocorrencia.operador = operador.user ocorrencia.cliente = ocorrencia.device.cliente ocorrencia.save() if ocorrencia.status.descricao == 'Fechado': ocorrencia.data_fecha = datetime.now() encerramento_ocorrencia = Encerramento_Ocorrencia(ocorrencia=ocorrencia, operador= operador.user, id_encerramento = int(str(time()).replace(".","")[6:])) encerramento_ocorrencia.save() ocorrencia.save() return HttpResponseRedirect('/ocorrencias/%s' % ocorrencia.id) else: form = FormOcorrencias() if not request.user.has_perm('manager.completo'): form = FormOcorrenciasCliente() tipo = request.GET.get('tipo') if request.user.has_perm('manager.completo'): device = Device.objects.values_list('id','nome').order_by('nome') if tipo == 'designacao': device = Device.objects.values_list('id','codigo').order_by('codigo') else: device = Device.objects.values_list('id','nome').filter(cliente__nome=operador.cliente).order_by('nome') if request.GET.get('tipo') == 'designacao': device = Device.objects.values_list('id','codigo').filter(cliente__nome=operador.cliente).order_by('codigo') if request.GET.get('devices','') != '': obj_device = Device.objects.get(pk=request.GET.get('devices','')) form.fields['titulo'].initial = 'Circuito: ' + obj_device.codigo + ' ' + obj_device.nome form.fields['descricao'].initial = 'Contato: '+ unicode(obj_device.contato) + '\n' \ 'Telefone: ' + unicode(obj_device.telefone) + '\n' \ 'Logradouro: ' + unicode(obj_device.endereco) + '\n' \ 'Cidade: ' + unicode(obj_device.local) return render_to_response("criar_ocorrencias.html", {'form': form, 'device':device.exclude(cliente__nome='Prodemge'), 'find_device':find_device, 'id_device':int(id_device) if id_device else id_device, 'permission':permission, 'user':request.user, 'tipo':tipo}, context_instance=RequestContext(request))