def send_json( user, action: Action, log_item: Log, action_info: JSONPayload, ): """Send json objects to target URL. Sends the json objects evaluated per row to the URL in the action :param user: User object that executed the action :param action: Action from where to take the messages :param token: String to include as authorisation token :param key_column: Key column name to use to exclude elements (if needed) :param exclude_values: List of values to exclude from the mailing :param log_item: Log object to store results :return: Nothing """ # Evaluate the action string and obtain the list of list of JSON objects action_evals = evaluate_action( action, column_name=action_info['item_column'], exclude_values=action_info['exclude_values'], ) # Create the headers to use for all requests headers = { 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Authorization': 'Bearer {0}'.format(action_info['token']), } # Create the context for the log events context = { 'user': user.id, 'action': action.id, } # Iterate over all json objects to create the strings and check for # correctness for json_string in action_evals: send_and_log_json( user, action, json.loads(json_string[0]), headers, context, ) # Update data in the overall log item log_item.payload['objects_sent'] = len(action_evals) log_item.payload['filter_present'] = action.get_filter() is not None log_item.payload['datetime'] = str( datetime.datetime.now(pytz.timezone(ontask_settings.TIME_ZONE))) log_item.save()
def initlog(self): """ Creates a log entry for the person. """ log = Log(maxlength=40, minlevel=logging.INFO) log.save() self.log = log
def add_log(title, description=''): action = Action() action.description = description log = Log() log.title = title log.actions.append(action) log.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))
class LogTest(EngineTestCase): def setUp(self): super(LogTest, self).setUp() self.l = Log( turn=1, game=self.g, delta=1, hide_for_players=False, public=True, event_type=Game.OPE_PROTECTION, data=json.dumps({ "player": "testplayer", "market": "testmarket", "corporation": "testcorporation" }), corporation=self.c, corporation_market=self.c.get_random_corporation_market() ) self.l.save() def test_log_display(self): """ Logs should be displayed properly, according to parameters """ self.assertEqual(self.l.get_display(display_context="player", is_personal=True), u"<p>Vous avez lancé une opé de protection sur le marché testmarket de testcorporation</p>") self.assertEqual(self.l.get_display(display_context="corporation", is_personal=False), u"<p>testplayer a lancé une opé de protection sur le marché testmarket</p>") def test_logs_retrieval_for_player(self): pass
def send_emails( user, action: Action, log_item: Log, action_info: EmailPayload, ) -> None: """Send action content evaluated for each row. Sends the emails for the given action and with the given subject. The subject will be evaluated also with respect to the rows, attributes, and conditions. The messages are sent in bursts with a pause in seconds as specified by the configuration variables EMAIL_BURST and EMAIL_BURST_PAUSE :param user: User object that executed the action :param action: Action from where to take the messages :param log_item: Log object to store results :param action_info: Mapping key, value as defined in EmailPayload :return: Send the emails """ # Evaluate the action string, evaluate the subject, and get the value of # the email column. action_evals = evaluate_action( action, extra_string=action_info['subject'], column_name=action_info['item_column'], exclude_values=action_info['exclude_values']) check_cc_lists(action_info['cc_email'], action_info['bcc_email']) track_col_name = '' if action_info['track_read']: track_col_name = create_track_column(action) # Get the log item payload to store the tracking column log_item.payload['track_column'] = track_col_name log_item.save() msgs = create_messages( user, action, action_evals, track_col_name, action_info, ) deliver_msg_burst(msgs) # Update data in the log item log_item.payload['objects_sent'] = len(action_evals) log_item.payload['filter_present'] = action.get_filter() is not None log_item.payload['datetime'] = str( datetime.datetime.now(pytz.timezone(ontask_settings.TIME_ZONE)), ) log_item.save() if action_info['send_confirmation']: # Confirmation message requested send_confirmation_message(user, action, len(msgs))
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 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 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 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 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 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 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 write_log_to_db(log: Log): """ Saves apache Log instance to DB :param log: Log class instance :return: """ return log.save()
def do_workflow_update_lusers(workflow: Workflow, log_item: Log): """Recalculate the field lusers. Recalculate the elements in the field lusers of the workflow based on the fields luser_email_column and luser_email_column_MD5 :param workflow: Workflow to update :param log_item: Log where to leave the status of the operation :return: Changes in the lusers ManyToMany relationships """ # Get the column content emails = get_rows(workflow.get_data_frame_table_name(), column_names=[workflow.luser_email_column.name]) luser_list = [] created = 0 for row in emails: uemail = row[workflow.luser_email_column.name] luser = get_user_model().objects.filter(email=uemail).first() if not luser: # Create user if settings.DEBUG: # Define users with the same password in development password = '******' # NOQA else: password = get_random_string(length=RANDOM_PWD_LENGTH) luser = get_user_model().objects.create_user( email=uemail, password=password, ) created += 1 luser_list.append(luser) # Assign result workflow.lusers.set(luser_list) # Report status log_item.payload['total_users'] = emails.rowcount log_item.payload['new_users'] = created log_item.payload['status'] = ugettext( 'Learner emails successfully updated.', ) log_item.save()
def importation_launch(request): if request.method == "POST": form = XMLImportationForm(request.POST, request.FILES) if form.is_valid(): importation = form.save(commit=False) log = Log(maxlength=2000, minlevel=logging.INFO) log.save() importation.log = log importation.save() messages.info(request, _("Queued importation")) return HttpResponseRedirect( reverse('importation_status', kwargs={'importid': importation.pk})) else: messages.error(request, _("Form error")) return render(request, "importation/launch.html", {'form': form}) else: form = XMLImportationForm() return render(request, "importation/launch.html", {'form': form})
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 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 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 logs(log_type='debug', name=None, description=None): log = Log(log_type=log_type, name=name, description=description) log.save()
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/')
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 ura_novo(request): nome = request.POST['nome_ura'] descricao = request.POST['descricao'] anuncioUra = request.POST['anuncio'] discarDireto = request.POST['discar_direto'] timeout = request.POST['timeout'] tentativasInvalidas = request.POST['tent_inv'] gravRepetInvalid = request.POST['invrerecor'] if 'app_ann_inv' in request.POST: anexAnuncInvalid = request.POST['app_ann_inv'] else: anexAnuncInvalid = False if 'ReturnInvalid' in request.POST: returnInvalid = request.POST['ReturnInvalid'] else: returnInvalid = False gravInvalid = request.POST['gravinvalid'] 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'] retentativasTimeout = request.POST['timeout_ret'] gravRetentTimeout = request.POST['ret_tempo_esg'] if 'append_anon_timout' in request.POST: anexAnuncTimeout = request.POST['append_anon_timout'] else: anexAnuncTimeout = False if 'return_timout' in request.POST: retornarTimeout = request.POST['return_timout'] else: retornarTimeout = False gravTimeout = request.POST['timeout_record'] if 'append_anon_timout' in request.POST: returnURACaixaPostal = request.POST['append_anon_timout'] else: returnURACaixaPostal = False tipo = '4' ura = URA(nome=nome, descricao=descricao, discarDireto=discarDireto, timeout=timeout, anexAnuncInvalid=anexAnuncInvalid, returnInvalid=returnInvalid, anexAnuncTimeout=anexAnuncTimeout, retornarTimeout=retornarTimeout, returnURACaixaPostal=returnURACaixaPostal, tipo=tipo) ura.save() if tentativasInvalidas != "dis": ura.tentativasInvalidas = tentativasInvalidas ura.save() if retentativasTimeout != "dis": ura.retentativasTimeout = retentativasTimeout ura.save() if destinoId != 0: ura.destinoInvalidTipo = tipoDestino ura.destinoInvalid = destinoId ura.save() if ndestinoId != 0: ura.destinoTimeoutTipo = ntipoDestino ura.destinoTimeout = ndestinoId ura.save() if anuncioUra != "0": anuncio = Anuncio.objects.get(id=anuncioUra) ura.anuncioUra = anuncio ura.save() if gravRetentTimeout != "0": gravacao = Gravacao.objects.get(id=gravRetentTimeout) ura.gravRetentTimeout = gravacao ura.save() if gravRepetInvalid != "0": gravacao = Gravacao.objects.get(id=gravRepetInvalid) ura.gravRepetInvalid = gravacao ura.save() if gravInvalid != "0": gravacao = Gravacao.objects.get(id=gravInvalid) ura.gravInvalid = gravacao ura.save() if gravTimeout != "0": gravacao = Gravacao.objects.get(id=gravTimeout) ura.gravTimeout = gravacao ura.save() tipoDestino = [] dest_anuncios = [] dest_gravacoes = [] dest_numeros = [] dest_uras = [] dest_filas = [] dest_chamadasGrupo = [] dest_condicoes = [] dest_troncos = [] ramal = [] retornar = [] contador = int(request.POST['count']) for i in range(contador): ramal.append(request.POST['ramal' + str(i)]) tipoDestino.append(request.POST['tipo_des' + str(i)]) dest_anuncios.append(request.POST['dest_anuncios' + str(i)]) dest_gravacoes.append(request.POST['dest_gravacoes' + str(i)]) dest_numeros.append(request.POST['dest_numeros' + str(i)]) dest_uras.append(request.POST['dest_uras' + str(i)]) dest_filas.append(request.POST['dest_filas' + str(i)]) dest_chamadasGrupo.append(request.POST['dest_chamadasGrupo' + str(i)]) dest_condicoes.append(request.POST['dest_condicoes' + str(i)]) dest_troncos.append(request.POST['dest_troncos' + str(i)]) retorna = 'retornar' + str(i) if retorna in request.POST: retornar.append(True) else: retornar.append(False) cont = 0 while cont < contador: if tipoDestino[cont] == '1': destino = dest_anuncios[cont] if tipoDestino[cont] == '2': destino = dest_gravacoes[cont] if tipoDestino[cont] == '3': destino = dest_numeros[cont] if tipoDestino[cont] == '4': destino = dest_uras[cont] if tipoDestino[cont] == '5': destino = dest_filas[cont] if tipoDestino[cont] == '6': destino = dest_chamadasGrupo[cont] if tipoDestino[cont] == '7': destino = dest_condicoes[cont] if tipoDestino[cont] == '8': destino = dest_troncos[cont] if destino: opcaoURA = OpcaoURA(ura=ura, tipoDestino=tipoDestino[cont], destino=destino, ramal=ramal[cont], retornar=retornar[cont]) opcaoURA.save() cont = cont + 1 texto = request.user.username + " adicionou a URA: " + nome log = Log(log=texto) log.save() return redirect('/uras/')
def log_creation(sender, instance, created, **kwargs): if created: log = Log() log.save() instance.log = log instance.save()
def troncocustomizado_novo(request): nome = request.POST['nome_tronco'] callerIDSaida = request.POST['callerids'] opcoesCID = request.POST['op_cid'] maxCanais = request.POST['max_canais'] if 'opc_asterisk' in request.POST: opcoesDiskAsterisk = request.POST['opc_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 # precedente = request.POST['precedente'] # prefixo = request.POST['prefix'] # padraoEquiv = request.POST['match'] prefixChamSaida = request.POST['prefixo_saida'] stringChamada = request.POST['string_chamada'] tipo = '8' troncoCustom = TroncoCustomizado(tipo=tipo, nome=nome, opcoesCID=opcoesCID, contSeOcup=contSeOcup, desabTronco=desabTronco, prefixChamSaida=prefixChamSaida) troncoCustom.save() troncoCustom.callerIDSaida = callerIDSaida troncoCustom.maxCanais = maxCanais if opcoesDiskAsterisk: troncoCustom.opcoesDiskAsterisk = opcoesDiskAsterisk troncoCustom.stringChamada = stringChamada troncoCustom.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=troncoCustom) regramanip.save() cont = cont + 1 texto = request.user.username + " adicionou o tronco customizado: " + nome log = Log(log=texto) log.save() return redirect('/troncos/')
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)
def tronco_edita(request, id): data = {} try: tronco = TroncoSIP.objects.get(id=id) except TroncoSIP.DoesNotExist: try: tronco = TroncoIAX.objects.get(id=id) except TroncoIAX.DoesNotExist: tronco = TroncoCustomizado.objects.get(id=id) data['tronco'] = tronco regra = RegraManipulaNum.objects.filter(tronco=tronco) count = len(regra) data['regra'] = regra data['count'] = count if request.method == 'POST': 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'] try: tronco = TroncoCustomizado.objects.get(id=id) stringChamada = request.POST['string_chamada'] precedente = [] prefixo = [] padraoEquiv = [] tronco.nome = nome tronco.callerIDSaida = callerIDSaida tronco.opcoesCID = opcoesCID tronco.maxCanais = maxCanais if opcoesDiskAsterisk: tronco.opcoesDiskAsterisk = opcoesDiskAsterisk tronco.contSeOcup = contSeOcup tronco.desabTronco = desabTronco tronco.prefixChamSaida = prefixChamSaida tronco.stringChamada = stringChamada tronco.save() cont = 0 for r in regra: r.delete() contador = int(request.POST['count']) conta = 0 for i in range(contador): if request.POST['precedente' + str(i)]: precedente.append(request.POST['precedente' + str(i)]) prefixo.append(request.POST['prefix' + str(i)]) padraoEquiv.append(request.POST['match' + str(i)]) conta = conta + 1 while cont < conta: regramanip = RegraManipulaNum(precedente=precedente[cont], prefixo=prefixo[cont], padrao=padraoEquiv[cont], tronco=tronco) regramanip.save() cont = cont + 1 except TroncoCustomizado.DoesNotExist: nomeTronco = request.POST['nome_tronco'] detalhesPEER = request.POST['detalhes_PEER'] contextoUsuario = request.POST['contexto'] detalhesUsuario = request.POST['detalhes_usuarios'] stringRegistro = request.POST['string_reg'] precedente = [] prefixo = [] padraoEquiv = [] tronco.nome = nome tronco.callerIDSaida = callerIDSaida tronco.opcoesCID = opcoesCID tronco.maxCanais = maxCanais if opcoesDiskAsterisk: tronco.opcoesDiskAsterisk = opcoesDiskAsterisk tronco.contSeOcup = contSeOcup tronco.desabTronco = desabTronco tronco.prefixChamSaida = prefixChamSaida tronco.nomeTronco = nomeTronco tronco.detalhesPEER = detalhesPEER tronco.contextoUsuario = contextoUsuario tronco.detalhesUsuario = detalhesUsuario tronco.stringRegistro = stringRegistro tronco.save() cont = 0 for r in regra: r.delete() contador = int(request.POST['count']) conta = 0 for i in range(contador): if request.POST['precedente' + str(i)]: precedente.append(request.POST['precedente' + str(i)]) prefixo.append(request.POST['prefix' + str(i)]) padraoEquiv.append(request.POST['match' + str(i)]) conta = conta + 1 while cont < conta: regramanip = RegraManipulaNum(precedente=precedente[cont], prefixo=prefixo[cont], padrao=padraoEquiv[cont], tronco=tronco) regramanip.save() cont = cont + 1 texto = request.user.username + " editou o tronco: " + tronco.nome log = Log(log=texto) log.save() return redirect('/troncos/') else: try: tronco = TroncoCustomizado.objects.get(id=id) return render(request, 'editaTroncoCustom.html', data) except TroncoCustomizado.DoesNotExist: return render(request, 'editaTronco.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 emit(self, msg): log = Log() log.level = msg.levelno log.name = msg.name log.message = msg.msg log.save()