Example #1
0
class StatusView(View):
    template = 'detrans_sqlite/status_sqlite.html'

    @method_decorator(permissao_geral_required())
    def get(self, request):
        global myProcess

        status = myProcess.get_status_str()
        erro = myProcess.is_erro_processo
        status_mensagem = myProcess.get_status_mensagem_str()
        if "refresh" in request.GET:
            import json
            list = json.dumps([status, erro, status_mensagem])
            return HttpResponse(list)
        return render(request, self.template, {
            'status': status,
            'erro': erro,
            'status_mensagem': status_mensagem
        })

    @method_decorator(permissao_geral_required())
    def post(self, request):
        global myProcess

        myProcess.stop()

        return redirect('cria-sqlite-cancelado')
Example #2
0
class CadastroTipoView(View):
    template = 'tipo_veiculo/salvar.html'

    @method_decorator(permissao_geral_required())
    def get(self, request, tipo_id=None):

        if tipo_id:
            tipo = TipoVeiculo.objects.get(pk=tipo_id)
            form = FormTipoVeiculo(instance=tipo)
        else:
            form = FormTipoVeiculo()

        return render(request, self.template, {'form': form})

    @method_decorator(permissao_geral_required())
    def post(self, request, tipo_id=None):

        if tipo_id:
            tipo = TipoVeiculo.objects.get(pk=tipo_id)
            form = FormTipoVeiculo(instance=tipo, data=request.POST)
            mensagem = 'Tipo veiculo editado com sucesso!'
        else:
            form = FormTipoVeiculo(request.POST)
            mensagem = 'Tipo veiculo inserido com sucesso!'

        if form.is_valid():
            form.save()

            messages.success(request, mensagem)
            return redirect('/tipo-veiculo/consulta/')

        return render(request, self.template, {'form': form})
Example #3
0
class ImportaModelo(View):
    template_name = 'modelo/importa.html'

    @method_decorator(permissao_geral_required())
    def get(self, request):
        form = FormArquivo()

        return render(request, self.template_name, {'form': form})

    @method_decorator(permissao_geral_required())
    def post(self, request):
        i = 0
        if 'arquivo' in request.FILES and str(
                request.FILES['arquivo'])[-4:] == ".txt":
            arq = request.FILES['arquivo']
            for linha in arq:
                try:
                    linha = linha.encode('UTF-8')
                    cod = linha[0:6]
                    desc = linha[6:].strip()
                    novo_modelo = Modelo(codigo=cod, descricao=desc)
                    novo_modelo.save()
                    i += 1
                except:
                    continue
        else:
            form = FormArquivo()
            return render(request, self.template_name, {
                'form': form,
                'erro': 'erro'
            })

        return render(request, self.template_name, {'qtd': i, 'envio': True})
Example #4
0
class CadastroVeiculoView(View):
    template = 'veiculo/salvar.html'

    @method_decorator(permissao_geral_required())
    def get(self, request, veiculo_id=None):
        if veiculo_id:
            veiculo = Veiculo.objects.get(renavam=veiculo_id)

            form = FormVeiculo(veiculo.cidade.uf_id, instance=veiculo)
            form.fields['uf'].initial = veiculo.cidade.uf_id
        else:

            form = FormVeiculo(None)

        return render(request, self.template, {'form': form})

    @method_decorator(permissao_geral_required())
    def post(self, request, veiculo_id=None):

        if veiculo_id:
            veiculo = Veiculo.objects.get(renavam=veiculo_id)
            form = FormEditarVeiculo(request.POST['uf'],
                                     data=request.POST,
                                     instance=veiculo)
            mensagem = 'Veiculo editado com sucesso!'
        else:
            form = FormVeiculo(request.POST['uf'], request.POST)
            mensagem = 'Veiculo inserido com sucesso!'

        if form.is_valid():
            form.save()
            messages.success(request, mensagem)
            return redirect('/veiculo/consulta/')

        return render(request, self.template, {'form': form})
