Fwd: Re: [gastosabertos-dev] Manipular history

6 views
Skip to first unread message

Edgar Zanella Alvarenga

unread,
Jan 13, 2015, 8:52:54 PM1/13/15
to Andres MRM, Gastosabertos Dev
A porcaria da lista do Google ignorou meu email que mandei no dia 7!
Tentei dar
um forward novamente e nada, tentando pela segunda vez, vamos ver.

-------- Original Message --------
Subject: Re: [gastosabertos-dev] Manipular history
Date: 07/01/2015 10:07
From: Edgar Zanella Alvarenga <e...@vaz.io>
To: <gastosab...@googlegroups.com>

On 07/01/2015 00:56, Andres MRM wrote:
> Edgar, qual era a lib mesmo que vc recomendou para editar o history?

Não me lembro de uma lib específica, mas dá uma olhada:

http://diveintohtml5.info/history.html

https://github.com/browserstate/history.js

Edgar Zanella Alvarenga

unread,
Jan 13, 2015, 8:55:48 PM1/13/15
to gastosab...@googlegroups.com
Yeap, como imaginado. O Google Groups aparentemente bloqueou oemail
abaixo
por considerar spam. Foi só adicionar o texto abaixo no começo do email
que
ele passou. Isso é beeeeem ruim. Agora vou ser obrigado a responder de
forma
redundante pra não ser considerado spam?

Edgar Zanella Alvarenga

unread,
Jan 13, 2015, 8:58:08 PM1/13/15
to gastosab...@googlegroups.com
mailman é seu amigo... vai salvá-lo do perigo! hora de criar a lista
no servidor da ok

Andres MRM

unread,
Jan 13, 2015, 10:06:47 PM1/13/15
to gastosab...@googlegroups.com

É, esse negócio de filtro de spam é um perigo...

Bom, vou tentar cuidar disso assim que puder, mas não sei estimar quantas
horas vou levar... É um dropdown que deixe escolhe o ano da tabela, certo? E
que ao mesmo tempo altere o link, né?
Os dados carrega via Ajax?


Quoting Edgar Zanella Alvarenga (2015-01-13 23:58:06)
> --
> Você está recebendo esta mensagem porque se inscreveu no grupo "gastosabertos-dev" dos Grupos do Google.
> Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para gastosabertos-...@googlegroups.com.
> Para postar neste grupo, envie um e-mail para gastosab...@googlegroups.com.
> Para ver esta discussão na web, acesse https://groups.google.com/d/msgid/gastosabertos-dev/0f67eb9343fc861ab7beaf2de50ca916%40vaz.io.
> Para obter mais opções, acesse https://groups.google.com/d/optout.

Andres MRM

unread,
Jan 14, 2015, 9:15:27 AM1/14/15
to gastosab...@googlegroups.com

Estou meio perdido com as mudanças. Você reestruturou o que eu tinha feito
antes? Se reestruturou, não deletou os antigos (pq pelo que vejo ainda estão
lá)?
Como rodo o código novo?

python manage.py

Está dando:

OSError: [Errno 2] No such file or directory: '/tmp/instance/logs'

Criei a pasta e dei:

python manage.py run

Agora está dando:

TemplateNotFound: errors/page_not_found.html

Quer que eu debug ou você dá uma olhada?




Quoting Andres MRM (2015-01-14 01:06:42)

Edgar Zanella Alvarenga

unread,
Jan 14, 2015, 9:27:51 AM1/14/15
to gastosab...@googlegroups.com
On 14/01/2015 12:15, Andres MRM wrote:
> Estou meio perdido com as mudanças. Você reestruturou o que eu tinha
> feito
> antes? Se reestruturou, não deletou os antigos (pq pelo que vejo
> ainda estão
> lá)?
> Como rodo o código novo?

Pra rodar:

$ fab reset
$ python manage.py run

> Agora está dando:
>
> TemplateNotFound: errors/page_not_found.html
>
> Quer que eu debug ou você dá uma olhada?

