def parse_log_entry_to_log_model(logentry: LogEntry) -> Log: """ Converts LogEntry instance to apache DB model Log :param logentry: LogEntry object instance :return: Log object instance """ if logentry is None: return Log() url = logentry.headers_in["Referer"] urn = logentry.request_line.split()[1] uri = url # TODO correctly concatenate URI from URL+URN log = Log( ip_address=logentry.remote_host, created_date=logentry.request_time, http_method=logentry.request_line.split()[0], uri=uri, url=url, urn=urn, response_code=logentry.final_status, content_length=logentry.bytes_sent, user_agent=logentry.headers_in["User-Agent"], ) log.clean_fields() return log
def create_invalid_login_log(self, serializer): username = self.request.data['username'] if username: try: Log( type=Log.Types.INVALID_LOGIN, user=User.objects.get(username=username), ).save() except User.DoesNotExist: Log(type=Log.Types.INVALID_LOGIN).save() else: Log(type=Log.Types.INVALID_LOGIN).save()
def handle(self, *args, **kwargs): MAX_DESCRIPTION_LENGTH = Log._meta.get_field('description').max_length e_query = Event.objects.filter( Q(end_date__lt=datetime.datetime.today()) | Q(end_date=datetime.datetime.today(), end_time__lte=timezone.now())) e_query = [e for e in e_query if e.s_calendar.nonprofit] #^ get events that are done and have an assoicated nonprofit calendar a_query = Attendee.objects.filter( event__in=e_query, log__isnull=True, user__isnull=False ) #get attendees who were at a completed event and who do not have logs if not a_query: self.stdout.write("All attendee events have logs created") sys.exit() for a in a_query: e = a.event np = e.s_calendar.nonprofit duration = e.end_datetime - e.start_datetime description_header = 'Automatically created log for the attended event "%s":\n' % e.s_title log = Log(attendee=a, user=a.user, nonprofit=np, duration=duration, start_date=e.start_date, description=(description_header + e.s_description)[:MAX_DESCRIPTION_LENGTH]) log.save() self.stdout.write("Log created for attendee " + str(a) + ", event " + str(e.s_title))
def add_log(title, description=''): action = Action() action.description = description log = Log() log.title = title log.actions.append(action) log.save()
def parse_all(self, file_path: str): t1 = time.time() logger.info('Starting saving file to db') with open(file_path, 'r') as f: next(f) # первая строка - пустая bulk_mng = BulkCreateManager() for entry in self.parser.parse_lines(f, ignore_invalid=True): ip_address = entry.remote_host timestamp = entry.request_time response_status_code = entry.final_status http_method, request_path, http_protocol = entry.request_line.split( ) content_length = entry.bytes_sent user_agent = entry.headers_in['User-Agent'] referer = entry.headers_in['Referer'] bulk_mng.add( Log(ip_address=ip_address, timestamp=timestamp, response_status_code=response_status_code, http_method=http_method, request_path=request_path, http_protocol=http_protocol, content_length=content_length, user_agent=user_agent, referer=referer)) bulk_mng.done() # удостовериться что все данные добавились в бд logger.info(f'It took {time.time() - t1} seconds')
def create(self, validated_data): password = validated_data.pop("password") user = User(**validated_data) user.set_password(password) user.save() Log(type=Log.Types.SIGN_UP, user=user).save() return user
def tronco_remove(request, id): tronco = Tronco.objects.get(id=id) nome = tronco.nome tronco.delete() texto = request.user.username + " removeu o tronco: " + nome log = Log(log=texto) log.save() return redirect('/troncos/')
def anuncio_remove(request, id): anuncio = Anuncio.objects.get(id=id) nome = anuncio.descricao anuncio.delete() texto = request.user.username + " removeu o anúncio: " + nome log = Log(log=texto) log.save() return redirect('/anuncios/')
def condicoestempo_remove(request, id): condicoestempo = CondicaoTempo.objects.get(id=id) nome = condicoestempo.nome condicoestempo.delete() texto = request.user.username + " removeu a condição de tempo: " + nome log = Log(log=texto) log.save() return redirect('/condicoestempo/')
def ura_remove(request, id): ura = URA.objects.get(id=id) nome = ura.nome ura.delete() texto = request.user.username + " removeu a URA: " + nome log = Log(log=texto) log.save() return redirect('/uras/')
def fila_remove(request, id): fila = Fila.objects.get(id=id) nome = fila.nome fila.delete() texto = request.user.username + " removeu a fila: " +nome log = Log(log= texto) log.save() return redirect('/filas/')
def numero_remove(request, id): numero = NumeroEntrada.objects.get(id=id) num = numero.numero numero.delete() texto = request.user.username + ": removeu o número de entrada: " + num log = Log(log=texto) log.save() return redirect('/numeros/')
def chamadasgrupo_remove(request, id): chamadasgrupo = ChamadaEmGrupo.objects.get(id=id) cham = chamadasgrupo.descricao chamadasgrupo.delete() texto = request.user.username + ": removeu a chamada em grupo: " +cham log = Log(log= texto) log.save() return redirect('/chamadasgrupo/')
def save_log(member, timestamp, status): working_day, _ = WorkingDay.objects.get_or_create(date=timestamp.date()) log = Log( member_fk=member, timestamp=timestamp, status=status, working_day=working_day, ) log.save() return log
def post(self, *args, **kwargs): blocked = get_object_or_404(User.objects, username=kwargs["username"]) _, created = Block.objects.get_or_create( blocker=self.request.user, blocked=blocked ) if created: Log( type=Log.Types.BLOCK, user=self.request.user, affected_user=blocked ).save() return Response(data={}, status=status.HTTP_201_CREATED)
def create(self, validated_data): request = self.context.get('request') user = request.user server_name = validated_data.get('server_name') type = validated_data.get('type') message = validated_data.get('message') text = validated_data.get('text') log_obj = Log(server_name=server_name, type=type, message=message, text=text) log_obj.user = user log_obj.save() return log_obj
def put(self, request, pk): problem = get_object_or_404(Problem, pk=pk) last_status = problem.status back_url = request.GET.get('next', reverse('problems:index')) context = {} form = ProblemForm(data=request.POST, instance=problem) if form.is_valid(): if last_status == 0 and problem.status == 1: log = Log(title='Problema resolvido', description='', problem=problem) log.save() elif last_status == 1 and problem.status == 0: log = Log(title='Problema não resolvido', description='', problem=problem) log.save() form.save() messages.success(request, 'Problema alterado com sucesso!') context['form'] = form context['back_url'] = back_url return render(request, self.template_name, context)
def save_log(data: tuple) -> bool: try: log = Log() log.ip = data[0] log.date = datetime.strptime(data[1], "%d/%b/%Y:%H:%M:%S %z") log.method = data[2].split()[0] log.uri = data[2].split()[1] log.status_code = int(data[3]) if data[3].isdigit() else None log.size = int(data[4]) if data[4].isdigit() else None log.save() except Exception as e: logger.error(f"Error {e} on saving: {''.join(data)}") return False return True
def create(self, validated_data): sender = self.context["request"].user reciever = self.context["other_user"] validated_data["sender"] = sender validated_data["reciever"] = reciever if Block.objects.filter(blocker=reciever, blocked=sender).exists(): validated_data["is_blocked"] = True message = super().create(validated_data) Log(type=Log.Types.MESSAGE_SEND, user=sender, affected_user=reciever).save() return message
def post(self, *args, **kwargs): blocked = get_object_or_404(User.objects, username=kwargs["username"]) delete_count = Block.objects.filter( blocker=self.request.user, blocked=blocked ).delete() if delete_count: Log( type=Log.Types.UN_BLOCK, user=self.request.user, affected_user=blocked ).save() Message.objects.filter( sender=blocked, reciever=self.request.user, is_blocked=True ).update(is_blocked=False) return Response(data={}, status=status.HTTP_204_NO_CONTENT)
def index(request): if request.user.role != 1: problems = Problem.objects.filter(user_id=request.user.id) else: problems = Problem.objects.all() template_name = 'problems/index.html' context = {} form = ProblemForm(request.POST or None) if form.is_valid(): form.save() form = ProblemForm() problem_id = Problem.objects.latest('id') log = Log(title='Problema criado', description='', problem=problem_id) log.save() messages.success(request, 'Problema inserido com sucesso!') context['items'] = Item.objects.all() context['problems'] = problems context['form'] = form context['form'].fields['user'].initial = request.user.id return render(request, template_name, context)
def upload_file_cad(request): if request.method == 'POST': myfile = request.FILES['anexGravacao'] fs = FileSystemStorage() filename = fs.save(myfile.name, myfile) uploaded_file_url = fs.url(filename) nome = request.POST['nomeGravacao'] tipo = '2' gravacao = Gravacao(nome=nome, link=uploaded_file_url, tipo=tipo) gravacao.save() texto = request.user.username + ": adicionou a gravação: " + nome log = Log(log=texto) log.save() gravacoes = Gravacao.objects.exclude(musica__isnull=False) data = {} data['gravacao'] = gravacao data['gravacoes'] = gravacoes dest_anuncios = Anuncio.objects.all() dest_gravacoes = Gravacao.objects.all() dest_numeros = NumeroEntrada.objects.all() dest_uras = URA.objects.all() dest_filas = Fila.objects.all() dest_chamadasGrupo = ChamadaEmGrupo.objects.all() dest_condicoes = CondicaoTempo.objects.all() dest_troncos = Tronco.objects.all() data['dest_anuncios'] = dest_anuncios data['dest_gravacoes'] = dest_gravacoes data['dest_numeros'] = dest_numeros data['dest_uras'] = dest_uras data['dest_filas'] = dest_filas data['dest_chamadasGrupo'] = dest_chamadasGrupo data['dest_condicoes'] = dest_condicoes data['dest_troncos'] = dest_troncos return render(request, 'CadastroAnuncio.html', data)
def fila_novo(request): nome = request.POST['nome'] senha = request.POST['senha'] if 'dicas_disp' in request.POST: dicasDisp = request.POST['dicas_disp'] else: dicasDisp = False if 'conf_cham' in request.POST: confirmCham = request.POST['conf_cham'] else: confirmCham = False anuncConfirmCham = request.POST['anunc_confirm_cham'] if anuncConfirmCham != '0': anuncConfirmCham = Anuncio.objects.get(id=anuncConfirmCham) prefixCID = request.POST['prefix_cid'] prefixTempoEspera = request.POST['prefix_tempo'] infoAlerta = request.POST['info'] restringAgentDin = request.POST['restring_agent_din'] restricAgente = request.POST['restric_agente'] estratChamada = request.POST['estrat_ring'] if 'p_auto' in request.POST: preenchAuto = request.POST['p_auto'] else: preenchAuto = False igAgentesOcup = request.POST['ignorar_agen_ocup'] pesoFila = request.POST['peso'] musEspera = request.POST['musica_esp'] if musEspera != '0': musEspera = Musica.objects.get(id=musEspera) tipoMus = request.POST['tipo_mus'] anuncUniao = request.POST['anuncio_uniao'] if anuncUniao !='0': anuncUniao = Anuncio.objects.get(id=anuncUniao) quandoAnun = request.POST['quando_anuncio'] gravacaoChamada = request.POST['grav_cham'] modoGravacao = request.POST['modo_grav'] ajustVolumeChamada = request.POST['vol_cham'] ajustVolumeAgente = request.POST['vol_agent'] if 'mcrol' in request.POST: marcaChamOutroLug = request.POST['mcrol'] else: marcaChamOutroLug = False maxTempoEspera = request.POST['max_temp'] modoMaxTempoEspera = request.POST['modo_max_esp'] tempoLimAgent = request.POST['limit_temp_agente'] reinicioTempoLimAg = request.POST['rest_agnt'] retentativa = request.POST['retentativa'] tempoConclusao = request.POST['temp_conclu'] atrasoMembro = request.POST['atraso_membro'] anuncioAgente = request.POST['agnt_a'] if anuncioAgente != '0': anuncioAgente = Anuncio.objects.get(id=anuncioAgente) relatorioTemEsp = request.POST['report_time'] pausaAutom = request.POST['pausa_auto'] pausaAutoOcup = request.POST['pausa_ocup'] pausaAutoIndispo = request.POST['pausa_ind'] atrasoPausaAut = request.POST['delay_pausa'] maxChamadores = request.POST['max_callers'] unirVazio = request.POST['join_empty'] deixarVazio = request.POST['leave_empty'] limMembrosPenal = request.POST['penalty'] frequencia = request.POST['frequency'] posAnuncio = request.POST['position_anun'] anuncTempoEsp = request.POST['anun_tempEsp'] menuSaidaURA = request.POST['break_out'] if menuSaidaURA != '0': menuSaidaURA = URA.objects.get(id=menuSaidaURA) frequenRepet = request.POST['r_frequency'] eventChamado = request.POST['event_called'] eventStatusMem = request.POST['event_status'] nivelServico = request.POST['service_level'] filtro = request.POST['filtro_regex'] if 'dest_anuncios' in request.POST: dest_anuncios = request.POST['dest_anuncios'] if 'dest_gravacoes' in request.POST: dest_gravacoes = request.POST['dest_gravacoes'] if 'dest_numeros' in request.POST: dest_numeros = request.POST['dest_numeros'] if 'dest_uras' in request.POST: dest_uras = request.POST['dest_uras'] if 'dest_filas' in request.POST: dest_filas = request.POST['dest_filas'] if 'dest_chamadasGrupo' in request.POST: dest_chamadasGrupo = request.POST['dest_chamadasGrupo'] if 'dest_condicoes' in request.POST: dest_condicoes = request.POST['dest_condicoes'] if 'dest_troncos' in request.POST: dest_troncos = request.POST['dest_troncos'] destinoId = '0' if dest_anuncios != '0': destinoId = dest_anuncios if dest_gravacoes != '0': destinoId = dest_gravacoes if dest_numeros != '0': destinoId = dest_numeros if dest_uras != '0': destinoId = dest_uras if dest_filas != '0': destinoId = dest_filas if dest_chamadasGrupo != '0': destinoId = dest_chamadasGrupo if dest_condicoes != '0': destinoId = dest_condicoes if dest_troncos != '0': destinoId = dest_troncos tipoDestino = request.POST['tipo_des'] reporEstat = request.POST['repor_estat'] tipo = '5' fila = Fila(nome=nome, senha=senha, dicasDisp=dicasDisp, confirmCham=confirmCham, prefixCID=prefixCID, prefixTempoEspera=prefixTempoEspera, infoAlerta=infoAlerta, restringAgentDin=restringAgentDin, restricAgente=restricAgente, estratChamada=estratChamada, preenchAuto=preenchAuto, igAgentesOcup = igAgentesOcup, pesoFila = pesoFila, tipoMus = tipoMus, quandoAnun = quandoAnun, gravacaoChamada = gravacaoChamada, modoGravacao = modoGravacao, ajustVolumeChamada = ajustVolumeChamada, ajustVolumeAgente = ajustVolumeAgente, marcaChamOutroLug=marcaChamOutroLug, maxTempoEspera = maxTempoEspera, modoMaxTempoEspera = modoMaxTempoEspera, tempoLimAgent = tempoLimAgent, reinicioTempoLimAg = reinicioTempoLimAg, retentativa = retentativa, tempoConclusao = tempoConclusao, atrasoMembro = atrasoMembro, relatorioTemEsp = relatorioTemEsp, pausaAutom = pausaAutom, pausaAutoOcup = pausaAutoOcup, pausaAutoIndispo = pausaAutoIndispo, atrasoPausaAut = atrasoPausaAut, maxChamadores = maxChamadores, unirVazio = unirVazio, deixarVazio = deixarVazio, frequencia = frequencia, posAnuncio = posAnuncio, anuncTempoEsp = anuncTempoEsp, frequenRepet = frequenRepet, eventChamado = eventChamado, eventStatusMem = eventStatusMem, nivelServico = nivelServico, filtro = filtro, reporEstat = reporEstat, tipo=tipo ) fila.save() if destinoId != '0': fila.destinoFalhaTipo = tipoDestino fila.destinoFalha = destinoId fila.save() if anuncConfirmCham != '0': fila.anuncConfirmCham=anuncConfirmCham fila.save() if musEspera != '0': fila.musEspera = musEspera fila.save() if anuncUniao !='0': fila.anuncUniao = anuncUniao fila.save() if anuncioAgente != '0': fila.anuncioAgente = anuncioAgente fila.save() if menuSaidaURA != '0': fila.menuSaidaURA = menuSaidaURA fila.save() if limMembrosPenal !='0': fila.limMembrosPenal = limMembrosPenal fila.save() lista_area = request.POST['agentes_est'] cont = 1 agentes = lista_area.splitlines() for linha in agentes: lin = linha.strip(" ") if lin != "": agente = AgentesDinamicos(numero=lin, ordem=cont, fila=fila) agente.save() cont = cont +1 lista_area = request.POST['membros_din'] cont = 1 agentes = lista_area.splitlines() for linha in agentes: lin = linha.strip(" ") if lin != "": agente = MembrosDinamicos(numero=lin, ordem=cont, fila=fila) agente.save() cont = cont +1 texto = request.user.username + " adicionou a fila: " +nome log = Log(log= texto) log.save() return redirect ('/filas/')
def fila_edita(request, id): data = {} fila = Fila.objects.get(id=id) data['fila'] = fila if request.method == 'POST': nome = request.POST['nome'] senha = request.POST['senha'] if 'dicas_disp' in request.POST: dicasDisp = request.POST['dicas_disp'] else: dicasDisp = False if 'conf_cham' in request.POST: confirmCham = request.POST['conf_cham'] else: confirmCham = False anuncConfirmCham = request.POST['anunc_confirm_cham'] if anuncConfirmCham != '0': anuncConfirmCham = Anuncio.objects.get(id=anuncConfirmCham) prefixCID = request.POST['prefix_cid'] prefixTempoEspera = request.POST['prefix_tempo'] infoAlerta = request.POST['info'] restringAgentDin = request.POST['restring_agent_din'] restricAgente = request.POST['restric_agente'] estratChamada = request.POST['estrat_ring'] if 'p_auto' in request.POST: preenchAuto = request.POST['p_auto'] else: preenchAuto = False igAgentesOcup = request.POST['ignorar_agen_ocup'] pesoFila = request.POST['peso'] musEspera = request.POST['musica_esp'] if musEspera != '0': musEspera = Musica.objects.get(id=musEspera) tipoMus = request.POST['tipo_mus'] anuncUniao = request.POST['anuncio_uniao'] if anuncUniao !='0': anuncUniao = Anuncio.objects.get(id=anuncUniao) quandoAnun = request.POST['quando_anuncio'] gravacaoChamada = request.POST['grav_cham'] modoGravacao = request.POST['modo_grav'] ajustVolumeChamada = request.POST['vol_cham'] ajustVolumeAgente = request.POST['vol_agent'] if 'mcrol' in request.POST: marcaChamOutroLug = request.POST['mcrol'] else: marcaChamOutroLug = False maxTempoEspera = request.POST['max_temp'] modoMaxTempoEspera = request.POST['modo_max_esp'] tempoLimAgent = request.POST['limit_temp_agente'] reinicioTempoLimAg = request.POST['rest_agnt'] retentativa = request.POST['retentativa'] tempoConclusao = request.POST['temp_conclu'] atrasoMembro = request.POST['atraso_membro'] anuncioAgente = request.POST['agnt_a'] if anuncioAgente != '0': anuncioAgente = Anuncio.objects.get(id=anuncioAgente) relatorioTemEsp = request.POST['report_time'] pausaAutom = request.POST['pausa_auto'] pausaAutoOcup = request.POST['pausa_ocup'] pausaAutoIndispo = request.POST['pausa_ind'] atrasoPausaAut = request.POST['delay_pausa'] maxChamadores = request.POST['max_callers'] unirVazio = request.POST['join_empty'] deixarVazio = request.POST['leave_empty'] limMembrosPenal = request.POST['penalty'] frequencia = request.POST['frequency'] posAnuncio = request.POST['position_anun'] anuncTempoEsp = request.POST['anun_tempEsp'] menuSaidaURA = request.POST['break_out'] if menuSaidaURA != '0': menuSaidaURA = URA.objects.get(id=menuSaidaURA) frequenRepet = request.POST['r_frequency'] eventChamado = request.POST['event_called'] eventStatusMem = request.POST['event_status'] nivelServico = request.POST['service_level'] filtro = request.POST['filtro_regex'] if 'dest_anuncios' in request.POST: dest_anuncios = request.POST['dest_anuncios'] if 'dest_gravacoes' in request.POST: dest_gravacoes = request.POST['dest_gravacoes'] if 'dest_numeros' in request.POST: dest_numeros = request.POST['dest_numeros'] if 'dest_uras' in request.POST: dest_uras = request.POST['dest_uras'] if 'dest_filas' in request.POST: dest_filas = request.POST['dest_filas'] if 'dest_chamadasGrupo' in request.POST: dest_chamadasGrupo = request.POST['dest_chamadasGrupo'] if 'dest_condicoes' in request.POST: dest_condicoes = request.POST['dest_condicoes'] if 'dest_troncos' in request.POST: dest_troncos = request.POST['dest_troncos'] destinoId = '0' if dest_anuncios != '0': destinoId = dest_anuncios if dest_gravacoes != '0': destinoId = dest_gravacoes if dest_numeros != '0': destinoId = dest_numeros if dest_uras != '0': destinoId = dest_uras if dest_filas != '0': destinoId = dest_filas if dest_chamadasGrupo != '0': destinoId = dest_chamadasGrupo if dest_condicoes != '0': destinoId = dest_condicoes if dest_troncos != '0': destinoId = dest_troncos tipoDestino = request.POST['tipo_des'] reporEstat = request.POST['repor_estat'] fila.nome=nome fila.senha=senha fila.dicasDisp=dicasDisp fila.confirmCham=confirmCham fila.prefixCID=prefixCID fila.prefixTempoEspera=prefixTempoEspera fila.infoAlerta=infoAlerta fila.restringAgentDin=restringAgentDin fila.restricAgente=restricAgente fila.estratChamada=estratChamada fila.preenchAuto=preenchAuto fila.igAgentesOcup = igAgentesOcup fila.pesoFila = pesoFila fila.tipoMus = tipoMus fila.quandoAnun = quandoAnun fila.gravacaoChamada = gravacaoChamada fila.modoGravacao = modoGravacao fila.ajustVolumeChamada = ajustVolumeChamada fila.ajustVolumeAgente = ajustVolumeAgente fila.marcaChamOutroLug=marcaChamOutroLug fila.maxTempoEspera = maxTempoEspera fila.modoMaxTempoEspera = modoMaxTempoEspera fila.tempoLimAgent = tempoLimAgent fila.reinicioTempoLimAg = reinicioTempoLimAg fila.retentativa = retentativa fila.tempoConclusao = tempoConclusao fila.atrasoMembro = atrasoMembro fila.relatorioTemEsp = relatorioTemEsp fila.pausaAutom = pausaAutom fila.pausaAutoOcup = pausaAutoOcup fila.pausaAutoIndispo = pausaAutoIndispo fila.atrasoPausaAut = atrasoPausaAut fila.maxChamadores = maxChamadores fila.unirVazio = unirVazio fila.deixarVazio = deixarVazio fila.frequencia = frequencia fila.posAnuncio = posAnuncio fila.anuncTempoEsp = anuncTempoEsp fila.frequenRepet = frequenRepet fila.eventChamado = eventChamado fila.eventStatusMem = eventStatusMem fila.nivelServico = nivelServico fila.filtro = filtro fila.reporEstat = reporEstat fila.save() if limMembrosPenal != '0': fila.limMembrosPenal = limMembrosPenal fila.save() if destinoId != '0': fila.destinoFalhaTipo = tipoDestino fila.destinoFalha = destinoId fila.save() if anuncConfirmCham != '0': fila.anuncConfirmCham=anuncConfirmCham fila.save() if musEspera != '0': fila.musEspera = musEspera fila.save() if anuncUniao !='0': fila.anuncUniao = anuncUniao fila.save() if anuncioAgente != '0': fila.anuncioAgente = anuncioAgente fila.save() if menuSaidaURA != '0': fila.menuSaidaURA = menuSaidaURA fila.save() agentesE = AgentesDinamicos.objects.filter(fila=id) for item in agentesE: item.delete() agentes_area = request.POST['agentes_est'] cont = 1 lista = agentes_area.splitlines() for linha in lista: lin = linha.strip(" ") if lin != "": lista = AgentesDinamicos(numero=lin, ordem=cont, fila=fila) lista.save() cont = cont +1 membrosD = MembrosDinamicos.objects.filter(fila=id) for item in membrosD: item.delete() membros_area = request.POST['membros_din'] cont = 1 lista = membros_area.splitlines() for linha in lista: lin = linha.strip(" ") if lin != "": lista = MembrosDinamicos(numero=lin, ordem=cont, fila=fila) lista.save() cont = cont +1 texto = request.user.username + " editou a fila: " +fila.nome log = Log(log= texto) log.save() return redirect('/filas/') else: dest_anuncios = Anuncio.objects.all() dest_gravacoes = Gravacao.objects.all() dest_numeros = NumeroEntrada.objects.all() dest_uras = URA.objects.all() dest_filas = Fila.objects.all() dest_chamadasGrupo = ChamadaEmGrupo.objects.all() dest_condicoes = CondicaoTempo.objects.all() dest_troncos = Tronco.objects.all() anun_conf_chamada = Anuncio.objects.all() musicas = Musica.objects.all() anun_uniao = Anuncio.objects.all() agen_anunc = Anuncio.objects.all() break_out = URA.objects.all() data['dest_anuncios'] = dest_anuncios data['dest_gravacoes'] = dest_gravacoes data['dest_numeros'] = dest_numeros data['dest_uras'] = dest_uras data['dest_filas'] = dest_filas data['dest_chamadasGrupo'] = dest_chamadasGrupo data['dest_condicoes'] = dest_condicoes data['dest_troncos'] = dest_troncos data['anun_conf_chamada'] = anun_conf_chamada data['musicas'] = musicas data['anun_uniao'] = anun_uniao data['agen_anunc'] = agen_anunc data['break_out'] = break_out agentesD = AgentesDinamicos.objects.filter(fila=id) agentesEstaticos = "" for num in agentesD: agentesEstaticos = agentesEstaticos+num.numero.strip() +"\n" data['agentesEstaticos'] = agentesEstaticos membrosD = MembrosDinamicos.objects.filter(fila=id) membrosDinamicos = "" for num in membrosD: membrosDinamicos = membrosDinamicos+num.numero.strip() +"\n" data['membrosDinamicos'] = membrosDinamicos return render(request, 'editaFila.html', data)
print(header_name) data_list = [] for row in rows: data_list.append({col: value for col, value in zip(header_name, row)}) office = Office.objects.all()[0] for data in data_list: print('log {} start', data['id']) pprint(data) (member, _) = Member.objects.get_or_create( id=data["chat_id"], first_name=data["first_name"], last_name=data["last_name"], office_fk=office, ) log = Log(created=datetime.now(), id=data["id"], member_fk=member, timestamp=data["timestamp"], status=data["category"], optional_status=data['sub_category'], longitude=data['longitude'], latitude=data['latitude'], confirmation=data['confirmation'], edit_history=data['history'], remarks=data['remarks']) log.save() print('log {} saved', data['id']) conn.close()
def chamadasgrupo_novo(request): descricao = request.POST['descricao'] estrategia = request.POST['estrategia'] tempoChamada = request.POST['tempoChamada'] anuncioCGID = request.POST['anuncioCG'] if anuncioCGID == "0" : anuncioCG = None else: anuncioCG = Anuncio.objects.get(id=anuncioCGID) #musicaEspera = request.POST['musicaEspera'] musicasID = request.POST['musicaEspera'] if musicasID == "0" : musicas = None else: musicas = Musica.objects.get(id=musicasID) prefixCID = request.POST['prefixCID'] infoAlerta = request.POST['infoAlerta'] #anuncioRemoto anuncioRemotoID = request.POST['anuncioRemoto'] if anuncioRemotoID == "0" : anuncioRemoto = None else: anuncioRemoto = Anuncio.objects.get(id=anuncioRemotoID) #anuncioTardio anuncioTardioID = request.POST['anuncioTardio'] if anuncioTardioID == "0" : anuncioTardio = None else: anuncioTardio = Anuncio.objects.get(id=anuncioTardioID) modo = request.POST['modo'] valorFixoCID = request.POST['valorFixoCID'] gravarChamadas = request.POST['gravarChamadas'] if 'igConfigCF' in request.POST: igConfigCF = request.POST['igConfigCF'] else: igConfigCF = False if 'igAgentOcupado' in request.POST: igAgentOcupado = request.POST['igAgentOcupado'] else: igAgentOcupado = False if 'atendeChamada' in request.POST: atendeChamada = request.POST['atendeChamada'] else: atendeChamada = False if 'confirm_chamada' in request.POST: confirmaChamada = request.POST['confirm_chamada'] else: confirmaChamada = False if 'dest_anuncios' in request.POST: dest_anuncios = request.POST['dest_anuncios'] if 'dest_gravacoes' in request.POST: dest_gravacoes = request.POST['dest_gravacoes'] if 'dest_numeros' in request.POST: dest_numeros = request.POST['dest_numeros'] if 'dest_uras' in request.POST: dest_uras = request.POST['dest_uras'] if 'dest_filas' in request.POST: dest_filas = request.POST['dest_filas'] if 'dest_chamadasGrupo' in request.POST: dest_chamadasGrupo = request.POST['dest_chamadasGrupo'] if 'dest_condicoes' in request.POST: dest_condicoes = request.POST['dest_condicoes'] if 'dest_troncos' in request.POST: dest_troncos = request.POST['dest_troncos'] destinoId = 0 if dest_anuncios != '0': destinoId = dest_anuncios if dest_gravacoes != '0': destinoId = dest_gravacoes if dest_numeros != '0': destinoId = dest_numeros if dest_uras != '0': destinoId = dest_uras if dest_filas != '0': destinoId = dest_filas if dest_chamadasGrupo != '0': destinoId = dest_chamadasGrupo if dest_condicoes != '0': destinoId = dest_condicoes if dest_troncos != '0': destinoId = dest_troncos tipoDestino = request.POST['tipo_des'] tipo = '6' chamadasgrupo = ChamadaEmGrupo(descricao=descricao, gravarChamadas=gravarChamadas, modo=modo , estrategia=estrategia, tempoChamada=tempoChamada, prefixCID=prefixCID, infoAlerta=infoAlerta,valorFixoCID=valorFixoCID, igConfigCF=igConfigCF,igAgentOcupado=igAgentOcupado, atendeChamada=atendeChamada,confirmaChamada=confirmaChamada, anuncioCG=anuncioCG, anuncioRemoto=anuncioRemoto,anuncioTardio=anuncioTardio, musicaEspera=musicas, tipo=tipo ) # musica = Musica( ) chamadasgrupo.save() if destinoId != 0: chamadasgrupo.destinoTipo = tipoDestino chamadasgrupo.destino = destinoId chamadasgrupo.save() lista_area = request.POST['lista_ext'] cont = 1 lista = lista_area.splitlines() for linha in lista: lista = ListaExtensao(numero=linha, ordem=cont, chamada=chamadasgrupo) lista.save() cont = cont +1 texto = request.user.username + " adicionou a chamada em grupo: " +descricao log = Log(log= texto) log.save() return redirect ('/chamadasgrupo/')
def chamadasgrupo_edita(request, id): data = {} chamadasgrupo = ChamadaEmGrupo.objects.get(id=id) data['chamadasgrupo'] = chamadasgrupo if request.method == 'POST': chamadasgrupo = ChamadaEmGrupo.objects.get(id=id) descricao = request.POST['descricao'] estrategia = request.POST['estrategia'] tempoChamada = request.POST['tempoChamada'] anuncioCGID = request.POST['anuncioCG'] if anuncioCGID == "0" : anuncioCG = None else: anuncioCG = Anuncio.objects.get(id=anuncioCGID) #musicaEspera = request.POST['musicaEspera'] musicaEsperaID = request.POST['musicaEspera'] if musicaEsperaID == "0" : musicaEspera = None else: musicaEspera = Musica.objects.get(id=musicaEsperaID) prefixCID = request.POST['prefixCID'] infoAlerta = request.POST['infoAlerta'] #anuncioRemoto anuncioRemotoID = request.POST['anuncioRemoto'] if anuncioRemotoID == "0" : anuncioRemoto = None else: anuncioRemoto = Anuncio.objects.get(id=anuncioRemotoID) #anuncioTardio anuncioTardioID = request.POST['anuncioTardio'] if anuncioTardioID == "0" : anuncioTardio = None else: anuncioTardio = Anuncio.objects.get(id=anuncioTardioID) modo = request.POST['modo'] valorFixoCID = request.POST['valorFixoCID'] gravarChamadas = request.POST['gravarChamadas'] if 'igConfigCF' in request.POST: igConfigCF = request.POST['igConfigCF'] else: igConfigCF = False if 'igAgentOcupado' in request.POST: igAgentOcupado = request.POST['igAgentOcupado'] else: igAgentOcupado = False if 'atendeChamada' in request.POST: atendeChamada = request.POST['atendeChamada'] else: atendeChamada = False if 'confirm_chamada' in request.POST: confirmaChamada = request.POST['confirm_chamada'] else: confirmaChamada = False if 'dest_anuncios' in request.POST: dest_anuncios = request.POST['dest_anuncios'] if 'dest_gravacoes' in request.POST: dest_gravacoes = request.POST['dest_gravacoes'] if 'dest_numeros' in request.POST: dest_numeros = request.POST['dest_numeros'] if 'dest_uras' in request.POST: dest_uras = request.POST['dest_uras'] if 'dest_filas' in request.POST: dest_filas = request.POST['dest_filas'] if 'dest_chamadasGrupo' in request.POST: dest_chamadasGrupo = request.POST['dest_chamadasGrupo'] if 'dest_condicoes' in request.POST: dest_condicoes = request.POST['dest_condicoes'] if 'dest_troncos' in request.POST: dest_troncos = request.POST['dest_troncos'] destinoId = 0 if dest_anuncios != '0': destinoId = dest_anuncios if dest_gravacoes != '0': destinoId = dest_gravacoes if dest_numeros != '0': destinoId = dest_numeros if dest_uras != '0': destinoId = dest_uras if dest_filas != '0': destinoId = dest_filas if dest_chamadasGrupo != '0': destinoId = dest_chamadasGrupo if dest_condicoes != '0': destinoId = dest_condicoes if dest_troncos != '0': destinoId = dest_troncos tipoDestino = request.POST['tipo_des'] if destinoId != 0: chamadasgrupo.destinoTipo = tipoDestino chamadasgrupo.destino = destinoId chamadasgrupo.descricao =descricao chamadasgrupo.estrategia = estrategia chamadasgrupo.tempoChamada = tempoChamada chamadasgrupo.anuncioCG = anuncioCG chamadasgrupo.musicaEspera = musicaEspera chamadasgrupo.prefixCID = prefixCID chamadasgrupo.infoAlerta = infoAlerta chamadasgrupo.anuncioRemoto = anuncioRemoto chamadasgrupo.anuncioTardio = anuncioTardio chamadasgrupo.modo = modo chamadasgrupo.valorFixoCID = valorFixoCID chamadasgrupo.gravarChamadas = gravarChamadas chamadasgrupo.igConfigCF = igConfigCF chamadasgrupo.igAgentOcupado = igAgentOcupado chamadasgrupo.atendeChamada = atendeChamada chamadasgrupo.confirmaChamada = confirmaChamada chamadasgrupo.save() listai = ListaExtensao.objects.filter(chamada=id) for item in listai: item.delete() lista_area = request.POST['lista_ext'] cont = 1 lista = lista_area.splitlines() for linha in lista: lin = linha.strip(" ") if lin != "": lista = ListaExtensao(numero=lin, ordem=cont, chamada=chamadasgrupo) lista.save() cont = cont +1 texto = request.user.username + " editou a chamada em grupo: " +descricao log = Log(log= texto) log.save() return redirect('/chamadasgrupo/') else: anuncios = Anuncio.objects.all() musicas = Musica.objects.all() if chamadasgrupo.anuncioCG : anuncioCG = chamadasgrupo.anuncioCG else: anuncioCG = None if chamadasgrupo.anuncioRemoto : anuncioRemoto = chamadasgrupo.anuncioRemoto else: anuncioRemoto = None if chamadasgrupo.anuncioTardio : anuncioTardio = chamadasgrupo.anuncioTardio else: anuncioTardio = None if chamadasgrupo.musicaEspera : musicaEspera = chamadasgrupo.musicaEspera else: musicaEspera = None data['anuncios'] = anuncios data['musicas'] = musicas data['anuncioCG'] = anuncioCG data['anuncioRemoto'] = anuncioRemoto data['anuncioTardio'] = anuncioTardio data['musicaEspera'] = musicaEspera dest_anuncios = Anuncio.objects.all() dest_gravacoes = Gravacao.objects.all() dest_numeros = NumeroEntrada.objects.all() dest_uras = URA.objects.all() dest_filas = Fila.objects.all() dest_chamadasGrupo = ChamadaEmGrupo.objects.all() dest_condicoes = CondicaoTempo.objects.all() dest_troncos = Tronco.objects.all() data['dest_anuncios'] = dest_anuncios data['dest_gravacoes'] = dest_gravacoes data['dest_numeros'] = dest_numeros data['dest_uras'] = dest_uras data['dest_filas'] = dest_filas data['dest_chamadasGrupo'] = dest_chamadasGrupo data['dest_condicoes'] = dest_condicoes data['dest_troncos'] = dest_troncos listai = ListaExtensao.objects.filter(chamada=id) lista = "" for num in listai: lista = lista+num.numero.strip() +"\n" data['lista'] = lista return render(request, 'editaChamadaEmGrupo.html', data)
def condicoestempo_novo(request): nome = request.POST['nome'] if 'dest_anuncios' in request.POST: dest_anuncios = request.POST['dest_anuncios'] if 'dest_gravacoes' in request.POST: dest_gravacoes = request.POST['dest_gravacoes'] if 'dest_numeros' in request.POST: dest_numeros = request.POST['dest_numeros'] if 'dest_uras' in request.POST: dest_uras = request.POST['dest_uras'] if 'dest_filas' in request.POST: dest_filas = request.POST['dest_filas'] if 'dest_chamadasGrupo' in request.POST: dest_chamadasGrupo = request.POST['dest_chamadasGrupo'] if 'dest_condicoes' in request.POST: dest_condicoes = request.POST['dest_condicoes'] if 'dest_troncos' in request.POST: dest_troncos = request.POST['dest_troncos'] destinoId = 0 if dest_anuncios != '0': destinoId = dest_anuncios if dest_gravacoes != '0': destinoId = dest_gravacoes if dest_numeros != '0': destinoId = dest_numeros if dest_uras != '0': destinoId = dest_uras if dest_filas != '0': destinoId = dest_filas if dest_chamadasGrupo != '0': destinoId = dest_chamadasGrupo if dest_condicoes != '0': destinoId = dest_condicoes if dest_troncos != '0': destinoId = dest_troncos tipoDestino = request.POST['tipo_des'] if 'ndest_anuncios' in request.POST: ndest_anuncios = request.POST['ndest_anuncios'] if 'ndest_gravacoes' in request.POST: ndest_gravacoes = request.POST['ndest_gravacoes'] if 'ndest_numeros' in request.POST: ndest_numeros = request.POST['ndest_numeros'] if 'ndest_uras' in request.POST: ndest_uras = request.POST['ndest_uras'] if 'ndest_filas' in request.POST: ndest_filas = request.POST['ndest_filas'] if 'ndest_chamadasGrupo' in request.POST: ndest_chamadasGrupo = request.POST['ndest_chamadasGrupo'] if 'ndest_condicoes' in request.POST: ndest_condicoes = request.POST['ndest_condicoes'] if 'ndest_troncos' in request.POST: ndest_troncos = request.POST['ndest_troncos'] ndestinoId = 0 if ndest_anuncios != '0': ndestinoId = ndest_anuncios if ndest_gravacoes != '0': ndestinoId = ndest_gravacoes if ndest_numeros != '0': ndestinoId = ndest_numeros if ndest_uras != '0': ndestinoId = ndest_uras if ndest_filas != '0': ndestinoId = ndest_filas if ndest_chamadasGrupo != '0': ndestinoId = ndest_chamadasGrupo if ndest_condicoes != '0': ndestinoId = ndest_condicoes if ndest_troncos != '0': ndestinoId = ndest_troncos ntipoDestino = request.POST['ntipo_des'] condicoestempo = CondicaoTempo(nome=nome) condicoestempo.save() if destinoId != 0: condicoestempo.destinoCoincideTipo = tipoDestino condicoestempo.destinoCoincide = destinoId condicoestempo.save() if destinoId != 0: condicoestempo.destinoNaoCoincideTipo = ntipoDestino condicoestempo.destinoNaoCoincide = ndestinoId condicoestempo.save() tipo = '7' horaInicio = [] horaFim = [] diaSemanaInicio = [] diaSemanaFim = [] diaMesInicio = [] diaMesFim = [] mesIncio = [] mesFim = [] contador = int(request.POST['count']) for i in range(contador): horaInicio.append(request.POST['hora_inicio' + str(i)]) horaFim.append(request.POST['hora_termino' + str(i)]) diaSemanaInicio.append(request.POST['dia_semana_ini' + str(i)]) diaSemanaFim.append(request.POST['dia_semana_ter' + str(i)]) diaMesInicio.append(request.POST['dia_mes_inicio' + str(i)]) diaMesFim.append(request.POST['dia_mes_termina' + str(i)]) mesIncio.append(request.POST['mes_inicio' + str(i)]) mesFim.append(request.POST['mes_termino' + str(i)]) cont = 0 while cont < contador: grupotempo = GrupoTempo(horaInicio=horaInicio[cont], horaFim=horaFim[cont], diaSemanaInicio=diaSemanaInicio[cont], tipo=tipo, diaSemanaFim=diaSemanaFim[cont], diaMesInicio=diaMesInicio[cont], diaMesFim=diaMesFim[cont], mesIncio=mesIncio[cont], mesFim=mesFim[cont], condTempo=condicoestempo) grupotempo.save() cont = cont + 1 texto = request.user.username + " adicionou a condição de tempo: " + nome log = Log(log=texto) log.save() return redirect('/condicoestempo/')
def condicoestempo_edita(request, id): data = {} condicoestempo = CondicaoTempo.objects.get(id=id) data['condicoestempo'] = condicoestempo grupotempo = GrupoTempo.objects.filter(condTempo=condicoestempo) data['grupostempo'] = grupotempo count = len(grupotempo) data['count'] = count if request.method == 'POST': nome = request.POST['nome'] condicoestempo.nome = nome condicoestempo.save() if 'dest_anuncios' in request.POST: dest_anuncios = request.POST['dest_anuncios'] if 'dest_gravacoes' in request.POST: dest_gravacoes = request.POST['dest_gravacoes'] if 'dest_numeros' in request.POST: dest_numeros = request.POST['dest_numeros'] if 'dest_uras' in request.POST: dest_uras = request.POST['dest_uras'] if 'dest_filas' in request.POST: dest_filas = request.POST['dest_filas'] if 'dest_chamadasGrupo' in request.POST: dest_chamadasGrupo = request.POST['dest_chamadasGrupo'] if 'dest_condicoes' in request.POST: dest_condicoes = request.POST['dest_condicoes'] if 'dest_troncos' in request.POST: dest_troncos = request.POST['dest_troncos'] destinoId = 0 if dest_anuncios != '0': destinoId = dest_anuncios if dest_gravacoes != '0': destinoId = dest_gravacoes if dest_numeros != '0': destinoId = dest_numeros if dest_uras != '0': destinoId = dest_uras if dest_filas != '0': destinoId = dest_filas if dest_chamadasGrupo != '0': destinoId = dest_chamadasGrupo if dest_condicoes != '0': destinoId = dest_condicoes if dest_troncos != '0': destinoId = dest_troncos tipoDestino = request.POST['tipo_des'] if 'ndest_anuncios' in request.POST: ndest_anuncios = request.POST['ndest_anuncios'] if 'ndest_gravacoes' in request.POST: ndest_gravacoes = request.POST['ndest_gravacoes'] if 'ndest_numeros' in request.POST: ndest_numeros = request.POST['ndest_numeros'] if 'ndest_uras' in request.POST: ndest_uras = request.POST['ndest_uras'] if 'ndest_filas' in request.POST: ndest_filas = request.POST['ndest_filas'] if 'ndest_chamadasGrupo' in request.POST: ndest_chamadasGrupo = request.POST['ndest_chamadasGrupo'] if 'ndest_condicoes' in request.POST: ndest_condicoes = request.POST['ndest_condicoes'] if 'ndest_troncos' in request.POST: ndest_troncos = request.POST['ndest_troncos'] ndestinoId = 0 if ndest_anuncios != '0': ndestinoId = ndest_anuncios if ndest_gravacoes != '0': ndestinoId = ndest_gravacoes if ndest_numeros != '0': ndestinoId = ndest_numeros if ndest_uras != '0': ndestinoId = ndest_uras if ndest_filas != '0': ndestinoId = ndest_filas if ndest_chamadasGrupo != '0': ndestinoId = ndest_chamadasGrupo if ndest_condicoes != '0': ndestinoId = ndest_condicoes if ndest_troncos != '0': ndestinoId = ndest_troncos ntipoDestino = request.POST['ntipo_des'] if destinoId != 0: condicoestempo.destinoCoincideTipo = tipoDestino condicoestempo.destinoCoincide = destinoId condicoestempo.save() if destinoId != 0: condicoestempo.destinoNaoCoincideTipo = ntipoDestino condicoestempo.destinoNaoCoincide = ndestinoId condicoestempo.save() horaInicio = [] horaFim = [] diaSemanaInicio = [] diaSemanaFim = [] diaMesInicio = [] diaMesFim = [] mesIncio = [] mesFim = [] cont = 0 for g in grupotempo: g.delete() contador = int(request.POST['count']) conta = 0 for i in range(contador): hora = 'hora_inicio' + str(i) if hora in request.POST: horaInicio.append(request.POST['hora_inicio' + str(i)]) horaFim.append(request.POST['hora_termino' + str(i)]) diaSemanaInicio.append(request.POST['dia_semana_ini' + str(i)]) diaSemanaFim.append(request.POST['dia_semana_ter' + str(i)]) diaMesInicio.append(request.POST['dia_mes_inicio' + str(i)]) diaMesFim.append(request.POST['dia_mes_termina' + str(i)]) mesIncio.append(request.POST['mes_inicio' + str(i)]) mesFim.append(request.POST['mes_termino' + str(i)]) conta = conta + 1 tipo = '7' while cont < conta: grupotempo = GrupoTempo(horaInicio=horaInicio[cont], horaFim=horaFim[cont], diaSemanaInicio=diaSemanaInicio[cont], tipo=tipo, diaSemanaFim=diaSemanaFim[cont], diaMesInicio=diaMesInicio[cont], diaMesFim=diaMesFim[cont], mesIncio=mesIncio[cont], mesFim=mesFim[cont], condTempo=condicoestempo) grupotempo.save() cont = cont + 1 texto = request.user.username + " editou a condição de tempo: " + nome log = Log(log=texto) log.save() return redirect('/condicoestempo/') else: dest_anuncios = Anuncio.objects.all() dest_gravacoes = Gravacao.objects.all() dest_numeros = NumeroEntrada.objects.all() dest_uras = URA.objects.all() dest_filas = Fila.objects.all() dest_chamadasGrupo = ChamadaEmGrupo.objects.all() dest_condicoes = CondicaoTempo.objects.all() dest_troncos = Tronco.objects.all() gravacoes = Gravacao.objects.exclude(musica__isnull=False) data['dest_anuncios'] = dest_anuncios data['dest_gravacoes'] = dest_gravacoes data['dest_numeros'] = dest_numeros data['dest_uras'] = dest_uras data['dest_filas'] = dest_filas data['dest_chamadasGrupo'] = dest_chamadasGrupo data['dest_condicoes'] = dest_condicoes data['dest_troncos'] = dest_troncos data['gravacoes'] = gravacoes return render(request, 'editaCondicaoTempo.html', data)
def troncosip_novo(request): nome = request.POST['nome'] callerIDSaida = request.POST['callerids'] opcoesCID = request.POST['op_cid'] maxCanais = request.POST['max_canais'] if 'op_asterisk' in request.POST: opcoesDiskAsterisk = request.POST['op_asterisk'] else: opcoesDiskAsterisk = None if 'continua_ocup' in request.POST: contSeOcup = request.POST['continua_ocup'] else: contSeOcup = False if 'desab_tronco' in request.POST: desabTronco = request.POST['desab_tronco'] else: desabTronco = False prefixChamSaida = request.POST['prefixo_saida'] nomeTronco = request.POST['nome_tronco'] detalhesPEER = request.POST['detalhes_PEER'] contextoUsuario = request.POST['contexto'] detalhesUsuario = request.POST['detalhes_usuarios'] stringRegistro = request.POST['string_reg'] tipo = '8' troncoSIP = TroncoSIP(tipo=tipo, nome=nome, opcoesCID=opcoesCID, contSeOcup=contSeOcup, desabTronco=desabTronco, prefixChamSaida=prefixChamSaida) troncoSIP.save() troncoSIP.callerIDSaida = callerIDSaida troncoSIP.maxCanais = maxCanais if opcoesDiskAsterisk: troncoSIP.opcoesDiskAsterisk = opcoesDiskAsterisk troncoSIP.nomeTronco = nomeTronco troncoSIP.detalhesPEER = detalhesPEER troncoSIP.contextoUsuario = contextoUsuario troncoSIP.detalhesUsuario = detalhesUsuario troncoSIP.stringRegistro = stringRegistro troncoSIP.save() precedente = [] prefixo = [] padraoEquiv = [] contador = int(request.POST['count']) for i in range(contador): precedente.append(request.POST['precedente' + str(i)]) prefixo.append(request.POST['prefix' + str(i)]) padraoEquiv.append(request.POST['match' + str(i)]) cont = 0 while cont < contador: regramanip = RegraManipulaNum(precedente=precedente[cont], prefixo=prefixo[cont], padrao=padraoEquiv[cont], tronco=troncoSIP) regramanip.save() cont = cont + 1 texto = request.user.username + " adicionou o tronco SIP: " + nome log = Log(log=texto) log.save() return redirect('/troncos/')