Example #5
0
class CadastroLeisView(View):
    template = 'leis/salvar.html'

    @method_decorator(permissao_geral_required())
    def get(self, request, condutor_id=None):

        if condutor_id:
            leis = Lei.objects.get(pk=condutor_id)
            form = FormLei(instance=leis)
        else:
            form = FormLei()

        return render(request, self.template, {'form': form})

    @method_decorator(permissao_geral_required())
    def post(self, request, condutor_id=None):

        if condutor_id:
            leis = Lei.objects.get(pk=condutor_id)
            form = FormLei(instance=leis, data=request.POST)
            mensagem = 'Lei editada com sucesso!'
        else:
            form = FormLei(request.POST)
            mensagem = 'Lei inserida com sucesso!'

        if form.is_valid():
            form.save()

            messages.success(request, mensagem)
            return redirect('/legislacao/consulta/')

        return render(request, self.template, {'form': form})
Example #6
0
class CadastroBlocoView(View):
    template = 'bloco/salvar.html'

    @method_decorator(permissao_geral_required())
    def get(self, request, bloco_id=None):

        if bloco_id:
            bloco = BlocoPadrao.objects.get(pk=bloco_id)
            form = FormBloco(instance=bloco)
        else:

            form = FormBloco()

        return render(request, self.template, {'form': form})

    @method_decorator(permissao_geral_required())
    def post(self, request, bloco_id=None):
        bloco_id = bloco_id
        form = FormBloco(request.POST)

        is_input = True

        if bloco_id:
            bloco_padrao = BlocoPadrao.objects.get(pk=bloco_id)
            form = FormBloco(instance=bloco_padrao, data=request.POST)
            is_input = False
            mensagem = 'Bloco editado com sucesso!'

        else:

            form = FormBloco(request.POST)
            mensagem = 'Bloco criado com sucesso!'

        if form.is_valid():

            if int(request.POST['inicio_intervalo']) < 0 or \
                            int(request.POST['inicio_intervalo']) > \
                            int(request.POST['fim_intervalo']):
                return redirect('/bloco/')

            if is_input:
                post = form.save(commit=False)

                # Controle de bloco campo 'ativo'

                bloco = BlocoPadrao.objects.filter(ativo=True)
                if len(bloco) >= 1:
                    post.ativo = False
                    form.save()
                else:
                    form.save()

            else:

                form.save()

            messages.success(request, mensagem)
            return redirect('/bloco/consulta/')

        return render(request, self.template, {'form': form})
Example #7
0
class ImportaCor(View):
    """Importa as cores"""

    template_name = 'cor/importa.html'

    @method_decorator(permissao_geral_required())
    def get(self, request):
        """Faz um formulário e envia para o template"""
        form = FormArquivo()

        return render(request, self.template_name, {'form': form})

    @method_decorator(permissao_geral_required())
    def post(self, request):
        """Envia o arquivo de cores para a base de dados"""

        i = 0

        if 'arquivo' in request.FILES and str(
                request.FILES['arquivo'])[-4:] == ".txt":
            arq = request.FILES['arquivo']
            for linha in arq:
                try:
                    linha = linha.encode('UTF-8')

                    cod = linha[0:2]
                    cor = linha[2:].strip()
                    nova_cor = Cor.objects.filter(codigo=cod).first()

                    if nova_cor:
                        nova_cor.descricao = cor
                    else:
                        nova_cor = Cor(codigo=cod, descricao=cor)

                    nova_cor.save()
                    i += 1
                except Exception:
                    pass

            return render(request, self.template_name, {
                'qtd': i,
                'envio': True
            })
        else:
            form = FormArquivo()
            return render(request, self.template_name, {
                'form': form,
                'erro': 'arquivo inválido'
            })
Example #8
0
class CriaSqliteCanceladoView(View):
    template = 'detrans_sqlite/cria_sqlite_cancelado.html'

    @method_decorator(permissao_geral_required())
    def get(self, request):
        return render(request, self.template)

    @method_decorator(permissao_geral_required())
    def post(self, request):
        global myProcess

        myProcess = ThreadDetransSqlite('importa')
        myProcess.start()

        return redirect('status-sqlite')
