scieloorg / scielo-manager

Management tool for cataloging journals and articles, available in a SaaS model. It acts as a central metadata backbone for all the systems and services of SciELO.
http://docs.scielo.org/projects/scielo-manager/en/latest/
BSD 2-Clause "Simplified" License
16 stars 11 forks source link

Avaliar a remoção dos dados do editor no tipo *journalmanager.models.Journal* #1229

Open gustavofonseca opened 8 years ago

gustavofonseca commented 8 years ago

Desde que a aplicação editorialmanager debutou, a responsabilidade pela manutenção dos dados de corpo editorial foram transferidas para essa aplicação. Entretanto, o tipo journalmanager.models.Journal contém atributos sobreviventes, que devem ser eliminados! São os prefixados com editor_.

Relacionados: #975, #976, https://github.com/scieloorg/Web/issues/217

gustavofonseca commented 8 years ago

A app delorean depende dos atributos em questão, como é possível ver no código: https://github.com/scieloorg/delorean/blob/162786e283e413fbe9455c292859534c16d10e10/delorean/domain.py#L416-L441

gustavofonseca commented 8 years ago

Aparentemente houve uma confusão de terminologia entre publisher e editor, e os valores dos atributos prefixados com editor_ possuem, em geral, dados da casa publicadora.

gustavofonseca commented 8 years ago

Proposta #1 (não será implementada, pois não atende a necessidade descrita no ticket scieloorg/Web#217)

A proposta de solução é a seguinte:

  1. Criar o tipo de entidade Publisher(name, address, city, state, country, zip_code, phone1, phone2), que poderá ser referenciada por n entidades tipo Journal;
  2. Atribuir os valores dos campos, respectivamente, à entidade Publisher: (publisher_name, editor_address, strip(editor_address_city) ou strip(publication_city), editor_address_state, editor_address_country, editor_address_zip, editor_phone1, editor_phone2);
  3. Remover do tipo Journal todos os atributos prefixados por editor_ e publisher_ e publication_.

Com base na listagem extraída da base de dados[1], pude verificar que nem sempre os valores dos atributos publication_city e editor_address_city são os mesmos, por mais contra-intuitivo que isso seja -- a cidade de publicação é a cidade onde a casa publicadora é sediada. Além disso, esses atributos são apresentados em locais distintos no site público: publication_city é parte da legenda bibliográfica e editor_address_city do texto que aparece no rodapé das páginas do periódico (home, grade de números, sumário e artigo). A solução proposta aqui elimina essa ambiguidade.

[1]https://gist.github.com/gustavofonseca/520146350b1d0a32dbf7

Adendo:

A compatibilidade com ambas as versões disponíveis da interface Restful é obrigatória. Os campos utilizados pelo Delorean são:

gustavofonseca commented 8 years ago

@fabiobatalha pensa oq sobre essa proposta?

gustavofonseca commented 8 years ago

@jfunez e @jamilatta opinem tb! :santa:

jfunez commented 8 years ago

:+1: pelo conversado, eu acho que esta certo! :beers:

jamilatta commented 8 years ago

Show de bola manda ver garoto.

On Tue, Dec 8, 2015 at 1:56 PM, Juan Funez notifications@github.com wrote:

[image: :+1:] pelo conversado, eu acho que esta certo! [image: :beers:]

— Reply to this email directly or view it on GitHub https://github.com/scieloorg/scielo-manager/issues/1229#issuecomment-162926123 .

Jamil Atta Junior

gustavofonseca commented 8 years ago

Estou disponibilizando no link https://docs.google.com/a/scielo.org/spreadsheets/d/1hAVcD7_DZBewo0MjzGz2yh2eOwqCcVytns5wO19Egh4/edit?usp=sharing (acesso restrito aos usuários do domínio @scielo.org) a planilha que estou utilizando para identificar inconsistências entre os registros que dividem o mesmo publisher name. A diversidade de dados complementares -- endereço e contato -- inviabilizam uma mescla dos registros com o mesmo publisher name.

gustavofonseca commented 8 years ago

Proposta #2

  1. Criar o tipo de entidade PublishingHouse(name, address, city, state, country, zip_code, phone1, phone2), que poderá ser referenciada por n entidades tipo Journal. Decidi utilizar o termo PublishingHouse para evitar ambiguidades históricas entre editoras e editores. Aqui estamos falando de editoras;
  2. Adicionar os atributos Journal.chief_publishing_house e Journal.publishing_house, ambos referenciando instâncias de PublishingHouse;
  3. Atribuir os valores dos campos, respectivamente, ao atributo Journal.chief_publishing_house: (publisher_name, editor_address, strip(editor_address_city) ou strip(publication_city), editor_address_state, editor_address_country, editor_address_zip, editor_phone1, editor_phone2);
  4. Remover do tipo Journal todos os atributos prefixados por editor_ e publisher_ e publication_.

O atributo Journal.chief_publishing_house será utilizado para a editora responsável pelo conteúdo do periódico, enquanto Journal.publishing_house para a editora que trata das tarefas operacionais (scieloorg/Web#217).

Com base na listagem extraída da base de dados[1], pude verificar que nem sempre os valores dos atributos publication_city e editor_address_city são os mesmos, por mais contra-intuitivo que isso seja -- a cidade de publicação é a cidade onde a casa publicadora é sediada. Além disso, esses atributos são apresentados em locais distintos no site público: publication_city é parte da legenda bibliográfica e editor_address_city do texto que aparece no rodapé das páginas do periódico (home, grade de números, sumário e artigo). A solução proposta aqui elimina essa ambiguidade.

[1]https://gist.github.com/gustavofonseca/520146350b1d0a32dbf7

A compatibilidade com ambas as versões disponíveis da interface Restful é obrigatória. Os campos utilizados pelo Delorean são:

jamilatta commented 8 years ago

@gustavofonseca

é importante lembrar que o editorialmanager utiliza os campos publisher_*.

gustavofonseca commented 8 years ago

@jamilatta, esse acoplamento não cheira bem. Inclusive, me parece que trata-se de um vazamento de encapsulamento em nível de aplicação... mas eu ainda preciso bolar melhor a linha de argumentação.

jamilatta commented 8 years ago

:+1:

gustavofonseca commented 8 years ago

Iniciei as atividades no branch https://github.com/gustavofonseca/scielo-manager/tree/tk1229-publishers, mas logo surgiu um impedimento: Baixa coesão e alto acoplamento (entre o modelo de dados, o formulário do periódico, sua view-function e até acoplamento com a aplicação editorialmanager) obriga a realização de diversas outras atividades muito mais dispendiosas do que a atividade original. Acredito que seja melhor trabalharmos em atividades a fim de aumentar a coesão e baixar o acoplamento antes de qualquer coisa. Vou listar aqui os tickets relacionados [#1231, #1232].