-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Altera reg javascript do c.upload / c.p.calendar. #474
Altera reg javascript do c.upload / c.p.calendar. #474
Conversation
Altera ordem de registro de javascript do collective.upload e collective.portlet.calendar para corrigir alinhamento do título (refs. plonegovbr/brasil.gov.agenda#82)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
na minha opinião acho melhor e mais limpo implementar isso aqui usando código Python ao invés de registrando mais um profile; o código só tem que se preocupar por colocar os estilos do calendário como último item. temos que deixar bem indicado que cada vez que se atualize a versão do collective.upload vai ser necessário chamar esse código antes de cozinhar novamente os recursos para ficar na ordem certa sempre.
No primeiro ponto (usar profile ou não) teremos um impasse pois já acho esse fato mais uma questão de preferência e não como "erro" a ser corrigido, rs. Eu não concordo em fazer código Python se já existe código Python pronto e testado do Plone que processa o xml. Mas entendi uma motivação maior nesse caso, devido a esse fato mencionado por você:
Ou seja, se eu fizesse esse upgrade via código Python, facilitaria chamar esse código toda vez que uma versão do collective.upload fosse atualizada (colocaríamos em https://github.com/plonegovbr/portal.buildout/blob/master/buildout.d/versions.cfg o aviso Acontece que nesse caso também acho a preocupação exagerada. Depois que a ordem é consertada tanto em novas instalações > 1.5.1 do zero quanto em atualizações de versões antigas, dificilmente ela será alterada. Acredito que a única situação em que isso poderia de fato acontecer seria alterações no Nesse contexto, prefiro adicionar um teste a mais, garantindo que não tem nenhum |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sugiro colocar isso para revisão de alguém mais para chegar a um acordo sobre como implementar.
@@ -6,4 +6,11 @@ | |||
<stylesheet title="" cacheable="True" compression="safe" cookable="True" | |||
enabled="1" expression="" id="++resource++brasil.gov.portal/css/main-print.css" media="print" | |||
rel="stylesheet" rendering="link" insert-after="++resource++brasil.gov.portal/css/main.css"/> | |||
<stylesheet title="" cacheable="True" compression="none" cookable="True" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
um desses itens é redundante e desnecessário: ao colocar o primeiro antes do segundo, já está garantido que o segundo ficou depois do primeiro.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Isso é pra garantir ao máximo não só que esteja atrás, mas imediatamente atrás do do collective.portlet.calendar pois foi assim que foi testado. Parece redundante mas foi pensado assim.
As demais considerações serão implementadas e adicionadas aqui no PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mas isso exatamente o que faz o insert-after
: ele coloca imediatamente atrás; não precisam do outro.
portlet_calendar_css_id = '++resource++calendar_styles/calendar.css' | ||
upload_pos = portal_css.getResourcePosition(upload_css_id) | ||
calendar_pos = portal_css.getResourcePosition(portlet_calendar_css_id) | ||
self.assertTrue(upload_pos < calendar_pos) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
usar self.assertLess()
@@ -0,0 +1,10 @@ | |||
<?xml version="1.0"?> | |||
<object name="portal_css" meta_type="Stylesheets Registry" purge="False"> | |||
<stylesheet title="" cacheable="True" compression="none" cookable="True" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
um desses itens é redundante e desnecessário: ao colocar o primeiro antes do segundo, já está garantido que o segundo ficou depois do primeiro.
self._do_upgrade(step) | ||
upload_pos = portal_css.getResourcePosition(upload_css_id) | ||
calendar_pos = portal_css.getResourcePosition(portlet_calendar_css_id) | ||
self.assertTrue(upload_pos < calendar_pos) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
usar self.assertLess()
portal_css.moveResourceToBottom(upload_css_id) | ||
upload_pos = portal_css.getResourcePosition(upload_css_id) | ||
calendar_pos = portal_css.getResourcePosition(portlet_calendar_css_id) | ||
self.assertTrue(upload_pos > calendar_pos) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
usar self.assertGreater()
@agnogueira @claytonc e @rodfersou, estamos num impasse sobre esse pull request, com relação a usar ou não profile no upgradeStep levantada pelo @hvelarde em #474 (review) e respondida por mim em #474 (comment). Poderiam nos dar suas opiniões? |
AS ordens de css e js já me deu muito dor de cabeça e demorei para descobri o problema. Se erro no estilo só ocorre sempre que é atualizado o collective.upload, seria bom ter isso documentado, poderia até criar uma sessão na documentação de erros mais comuns e como corrigi-los. Mas se tive alguma forma automatizar para evitar é melhor. Mas eu deixaria redundante só se existisse alguma possibilidade de não ficar na ordem certa os css. |
É imprevisível caso uma pessoa clique em "reinstall". Mas isso já é documentado como não recomendado em http://identidade-digital-de-governo-plone.readthedocs.io/en/latest/atualizacao/#execucao-de-reinstall-em-portal-quickinstaller A redundância é uma tentativa de automatização para impedir que as ordens incorretas ocorram, mesmo com reinstall. Não consigo imaginar outra automatização. |
não é só redundância, é simplesmente desnecessário :) |
@hvelarde muita da discussão aqui é preferência, o único ponto divergente acabou sendo o uso de "insert-before" e "insert-after" ao mesmo tempo, vou remover então por mais de um ter achado redundante pra você aprovar o PR, precisamos disso aqui mesclado para dar prosseguimento em outros PRs. |
Ficar atento às várias opções disponibilizadas em https://docs.python.org/2/library/unittest.html#assert-methods A principal vantagem é a legibilidade: só de ler o assert você já entende a lógica ao invés de tentar interpretar a lógica interna que voltaria True para assertTrue anteriormente. Registros de css também não necessitam de 'insert-after' E 'insert-before' por ser redundante.
7fd8f94
to
a2f22dd
Compare
Altera ordem de registro de javascript do collective.upload e
collective.portlet.calendar para corrigir alinhamento do título
(refs. plonegovbr/brasil.gov.agenda#82)
Boas práticas para o PR: Checklist
Foi aberta uma issue relativa a esse PR;
Foram adicionados testes unitários;
Foram adicionados testes robots;
Foram adicionados upgradeSteps;
Foi adicionada a modificação no CHANGES.rst do pacote, sempre no topo do arquivo (ou seja, na primeira linha do release ainda não lançado), contendo o seu nome de usuário do github e a referência ao issue que você está tratando (não esqueça de colocar no fim do arquivo a url para a issue, use o padrão do próprio arquivo);
PR não contém assuntos diferentes. PR's devem ter um objetivo claro para facilitar o review. Ex: não junte, num mesmo PR, alterações de code-analysis e de implementação. Faça um PR de code-analysis e depois o da implementação em si;
Evite muitos commits pequenos de um mesmo assunto no PR, sempre que possível efetue rebase;