Example #9
0
class CriaSqliteView(View):
    template = 'detrans_sqlite/cria_sqlite.html'

    @method_decorator(permissao_geral_required())
    def get(self, request):
        detrans_sqlite = Detrans_sqlite.objects.filter(is_finished=True).last()
        return render(request, self.template, {'sqlite': detrans_sqlite})

    @method_decorator(permissao_geral_required())
    def post(self, request):
        global myProcess

        myProcess = ThreadDetransSqlite('importa')
        myProcess.start()

        return redirect('status-sqlite')
Example #10
0
class CarregaTiposInfracao(View):
    template = 'tipo_veiculo/carregatipos.html'

    @method_decorator(permissao_geral_required())
    def get(self, request):
        module_dir = os.path.dirname(__file__)  # get current directory
        path = os.path.join(module_dir, 'tipos2.csv')
        abrir = open(path, 'r')

        for line in abrir:
            l = line.split(',')
            ls = Lei.objects.filter(lei=l[1])
            if ls:
                lei = ls[0]
            else:
                lei = Lei(lei=l[1])
                lei.save()
            t = TipoInfracao(codigo=l[0].strip(),
                             descricao=l[2].strip(),
                             lei=lei)
            t.save()
        abrir.close()

        tipos = TipoInfracao.objects.all()
        return render(request, self.template, {'tipos': tipos})
Example #11
0
class ImportaVeiculo(View):
    template_name = 'veiculo/importa.html'

    @method_decorator(permissao_geral_required())
    def get(self, request):
        form = FormArquivo()

        return render(request, self.template_name, {'form': form})

    @method_decorator(permissao_geral_required())
    def post(self, request):
        i = 0

        linhas_erro_encoding = []
        if 'arquivo' in request.FILES and str(
                request.FILES['arquivo'])[-4:] == ".txt":
            arq = request.FILES['arquivo']
            for linha in arq:
                if linha.strip() == '':
                    continue

                encoding = chardet.detect(linha)

                try:
                    linha = linha.encode('utf-8')
                except Exception:
                    linhas_erro_encoding.append((
                        linha,
                        encoding['encoding'],
                    ))
                    continue
                Veiculo.objects.importa_renavam(linha)
                i += 1

            return render(request, self.template_name, {
                'qtd': i,
                'envio': True
            })
        else:
            form = FormArquivo()
            return render(request, self.template_name, {
                'form': form,
                'erro': 'erro'
            })
Example #12
0
class ImportaCategoria(View):
    """Importa as categorias"""

    template_name = 'categoria/importa.html'

    @method_decorator(permissao_geral_required())
    def get(self, request):
        """Cria um formulário de categorias"""
        form = FormArquivo()

        return render(request, self.template_name, {'form': form})

    @method_decorator(permissao_geral_required())
    def post(self, request):
        """Manda os arquivos importados para o servidor"""
        i = 0

        if 'arquivo' in request.FILES and str(
                request.FILES['arquivo'])[-4:] == ".txt":
            arq = request.FILES['arquivo']
            for linha in arq:
                try:
                    linha = linha.encode('UTF-8')

                    cod = linha[0:2]
                    desc = linha[2:].strip()
                    nova_categoria = Categoria(codigo=cod, descricao=desc)
                    nova_categoria.save()
                    i += 1
                except Exception:
                    pass

            return render(request, self.template_name, {
                'qtd': i,
                'envio': True
            })
        else:
            form = FormArquivo()
            return render(request, self.template_name, {
                'form': form,
                'erro': 'erro'
            })
Example #13
0
class RemoveDispositivoAcessoView(View):
    """Remove os dispositivos"""
    template_name = 'dispositivo/acesso.html'

    @method_decorator(permissao_geral_required())
    def get(self, request, dispositivo_id=None):
        """Remove o acesso"""

        Acesso.objects.get(pk=dispositivo_id).delete()

        return redirect('/dispositivo/acesso/')