Esse templates não existem de fato, mas só é utilizado para erro 404.
Mas basta acessar o view

http://localhost:5000/receita

que verá a tabela funcionando no novo código. Não removi o código
antigo apenas por não ter
movido o sankey graph pra nova estrutura. Feito isso poderemos apagar
tudo que
está no src/.

Todo código novo encontra-se no blueprint no diretório receita/, olhe
lá como o
código está estruturado.

E.

Andres MRM

unread,
Jan 14, 2015, 5:05:16 PM1/14/15
to gastosab...@googlegroups.com

Opa, agora foi. O dados carrega via Ajax, né?
O dropdown faz na mão ou usa WTF?


Quoting Edgar Zanella Alvarenga (2015-01-14 12:27:49)
> Para ver esta discussão na web, acesse https://groups.google.com/d/msgid/gastosabertos-dev/57b730dab070761cd21874c4d1e0178b%40vaz.io.

Andres MRM

unread,
Jan 16, 2015, 6:17:50 AM1/16/15
to gastosab...@googlegroups.com

Alterei o view para parametrizar o ano. Atualmente ele só está usando os dados
de janeiro de cada ano, já que os dados estão separados por mês. Como fazemos,
agrupamos os dados por ano, ou mantemos por mês e agregamos para cada request?

Na parte do cliente coloquei um dropdown sem uso, por enquanto. Qual é o
melhor jeito de fazer a atualização quando troca-se o ano? Carregar o csv via
ajax, deletar a tabela antiga, construir a tabela nova, e aplicar DataTable
nela?
Ou enviamos o ano para uma route especifica no servidor que retornará o HTML
específico para substituir a tabela via ajax? (reusando mais código no
servidor e evitando mais JS)


Quoting Andres MRM (2015-01-14 20:05:11)

Andres MRM

unread,
Jan 17, 2015, 11:50:36 AM1/17/15
to gastosab...@googlegroups.com

Edgar? Estão bloqueando seus e-mails de novo? =P


Quoting Andres MRM (2015-01-16 09:17:45)

Edgar Zanella Alvarenga

unread,
Jan 17, 2015, 3:12:24 PM1/17/15
to gastosab...@googlegroups.com
On 17/01/2015 14:50, Andres MRM wrote:
> Edgar? Estão bloqueando seus e-mails de novo? =P

Not this time. :P

> Quoting Andres MRM (2015-01-16 09:17:45)
>>
>> Alterei o view para parametrizar o ano. Atualmente ele só está
>> usando os dados
>> de janeiro de cada ano, já que os dados estão separados por mês.
>> Como fazemos,
>> agrupamos os dados por ano, ou mantemos por mês e agregamos para
>> cada request?

É interessante ter uma forma de filtrar os meses na interface,
seleciona-se um mês
e mostra a tabela só com os valores daquele mês. Deverá existir também
uma opção
"Total acumulado no ano". Uma outra visualização que temos que pensar é
num gráfico
de linha mostrando a evolução da arrecadação ao longo de um ano e ao
longo dos anos.
Provavelmente fará sentido definir quais tributos/impostos deseja-se
observer.

>> Na parte do cliente coloquei um dropdown sem uso, por enquanto. Qual
>> é o
>> melhor jeito de fazer a atualização quando troca-se o ano? Carregar
>> o csv via
>> ajax, deletar a tabela antiga, construir a tabela nova, e aplicar
>> DataTable
>> nela?

Carrega o csv via ajax e dá update na tabela exibida utilizando a api
do datatables.

>> Ou enviamos o ano para uma route especifica no servidor que
>> retornará o HTML
>> específico para substituir a tabela via ajax? (reusando mais código
>> no
>> servidor e evitando mais JS)

