[Gastosabertos-dev] ao

Edgar Zanella Alvarenga e em vaz.io
Segunda Março 2 20:30:15 UTC 2015


Oi Luiz, ótimo! Dei uma olhada rápida no seu código e fiz alguns 
testes.
Está legal, mas ocorreu mais de uma vez ao visitar o 
http://site.gastosabertos.org/receita
que o gráfico drilldown carregou, mas a tabela não. Uma vez consegui 
identificar
o erro, que foi não conseguir importar o Datatables, talvez o servidor 
deles
estava fora do ar.

Mas olhando seu código, fiquei encafifado com a quantidade de código
que escreveu pra registrar os eventos e não ficou claro pra mim o quão
fácil será fazer isso sincronizado com o gráfico de barras. Se tivermos
uma forma fácil de utilizar o modelo pusub que está usando legal sem 
muito
biolerplate code, ótimo. Mas fico em dúvida se utilizarmos uma solução
como o Riot js não seja melhor, pra não termos que resolver novamente
certos problemas.

O que você acha? Por mim sem problemas em utilizar a solução mais 
simples
possível, só acho legal que exista um howto pra saber como usar o 
esquema
que está utilizando nos outros gráficos em uma mesma página. O quanto
de código precisará ser replicado? Se conseguir fazer um resumo bem 
breve
do que tem em mente pra anotar os eventos e criar as funções pra 
respondê-los
seria legal.

Abs,
E.