Example #14
0
class CadastroDETView(View):
    template = 'det/salvar.html'

    @method_decorator(permissao_geral_required())
    def get(self, request, det_id=None):

        det = Configuracao_DET.objects.filter()
        if len(det) > 0:
            det_id = det[0].id

        if det_id:
            det = Configuracao_DET.objects.get(pk=det_id)
            form = FormDet(instance=det)
        else:
            form = FormDet()

        return render(request, self.template, {'form': form})

    @method_decorator(permissao_geral_required())
    def post(self, request, det_id=None):

        det = Configuracao_DET.objects.filter()
        if len(det) > 0:
            det_id = det[0].id

        if det_id:
            cor = Configuracao_DET.objects.get(pk=det_id)
            form = FormDet(instance=cor, data=request.POST)

        else:

            form = FormDet(request.POST)

        if form.is_valid():
            form.save(request)

            return redirect('/')

        else:
            return redirect('/config/set/det')
Example #15
0
class ImportaTipoVeiculo(View):
    template_name = 'tipo_veiculo/importa.html'

    @method_decorator(permissao_geral_required())
    def get(self, request):
        form = FormArquivo()

        return render(request, self.template_name, {'form': form})

    @method_decorator(permissao_geral_required())
    def post(self, request):

        i = 0
        if 'arquivo' in request.FILES and str(
                request.FILES['arquivo'])[-4:] == ".txt":
            arq = request.FILES['arquivo']
            for linha in arq:
                try:
                    linha = linha.encode('UTF-8')
                    cod = linha[0:2]
                    desc = linha[2:].strip()
                    nova_categoria = TipoVeiculo(codigo=cod, descricao=desc)
                    nova_categoria.save()
                    i += 1
                except Exception:
                    pass

            return render(request, self.template_name, {
                'qtd': i,
                'envio': True
            })
        else:
            form = FormArquivo()
            return render(request, self.template_name, {
                'form': form,
                'erro': 'erro'
            })
Example #16
0
class CadastroEspecieView(View):
    """View para cadastrar especies de carros"""

    template = 'especie/salvar.html'

    @method_decorator(permissao_geral_required())
    def get(self, request, especie_id=None):
        """Envia o formulário para o template"""

        if especie_id:
            especie = Especie.objects.get(pk=especie_id)
            form = FormEspecie(instance=especie)
        else:
            form = FormEspecie()

        return render(request, self.template, {'form': form})

    @method_decorator(permissao_geral_required())
    def post(self, request, especie_id=None):
        """Envia os dados do template para o banco de dados"""

        if especie_id:
            especie = Especie.objects.get(pk=especie_id)
            form = FormEspecie(instance=especie, data=request.POST)
            mensagem = 'Espécie editada com sucesso!'
        else:

            form = FormEspecie(request.POST)
            mensagem = 'Espécie inserida com sucesso!'

        if form.is_valid():
            form.save()

            messages.success(request, mensagem)
            return redirect('/especie/consulta/')

        return render(request, self.template, {'form': form})
Example #17
0
class CadastroCategoriaView(View):
    """Cadastra as categorias"""

    template = 'categoria/salvar.html'

    @method_decorator(permissao_geral_required())
    def get(self, request, categoria_id=None):
        """Pega o formulário para cadastrar e atualizar uma categoria"""

        if categoria_id:
            categoria = Categoria.objects.get(pk=categoria_id)
            form = FormCategoria(instance=categoria)
        else:
            form = FormCategoria()

        return render(request, self.template, {'form': form})

    @method_decorator(permissao_geral_required())
    def post(self, request, categoria_id=None):
        """Envia para o servidor a nova categoria cadastrada ou atualizada"""

        if categoria_id:
            categoria = Categoria.objects.get(pk=categoria_id)
            form = FormCategoria(instance=categoria, data=request.POST)
            mensagem = 'Categoria editada com sucesso!'
        else:

            form = FormCategoria(request.POST)
            mensagem = 'Categoria criada com sucesso!'

        if form.is_valid():
            form.save()

            messages.success(request, mensagem)
            return redirect('/categoria/consulta/')

        return render(request, self.template, {'form': form})