Isso também existirá. Se mudar na interface o ano/mês que está sendo
observado o URL
muda, mas não é realizado um request ao servidor. Isso pra possibilitar
que tal URL
seja passado pra outra pessoa, sem ter que passar o URL da visualização
default e pedir
pra escolher parâmetro X, Y e Z. Ao acessar o URL com os parâmetros,
por exemplo
/receita/ANO, no python deveremos configurar para que a tabela exibida
seja de acordo com
os parâmetros do URL. Uma forma de fazer isso por exemplo é deixar em
um variável no view
um json contendo os parâmetros que a visualização possuirá ({year:
2008, month: 'all'}),
e o javascript ficará responsável por utilizar essa informação pra
gerar a visualização.
Se alterar o parâmetro pela interface, esse objeto contendo o estado da
visualização também
será alterado e request adicionais necessários serão realizados (por
exemplo pra acessar
um novo csv). Deu pra entender?

Abs,
Edgar

Andres MRM

unread,
Jan 18, 2015, 6:59:24 AM1/18/15
to gastosab...@googlegroups.com, Edgar Zanella Alvarenga
Quoting Edgar Zanella Alvarenga (2015-01-17 18:12:23)
> É interessante ter uma forma de filtrar os meses na interface,
> seleciona-se um mês
> e mostra a tabela só com os valores daquele mês. Deverá existir também
> uma opção
> "Total acumulado no ano". Uma outra visualização que temos que pensar é
> num gráfico
> de linha mostrando a evolução da arrecadação ao longo de um ano e ao
> longo dos anos.
> Provavelmente fará sentido definir quais tributos/impostos deseja-se
> observer.

Você quer dizer então para colocar mais um dropdown com [jan,...,dez, TODOS]?

> Carrega o csv via ajax e dá update na tabela exibida utilizando a api
> do datatables.

Ah, blz, vou dar uma olhada na API.

> Isso também existirá. Se mudar na interface o ano/mês que está sendo
> observado o URL
> muda, mas não é realizado um request ao servidor. Isso pra possibilitar
> que tal URL
> seja passado pra outra pessoa, sem ter que passar o URL da visualização
> default e pedir
> pra escolher parâmetro X, Y e Z. Ao acessar o URL com os parâmetros,
> por exemplo
> /receita/ANO, no python deveremos configurar para que a tabela exibida
> seja de acordo com
> os parâmetros do URL. Uma forma de fazer isso por exemplo é deixar em
> um variável no view
> um json contendo os parâmetros que a visualização possuirá ({year:
> 2008, month: 'all'}),
> e o javascript ficará responsável por utilizar essa informação pra
> gerar a visualização.
> Se alterar o parâmetro pela interface, esse objeto contendo o estado da
> visualização também
> será alterado e request adicionais necessários serão realizados (por
> exemplo pra acessar
> um novo csv). Deu pra entender?

Mais ou menos... Não entendi direito a parte do objeto JSON. Ele fica no
servidor e é enviado para o cliente no request? O JS vai então processá-lo e
pedir os CSVs de acordo?
E se mudar a URL no cliente? Ele pede um novo JSON para o servidor, ou no
próprio cliente reconstrói o JSON e pede apenas os novos CSVs?
> Para ver esta discussão na web, acesse https://groups.google.com/d/msgid/gastosabertos-dev/4478deafa24e3ac019d88e5340418eda%40vaz.io.

Edgar Zanella Alvarenga

unread,
Jan 19, 2015, 8:34:44 PM1/19/15
to gastosab...@googlegroups.com
On 18/01/2015 09:59, Andres MRM wrote:

> Mais ou menos... Não entendi direito a parte do objeto JSON. Ele fica
> no
> servidor e é enviado para o cliente no request? O JS vai então
> processá-lo e
> pedir os CSVs de acordo?

Exato.

> E se mudar a URL no cliente?

Depende de como mudar o URL. Se for digitando um endereço, sim. Se for
via
manipulação do history vi api, não necessariamente, só faz requisição
do que
for necessário.

> Ele pede um novo JSON para o servidor, ou no
> próprio cliente reconstrói o JSON e pede apenas os novos CSVs?

Os novos CSVs (ou dados) caso não possua.
E.
Reply all
Reply to author
Forward
0 new messages