On 02/03/2015 14:07, Luiz Armesto wrote:
> Para sincronização na tabela eu implementei um padrão pub/sub, daí
> mandando uma mensagem como "pubSub.publish(years:changed, {value:
> [2012, 2014]})" usando a instancia do PubSub que eu incluo na tabela
> ela se atualiza para usar o ano (ou período entre dois anos) passado.
> Quando navega pelas páginas da tabela ou muda o número de itens por
> página ela publica pelo pubSub mensagens "page:changed" e
> "per_page_num:changed" (se algum outro objeto mandar o pubSub emitir
> essas mensagens a tabela identifica e altera, respectivamente, a
> página sendo exibida ou o número de items), que podem ser escutadas
> por qualquer um que tenha acesso a instância do pubSub, sem criar
> acoplamento com o objeto da tabela. 
>
> Eu já comecei a escrever uma código para colocar e pegar os
> parametros da URL, ainda hoje mando algo.
>
> Se quiserem testar, o pubSub está temporariamente acessivel via
> console, então dá para mandar um "pubSub.publish(years:changed,
> {value: [2012, 2014]})" para ver mudando o ano e um
> "pubSub.publish(page:changed, {value: 3})" para ver ela indo pra
> página "4" (no código começa com indice 0 mas na interface é com
> indice 1)
>
> []s
>
> 2015-03-02 13:54 GMT-03:00 Edgar Zanella Alvarenga <e em vaz.io [18]>:
>
>> Acho que tá legal, só senti falta da animação que existia antes
>> na transição
>> com drilldown. Será que não dá de forma simples de termos isso?
>> Agora
>> o que precisamos são as outras tarefas:
>>
>>  * Breadcrumb navegável pelos níveis
>>  + Seleção do ano
>>  * Sincronização com tabela abaixo
>>
>> E o mais importante, que acho que seria legal discutirmos os três:
>> colocar os
>> parâmetros da visualização no URL na medida que se navega tanto
>> pelo drilldown
>> quanto pela tabel, para assim termos urls que possam ser
>> compartilhadas.
>>
>> E
>>
>> On 02/03/2015 12:25, Andres MRM wrote:
>>
>>> Acho que agora foi.
>>> Você tinha habilitado CORS para a API Restfull, mas não para os
>>> statics.
>>>
>>> Como os statics estavam sendo configurados via Blueprint, eu não
>>> estava
>>> conseguindo descobrir onde colocar o decorador cors.
>>> Perguntei no #pocoo e um cara me orientou a usar o
>>> "after_request".
>>> https://github.com/okfn-brasil/gastos_abertos/pull/134 [12]
>>> Pelo que testei está funcionando, mas não sei se a API não
>>> está sendo
>>> decorada
>>> duas vezes desse jeito.
>>>
>>> Veja se está tudo certo para fechar o:
>>> https://github.com/okfn-brasil/gastos_abertos/issues/121 [13]
>>>
>>> Quoting Andres MRM (2015-03-02 08:56:21)
>>>
>>>> Concordo completamente que servir arquivos estáticos daquela
>>>> maneira não era
>>>> bom. Eu inclusive deixei um TODO na própria função dizendo
>>>> que aquilo estava
>>>> feio.
>>>> Mas no momento da implementação não estava achando outro
>>>> jeito simples (não
>>>> sabia que a API tinha uma pasta static dentro da receita),
>>>> então fui naquele
>>>> mesmo temporariamente.
>>>>
>>>> Edgar, eu acho que você manja muito e gosto muito de você
>>>> como pessoa, mas só
>>>> peço para maneirar um pouco nos tons dos comentários. Aqui na
>>>> lista ainda está
>>>> mais de boa, mas no issue está agressivo.
>>>> Estou me esforçando ao máximo para tentar implementar as
>>>> coisas do seu jeito
>>>> (que concordo que geralmente é melhor), mas nem tudo que está
>>>> na sua cabeça é
>>>> trivial e transparente. Trivial no sentido de só ter uma
>>>> implementação óbvia,
>>>> e transparente de ser fácil saber o que você está pensando.
>>>> Tenho perguntado o
>>>> máximo que posso para você justamente para evitar fazer as
>>>> coisas de outra
>>>> forma, mas nem sempre você responde e também não dá para
>>>> perguntar linha a
>>>> linha...
>>>>
>>>> Arrumei o que você falou. Aparentemente o erro de COR persiste
>>>> mesmo com o
>>>> link funcionando:
>>>>
>>>>
>>>
>>
> 
> http://demo.gastosabertos.org/receita/static/total_by_year_by_code/2014.json
>>>> [1]
>>>>
>>>> Abs
>>>>
>>>> Quoting Edgar Zanella Alvarenga (2015-03-02 07:51:12)
>>>> > Andres, você nao debugou o problema. Se d erro num request
>>>> pra API,
>>>> > o Firefox indica erro de CORS. Mas pra saber se foi CORS,
>>>> melhor ver
>>>> > a resposta ao request da API. Fazendo isso vi que o código
>>>> estava
>>>> > dando um exception na linha 281 dum endpoint que você
>>>> adicionou, que
>>>> > nunca deveia ter sido adicionado:
>>>> >
>>>> > https://github.com/okfn-brasil/gastos_abertos/issues/132 [2]
>>>> >
>>>> > Nunca faça um endpoint para servir arquivos estáticos! A
>>>> não ser
>>>> > que tenha uma lógica extremamente complexa pra buscar os
>>>> arquivos
>>>> > baseado
>>>> > no request. No nosso caso precisamos apenas de arquivos
>>>> estáticos
>>>> > nomeados pelo ano, nada mais do que isso.
>>>> >
>>>> > Coloque os arquivos em data/total_by_year_by_code/ em algum
>>>> local do
>>>> > static
>>>> > do gastos_abertos no momento, e a requisição no view
>>>> deverá ser
>>>> > alterada de
>>>> > acordo. Só estou falando pra colocar lá para ser gerado
>>>> novamente a
>>>> > cada novo deploy
>>>> > da api pelo fab. Esqueça o que comentei no issue pra colocar
>>>> no repo
>>>> > gastos_abertos_website.
>>>> >
>>>> > Abs,
>>>> > Edgar
>>>> >
>>>> > On 02/03/2015 07:38, Andres MRM wrote:
>>>> > > Você diz a que fica em settings/local_settings.py?
>>>> > > Não mexi nisso no servidor, mas imagino que esteja, já
>>>> que o
>>>> > > DataTables está
>>>> > > conseguindo fazer o request normal...
>>>> > >
>>>> > >
>>>> > > Quoting Edgar Zanella Alvarenga (2015-03-02 07:26:06)
>>>> > >> Você está utilizando a configuração correta pro
>>>> API_URL?
>>>> > >>
>>>> > >> On 02/03/2015 06:39, Andres MRM wrote:
>>>> > >> > Estou tentando fazer o drilldown funcionar no servidor,
>>>> mas estou
>>>> > >> > tendo aquele
>>>> > >> > erro de COR:
>>>> > >> >
>>>> > >> >       Cross-Origin Request Blocked: The Same Origin
>>>> Policy
>>>> > >> disallows
>>>> > >> > reading the
>>>> > >> >       remote resource at
>>>> > >> >
>>>> > >> >
>>>> > >>
>>>>
>>>
>>
> http://demo.gastosabertos.org/api/v1/receita/totaldrilldown?year=2014
>>>> [3].
>>>> > >> > This
>>>> > >> >       can be fixed by moving the resource to the
>>>> same domain or
>>>> > >> enabling
>>>> > >> > CORS.
>>>> > >> >
>>>> > >> > Pelo visto o request do DataTables para a API está
>>>> funcionando sem
>>>> > >> > problema,
>>>> > >> > só o meu que não. =(
>>>> > >> > Alguma ideia do porque?
>>>> > >> >
>>>> > >> > _______________________________________________
>>>> > >> > Gastosabertos-dev mailing list
>>>> > >> > Gastosabertos-dev em lists.okfn.org [4]
>>>> > >> >
>>>> https://lists.okfn.org/mailman/listinfo/gastosabertos-dev [5]
>>>> > >>
>>>> > >> _______________________________________________
>>>> > >> Gastosabertos-dev mailing list
>>>> > >> Gastosabertos-dev em lists.okfn.org [6]
>>>> > >> https://lists.okfn.org/mailman/listinfo/gastosabertos-dev
>>>> [7]
>>>> > > _______________________________________________
>>>> > > Gastosabertos-dev mailing list
>>>> > > Gastosabertos-dev em lists.okfn.org [8]
>>>> > > https://lists.okfn.org/mailman/listinfo/gastosabertos-dev
>>>> [9]
>>>> >
>>>> > _______________________________________________
>>>> > Gastosabertos-dev mailing list
>>>> > Gastosabertos-dev em lists.okfn.org [10]
>>>> > https://lists.okfn.org/mailman/listinfo/gastosabertos-dev
>>>> [11]
>>> _______________________________________________
>>> Gastosabertos-dev mailing list
>>> Gastosabertos-dev em lists.okfn.org [14]
>>> https://lists.okfn.org/mailman/listinfo/gastosabertos-dev [15]
>>
>> _______________________________________________
>> Gastosabertos-dev mailing list
>> Gastosabertos-dev em lists.okfn.org [16]
>> https://lists.okfn.org/mailman/listinfo/gastosabertos-dev [17]
>
> --
>
> Luiz Armesto
>
>
> Links:
> ------
> [1]
> 
> http://demo.gastosabertos.org/receita/static/total_by_year_by_code/2014.json
> [2] https://github.com/okfn-brasil/gastos_abertos/issues/132
> [3] 
> http://demo.gastosabertos.org/api/v1/receita/totaldrilldown?year=2014
> [4] mailto:Gastosabertos-dev em lists.okfn.org
> [5] https://lists.okfn.org/mailman/listinfo/gastosabertos-dev
> [6] mailto:Gastosabertos-dev em lists.okfn.org
> [7] https://lists.okfn.org/mailman/listinfo/gastosabertos-dev
> [8] mailto:Gastosabertos-dev em lists.okfn.org
> [9] https://lists.okfn.org/mailman/listinfo/gastosabertos-dev
> [10] mailto:Gastosabertos-dev em lists.okfn.org
> [11] https://lists.okfn.org/mailman/listinfo/gastosabertos-dev
> [12] https://github.com/okfn-brasil/gastos_abertos/pull/134
> [13] https://github.com/okfn-brasil/gastos_abertos/issues/121
> [14] mailto:Gastosabertos-dev em lists.okfn.org
> [15] https://lists.okfn.org/mailman/listinfo/gastosabertos-dev
> [16] mailto:Gastosabertos-dev em lists.okfn.org
> [17] https://lists.okfn.org/mailman/listinfo/gastosabertos-dev
> [18] mailto:e em vaz.io




Mais detalhes sobre a lista de discussão Gastosabertos-dev