Example #18
0
class CadastroCancelamentoView(View):
    """View para fazer CRUD dos tipos de cancelamento"""

    template = 'tipo_cancelamento/salvar.html'

    @method_decorator(permissao_geral_required())
    def get(self, request, cancelamento_id=None):
        """Envia o formulário para o template"""

        if cancelamento_id:
            cancelamento = TipoCancelamento.objects.get(pk=cancelamento_id)
            form = FormTipoCancelamento(instance=cancelamento)
        else:
            form = FormTipoCancelamento()

        return render(request, self.template, {'form': form})

    @method_decorator(permissao_geral_required())
    def post(self, request, cancelamento_id=None):
        """Envia os valores do tipo de cancelamento para o
         banco de dados"""

        if cancelamento_id:
            cancelamento = TipoCancelamento.objects.get(pk=cancelamento_id)
            form = FormTipoCancelamento(instance=cancelamento,
                                        data=request.POST)
        else:

            form = FormTipoCancelamento(request.POST)

        if form.is_valid():
            form.save()

            return redirect('/')

        return render(request, self.template, {'form': form})
Example #19
0
class CadastroDispositivoView(View):
    """Cadastra os dispositivos"""
    template = 'dispositivo/salvar.html'

    @method_decorator(permissao_geral_required())
    def get(self, request, dispositivo_id=None):
        """Cria um formulário para cadastrar o dispositivo"""

        if dispositivo_id:
            dispositivo = Dispositivo.objects.get(pk=dispositivo_id)
            form = FormDispositivo(instance=dispositivo)
        else:
            form = FormDispositivo()

        return render(request, self.template, {'form': form})

    @method_decorator(permissao_geral_required())
    def post(self, request, dispositivo_id=None):
        """Envia para o servidor os dispositivos cadastrados"""

        if dispositivo_id:
            dispositivo = Dispositivo.objects.get(pk=dispositivo_id)
            form = FormDispositivo(instance=dispositivo, data=request.POST)
            mensagem = 'Dispositivo editado com sucesso!'
        else:

            form = FormDispositivo(request.POST)
            mensagem = 'Dispositivo inserido com sucesso!'

        if form.is_valid():
            form.save()

            messages.success(request, mensagem)
            return redirect('/dispositivo/consulta/')

        return render(request, self.template, {'form': form})
Example #20
0
class ImportaCidade(View):
    """Importa as cidades"""

    template_name = 'cidade/importa.html'

    @method_decorator(permissao_geral_required())
    def get(self, request):
        """Envia um formulário para o template"""

        form = FormArquivo()

        return render(request, self.template_name, {'form': form})

    @method_decorator(permissao_geral_required())
    def post(self, request):
        """Envia o arquivo importado para o servidor"""
        arq = request.FILES['arquivo']
        i = 0
        estado = UF.objects.filter(sigla='SC').first()

        if estado is None:
            estado = UF(sigla='SC', nome='Santa Catarina')
            estado.save()

        for linha in arq:
            try:
                linha = linha.encode('UTF-8')
                cod = int(linha[:4])
                cidade = linha[4:44].strip()
                nova_cidade = Cidade(uf_id=estado.id, codigo=cod, nome=cidade)
                nova_cidade.save()
                i += 1
            except Exception:
                continue

        return render(request, self.template_name, {'qtd': i, 'envio': True})
Example #21
0
class CadastroCorView(View):
    """Cadastra as cores"""

    template = 'cor/salvar.html'

    @method_decorator(permissao_geral_required())
    def get(self, request, cor_id=None):
        """Pega o formulário e envia para o template"""

        if cor_id:
            cor = Cor.objects.get(pk=cor_id)
            form = FormCor(instance=cor)
        else:
            form = FormCor()

        return render(request, self.template, {'form': form})

    @method_decorator(permissao_geral_required())
    def post(self, request, cor_id=None):
        """Envia as novas cores para a base no servidor"""

        if cor_id:
            cor = Cor.objects.get(pk=cor_id)
            form = FormCor(instance=cor, data=request.POST)
            mensagem = 'Cor editada com sucesso!'
        else:
            form = FormCor(request.POST)
            mensagem = 'Cor inserida com sucesso!'

        if form.is_valid():
            form.save(request)

            messages.success(request, mensagem)
            return redirect('/cor/consulta/')

        return render(request, self.template, {'form': form})
