-
Notifications
You must be signed in to change notification settings - Fork 2
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
Portlet de calendário estendido. Problema de quebra de layout #82
Comments
Layout1 - O erro de quebra de layout foi ocasionado pelo atualização de plone.app.event. É necessário customizar um javascript (veja mais sobre essa decisão plonegovbr/brasil.gov.portal#412 (comment)). 2 - O mês que ficava alinhado no centro do portlet agora fica alinhado à esquerda devido à atualização do collective.upload que utiliza o bootstrap e cria uma regra https://github.com/collective/collective.upload/blob/45278693169d568da9205863ec6e03cd977884f5/webpack/app/upload.less#L6 collective.portlet.calendar já define a regra de centralizar o nome do mês, portanto iremos apenas fazer com que o registro do css do upload seja feito antes do css de collective.portlet.calendar (usando Como esse problema ocorre devido ao uso do collective.upload, deve ser corrigido no brasil.gov.portal (pois collective.upload não é dependência de brasil.gov.agenda). Funcionalidade próximo mêsSerá feito um patch baseado em plone/Products.CMFPlone#2215 por não podermos atuar no namespace Plone. Basicamente, adicionando um |
portlet_calendar.js foi customizado. Ler o relato para entender as motivações. Customizado a partir de https://raw.githubusercontent.com/plone/plone.app.event/1.1.8/plone/app/event/portlets/portlet_calendar.js
Fecha #82. Patch foi feito da forma tradicional e não com uso de collective.monkeypatcher, ver https://pypi.org/project/collective.monkeypatcher/#patching-module-level-functions
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)
* Corrige layout do portlet de agenda (rel #82). portlet_calendar.js foi customizado. Ler o relato para entender as motivações. Customizado a partir de https://raw.githubusercontent.com/plone/plone.app.event/1.1.8/plone/app/event/portlets/portlet_calendar.js * Adiciona upgradeStep para customização js. O último upgradeStep da branch 1.x é o 4003: https://github.com/plonegovbr/brasil.gov.agenda/tree/dd4fcfa103d625a1ee7f44cba9b6457e2a6b6a17/src/brasil/gov/agenda/upgrades E o primeiro da branch master (2.0) é o 4004: https://github.com/plonegovbr/brasil.gov.agenda/tree/58370bbb9c5a9182c8979aba7669bb09c10d9b82/src/brasil/gov/agenda/upgrades Dessa forma, nomearemos o upgradeStep na branch 1.x de 4003r01 para evitar conflitos com nomes. Essa lógica é parecida com a usada nos revisions dos UnifiedInstallers: https://launchpad.net/plone/4.3/4.3.15/+download/Plone-4.3.15-UnifiedInstaller-r2.tgz E também é reconhecida pelos padrões definidos em distutils.version.LooseVersion e packaging.version.parse. * Corrige navegação entre meses calendário estendido Fecha #82. Patch foi feito da forma tradicional e não com uso de collective.monkeypatcher, ver https://pypi.org/project/collective.monkeypatcher/#patching-module-level-functions * Muda upgradeStep de 4003r01 para 4004. Após discussões sobre padrões de números de upgradeSteps em plonegovbr/brasil.gov.portal#471 (comment) Decidimos mudar para 4004. Modificações futuras no brasil.gov.agenda com relação ao upgradeStep hoje definido na branch master (futuro 2.x) serão feitas em #86
* Altera reg javascript do c.upload / c.p.calendar. 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) * Code review. 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.
Acho que a implementação aqui não foi a mais correta: será necessário, no main.css, forçar uma regra Falo isso porque o html renderizado é: <table class="ploneCalendar" summary="Calendário">
<caption class="hiddenStructure">Junho</caption>
<thead>
<tr class="month">
<th colspan="7">
<a href="http://brasil.gov.portal-1.x:8080/Plone?month:int=5&year:int=2018&orig_query=" rel="nofollow" title="Mês anterior" id="calendar-previous" data-month="5" data-year="2018" class="kssCalendarChange kssattr-year-2018 kssattr-month-5 calendarPrevious">«</a>
Junho 2018
<a href="http://brasil.gov.portal-1.x:8080/Plone?month:int=7&year:int=2018&orig_query=" rel="nofollow" title="Próximo mês" id="calendar-next" data-month="7" data-year="2018" class="kssCalendarChange kssattr-year-2018 kssattr-month-7 calendarNext">»</a>
</th>
</tr>
<tr class="weekdays"><th scope="col">Do</th><th scope="col">Se</th><th scope="col">Te</th><th scope="col">Qu</th><th scope="col">Qu</th><th scope="col">Se</th><th scope="col">Sa</th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
</tr>
<tr>
<td>10</td>
<td class="todaynoevent"><strong>11</strong></td>
<td class="event">
<strong>
<a href="http://brasil.gov.portal-1.x:8080/Plone/agenda/2018-06-12" title="Agenda">12</a></strong></td>
<td>13</td>
<td>14</td>
<td>15</td>
<td>16</td>
</tr>
<tr>
<td>17</td>
<td>18</td>
<td>19</td>
<td>20</td>
<td>21</td>
<td>22</td>
<td>23</td>
</tr>
<tr>
<td>24</td>
<td>25</td>
<td>26</td>
<td>27</td>
<td>28</td>
<td>29</td>
<td>30</td>
</tr>
</tbody>
</table> Veja que o Acho que o ideal aqui seria, em https://github.com/plonegovbr/brasil.gov.portal/blob/3583d4c3dbff69e128c585f954eb8d3b615f976e/src/brasil/gov/portal/static/css/main.css#L1283, criar uma nova seção, "Portlet de calendário estendido", colocando a regra .portletCalendarEx th {
text-align: center;
} @rodfersou e @agnogueira, favor expressarem suas opiniões. Precisamos resolver isso antes de sair um novo release 1.5.x. |
eu usaria uma regra flexbox para corrigir a posição dos elementos. |
@idgserpro Tranquilo pra mim esse enfoque se resolve o problema agora. |
@agnogueira Acha então que .portletCalendarEx th {
text-align: center;
} Deveria ser adicionado em collective.portlet.calendar com essa justificativa, evitar conflito quando estiver usando bootstrap? |
me parece a solução mais simples |
De qualquer forma, precisamos adicionar aqui porque usar o último release de collective.portlet.calendar ainda não é possível. |
Temos outro problema: ao atualizar um IDG 1.0.5 para as branches 1.x com essa correção, o portlet de agenda não cria mais os links para as agendas a não ser que eu dê um updateCatalog. Não sei se isso é um problema do Plone ou do collective.portlet.calendar. @hvelarde já viu algo parecido? Código html do "evento" renderizado após o update catalog: <td class="event">
<strong>
<a href="http://localhost:8080/Plone/agenda/2018-06-09" title="Agenda">9</a>
</strong>
</td> |
@idgserpro nunca vi, mas acho que pode estar relacionado com a atualização do plone.app.contenttypes. |
O "erro" ocorre aqui: https://github.com/plone/Products.CMFPlone/blob/4.3.15/Products/CMFPlone/CalendarTool.py#L88 Sem rodar updateCatalog: {'start': {'query': DateTime('2018/06/30 23:59:59 GMT-3'), 'range': 'max'}, 'end': {'query': DateTime('2018/06/01 00:00:00 GMT-3'), 'range': 'min'}, 'path': '/Plone/agenda', 'portal_type': ('Event', 'AgendaDiaria'), 'sort_on': 'start', 'review_state': ('published',)}
[] Rodando updateCatalog: {'start': {'query': DateTime('2018/06/30 23:59:59 GMT-3'), 'range': 'max'}, 'end': {'query': DateTime('2018/06/01 00:00:00 GMT-3'), 'range': 'min'}, 'path': '/Plone/agenda', 'portal_type': ('Event', 'AgendaDiaria'), 'sort_on': 'start', 'review_state': ('published',)}
[<Products.ZCatalog.Catalog.mybrains object at 0x7f98d7287db8>] |
IDG 1.0.5 Atualizando do 1.0.5 para 1.5.2 (a ser lançado) mas sem rodar o upgradeStep de plone.app.contenttypes Atualizando do 1.0.5 para 1.5.2 (a ser lançado) rodando o upgradeStep de plone.app.contenttypes Atualizando do 1.0.5 para 1.5.2 (a ser lançado) rodando todos os upgradeSteps + um de teste em que ele executa |
Dessa forma, itens passam a aparecer no portlet definido por collective.portlet.calendar. Ver #82 (comment) para mais detalhes.
Sobrescreve a regra adicionada pelo bootstrap de collective.upload. Ver plonegovbr/brasil.gov.agenda#82 (comment)
Sobrescreve a regra adicionada pelo bootstrap de collective.upload. Ver plonegovbr/brasil.gov.agenda#82 (comment)
This is being done because of bootstrap. An example is collective.upload, that it's using bootstrap: in https://github.com/collective/collective.upload/blob/45278693169d568da9205863ec6e03cd977884f5/webpack/app/upload.less#L6 -> https://github.com/distros/bootstrap-less/blob/f07af08fe8bdafb334df3d86e5e6790b842d4cbf/bootstrap/tables.less#L15 you can see that th { text-align: left; } Is defined and will have impact in all layouts like here in collective.portlet.calendar if you have collective.upload installed. This was motivated (in portuguese) in plonegovbr/brasil.gov.agenda#82 (comment).
@hvelarde não entendi muito bem o porquê de #82 (comment) (como você mesmo disse, devia ser plone.app.contenttypes e era mesmo), mas chamando o |
Sobrescreve a regra adicionada pelo bootstrap de collective.upload. Assim, força centralização do nome do mês no portlet de calendário estendido. Ver plonegovbr/brasil.gov.agenda#82 (comment)
This is being done because of bootstrap. An example is collective.upload, that it's using bootstrap: in https://github.com/collective/collective.upload/blob/45278693169d568da9205863ec6e03cd977884f5/webpack/app/upload.less#L6 -> https://github.com/distros/bootstrap-less/blob/f07af08fe8bdafb334df3d86e5e6790b842d4cbf/bootstrap/tables.less#L15 you can see that th { text-align: left; } Is defined and will have impact in all layouts like here in collective.portlet.calendar if you have collective.upload installed. This was motivated (in portuguese) in plonegovbr/brasil.gov.agenda#82 (comment).
Dessa forma, itens passam a aparecer no portlet definido por collective.portlet.calendar. Ver #82 (comment) para mais detalhes.
This is being done because of bootstrap. An example is collective.upload, that it's using bootstrap: in https://github.com/collective/collective.upload/blob/45278693169d568da9205863ec6e03cd977884f5/webpack/app/upload.less#L6 -> https://github.com/distros/bootstrap-less/blob/f07af08fe8bdafb334df3d86e5e6790b842d4cbf/bootstrap/tables.less#L15 you can see that th { text-align: left; } Is defined and will have impact in all layouts like here in collective.portlet.calendar if you have collective.upload installed. This was motivated (in portuguese) in plonegovbr/brasil.gov.agenda#82 (comment).
vou avisando que esse pacote torna-se desnecessário no IDG 2.0. |
Você está falando do collective.portlet.calendar? |
Segue abaixo um erro de quebra de layout do portlet de calendário estendido.
Outro ponto verificado: Portlet não avança e nem retrocede entre as datas
Versão ::
The text was updated successfully, but these errors were encountered: