Open gustavofonseca opened 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
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.
#1
(não será implementada, pois não atende a necessidade descrita no ticket scieloorg/Web#217)A proposta de solução é a seguinte:
Publisher(name, address, city, state, country, zip_code, phone1, phone2)
, que poderá ser referenciada por n entidades tipo Journal;(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)
;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
A compatibilidade com ambas as versões disponíveis da interface Restful é obrigatória. Os campos utilizados pelo Delorean são:
publisher_name
publication_city
editor_address
editor_address_city
editor_address_state
editor_address_country
editor_address_zip
editor_address_phone1
editor_address_phone2
@fabiobatalha pensa oq sobre essa proposta?
@jfunez e @jamilatta opinem tb! :santa:
:+1: pelo conversado, eu acho que esta certo! :beers:
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
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.
#2
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;Journal.chief_publishing_house
e Journal.publishing_house
, ambos referenciando instâncias de PublishingHouse
;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)
;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:
publisher_name
publication_city
editor_address
editor_address_city
editor_address_state
editor_address_country
editor_address_zip
editor_address_phone1
editor_address_phone2
@gustavofonseca
é importante lembrar que o editorialmanager utiliza os campos publisher_*.
@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.
:+1:
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].
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 comeditor_
.Relacionados: #975, #976, https://github.com/scieloorg/Web/issues/217