Example #22
0
class CadastroDispositivoAcessoView(View):
    """Cadastra os dispositivos"""
    template_name = 'dispositivo/acesso.html'

    @method_decorator(permissao_geral_required())
    def get(self, request, dispositivo_id=None):
        """Cadastra o acesso"""

        if dispositivo_id:
            acesso = Acesso.objects.get(pk=dispositivo_id)
            dispositivo = Dispositivo.objects.get_or_create(
                imei=acesso.imei)[0]
            dispositivo.ativo = True
            dispositivo.save()
            Acesso.objects.get(pk=dispositivo_id).delete()

        return redirect('/dispositivo/acesso/')
Example #23
0
class GeraDet(View):
    template_name = 'det/gera.html'

    @method_decorator(permissao_geral_required())
    def get(self, request, filtro='0', formato=''):

        det = datetime.now().strftime("%Y%m%d%H%M%S")
        config = Configuracao_DET.objects.filter().order_by('-id')[0]
        nome_det = str(request).split('/')[3]
        if nome_det != "format":
            id_det = DET.objects.get(codigo=nome_det)
            sequencial_arquivo = str(id_det.id)
        else:
            sequencial_arquivo = str(len(DET.objects.all()) + 1)

        print("det", DET.objects.all())

        while len(sequencial_arquivo) < 6:
            sequencial_arquivo = '0' + sequencial_arquivo

        autuador = ('0' * (6 - len(config.autuador))) + config.autuador

        nome_arq = config.formato + '.' + config.cod_entidade + '.' + \
                   autuador + '.' + sequencial_arquivo + '.DET'
        arq = open(nome_arq, 'w')

        if formato == '1':
            zp = zipfile.ZipFile(nome_arq[:len(nome_arq) - 4] + '.zip', 'w')

        if filtro == '0':
            det_novo = DET(codigo=det)
            det_novo.save()

        # topo

        if config:

            hoje = datetime.now()

            filler_entidade = len(config.entidade)
            entidade = config.entidade
            if filler_entidade < 40:
                qtd = 40 - filler_entidade
                # entidade = config.entidade.ljust(qt)
                entidade = config.entidade + (' ' * qtd)

            data = hoje.strftime('%Y%m%d')

            hora = hoje.strftime('%H%M')

            filler = (182 * ' ')

            registro_inicial = (5 * '0') + '1'

            cod_entidade = (str(config.cod_entidade))

            while len(cod_entidade) < 3:
                cod_entidade = '0' + cod_entidade

            topo = '0' + config.formato + cod_entidade + entidade + data + hora + str(
                sequencial_arquivo) + autuador + config.tipo_arquivo + \
                   filler + str(registro_inicial)
            arq.write(topo + '\r\n')

            # infracoes
            infracoes = Infracao.objects.filter(
                det=filtro, veiculo_id__isnull=False).distinct()
            # infracoes = Infracao.objects.filter(veiculo_id__isnull=False).distinct() # TESTE
            sequencial_registro = int(registro_inicial)

            for i in infracoes:

                # Registro de infracoes
                sequencial_registro = int(sequencial_registro) + 1
                if len(str(sequencial_registro)) < 6:
                    sequencial_registro = ('0' * (6 - len(str(sequencial_registro)))) \
                                          + str(sequencial_registro)

                tipo_registro = config.tipo_registro
                n_auto = str(i.id)
                if len(n_auto) < 10:
                    n_auto = ('0' * (10 - len(n_auto))) + n_auto
                local = i.local
                if len(local) < 80:
                    local = local.rstrip()
                    local = local + (' ' * (80 - len(local)))

                cod_municipio = config.cod_municipio

                tipo_inf = str(i.tipo_infracao_id)
                if tipo_inf == '':
                    cod_tipo_inf = '0' * 4
                    desmembramento = '0'

                if len(tipo_inf.split('-')) > 1:

                    cod_tipo_inf = ''
                    for y in range(len(tipo_inf.split('-'))):
                        cod_tipo_inf += tipo_inf.split('-')[y]
                    cod_tipo_inf = cod_tipo_inf[:4]
                    desmembramento = cod_tipo_inf[-1]

                condutor = '0'
                cnh = '0' * 11

                complemento = ' ' * 80
                if i.is_condutor_identi:
                    condutor = '1'
                    cnh = i.infrator.cnh.split('/')
                    cnh = cnh[0]
                    if len(cnh) == 0:
                        condutor = '3'

                    if len(cnh) < 11:
                        cnh = '0' * (11 - len(cnh)) + cnh

                filler = ' ' * 31
                infracao = tipo_registro + n_auto + i.veiculo.placa + i.veiculo.cidade.uf.sigla +\
                           i.data_infracao.strftime(
                         '%Y%m%d') + i.data_infracao.strftime(
                         '%H%M%S') + local + cod_municipio + cod_tipo_inf + desmembramento + \
                            condutor + cnh + i.agente.cpf + complemento + filler + str(
                             sequencial_registro)

                arq.write(infracao.encode('UTF-8') + '\r\n')
                if i.det == '0':
                    i.det = det
                    i.save()

            if len(str(qtd)) < 6:
                qtd = ('0' * (6 - qtd)) + str(qtd)

            # trailler
            sequencial_infracao = int(sequencial_registro) - 1
            if len(str(sequencial_infracao)) < 6:
                sequencial_infracao = ('0' *
                                       (6 - len(str(sequencial_infracao)))
                                       ) + str(sequencial_infracao)

            sequencial_registro = int(sequencial_registro) + 1

            if len(str(sequencial_registro)) < 6:
                sequencial_registro = ('0' *
                                       (6 - len(str(sequencial_registro)))
                                       ) + str(sequencial_registro)

            trailler = '9' + str(sequencial_infracao) + (
                ' ' * 250) + str(sequencial_registro)

            arq.write(trailler + '\r\n')

            arq.close()
            # zipfile
            if formato == '1':
                zp.write(nome_arq)
                zp.close()
                os.remove(nome_arq)
                nome_arq = nome_arq[:len(nome_arq) - 4] + '.zip'

            down = open(nome_arq, 'r')
            response = HttpResponse(down,
                                    content_type='application/force-download')
            response[
                'Content-Disposition'] = 'attachment; filename=%s' % nome_arq
            os.remove(nome_arq)
            return response
        else:
            return redirect('/config/get/det')
Example #24
0
class UploadDetransLogoView(View):
    """View que faz um upload da logo para o servidor"""
    template = 'upload/logo.html'

    @method_decorator(permissao_geral_required())
    def get(self, request, sistema_id=None):
        """Envia o template para fazer a mudança do logo"""

        if len(Sistema.objects.filter()) > 0:
            sistema = Sistema.objects.last()
            sistema_id = sistema.id

        if sistema_id:
            print 'aqui'
            sistema = Sistema.objects.get(pk=sistema_id)
            form = LogoForm(instance=sistema)

        else:
            print 'else'
            form = LogoForm()

        return render(request, self.template, {'form': form})

    @method_decorator(permissao_geral_required())
    def post(self, request):
        """Envia a imagem para ser usada como logo"""

        sistema = Sistema.objects.filter()
        arquivos = ['jpg', 'jpeg', 'JPG', 'JPEG', 'png', 'PNG']
        if len(sistema) > 0:
            if not request.FILES:
                sistema_id = Sistema.objects.latest('id').id
                sistema = Sistema.objects.get(pk=sistema_id)
                form = LogoForm(request.POST or None,
                                request.FILES or None,
                                instance=sistema)
                form.logo = sistema.logo
            else:
                sistema_id = Sistema.objects.latest('id').id
                sistema = Sistema.objects.get(pk=sistema_id)
                form = LogoForm(request.POST or None,
                                request.FILES or None,
                                instance=sistema)
        else:
            form = LogoForm(request.POST or None, request.FILES or None)
        if sistema.logo or 'logo' in request.FILES and str(
                request.FILES['logo']).split('.')[-1] in arquivos:
            print 'if'
            if form not in globals():
                form = LogoForm(request.POST or None,
                                request.FILES or None,
                                instance=sistema)
            if form.is_valid():
                form.save(request)
                return redirect('/')
            else:
                return render(request, self.template, {'form': form})
        else:
            if form not in globals():
                form = LogoForm(instance=Sistema.objects.latest('id'))
            return render(request, self.template, {
                'form': form,
                'erro': 'erro'
            })