Issue #153
Remover dos plugins código que gere HTML ou URL
-
@melissawen começo amanhã. Quando começa a sprint 7? :)
-
Lista de plugins para atualização ordernada do menor para o maior:
- [R] profile_description_block
- [ ] classify_members
- [N] remote_user
- [N] html5_video
- [ ] variables
- [R] gallery_block
- [N] template
- [R] community_block
- [N] pg_search
- [R] profile_members_headlines
- [N] piwik
- [N] metadata
- [R] recent_content
- [?] mark_comment_as_read
- [R] relevant_content
- [?] vote
- [N] volunteers
- [?] lattes_curriculum
- [R] event
- [N] anti_spam
- [N] google_cse
- [R] context_content
- [N] analytics
- [N] oauth_provider
- [N] driven_signup
- [R] container_block
- [N] foo
- [?] ldap
- [?] require_auth_to_comment
- [N] tolerance_time
- [N] delivery
- [?] comment_group
- [N] oauth_client
- [?] work_assignment
- [R] breadcrumbs
- [?] send_email
- [R] statistics
- [R] site_tour
- [ ] newsletter
- [R] video
- [N] spaminator
- [N] environment_notification
- [R] people_block
- [?] stoa
- [R] sub_organizations
- [N] open_graph
- [ ] comment_paragraph
- [R] organization_ratings
- [R] community_track
- [N] fb_app
- [?] comment_classification
- [N] suppliers
- [N] google_analytics
- [N] orders_cycle
- [R] sniffer
- [N] custom_forms
- [?] social_share_privacy
- [?] pjax
- [?] orders
- [N] responsive
- [R] display_content
- [N] shopping_cart
- [N] solr
Legenda:
N: não possui HTML acoplado aos models
?: Controverso
R: refatorado
São 63 plugins dos quais 21 precisam de refatoração por HTML acoplado e 14 precisam de mais discussão sobre a necessidade de refatoração.
-
O foco será corrigir primeiro os plugins necessários para reverter o commit https://gitlab.com/noosfero/noosfero/commit/c4d44602e57efd3721bc3b2bb898bd6be1ce582b
-
Branch de trabalho atual: https://gitlab.com/rafamanzo/noosfero/tree/decouple_people_block_plugin_html
-
Dois novos MRs:
https://gitlab.com/noosfero/noosfero/merge_requests/822
https://gitlab.com/noosfero/noosfero/merge_requests/823
Agora faltam mais dois plugins de bloco.
-
Últimos dois MRs de plugins de blocos:
https://gitlab.com/noosfero/noosfero/merge_requests/826
https://gitlab.com/noosfero/noosfero/merge_requests/827
Quando esses quatro MRs forem aceitos teremos o último revertendo o commit com o workaround que esses plugins fizeram necessários no core.
-
Community track já foi refatorado.
-
822, 823, 826 e 827 foram incorporados.
-
Com esses MRs aceitos, desfiz a solução temporária no branch https://gitlab.com/rafamanzo/noosfero/tree/undo_blocks_workarounds
Com isso alguns plugins foram quebrados e devem ser os próximos alvos:
context_contentorganization_ratingsrecent_contentstatisticssub_organizationsvideo
-
é importante enviar uma mensagem na lista noosfero-br avisando sobre essa mudança pois alguns mantém plugins fora da árvore oficial do Noosfero.
-
A refatoração do
context_content
vai ser uma das mais complicadas: são quatro métodos que fazem render e depende de variáveis atribuídas pelo controller.Além disso, adiciona-se à lista dos que quebram removendo o workaround o plugin
breadcrumb
. Os testes dele passam, mas certamente estão incompletos no sentido de que ainda faz uso da API antiga de blocos. Vão ser necessários mais testes para ele e a refatoração de acordo. -
Novo MR para o plugin recent_content: https://gitlab.com/noosfero/noosfero/merge_requests/856
-
Novo MR para o context_content: https://gitlab.com/noosfero/noosfero/merge_requests/864
-
Estou por hora congelando o trabalho no plugin breadcrumbs (https://gitlab.com/rafamanzo/noosfero/tree/refactor_breadcrumbs) para esclarecer algumas dúvidas (@diguliu @joenio):
- É possível sobrescrever controllers do Noosfero em plugins?
- Esse plugin define que o bloco possui tipos
Community, Person, Enterprise
. Posso assumir que são os respectivos controllers que vou sobrescrever?
Se essas duas coisas forem possíveis, acho que consigo resolver o que está travando a refatoração desse plugin (
BreadcrumbsPlugin::ContentBreadcrumbsBlock#trail
) escrevendobefore_filter
s nesses controllers sobrescritos. O que acham?Obrigado!
-
Novo MR para o plugin sub_organizations: https://gitlab.com/noosfero/noosfero/merge_requests/883
-
Novo MR (já aceito) para organization_ratings: https://gitlab.com/noosfero/noosfero/merge_requests/884
-
Refatorando o plugin
video
encontrei oVideoGalleryBlock
. A view de content dele parece não ter funçõ alguma: https://gitlab.com/noosfero/noosfero/blob/master/plugins/video/views/video_gallery_block.html.erb@joenio, @evandrojr posso remover essa view junto com o método?
-
@manzo fiz esse plugin na época que eu mal conhecia Rails, se estiver funcionado a galeria de bloco de vídeo sem essa view pode arrancar.
Você está continuando as melhorias que @daniela começou? Ela estava fazendo umas refatorações. Tem uma migration para corrigir namespace do tipo de conteúdo. Verifique se ela está presente, senão o servidor nem vai subir depois que instalar o plugin.
-
Valeu @evandrojr!
Sim estou continuando esse trabalho. Eu não encontrei essa migration no plugin. Ela está em algum outro lugar?
Além disso, terminei de remover o método que gera HTML por lá: https://gitlab.com/noosfero/noosfero/merge_requests/891
-
@manzo, fiz uma refatoração simples no plugin breadcrumbs, acredito que não é o que você estava pensando, mas deve cumprir bem o papel, concentrei em apenas um ponto a variável
params
, e movi esse ponto para um helper, veja o commit e vc vai entender a proposta: -
@evandrojr e @manzo fiz um MR com a migration que altera o nome da classe e conserta a visualização do artigo do tipo "Gallery Video", que quebrou: https://gitlab.com/noosfero/noosfero/merge_requests/897
-
Obrigado @daniela e @evandrojr !
-
Obrigado @joenio pela ajuda com o breadcrumbs. Abri o MR: https://gitlab.com/noosfero/noosfero/merge_requests/898
-
Vou abrir mais um MR para o plugin statistics a seguir (só estou esperando os testes passarem). Com isso todos os plugins para os quais os testes falham quando removemos o código de compatibilidade estarão de acordo.
Por outro lado, encontrei outros casos que não quebram testes, mas em produção vão quebrar:
- sniffer (interests_block)
- site_tour (tour_block)
- relevant_content (relevant_content_block)
- profile_members_headlines (profile_members_headlines_block)
- event (event_block)
- display_content (display_content_block)
Dois deles darão bastante trabalho: display_content e relevant_content.
Então termino com mais esses ou paramos por aqui?
-
MR para o plugin statistics: https://gitlab.com/noosfero/noosfero/merge_requests/905
-
Oi @manzo, @joenio disse que deve ser feito o mesmo para esses plugins que não tem boa cobertura dos testes para isso. Vi que Braulio já está revisando o do breadcrumbs, e o 905 ele já incorporou. Então quando terminar o MR 898, vamos fechar essa tarefa e abrir tarefas específicas cada uma para um plugin, continuando os trabalhos.
-
@melissawen uma issue por atividade que falta:
- https://softwarepublico.gov.br/gitlab/noosferogov/noosfero/issues/280
- https://softwarepublico.gov.br/gitlab/noosferogov/noosfero/issues/279
- https://softwarepublico.gov.br/gitlab/noosferogov/noosfero/issues/281
- https://softwarepublico.gov.br/gitlab/noosferogov/noosfero/issues/282
- https://softwarepublico.gov.br/gitlab/noosferogov/noosfero/issues/283
- https://softwarepublico.gov.br/gitlab/noosferogov/noosfero/issues/284
- https://softwarepublico.gov.br/gitlab/noosferogov/noosfero/issues/285
-
Status changed to closed