diff --git a/docs/dev/exporttoisis.rst b/docs/dev/exporttoisis.rst index b4cf00dc..a51bdec0 100644 --- a/docs/dev/exporttoisis.rst +++ b/docs/dev/exporttoisis.rst @@ -22,14 +22,14 @@ Para a nova versão da ferramenta de gestão de periódicos, considerando as car Introdução ---------- -As bases de dados ISIS geradas pelo Title Manager são utilizadas em dois prontos do processo de publicação da SciELO, são eles: processo de marcação e processamento para inclusão de conteúdo. +As bases de dados ISIS geradas pelo Title Manager são utilizadas em dois pontos do processo de publicação da SciELO, são eles: processo de marcação e processamento para inclusão de conteúdo. Processamento para inclusão de conteúdo ======================================= Atualmente o SciELO possui um processamento (geraPadrao.bat) para inclusão de novas revistas, fascículos e artigos na coleção. Esse processamento recebe como entrada um conjunto de bases de dados, são elas: artigo, issue, code, title. -As bases code, title e issue são únicadas para todo o processamento, significa que uma base de dados com todo o conteúdo de título, outra com todo conteúdo de code e outra com todo conteúdo de issues são geradas e gravadas em um diretório chamado serial gerando a seguinte estrutura de dados de entrada para o processamento. +As bases code, title e issue são únicas para todo o processamento, significa que uma base de dados com todo o conteúdo de título, outra com todo conteúdo de code e outra com todo conteúdo de issues são geradas e gravadas em um diretório chamado serial gerando a seguinte estrutura de dados de entrada para o processamento. .. code-block:: text @@ -74,7 +74,7 @@ Em resumo, significa que o processo de exportação de bases do SciELO Manager p Processo de Marcação ==================== -O processo de marcação de metadados de artigos nas SciELO é feito através da ferramenta Markup, que corresponde a um aplicativo VBSript embutido no Word para identificar os elementos dos artigos. Esse plugin do Word consulta algumas bases de dados ISIS geradas pela Title Manager para complementar a identificação de elementos no texto do artigo, como por exemplo: +O processo de marcação de metadados de artigos nas SciELO é feito através da ferramenta Markup, que corresponde a um aplicativo VBScript embutido no Word para identificar os elementos dos artigos. Esse plugin do Word consulta algumas bases de dados ISIS geradas pela Title Manager para complementar a identificação de elementos no texto do artigo, como por exemplo: * Identificação de seções dos fascículos (base code) @@ -334,7 +334,7 @@ Title quando mais de uma coleção compartilha mesma base title no site local. Resolver este problema criando instalações independentes para cada coleção SciELO, ex: Brasil e Saúde Pública. - Foram encontradas ocorrencias do campo v691 no arquivo sci_serial.xis entretanto parece não estar + Foram encontradas ocorrências do campo v691 no arquivo sci_serial.xis entretanto parece não estar em uso uma vez que faz referência a arquivos template (ScieloXML/collections.xis) que não estão atualizados. @@ -418,4 +418,4 @@ Title 20. Seção (130) - Excluído da aplicação. Não precisa ser mantido para compatibilidade. Nunca foi usado \ No newline at end of file + Excluído da aplicação. Não precisa ser mantido para compatibilidade. Nunca foi usado diff --git a/requirements.txt b/requirements.txt index 90058441..02851db7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,10 +13,9 @@ yuicompressor jsonfield django-tastypie==0.9.16 django-htmlmin==0.7.0 -packtools==1.3.1 -Celery -django-celery -django-kombu +packtools==1.3.3 +celery==3.1.25 +django-celery==3.1.16 defusedxml==0.4.1 cython thriftpy diff --git a/scielomanager/journalmanager/migrations/0032_auto__add_field_articleasset_preferred_alt_file.py b/scielomanager/journalmanager/migrations/0032_auto__add_field_articleasset_preferred_alt_file.py new file mode 100644 index 00000000..4c7268e7 --- /dev/null +++ b/scielomanager/journalmanager/migrations/0032_auto__add_field_articleasset_preferred_alt_file.py @@ -0,0 +1,401 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'ArticleAsset.preferred_alt_file' + db.add_column('journalmanager_articleasset', 'preferred_alt_file', + self.gf('django.db.models.fields.files.FileField')(default=u'', max_length=1024), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'ArticleAsset.preferred_alt_file' + db.delete_column('journalmanager_articleasset', 'preferred_alt_file') + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'journalmanager.aheadpressrelease': { + 'Meta': {'object_name': 'AheadPressRelease', '_ormbases': ['journalmanager.PressRelease']}, + 'journal': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'press_releases'", 'to': "orm['journalmanager.Journal']"}), + 'pressrelease_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['journalmanager.PressRelease']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'journalmanager.article': { + 'Meta': {'object_name': 'Article'}, + 'aid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '32'}), + 'article_type': ('django.db.models.fields.CharField', [], {'max_length': '32', 'db_index': 'True'}), + 'created_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'auto_now_add': 'True', 'blank': 'True'}), + 'doi': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '2048', 'db_index': 'True'}), + 'domain_key': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_aop': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'issn_epub': ('django.db.models.fields.CharField', [], {'max_length': '9', 'db_index': 'True'}), + 'issn_ppub': ('django.db.models.fields.CharField', [], {'max_length': '9', 'db_index': 'True'}), + 'issue': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'articles'", 'null': 'True', 'to': "orm['journalmanager.Issue']"}), + 'journal': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'articles'", 'null': 'True', 'to': "orm['journalmanager.Journal']"}), + 'journal_title': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), + 'related_articles': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['journalmanager.Article']", 'null': 'True', 'through': "orm['journalmanager.ArticlesLinkage']", 'blank': 'True'}), + 'updated_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'auto_now': 'True', 'blank': 'True'}), + 'xml': ('scielomanager.custom_fields.XMLSPSField', [], {}), + 'xml_version': ('django.db.models.fields.CharField', [], {'max_length': '9'}) + }, + 'journalmanager.articleasset': { + 'Meta': {'object_name': 'ArticleAsset'}, + 'article': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'assets'", 'to': "orm['journalmanager.Article']"}), + 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'owner': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '1024'}), + 'preferred_alt_file': ('django.db.models.fields.files.FileField', [], {'default': "u''", 'max_length': '1024'}), + 'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'use_license': ('django.db.models.fields.TextField', [], {'default': "u''"}) + }, + 'journalmanager.articlecontrolattributes': { + 'Meta': {'object_name': 'ArticleControlAttributes'}, + 'article': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'control_attributes'", 'unique': 'True', 'to': "orm['journalmanager.Article']"}), + 'articles_linkage_is_pending': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'es_is_dirty': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'es_updated_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'journalmanager.articlehtmlrendition': { + 'Meta': {'unique_together': "(('article', 'lang'),)", 'object_name': 'ArticleHTMLRendition'}, + 'article': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'htmls'", 'to': "orm['journalmanager.Article']"}), + 'build_version': ('django.db.models.fields.CharField', [], {'max_length': '8'}), + 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'lang': ('django.db.models.fields.CharField', [], {'max_length': '2'}), + 'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}) + }, + 'journalmanager.articleslinkage': { + 'Meta': {'object_name': 'ArticlesLinkage'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'link_to': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'referrers'", 'to': "orm['journalmanager.Article']"}), + 'link_type': ('django.db.models.fields.CharField', [], {'max_length': '32'}), + 'referrer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'links_to'", 'to': "orm['journalmanager.Article']"}) + }, + 'journalmanager.collection': { + 'Meta': {'ordering': "['name']", 'object_name': 'Collection'}, + 'acronym': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '16', 'blank': 'True'}), + 'address': ('django.db.models.fields.TextField', [], {}), + 'address_complement': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}), + 'address_number': ('django.db.models.fields.CharField', [], {'max_length': '8'}), + 'city': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}), + 'collection': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_collection'", 'to': "orm['auth.User']", 'through': "orm['journalmanager.UserCollections']", 'blank': 'True', 'symmetrical': 'False', 'null': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '32'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), + 'fax': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'logo': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'db_index': 'True'}), + 'name_slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'unique': 'True', 'null': 'True', 'blank': 'True'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}), + 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}), + 'zip_code': ('django.db.models.fields.CharField', [], {'max_length': '16', 'null': 'True', 'blank': 'True'}) + }, + 'journalmanager.institution': { + 'Meta': {'ordering': "['name']", 'object_name': 'Institution'}, + 'acronym': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '16', 'blank': 'True'}), + 'address': ('django.db.models.fields.TextField', [], {}), + 'address_complement': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}), + 'address_number': ('django.db.models.fields.CharField', [], {'max_length': '8'}), + 'cel': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'city': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}), + 'complement': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '32'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), + 'fax': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_trashed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}), + 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'zip_code': ('django.db.models.fields.CharField', [], {'max_length': '16', 'null': 'True', 'blank': 'True'}) + }, + 'journalmanager.issue': { + 'Meta': {'ordering': "('created', 'id')", 'object_name': 'Issue'}, + 'cover': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'ctrl_vocabulary': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}), + 'editorial_standard': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_marked_up': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_trashed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}), + 'journal': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Journal']"}), + 'label': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '64', 'null': 'True', 'blank': 'True'}), + 'number': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'order': ('django.db.models.fields.IntegerField', [], {'blank': 'True'}), + 'publication_end_month': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'publication_start_month': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'publication_year': ('django.db.models.fields.IntegerField', [], {}), + 'section': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['journalmanager.Section']", 'symmetrical': 'False', 'blank': 'True'}), + 'spe_text': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}), + 'suppl_text': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}), + 'total_documents': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'type': ('django.db.models.fields.CharField', [], {'default': "'regular'", 'max_length': '15'}), + 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'use_license': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.UseLicense']", 'null': 'True'}), + 'volume': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}) + }, + 'journalmanager.issuetitle': { + 'Meta': {'object_name': 'IssueTitle'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'issue': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Issue']"}), + 'language': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Language']"}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '256'}) + }, + 'journalmanager.journal': { + 'Meta': {'ordering': "('title', 'id')", 'object_name': 'Journal'}, + 'abstract_keyword_languages': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'abstract_keyword_languages'", 'symmetrical': 'False', 'to': "orm['journalmanager.Language']"}), + 'acronym': ('django.db.models.fields.CharField', [], {'max_length': '16'}), + 'ccn_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '64', 'blank': 'True'}), + 'collections': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['journalmanager.Collection']", 'through': "orm['journalmanager.Membership']", 'symmetrical': 'False'}), + 'copyrighter': ('django.db.models.fields.CharField', [], {'max_length': '254'}), + 'cover': ('scielomanager.custom_fields.ContentTypeRestrictedFileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'enjoy_creator'", 'to': "orm['auth.User']"}), + 'ctrl_vocabulary': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'current_ahead_documents': ('django.db.models.fields.IntegerField', [], {'default': '0', 'max_length': '3', 'blank': 'True'}), + 'editor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'editor_journal'", 'null': 'True', 'to': "orm['auth.User']"}), + 'editor_address': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'editor_address_city': ('django.db.models.fields.CharField', [], {'max_length': '256'}), + 'editor_address_country': ('scielo_extensions.modelfields.CountryField', [], {'max_length': '2'}), + 'editor_address_state': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'editor_address_zip': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'editor_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), + 'editor_name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'editor_phone1': ('django.db.models.fields.CharField', [], {'max_length': '32'}), + 'editor_phone2': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), + 'editorial_standard': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'eletronic_issn': ('django.db.models.fields.CharField', [], {'max_length': '9', 'db_index': 'True'}), + 'final_num': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '16', 'blank': 'True'}), + 'final_vol': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '16', 'blank': 'True'}), + 'final_year': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '4', 'blank': 'True'}), + 'frequency': ('django.db.models.fields.CharField', [], {'max_length': '16'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'index_coverage': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'init_num': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '16', 'blank': 'True'}), + 'init_vol': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '16', 'blank': 'True'}), + 'init_year': ('django.db.models.fields.CharField', [], {'max_length': '4'}), + 'is_indexed_aehci': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_indexed_scie': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_indexed_ssci': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_trashed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}), + 'languages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['journalmanager.Language']", 'symmetrical': 'False'}), + 'logo': ('scielomanager.custom_fields.ContentTypeRestrictedFileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'medline_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '64', 'blank': 'True'}), + 'medline_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}), + 'notes': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '254', 'blank': 'True'}), + 'other_previous_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), + 'previous_ahead_documents': ('django.db.models.fields.IntegerField', [], {'default': '0', 'max_length': '3', 'blank': 'True'}), + 'previous_title': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'prev_title'", 'null': 'True', 'to': "orm['journalmanager.Journal']"}), + 'print_issn': ('django.db.models.fields.CharField', [], {'max_length': '9', 'db_index': 'True'}), + 'pub_level': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'publication_city': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'publisher_country': ('scielo_extensions.modelfields.CountryField', [], {'max_length': '2'}), + 'publisher_name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'publisher_state': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'scielo_issn': ('django.db.models.fields.CharField', [], {'max_length': '16'}), + 'secs_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '64', 'blank': 'True'}), + 'short_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'db_index': 'True'}), + 'sponsor': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'journal_sponsor'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['journalmanager.Sponsor']"}), + 'study_areas': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'journals_migration_tmp'", 'null': 'True', 'to': "orm['journalmanager.StudyArea']"}), + 'subject_categories': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'journals'", 'null': 'True', 'to': "orm['journalmanager.SubjectCategory']"}), + 'subject_descriptors': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}), + 'title_iso': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}), + 'twitter_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}), + 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'url_journal': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}), + 'url_online_submission': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}), + 'use_license': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.UseLicense']"}) + }, + 'journalmanager.journalmission': { + 'Meta': {'object_name': 'JournalMission'}, + 'description': ('django.db.models.fields.TextField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'journal': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'missions'", 'to': "orm['journalmanager.Journal']"}), + 'language': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Language']", 'null': 'True'}) + }, + 'journalmanager.journaltimeline': { + 'Meta': {'object_name': 'JournalTimeline'}, + 'collection': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Collection']"}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'journal': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'statuses'", 'to': "orm['journalmanager.Journal']"}), + 'reason': ('django.db.models.fields.TextField', [], {'default': "''"}), + 'since': ('django.db.models.fields.DateTimeField', [], {}), + 'status': ('django.db.models.fields.CharField', [], {'max_length': '16'}) + }, + 'journalmanager.journaltitle': { + 'Meta': {'object_name': 'JournalTitle'}, + 'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'journal': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'other_titles'", 'to': "orm['journalmanager.Journal']"}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '128'}) + }, + 'journalmanager.language': { + 'Meta': {'ordering': "['name']", 'object_name': 'Language'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'iso_code': ('django.db.models.fields.CharField', [], {'max_length': '2'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}) + }, + 'journalmanager.membership': { + 'Meta': {'unique_together': "(('journal', 'collection'),)", 'object_name': 'Membership'}, + 'collection': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Collection']"}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'journal': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Journal']"}), + 'reason': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'since': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'inprogress'", 'max_length': '16'}) + }, + 'journalmanager.pendedform': { + 'Meta': {'object_name': 'PendedForm'}, + 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'form_hash': ('django.db.models.fields.CharField', [], {'max_length': '32'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pending_forms'", 'to': "orm['auth.User']"}), + 'view_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}) + }, + 'journalmanager.pendedvalue': { + 'Meta': {'object_name': 'PendedValue'}, + 'form': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'data'", 'to': "orm['journalmanager.PendedForm']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'value': ('django.db.models.fields.TextField', [], {}) + }, + 'journalmanager.pressrelease': { + 'Meta': {'object_name': 'PressRelease'}, + 'doi': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'journalmanager.pressreleasearticle': { + 'Meta': {'object_name': 'PressReleaseArticle'}, + 'article_pid': ('django.db.models.fields.CharField', [], {'max_length': '32', 'db_index': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'press_release': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'articles'", 'to': "orm['journalmanager.PressRelease']"}) + }, + 'journalmanager.pressreleasetranslation': { + 'Meta': {'object_name': 'PressReleaseTranslation'}, + 'content': ('django.db.models.fields.TextField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'language': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Language']"}), + 'press_release': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['journalmanager.PressRelease']"}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '128'}) + }, + 'journalmanager.regularpressrelease': { + 'Meta': {'object_name': 'RegularPressRelease', '_ormbases': ['journalmanager.PressRelease']}, + 'issue': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'press_releases'", 'to': "orm['journalmanager.Issue']"}), + 'pressrelease_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['journalmanager.PressRelease']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'journalmanager.section': { + 'Meta': {'ordering': "('id',)", 'object_name': 'Section'}, + 'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '21', 'blank': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_trashed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}), + 'journal': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Journal']"}), + 'legacy_code': ('django.db.models.fields.CharField', [], {'max_length': '16', 'null': 'True', 'blank': 'True'}), + 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}) + }, + 'journalmanager.sectiontitle': { + 'Meta': {'ordering': "['title']", 'object_name': 'SectionTitle'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'language': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Language']"}), + 'section': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'titles'", 'to': "orm['journalmanager.Section']"}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '256'}) + }, + 'journalmanager.sponsor': { + 'Meta': {'ordering': "['name']", 'object_name': 'Sponsor', '_ormbases': ['journalmanager.Institution']}, + 'collections': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['journalmanager.Collection']", 'symmetrical': 'False'}), + 'institution_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['journalmanager.Institution']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'journalmanager.studyarea': { + 'Meta': {'object_name': 'StudyArea'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'study_area': ('django.db.models.fields.CharField', [], {'max_length': '256'}) + }, + 'journalmanager.subjectcategory': { + 'Meta': {'object_name': 'SubjectCategory'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'term': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}) + }, + 'journalmanager.translateddata': { + 'Meta': {'object_name': 'TranslatedData'}, + 'field': ('django.db.models.fields.CharField', [], {'max_length': '32'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'language': ('django.db.models.fields.CharField', [], {'max_length': '32'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '32'}), + 'translation': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}) + }, + 'journalmanager.uselicense': { + 'Meta': {'ordering': "['license_code']", 'object_name': 'UseLicense'}, + 'disclaimer': ('django.db.models.fields.TextField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_default': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'license_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '64'}), + 'reference_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) + }, + 'journalmanager.usercollections': { + 'Meta': {'unique_together': "(('user', 'collection'),)", 'object_name': 'UserCollections'}, + 'collection': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Collection']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_default': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_manager': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) + }, + 'journalmanager.userprofile': { + 'Meta': {'object_name': 'UserProfile'}, + 'email_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'tz': ('django.db.models.fields.CharField', [], {'default': "'America/Sao_Paulo'", 'max_length': '150'}), + 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}) + } + } + + complete_apps = ['journalmanager'] \ No newline at end of file diff --git a/scielomanager/journalmanager/migrations/0033_update_issue_label.py b/scielomanager/journalmanager/migrations/0033_update_issue_label.py new file mode 100644 index 00000000..a4425975 --- /dev/null +++ b/scielomanager/journalmanager/migrations/0033_update_issue_label.py @@ -0,0 +1,401 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import DataMigration +from django.db import models + +class Migration(DataMigration): + + def forwards(self, orm): + "Write your forwards methods here." + # Note: Don't use "from appname.models import ModelName". + # Use orm.ModelName to refer to models in this application, + # and orm['appname.ModelName'] for models in other applications. + for spe_issue in orm.Issue.objects.filter(type='special'): + spe_issue.label = unicode(spe_issue) + spe_issue.save() + + def backwards(self, orm): + "Write your backwards methods here." + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'journalmanager.aheadpressrelease': { + 'Meta': {'object_name': 'AheadPressRelease', '_ormbases': ['journalmanager.PressRelease']}, + 'journal': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'press_releases'", 'to': "orm['journalmanager.Journal']"}), + 'pressrelease_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['journalmanager.PressRelease']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'journalmanager.article': { + 'Meta': {'object_name': 'Article'}, + 'aid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '32'}), + 'article_type': ('django.db.models.fields.CharField', [], {'max_length': '32', 'db_index': 'True'}), + 'created_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'auto_now_add': 'True', 'blank': 'True'}), + 'doi': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '2048', 'db_index': 'True'}), + 'domain_key': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_aop': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'issn_epub': ('django.db.models.fields.CharField', [], {'max_length': '9', 'db_index': 'True'}), + 'issn_ppub': ('django.db.models.fields.CharField', [], {'max_length': '9', 'db_index': 'True'}), + 'issue': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'articles'", 'null': 'True', 'to': "orm['journalmanager.Issue']"}), + 'journal': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'articles'", 'null': 'True', 'to': "orm['journalmanager.Journal']"}), + 'journal_title': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), + 'related_articles': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['journalmanager.Article']", 'null': 'True', 'through': "orm['journalmanager.ArticlesLinkage']", 'blank': 'True'}), + 'updated_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'auto_now': 'True', 'blank': 'True'}), + 'xml': ('scielomanager.custom_fields.XMLSPSField', [], {}), + 'xml_version': ('django.db.models.fields.CharField', [], {'max_length': '9'}) + }, + 'journalmanager.articleasset': { + 'Meta': {'object_name': 'ArticleAsset'}, + 'article': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'assets'", 'to': "orm['journalmanager.Article']"}), + 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'owner': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '1024'}), + 'preferred_alt_file': ('django.db.models.fields.files.FileField', [], {'default': "u''", 'max_length': '1024'}), + 'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'use_license': ('django.db.models.fields.TextField', [], {'default': "u''"}) + }, + 'journalmanager.articlecontrolattributes': { + 'Meta': {'object_name': 'ArticleControlAttributes'}, + 'article': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'control_attributes'", 'unique': 'True', 'to': "orm['journalmanager.Article']"}), + 'articles_linkage_is_pending': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'es_is_dirty': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'es_updated_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'journalmanager.articlehtmlrendition': { + 'Meta': {'unique_together': "(('article', 'lang'),)", 'object_name': 'ArticleHTMLRendition'}, + 'article': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'htmls'", 'to': "orm['journalmanager.Article']"}), + 'build_version': ('django.db.models.fields.CharField', [], {'max_length': '8'}), + 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'lang': ('django.db.models.fields.CharField', [], {'max_length': '2'}), + 'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}) + }, + 'journalmanager.articleslinkage': { + 'Meta': {'object_name': 'ArticlesLinkage'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'link_to': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'referrers'", 'to': "orm['journalmanager.Article']"}), + 'link_type': ('django.db.models.fields.CharField', [], {'max_length': '32'}), + 'referrer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'links_to'", 'to': "orm['journalmanager.Article']"}) + }, + 'journalmanager.collection': { + 'Meta': {'ordering': "['name']", 'object_name': 'Collection'}, + 'acronym': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '16', 'blank': 'True'}), + 'address': ('django.db.models.fields.TextField', [], {}), + 'address_complement': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}), + 'address_number': ('django.db.models.fields.CharField', [], {'max_length': '8'}), + 'city': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}), + 'collection': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_collection'", 'to': "orm['auth.User']", 'through': "orm['journalmanager.UserCollections']", 'blank': 'True', 'symmetrical': 'False', 'null': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '32'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), + 'fax': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'logo': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'db_index': 'True'}), + 'name_slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'unique': 'True', 'null': 'True', 'blank': 'True'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}), + 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}), + 'zip_code': ('django.db.models.fields.CharField', [], {'max_length': '16', 'null': 'True', 'blank': 'True'}) + }, + 'journalmanager.institution': { + 'Meta': {'ordering': "['name']", 'object_name': 'Institution'}, + 'acronym': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '16', 'blank': 'True'}), + 'address': ('django.db.models.fields.TextField', [], {}), + 'address_complement': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}), + 'address_number': ('django.db.models.fields.CharField', [], {'max_length': '8'}), + 'cel': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'city': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}), + 'complement': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '32'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), + 'fax': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_trashed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}), + 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'zip_code': ('django.db.models.fields.CharField', [], {'max_length': '16', 'null': 'True', 'blank': 'True'}) + }, + 'journalmanager.issue': { + 'Meta': {'ordering': "('created', 'id')", 'object_name': 'Issue'}, + 'cover': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'ctrl_vocabulary': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}), + 'editorial_standard': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_marked_up': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_trashed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}), + 'journal': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Journal']"}), + 'label': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '64', 'null': 'True', 'blank': 'True'}), + 'number': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'order': ('django.db.models.fields.IntegerField', [], {'blank': 'True'}), + 'publication_end_month': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'publication_start_month': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'publication_year': ('django.db.models.fields.IntegerField', [], {}), + 'section': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['journalmanager.Section']", 'symmetrical': 'False', 'blank': 'True'}), + 'spe_text': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}), + 'suppl_text': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}), + 'total_documents': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'type': ('django.db.models.fields.CharField', [], {'default': "'regular'", 'max_length': '15'}), + 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'use_license': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.UseLicense']", 'null': 'True'}), + 'volume': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}) + }, + 'journalmanager.issuetitle': { + 'Meta': {'object_name': 'IssueTitle'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'issue': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Issue']"}), + 'language': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Language']"}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '256'}) + }, + 'journalmanager.journal': { + 'Meta': {'ordering': "('title', 'id')", 'object_name': 'Journal'}, + 'abstract_keyword_languages': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'abstract_keyword_languages'", 'symmetrical': 'False', 'to': "orm['journalmanager.Language']"}), + 'acronym': ('django.db.models.fields.CharField', [], {'max_length': '16'}), + 'ccn_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '64', 'blank': 'True'}), + 'collections': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['journalmanager.Collection']", 'through': "orm['journalmanager.Membership']", 'symmetrical': 'False'}), + 'copyrighter': ('django.db.models.fields.CharField', [], {'max_length': '254'}), + 'cover': ('scielomanager.custom_fields.ContentTypeRestrictedFileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'enjoy_creator'", 'to': "orm['auth.User']"}), + 'ctrl_vocabulary': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'current_ahead_documents': ('django.db.models.fields.IntegerField', [], {'default': '0', 'max_length': '3', 'blank': 'True'}), + 'editor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'editor_journal'", 'null': 'True', 'to': "orm['auth.User']"}), + 'editor_address': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'editor_address_city': ('django.db.models.fields.CharField', [], {'max_length': '256'}), + 'editor_address_country': ('scielo_extensions.modelfields.CountryField', [], {'max_length': '2'}), + 'editor_address_state': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'editor_address_zip': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'editor_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), + 'editor_name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'editor_phone1': ('django.db.models.fields.CharField', [], {'max_length': '32'}), + 'editor_phone2': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), + 'editorial_standard': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'eletronic_issn': ('django.db.models.fields.CharField', [], {'max_length': '9', 'db_index': 'True'}), + 'final_num': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '16', 'blank': 'True'}), + 'final_vol': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '16', 'blank': 'True'}), + 'final_year': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '4', 'blank': 'True'}), + 'frequency': ('django.db.models.fields.CharField', [], {'max_length': '16'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'index_coverage': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'init_num': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '16', 'blank': 'True'}), + 'init_vol': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '16', 'blank': 'True'}), + 'init_year': ('django.db.models.fields.CharField', [], {'max_length': '4'}), + 'is_indexed_aehci': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_indexed_scie': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_indexed_ssci': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_trashed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}), + 'languages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['journalmanager.Language']", 'symmetrical': 'False'}), + 'logo': ('scielomanager.custom_fields.ContentTypeRestrictedFileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'medline_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '64', 'blank': 'True'}), + 'medline_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}), + 'notes': ('django.db.models.fields.TextField', [], {'default': "''", 'max_length': '254', 'blank': 'True'}), + 'other_previous_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), + 'previous_ahead_documents': ('django.db.models.fields.IntegerField', [], {'default': '0', 'max_length': '3', 'blank': 'True'}), + 'previous_title': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'prev_title'", 'null': 'True', 'to': "orm['journalmanager.Journal']"}), + 'print_issn': ('django.db.models.fields.CharField', [], {'max_length': '9', 'db_index': 'True'}), + 'pub_level': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'publication_city': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'publisher_country': ('scielo_extensions.modelfields.CountryField', [], {'max_length': '2'}), + 'publisher_name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'publisher_state': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'scielo_issn': ('django.db.models.fields.CharField', [], {'max_length': '16'}), + 'secs_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '64', 'blank': 'True'}), + 'short_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'db_index': 'True'}), + 'sponsor': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'journal_sponsor'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['journalmanager.Sponsor']"}), + 'study_areas': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'journals_migration_tmp'", 'null': 'True', 'to': "orm['journalmanager.StudyArea']"}), + 'subject_categories': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'journals'", 'null': 'True', 'to': "orm['journalmanager.SubjectCategory']"}), + 'subject_descriptors': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}), + 'title_iso': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}), + 'twitter_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}), + 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'url_journal': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}), + 'url_online_submission': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128', 'blank': 'True'}), + 'use_license': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.UseLicense']"}) + }, + 'journalmanager.journalmission': { + 'Meta': {'object_name': 'JournalMission'}, + 'description': ('django.db.models.fields.TextField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'journal': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'missions'", 'to': "orm['journalmanager.Journal']"}), + 'language': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Language']", 'null': 'True'}) + }, + 'journalmanager.journaltimeline': { + 'Meta': {'object_name': 'JournalTimeline'}, + 'collection': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Collection']"}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'journal': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'statuses'", 'to': "orm['journalmanager.Journal']"}), + 'reason': ('django.db.models.fields.TextField', [], {'default': "''"}), + 'since': ('django.db.models.fields.DateTimeField', [], {}), + 'status': ('django.db.models.fields.CharField', [], {'max_length': '16'}) + }, + 'journalmanager.journaltitle': { + 'Meta': {'object_name': 'JournalTitle'}, + 'category': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'journal': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'other_titles'", 'to': "orm['journalmanager.Journal']"}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '128'}) + }, + 'journalmanager.language': { + 'Meta': {'ordering': "['name']", 'object_name': 'Language'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'iso_code': ('django.db.models.fields.CharField', [], {'max_length': '2'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}) + }, + 'journalmanager.membership': { + 'Meta': {'unique_together': "(('journal', 'collection'),)", 'object_name': 'Membership'}, + 'collection': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Collection']"}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'journal': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Journal']"}), + 'reason': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'since': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'inprogress'", 'max_length': '16'}) + }, + 'journalmanager.pendedform': { + 'Meta': {'object_name': 'PendedForm'}, + 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'form_hash': ('django.db.models.fields.CharField', [], {'max_length': '32'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pending_forms'", 'to': "orm['auth.User']"}), + 'view_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}) + }, + 'journalmanager.pendedvalue': { + 'Meta': {'object_name': 'PendedValue'}, + 'form': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'data'", 'to': "orm['journalmanager.PendedForm']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'value': ('django.db.models.fields.TextField', [], {}) + }, + 'journalmanager.pressrelease': { + 'Meta': {'object_name': 'PressRelease'}, + 'doi': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'journalmanager.pressreleasearticle': { + 'Meta': {'object_name': 'PressReleaseArticle'}, + 'article_pid': ('django.db.models.fields.CharField', [], {'max_length': '32', 'db_index': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'press_release': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'articles'", 'to': "orm['journalmanager.PressRelease']"}) + }, + 'journalmanager.pressreleasetranslation': { + 'Meta': {'object_name': 'PressReleaseTranslation'}, + 'content': ('django.db.models.fields.TextField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'language': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Language']"}), + 'press_release': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['journalmanager.PressRelease']"}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '128'}) + }, + 'journalmanager.regularpressrelease': { + 'Meta': {'object_name': 'RegularPressRelease', '_ormbases': ['journalmanager.PressRelease']}, + 'issue': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'press_releases'", 'to': "orm['journalmanager.Issue']"}), + 'pressrelease_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['journalmanager.PressRelease']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'journalmanager.section': { + 'Meta': {'ordering': "('id',)", 'object_name': 'Section'}, + 'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '21', 'blank': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_trashed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}), + 'journal': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Journal']"}), + 'legacy_code': ('django.db.models.fields.CharField', [], {'max_length': '16', 'null': 'True', 'blank': 'True'}), + 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}) + }, + 'journalmanager.sectiontitle': { + 'Meta': {'ordering': "['title']", 'object_name': 'SectionTitle'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'language': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Language']"}), + 'section': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'titles'", 'to': "orm['journalmanager.Section']"}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '256'}) + }, + 'journalmanager.sponsor': { + 'Meta': {'ordering': "['name']", 'object_name': 'Sponsor', '_ormbases': ['journalmanager.Institution']}, + 'collections': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['journalmanager.Collection']", 'symmetrical': 'False'}), + 'institution_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['journalmanager.Institution']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'journalmanager.studyarea': { + 'Meta': {'object_name': 'StudyArea'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'study_area': ('django.db.models.fields.CharField', [], {'max_length': '256'}) + }, + 'journalmanager.subjectcategory': { + 'Meta': {'object_name': 'SubjectCategory'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'term': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}) + }, + 'journalmanager.translateddata': { + 'Meta': {'object_name': 'TranslatedData'}, + 'field': ('django.db.models.fields.CharField', [], {'max_length': '32'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'language': ('django.db.models.fields.CharField', [], {'max_length': '32'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '32'}), + 'translation': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}) + }, + 'journalmanager.uselicense': { + 'Meta': {'ordering': "['license_code']", 'object_name': 'UseLicense'}, + 'disclaimer': ('django.db.models.fields.TextField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_default': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'license_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '64'}), + 'reference_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) + }, + 'journalmanager.usercollections': { + 'Meta': {'unique_together': "(('user', 'collection'),)", 'object_name': 'UserCollections'}, + 'collection': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['journalmanager.Collection']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_default': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_manager': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) + }, + 'journalmanager.userprofile': { + 'Meta': {'object_name': 'UserProfile'}, + 'email_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'tz': ('django.db.models.fields.CharField', [], {'default': "'America/Sao_Paulo'", 'max_length': '150'}), + 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}) + } + } + + complete_apps = ['journalmanager'] + symmetrical = True diff --git a/scielomanager/journalmanager/models.py b/scielomanager/journalmanager/models.py index 4fd7d9fd..44792312 100644 --- a/scielomanager/journalmanager/models.py +++ b/scielomanager/journalmanager/models.py @@ -31,9 +31,13 @@ from scielo_extensions import modelfields from tastypie.models import create_api_key import celery +from PIL import Image from scielomanager.utils import base28 -from scielomanager.custom_fields import ContentTypeRestrictedFileField, XMLSPSField +from scielomanager.custom_fields import ( + ContentTypeRestrictedFileField, + XMLSPSField, +) from . import modelmanagers @@ -993,7 +997,8 @@ def identification(self): values.append('suppl.%s' % self.suppl_text) if self.type == 'special': - values.append('spe.%s' % self.spe_text) + _spe_text = 'spe' + self.spe_text if self.spe_text else 'spe' + values.append(_spe_text) return ' '.join([val for val in values if val]).strip().replace('ahead', 'ahead of print') @@ -1497,8 +1502,12 @@ class ArticleAsset(models.Model): """ article = models.ForeignKey('Article', on_delete=models.CASCADE, related_name='assets') - file = models.FileField(upload_to=make_article_directory_path('assets'), + file = models.FileField( + upload_to=make_article_directory_path('assets'), max_length=1024) + preferred_alt_file = models.FileField( + upload_to=make_article_directory_path('alt_assets'), + max_length=1024, default=u'') owner = models.CharField(max_length=1024, default=u'') use_license = models.TextField(default=u'') updated_at = models.DateTimeField(auto_now=True) @@ -1507,6 +1516,23 @@ def __repr__(self): return u'<%s id="%s" url="%s">' % (self.__class__.__name__, self.pk, self.file.url) + def is_image(self): + """Verifica se o ativo digital é uma imagem. + """ + try: + img = Image.open(self.file) + except IOError: + return False + else: + return True + + @property + def best_file(self): + if self.preferred_alt_file: + return self.preferred_alt_file + else: + return self.file + class ArticleHTMLRendition(models.Model): """Documento HTML de uma tradução de uma instância de Article. diff --git a/scielomanager/journalmanager/tasks.py b/scielomanager/journalmanager/tasks.py index ef5b0544..8736cd14 100644 --- a/scielomanager/journalmanager/tasks.py +++ b/scielomanager/journalmanager/tasks.py @@ -15,6 +15,7 @@ from celery.utils.log import get_task_logger from django.templatetags.static import static import packtools +from PIL import Image from scielomanager.celery import app from scielomanager import connectors @@ -389,10 +390,14 @@ def create_articleasset_from_bytes(aid, filename, content, owner=None, _owner = owner or u'' _use_license = use_license or u'' + # create and save the asset asset = models.ArticleAsset(article=article, owner=_owner, use_license=_use_license) asset.file.save(filename, ContentFile(content)) + # create a preferred alternative for the asset + create_preferred_image_file.delay(asset.pk) + logger.info('New ArticleAsset %s added to Article with aid: %s.', repr(asset), aid) @@ -434,3 +439,83 @@ def create_article_html_renditions(article_pk, css_url=None, valid_only=False): return files_urls + +def convert_image_to_jpeg(filepath, mode=None, **kwargs): + """Converte a imagem no caminho `filepath` para o formato JPEG. + + Retorna um buffer com o conteúdo convertido da imagem. Pode levantar + `ValueError` caso `filepath` não seja reconhecido como uma imagem. + + :param **kwargs: (opcional) argumentos nomeados serão repassados para a + função `Image.save`, com exceção de `format` que foi pré-definido. + """ + output_buffer = io.BytesIO() + _ = kwargs.pop('format', None) + + original = Image.open(filepath) + if mode: + _image = original.convert(mode=mode) + else: + _image = original + + _image.save(output_buffer, format='jpeg', **kwargs) + + return output_buffer + + +@app.task(throws=(ValueError, TypeError,)) +def create_preferred_image_file(asset_pk): + """Cria uma versão alternativa de `ArticleAsset.file`, preferida para o + manuseio. + + Por hora a versão preferida é o JPEG ao invés de TIFF. Para os demais + formatos não serão geradas outras versões. + + :param asset_pk: chave primária da instância de `ArticleAsset`. + """ + try: + asset = models.ArticleAsset.objects.get(pk=asset_pk) + + except models.ArticleAsset.DoesNotExist: + raise ValueError('Cannot find ArticleAsset with pk: %s' % asset_pk) + + try: + filepath = asset.file.path + except ValueError as exc: + logger.exception(exc) + logger.error('Cannot create a preferred alt file for %s. Skipping.', + filepath) + raise + + if not asset.is_image(): + logger.error('Cannot create a preferred alt file for %s. Skipping.', + filepath) + raise ValueError('Cannot create preferred alternatives for files ' + 'other than images.') + + _file = Image.open(asset.file.path) + if _file.format.lower() != 'tiff': + raise ValueError('Image is already in a preferred format.') + + try: + # Levanta IOError caso `filepath` não seja um arquivo de imagem. + jpeg_buffer = convert_image_to_jpeg(filepath) + except IOError as exc: + logger.exception(exc) + logger.error('Cannot create a preferred alt file for %s. Skipping.', + filepath) + raise + + _, filename = os.path.split(filepath) + filename_head, _ = os.path.splitext(filename) + + jpeg_filename = filename_head + '.jpeg' + + asset.preferred_alt_file.save(jpeg_filename, + ContentFile(jpeg_buffer.getvalue())) + + logger.info('Finished creating an alternative file for %s.', + repr(asset)) + + return asset.preferred_alt_file.url + diff --git a/scielomanager/journalmanager/tests/image_test/sample_tif_image.tif b/scielomanager/journalmanager/tests/image_test/sample_tif_image.tif new file mode 100755 index 00000000..55ce3be0 Binary files /dev/null and b/scielomanager/journalmanager/tests/image_test/sample_tif_image.tif differ diff --git a/scielomanager/journalmanager/tests/modelfactories.py b/scielomanager/journalmanager/tests/modelfactories.py index b367a19f..c981bd63 100644 --- a/scielomanager/journalmanager/tests/modelfactories.py +++ b/scielomanager/journalmanager/tests/modelfactories.py @@ -6,6 +6,7 @@ from journalmanager import models from django.contrib.auth.models import Group +from django.core.files.base import File _HERE = os.path.dirname(os.path.abspath(__file__)) @@ -15,6 +16,10 @@ SAMPLE_XML = xml_file.read() +SAMPLE_TIFF_IMAGE = open( + os.path.join(_HERE, 'image_test', 'sample_tif_image.tif')) + + with open(os.path.join(_HERE, 'xml_samples', '0034-8910-rsp-48-2-0216_related.xml')) as xml_file: SAMPLE_XML_RELATED = xml_file.read() @@ -232,3 +237,13 @@ class ArticleFactory(factory.Factory): article_type = u'research-article' doi = u'10.1590/S0034-8910.2014048004965' + +class ArticleAssetFactory(factory.Factory): + FACTORY_FOR = models.ArticleAsset + + article = factory.SubFactory(ArticleFactory) + file = File(SAMPLE_TIFF_IMAGE) + owner = u'SciELO' + use_license = u'Creative Commons - BY' + + diff --git a/scielomanager/journalmanager/tests/tests_models.py b/scielomanager/journalmanager/tests/tests_models.py index d4c2a63c..513b6fb0 100644 --- a/scielomanager/journalmanager/tests/tests_models.py +++ b/scielomanager/journalmanager/tests/tests_models.py @@ -158,7 +158,7 @@ def test_identification_for_ahead(self): def test_identification_for_special(self): issue = IssueFactory.create(number='1', spe_text='2', type='special') - expected = u'1 spe.2' + expected = u'1 spe2' self.assertEqual(issue.identification, expected) diff --git a/scielomanager/journalmanager/tests/tests_tasks.py b/scielomanager/journalmanager/tests/tests_tasks.py index b54acd0c..43edb452 100644 --- a/scielomanager/journalmanager/tests/tests_tasks.py +++ b/scielomanager/journalmanager/tests/tests_tasks.py @@ -1,4 +1,5 @@ #coding: utf-8 +import os import io import copy import unittest @@ -898,3 +899,103 @@ def test_htmls_filenames_are_suffixed_with_lang(self): for url, lang in urls: self.assertTrue(url.endswith(u'-' + lang + u'.html')) + +class ConvertImageToJpegTests(TestCase): + def test_convert_gif_image_to_jpeg(self): + from PIL import Image + image_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), + u'image_test', u'cover_too_heavy.gif') + + # A conversão de GIF para JPEG depende da conversão do modo para a + # profundidade de cor por pixel. Por isso do argumento `mode`. + jpeg_buff = tasks.convert_image_to_jpeg(image_path, mode='RGB') + jpeg_buff.seek(0) + + img = Image.open(jpeg_buff) + self.assertEquals(img.format.lower(), 'jpeg') + + def test_convert_tif_image_to_jpeg(self): + from PIL import Image + image_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), + u'image_test', u'sample_tif_image.tif') + + jpeg_buff = tasks.convert_image_to_jpeg(image_path) + jpeg_buff.seek(0) + + img = Image.open(jpeg_buff) + self.assertEquals(img.format.lower(), 'jpeg') + + def test_convert_pdf_to_jpeg(self): + """That should raise a IOError. + """ + from PIL import Image + image_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), + u'image_test', u'logo.pdf') + + self.assertRaises(IOError, + lambda: tasks.convert_image_to_jpeg(image_path)) + + +class CreatePreferredImageFileTests(TestCase): + def setUp(self): + self.unlink_registry = [] + + def tearDown(self): + for path in self.unlink_registry: + os.unlink(path) + + def test_create_alt_image_from_tiff(self): + asset = modelfactories.ArticleAssetFactory.create() + self.assertEquals(False, bool(asset.preferred_alt_file)) + + tasks.create_preferred_image_file(asset.pk) + + modified_asset = models.ArticleAsset.objects.get(pk=asset.pk) + self.assertEquals(True, bool(modified_asset.preferred_alt_file)) + + # evitar que arquivos temporários sobrem no disco. + self.unlink_registry.append(asset.file.path) + self.unlink_registry.append(modified_asset.preferred_alt_file.path) + + def test_alt_to_tiff_is_jpeg(self): + from PIL import Image + asset = modelfactories.ArticleAssetFactory.create() + tasks.create_preferred_image_file(asset.pk) + modified_asset = models.ArticleAsset.objects.get(pk=asset.pk) + self.assertEquals('jpeg', + Image.open(modified_asset.preferred_alt_file.path).format.lower()) + + # evitar que arquivos temporários sobrem no disco. + self.unlink_registry.append(asset.file.path) + self.unlink_registry.append(modified_asset.preferred_alt_file.path) + + def test_non_images_raise_ValueError(self): + from django.core.files.base import File + SAMPLE_PDF = open(os.path.join( + os.path.dirname(os.path.abspath(__file__)), + u'image_test', + u'logo.pdf')) + + asset = modelfactories.ArticleAssetFactory.build() + asset.file = File(SAMPLE_PDF) + + self.assertRaises(ValueError, + lambda: tasks.create_preferred_image_file(asset.pk)) + + def test_images_other_than_tiff_raise_ValueError(self): + from django.core.files.base import File + SAMPLE_PDF = open(os.path.join( + os.path.dirname(os.path.abspath(__file__)), + u'image_test', + u'cover.gif')) + + asset = modelfactories.ArticleAssetFactory.build() + asset.file = File(SAMPLE_PDF) + + self.assertRaises(ValueError, + lambda: tasks.create_preferred_image_file(asset.pk)) + + def test_missing_asset_raise_ValueError(self): + self.assertRaises(ValueError, + lambda: tasks.create_preferred_image_file(999999)) + diff --git a/scielomanager/scielomanager/locale/es_ES/LC_MESSAGES/django.po b/scielomanager/scielomanager/locale/es_ES/LC_MESSAGES/django.po index 605f2c77..3fad0949 100644 --- a/scielomanager/scielomanager/locale/es_ES/LC_MESSAGES/django.po +++ b/scielomanager/scielomanager/locale/es_ES/LC_MESSAGES/django.po @@ -1,11 +1,12 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # fabiobatalha , 2012 -# Javani Araujo , 2016 +# javani , 2016 +# javani , 2016 # Juan Funez , 2014-2016 # maguirre21 , 2012 # mbarraza , 2012 @@ -16,14 +17,13 @@ msgstr "" "Project-Id-Version: SciELO Manager\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-10-03 17:53-0300\n" -"PO-Revision-Date: 2016-07-22 11:49+0000\n" -"Last-Translator: Javani Araujo \n" -"Language-Team: Spanish (Spain) (http://www.transifex.com/scielo/" -"scielomanager/language/es_ES/)\n" -"Language: es_ES\n" +"PO-Revision-Date: 2016-10-05 08:38+0000\n" +"Last-Translator: Gustavo Fonseca \n" +"Language-Team: Spanish (Spain) (http://www.transifex.com/scielo/scielomanager/language/es_ES/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: es_ES\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: accounts/views.py:25 @@ -36,8 +36,7 @@ msgstr "Existen errores o faltan datos." #: accounts/views.py:48 msgid "Your new password and new password confirmation must match." -msgstr "" -"La nueva contraseña y la confirmación de la nueva contraseña deben coincidir." +msgstr "La nueva contraseña y la confirmación de la nueva contraseña deben coincidir." #: accounts/views.py:57 msgid "Your current password does not match. Please try again." @@ -183,10 +182,9 @@ msgstr "Tal vez usted quiere" #: accounts/templates/accounts/unauthorized.html:10 msgid "" -"login with a more privileged account or contact support." -msgstr "" -"Inicie sesión con una cuenta de más previlegiada o " -"entre en contacto con el soporte." +"login with a more privileged account or contact " +"support." +msgstr "login" #: audit_log/helpers.py:274 #, python-format @@ -530,9 +528,7 @@ msgstr "Este número no tiene Cuerpo Editorial asociado" #: editorialmanager/templates/board/board_list_data.html:208 msgid "Cannot retrieve the Editorial Board because this journal has no Issues" -msgstr "" -"No se puede recuperar el Cuerpo Editorial porque esta revista no tiene " -"números" +msgstr "No se puede recuperar el Cuerpo Editorial porque esta revista no tiene números" #: editorialmanager/templates/board/board_member_delete.html:10 #: editorialmanager/templates/board/board_member_delete.html:14 @@ -629,7 +625,7 @@ msgstr "Idioma" #: journalmanager/templates/journalmanager/add_sponsor.html:130 #: journalmanager/templates/journalmanager/add_user.html:216 msgid "add another" -msgstr "" +msgstr "añadir otro" #: editorialmanager/templates/board/role_type_translate.html:100 #: editorialmanager/templates/journal/edit_journal.html:142 @@ -642,7 +638,7 @@ msgstr "" #: journalmanager/templates/journalmanager/add_sponsor.html:131 #: journalmanager/templates/journalmanager/add_user.html:217 msgid "remove" -msgstr "" +msgstr "quitar" #: editorialmanager/templates/includes/journal_detail_info.html:8 msgid "On-line version ISSN" @@ -669,7 +665,7 @@ msgstr "Gestionado por las colecciones" #: editorialmanager/templates/includes/journal_detail_info.html:24 msgid "Download full board as CSV file" -msgstr "Descargar este cuerpo editorial como archivo CSV" +msgstr "Descargar todo el cosejo editorial como un archivo CSV" #: editorialmanager/templates/journal/edit_journal.html:9 msgid "Edit journal" @@ -854,47 +850,19 @@ msgid "" "

\n" "

\n" " A .zip package will be downloaded, containing the\n" -" metadata files required by the Markup software.\n" +" metadata files required by the Markup software.\n" "

\n" "

\n" "

    \n" "
  • Close the Markup software
  • \n" "
  • Expand the .zip package
  • \n" -"
  • * Move all files to c:\\SciELO\\bin\\markup\\\n" +"
  • * Move all files to c:\\SciELO\\bin\\markup\\
  • \n" "
  • Reopen the Markup software et voilà!
  • \n" "
\n" "

\n" " * The default installation path.\n" " " -msgstr "" -"\n" -"

Los metadatos para el de software de margen

\n" -"

\n" -"

    \n" -"
  • Seleccione una publicación
  • \n" -"
  • Seleccione una edición
  • \n" -"
  • Da clic en el botón de descarga.
  • \n" -"
\n" -"

\n" -"

\n" -"Un paquete .zipserá descargado, conteniendo los archivos " -"del metadata requeridos por el software de Margen.\n" -"

\n" -"

\n" -"

    \n" -"
  • Cierra el software de Margen
  • \n" -"
  • Descompriime el archivo .zip
  • \n" -"
  • * Mueve todos los archivos a c:\\SciELO\\bin\\markup\\\n" -"
  • Reabre el software de margen y voilà!
  • \n" -"
\n" -"

\n" -"* La ruta de instalación por defecto." +msgstr "\n

Los metadatos para el de software de margen

\n

\n

    \n
  • Seleccione una publicación
  • \n
  • Seleccione una edición
  • \n
  • Da clic en el botón de descarga.
  • \n
\n

\n

\nUn paquete .zipserá descargado, conteniendo los archivos del metadata requeridos por el software de Margen.\n

\n

\n

    \n
  • Cierra el software de Margen
  • \n
  • Descompriime el archivo .zip
  • \n
  • * Mueve todos los archivos a c:\\SciELO\\bin\\markup\\
  • \n
  • Reabre el software de margen y voilà!
  • \n
\n

\n* La ruta de instalación por defecto." #: export/templates/export/markup_files.html:88 msgid "Please select a Journal" @@ -914,10 +882,7 @@ msgid "" "\n" " Updated about %(elapsed_time)s ago\n" " " -msgstr "" -"\n" -" Actualizado alrededor de %(elapsed_time)s atrás\n" -" " +msgstr "\n Actualizado alrededor de %(elapsed_time)s atrás\n " #: health/templates/health/overall_status.html:37 msgid "Service" @@ -945,14 +910,9 @@ msgstr "Desconectado" #: health/templates/health/overall_status.html:64 msgid "" "\n" -" Could not reach the health monitor. Keep calm and try " -"again later.\n" -" " -msgstr "" -"\n" -" El monitor de salud esta fuera de aclance. Mantanga la calma e " -"intente nuevamente más tarde.\n" +" Could not reach the health monitor. Keep calm and try again later.\n" " " +msgstr "\n El monitor de salud esta fuera de aclance. Mantanga la calma e intente nuevamente más tarde.\n " #: journalmanager/choices.py:70 #: journalmanager/templates/journalmanager/journal_list.html:50 @@ -975,9 +935,7 @@ msgstr "En proceso" #: journalmanager/forms.py:25 msgid "This email is being used by another user, please try another email." -msgstr "" -"Este correo electrónico es usado por otro usuario, por favor intente con " -"otro correo electrónico." +msgstr "Este correo electrónico es usado por otro usuario, por favor intente con otro correo electrónico." #: journalmanager/forms.py:63 msgid "Select one or more collections" @@ -989,7 +947,7 @@ msgstr "Seleccionar uno o más idiomas." #: journalmanager/forms.py:126 msgid "Abstract keyword languages" -msgstr "" +msgstr "Idioma de los resúmenes y palabras-clave" #: journalmanager/forms.py:128 msgid "Select one or more sponsors" @@ -1001,7 +959,7 @@ msgstr "Seleccionar una o más categorías" #: journalmanager/forms.py:132 msgid "Study area" -msgstr "Area de Estudio" +msgstr "Árede de estudio" #: journalmanager/forms.py:134 msgid "Select one or more study area" @@ -1015,59 +973,46 @@ msgstr "Categorías de Asunto" #: journalmanager/templates/journalmanager/add_journal.html:631 msgid "" "Journal cover image extension is not allowed! Please select another file." -msgstr "" -"La extensión de la imagen de portada de la revista, no está permitida! Por " -"favor seleccione otro archivo." +msgstr "La extensión de la imagen de portada de la revista, no está permitida! Por favor seleccione otro archivo." #: journalmanager/forms.py:192 #: journalmanager/templates/journalmanager/add_journal.html:629 -msgid "Journal cover image file size is too large! Please select another file." -msgstr "" -"El tamaño del archivo de imagen de portada de la revista, es muy grande! Por " -"favor seleccione otro archivo." +msgid "" +"Journal cover image file size is too large! Please select another file." +msgstr "El tamaño del archivo de imagen de portada de la revista, es muy grande! Por favor seleccione otro archivo." #: journalmanager/forms.py:198 msgid "" -"The image is {image_size}px pixel wide. It's supposed to be {expected_size}px" -msgstr "" -"La imagen es {image_size}px de ancho. Se supone que debe ser {expected_size}" -"px" +"The image is {image_size}px pixel wide. It's supposed to be " +"{expected_size}px" +msgstr "La imagen es {image_size}px de ancho. Se supone que debe ser {expected_size}px" #: journalmanager/forms.py:204 msgid "" -"The image is {image_size}px pixel high. It's supposed to be {expected_size}px" -msgstr "" -"La imagen es {image_size}px de altura. Se supone que debe ser {expected_size}" -"px" +"The image is {image_size}px pixel high. It's supposed to be " +"{expected_size}px" +msgstr "La imagen es {image_size}px de altura. Se supone que debe ser {expected_size}px" #: journalmanager/forms.py:215 #: journalmanager/templates/journalmanager/add_journal.html:632 msgid "" "Journal logo image extension is not allowed! Please select another file." -msgstr "" -"La extensión de la imagen del logo de la revista no está permitida! Por " -"favor seleccione otro archivo." +msgstr "La extensión de la imagen del logo de la revista no está permitida! Por favor seleccione otro archivo." #: journalmanager/forms.py:218 #: journalmanager/templates/journalmanager/add_journal.html:630 msgid "Journal logo image file size is too large! Please select another file." -msgstr "" -"La extensión de la imagen del logo de la revista es muy grande! Por favor " -"seleccione otro archivo." +msgstr "La extensión de la imagen del logo de la revista es muy grande! Por favor seleccione otro archivo." #: journalmanager/forms.py:223 msgid "" "The image is {logo_size}px pixel wide. It's supposed to be {expected_size}px" -msgstr "" -"La imagen del logo tiene {logo_size}px de ancho. Se supone que debe ser " -"{expected_size}px" +msgstr "La imagen del logo tiene {logo_size}px de ancho. Se supone que debe ser {expected_size}px" #: journalmanager/forms.py:227 msgid "" "The image is {logo_size}px pixel high. It's supposed to be {expected_size}px" -msgstr "" -"La imagen del logo tiene {logo_size}px de altura. Se supone que debe ser " -"{expected_size}px" +msgstr "La imagen del logo tiene {logo_size}px de altura. Se supone que debe ser {expected_size}px" #: journalmanager/forms.py:296 #: scielomanager/templates/registration/login.html:28 @@ -1099,8 +1044,7 @@ msgstr "Licencia de Uso" #: journalmanager/forms.py:405 msgid "You must complete at least one of two fields volume or number." -msgstr "" -"Usted debe completar por lo menos uno de los dos campos del volumen o número." +msgstr "Usted debe completar por lo menos uno de los dos campos del volumen o número." #: journalmanager/forms.py:416 journalmanager/forms.py:470 #: journalmanager/forms.py:475 journalmanager/forms.py:521 @@ -1111,17 +1055,15 @@ msgstr "Número con este Año y (Volumen o Número) ya existe para esta revista" #: journalmanager/forms.py:453 journalmanager/forms.py:508 msgid "You must complete the volume filed. Number field must be empty." -msgstr "" -"Usted debe completar el campo Volumen. El campo Número debe quedar vacío." +msgstr "Usted debe completar el campo Volumen. El campo Número debe quedar vacío." #: journalmanager/forms.py:455 journalmanager/forms.py:510 msgid "You must complete the number filed. Volume field must be empty." -msgstr "" -"Usted debe completar el campo Número. El campo Volumen debe quedar vacío." +msgstr "Usted debe completar el campo Número. El campo Volumen debe quedar vacío." #: journalmanager/forms.py:549 msgid "Legacy Code" -msgstr "Código de Licencia" +msgstr "Código anterior" #: journalmanager/forms.py:854 msgid "Please fill in at least one form" @@ -1130,13 +1072,10 @@ msgstr "Por favor complete por lo menos un formulario" #: journalmanager/models.py:44 msgid "" "If not defined, will be applied the related journal's use license. The " -"SciELO default use license is BY-NC. Please visit: http://ref.scielo.org/" -"jf5ndd (5.2.11. Política de direitos autorais) for more details." -msgstr "" -"Sí no es definida, será aplicada la licencia de uso de la revista " -"relacionada. La licencia de uso por defecto de SciELO es BY-NC. Por favor " -"visite: http://ref.scielo.org/jf5ndd (5.2.11. Política de direitos autorais) " -"para más información." +"SciELO default use license is BY-NC. Please visit: " +"http://ref.scielo.org/jf5ndd (5.2.11. Política de direitos autorais) for " +"more details." +msgstr "Sí no es definida, será aplicada la licencia de uso de la revista relacionada. La licencia de uso por defecto de SciELO es BY-NC. Por favor visite: http://ref.scielo.org/jf5ndd (5.2.11. Política de direitos autorais) para más información." #: journalmanager/models.py:288 journalmanager/models.py:1520 msgid "ISO 639-1 Language Code" @@ -1226,11 +1165,11 @@ msgstr "Licencia de Uso" #: journalmanager/models.py:528 msgid "CCN Code" -msgstr "Código SECS" +msgstr "Código CCN" #: journalmanager/models.py:529 msgid "The code of the journal at the CCN database." -msgstr "" +msgstr "El código de la revista en la base de datos CCN" #: journalmanager/models.py:534 msgid "Subject Categories" @@ -1403,7 +1342,7 @@ msgstr "¿Por qué usted está cambiando el estado de publicación?" #: journalmanager/models.py:774 msgid "Reason" -msgstr "Reason" +msgstr "Razón" #: journalmanager/models.py:780 journalmanager/models.py:836 #: journalmanager/models.py:1112 journalmanager/models.py:1213 @@ -1519,8 +1458,7 @@ msgstr "Guardado." #: journalmanager/views.py:53 msgid "Saved partially. You can continue to fill in this form later." -msgstr "" -"Guardado parcialmente. Puede continuar completando el formulario después." +msgstr "Guardado parcialmente. Puede continuar completando el formulario después." #: journalmanager/views.py:55 msgid "The pended form has been deleted." @@ -1555,8 +1493,7 @@ msgstr "Esta revista ya existe, por favor búsquela en el paso anterior" #: journalmanager/views.py:988 msgid "" "Issue created successfully, however we can not create the editorial board." -msgstr "" -"Número creado con éxito, sin embargo no podemos crear el Cuerpo Editorial." +msgstr "Número creado con éxito, sin embargo no podemos crear el Cuerpo Editorial." #: journalmanager/views.py:1088 msgid "Section removed successfully" @@ -1716,11 +1653,11 @@ msgstr "PID del artículo" #: journalmanager/templates/journalmanager/add_pressrelease.html:124 msgid "Body" -msgstr "Cuerpo" +msgstr "Cuerpo de texto" #: journalmanager/templates/journalmanager/add_pressrelease.html:127 msgid "Preview as HTML" -msgstr "Vista previa" +msgstr "Vista previa en HTML" #: journalmanager/templates/journalmanager/add_section.html:95 msgid "Section Information" @@ -1794,19 +1731,19 @@ msgstr "Versión del artículo" #: journalmanager/templates/journalmanager/article_detail.html:48 #: validator/templates/validator/preview_html.html:85 msgid "HTML preview" -msgstr "Vista previa" +msgstr "Vista previa en HTML" #: journalmanager/templates/journalmanager/article_detail.html:54 msgid "Source XML" -msgstr "" +msgstr "Source XML" #: journalmanager/templates/journalmanager/article_detail.html:68 msgid "Sorry, but the HTML preview is not available for this article." -msgstr "" +msgstr "Discúlpame, pero la previa vista en HTML no está disponible para este artículo" #: journalmanager/templates/journalmanager/article_detail.html:76 msgid "This article doesn't have a XML file." -msgstr "Este artículo no tiene XML" +msgstr "Este artículo no tiene un archivo XML" #: journalmanager/templates/journalmanager/article_list.html:5 #: journalmanager/templates/journalmanager/issue_list.html:51 @@ -1882,11 +1819,9 @@ msgstr "Cambiar usuario editor" #: journalmanager/templates/journalmanager/editor.html:52 msgid "" -"Warning! No user was selected as editor of this journal. To " -"be the editor user must be in 'Editors' group" -msgstr "" -"Atención! No se ha seleccionado un usuario editor para esta " -"revista. Para ser el usuario editor debe pertenecer al grupo: 'Editors'" +"Warning! No user was selected as editor of this journal. To" +" be the editor user must be in 'Editors' group" +msgstr "Atención! No se ha seleccionado un usuario editor para esta revista. Para ser el usuario editor debe pertenecer al grupo: 'Editors'" #: journalmanager/templates/journalmanager/home_journal.html:16 msgid "Drafts" @@ -2000,9 +1935,7 @@ msgstr "Agregar revista a mi colección" msgid "" "To insert a journal, you need to check whether the journal exists. If it " "exists just add to your collection!" -msgstr "" -"Para ingresar una revista, es necesario comprobar si ya existe. Si es que ya " -"existe sólo tiene que añadirlo a su colección!" +msgstr "Para ingresar una revista, es necesario comprobar si ya existe. Si es que ya existe sólo tiene que añadirlo a su colección!" #: journalmanager/templates/journalmanager/journal_list.html:165 msgid "Search journal" @@ -2022,7 +1955,7 @@ msgstr "ISSN electrónico" #: journalmanager/templates/journalmanager/journal_list.html:214 msgid "Collections" -msgstr "Colección" +msgstr "Colecciones" #: journalmanager/templates/journalmanager/journal_list.html:226 msgid "No journal(s) found to the term: " @@ -2068,9 +2001,7 @@ msgstr "Código" msgid "" "Hey, you can not remove the sections that are being used by at least one " "issue of this journal." -msgstr "" -"Hey, no puede remover secciones que están siendo usadas por al menos un " -"número de esta revista." +msgstr "Hey, no puede remover secciones que están siendo usadas por al menos un número de esta revista." #: journalmanager/templates/journalmanager/trash_listing.html:7 msgid "Trash" @@ -2134,9 +2065,9 @@ msgid "This journal does not have a logo" msgstr "Esta revista no tiene logo" #: journalmanager/templates/journalmanager/includes/issue_cover.html:15 -msgid "This issue does not have a cover, it will use the default journal cover" -msgstr "" -"Esta revista no tiene portada, utilizará la portada de periódico por defecto" +msgid "" +"This issue does not have a cover, it will use the default journal cover" +msgstr "Esta revista no tiene portada, utilizará la portada de periódico por defecto" #: journalmanager/templates/journalmanager/includes/issue_form_generic_field_list.html:19 msgid "Add new" @@ -2195,11 +2126,8 @@ msgid "Report" msgstr "Reporte" #: scielomanager/custom_fields.py:44 -#, fuzzy msgid "Please keep file size under {maxsize}. Current file size {filesize}" -msgstr "" -"Por favor mantenga el tamaño de los archivos menores a %(maxsize)s. Tamaño " -"actual del archivo %(filesize)s" +msgstr "Por favor mantenga el tamaño del archivo menor a {maxsize}. Tamaño actual del archivo {filesize}" #: scielomanager/custom_fields.py:50 msgid "File type not supported." @@ -2281,7 +2209,7 @@ msgstr "SciELO Style Checker" #: scielomanager/templates/footer.html:38 msgid "HTML Previewer" -msgstr "Vista previa" +msgstr "Vista previa en HTML" #: scielomanager/templates/include_press_release/ahead.html:5 #: scielomanager/templates/include_press_release/issue.html:5 @@ -2307,9 +2235,7 @@ msgstr "Por favor haga click en el link a continuación para activar su cuenta." msgid "" "\n" " This key will expire in %(expiration_days)s days.\n" -msgstr "" -"\n" -" Esta clave expirará en %(expiration_days)s dias.\n" +msgstr "\n Esta clave expirará en %(expiration_days)s dias.\n" #: scielomanager/templates/registration/login.html:9 msgid "We are under maintenance!" @@ -2340,9 +2266,7 @@ msgstr "¿Olvidó tu contraseña?" msgid "" "Your password has been reseted! You may now login in using your new " "credentials." -msgstr "" -"¡Tu contraseña ha sido restablecida! Ahora puedes iniciar sesión con tu " -"nueva información." +msgstr "¡Tu contraseña ha sido restablecida! Ahora puedes iniciar sesión con tu nueva información." #: scielomanager/templates/registration/password_reset_complete.html:9 msgid "login" @@ -2364,10 +2288,7 @@ msgstr "Este enlace ya fue utilizado para restablecer su contraseña." msgid "" "We have sent you an email with a link to reset your password. Please check " "your email and click the link to continue." -msgstr "" -"Le hemos enviado un correo electrónico con un enlace para restablecer tu " -"contraseña. Por favor, consulte su correo electrónico y haga click en el " -"vínculo para continuar." +msgstr "Le hemos enviado un correo electrónico con un enlace para restablecer tu contraseña. Por favor, consulte su correo electrónico y haga click en el vínculo para continuar." #: scielomanager/templates/registration/password_reset_done.html:9 msgid "Login" @@ -2383,30 +2304,15 @@ msgid "" "requested that your password be reset on %(site_name)s. If you do not\n" "wish to reset your password, please ignore this message.\n" "\n" -"To reset your password, please click the following link, or copy and paste " -"it\n" +"To reset your password, please click the following link, or copy and paste it\n" "into your web browser:\n" -msgstr "" -"\n" -"Saludos %(user)s,\n" -"\n" -"Has recibido este correo porque tú (o alguien más pretendiendo ser tú)\n" -"ha solicitado el restablecimiento de su contraseña en %(site_name)s. Si tú " -"no\n" -"deseas restablecer tu contraseña, por favor ignora este mensaje.\n" -"\n" -"Para restablecer tu contraseña, por favor da clic en el siguiente enlace, o " -"cópialo y pégalo\n" -"en tu navegador de internet:\n" +msgstr "\nSaludos %(user)s,\n\nHas recibido este correo porque tú (o alguien más pretendiendo ser tú)\nha solicitado el restablecimiento de su contraseña en %(site_name)s. Si tú no\ndeseas restablecer tu contraseña, por favor ignora este mensaje.\n\nPara restablecer tu contraseña, por favor da clic en el siguiente enlace, o cópialo y pégalo\nen tu navegador de internet:\n" #: scielomanager/templates/registration/password_reset_form.html:9 msgid "" "Enter your e-mail in the form below and we will send your username and " "instructions to create a new password." -msgstr "" -"Ingrese su dirección de correo electrónico en el siguiente formulario y " -"nosotros le enviaremos su usuario y las instrucciones para crear una nueva " -"contraseña." +msgstr "Ingrese su dirección de correo electrónico en el siguiente formulario y nosotros le enviaremos su usuario y las instrucciones para crear una nueva contraseña." #: scielomanager/templates/registration/password_reset_form.html:11 msgid "Reset Password" @@ -2424,9 +2330,7 @@ msgstr "Un correo electrónico de confirmación está en camino" msgid "" "Please click the activation link included in the e-mail to confirm you " "registration." -msgstr "" -"Por favor, haga click en el enlace de activación incluido en el correo " -"electrónico para confirmar la inscripción." +msgstr "Por favor, haga click en el enlace de activación incluido en el correo electrónico para confirmar la inscripción." #: scielomanager/templates/registration/registration_form.html:6 #: scielomanager/templates/registration/registration_form.html:19 @@ -2439,8 +2343,7 @@ msgstr "Por favor, corrija los siguientes errores." #: scielomanager/templates/registration/registration_form.html:12 msgid "You will receive an email with a link to activate your account." -msgstr "" -"Usted recibirá un correo electrónico con un enlace para activar su cuenta." +msgstr "Usted recibirá un correo electrónico con un enlace para activar su cuenta." #: validator/forms.py:10 #: validator/templates/validator/includes/xml_annotated.html:15 @@ -2450,33 +2353,29 @@ msgstr "Archivo" #: validator/forms.py:16 #: validator/templates/validator/includes/xml_upload_form_validation.html:25 msgid "This type of file is not allowed! Please select another file." -msgstr "" -"Este tipo de archivo no está permitido! Por favor seleccione otro archivo." +msgstr "Este tipo de archivo no está permitido! Por favor seleccione otro archivo." #: validator/forms.py:19 msgid "The file's size is too large! Please select a smaller file." -msgstr "" -"El tamaño de archivo es muy grande! Por favor seleccione otro archivo. " +msgstr "El tamaño de archivo es muy grande! Por favor seleccione otro archivo. " #: validator/templates/validator/preview_html.html:6 msgid "Packtools - SciELO HTML Previewer" -msgstr "" +msgstr "Oacktools - Vista previa en HTML" #: validator/templates/validator/preview_html.html:14 msgid "SciELO HTML Previewer" -msgstr "" +msgstr "SciELO - Vista previa en HTML" #: validator/templates/validator/preview_html.html:15 msgid "Use this tool to preview your XML file as an HTML" -msgstr "" +msgstr "Use esta herramienta para ver su archivo XML como un HTML" #: validator/templates/validator/preview_html.html:16 msgid "" "Browse to your local XML file and click 'Preview'. The results will be " "displayed below." -msgstr "" -"Busque su archivo XML localmente y haga clic en \"Validar\". Los resultados " -"aparecerán a continuación." +msgstr "Busque su archivo XML localmente y haga clic en \"Vista Previa\". Los resultados aparecerán a continuación." #: validator/templates/validator/preview_html.html:24 #: validator/templates/validator/stylechecker.html:28 @@ -2506,22 +2405,14 @@ msgstr "Vista previa" #: validator/templates/validator/stylechecker.html:68 msgid "" "\n" -" If you have any problems with the tool or with the SPS Tagging " -"Guidelines, please contact:\n" -" scielo-" -"xml@googlegroups.com.\n" -" " -msgstr "" -"\n" -" Si tiene algún problema con esta herramienta o con el SPS " -"Tagging Guidelines, por favor entre en contacto con:\n" -" scielo-" -"xml@googlegroups.com.\n" +" If you have any problems with the tool or with the SPS Tagging Guidelines, please contact:\n" +" scielo-xml@googlegroups.com.\n" " " +msgstr "\n Si tiene algún problema con esta herramienta o con el SPS Tagging Guidelines, por favor entre en contacto con:\n scielo-xml@googlegroups.com.\n " #: validator/templates/validator/preview_html.html:99 msgid "No HTML generated, is the XML file valid?" -msgstr "" +msgstr "El HTML no fue generado, ¿el archivo XML es válido?" #: validator/templates/validator/stylechecker.html:6 msgid "Packtools - Style Checker" @@ -2534,34 +2425,21 @@ msgstr "SciELO Style Checker" #: validator/templates/validator/stylechecker.html:12 msgid "" "\n" -" Use this tool to confirm whether an XML file conforms to SciELO Style " -"as defined in the SciELO Publishing Schema Tagging Guidelines.\n" -" " -msgstr "" -"\n" -" Use esta herramienta para confirmar sí un archivo XML esta conforme al " -"SciELO Style cuyas definiciones son especificadas por el SciELO Publishing " -"Schema Tagging Guidelines.\n" +" Use this tool to confirm whether an XML file conforms to SciELO Style as defined in the SciELO Publishing Schema Tagging Guidelines.\n" " " +msgstr "\n Use esta herramienta para confirmar sí un archivo XML esta conforme al SciELO Style cuyas definiciones son especificadas por el SciELO Publishing Schema Tagging Guidelines.\n " #: validator/templates/validator/stylechecker.html:17 msgid "" "\n" -" Browse to your local XML file and click \"Validate\". The results will " -"be displayed below.\n" -" " -msgstr "" -"\n" -" Busque su archivo XML localmente y haga clic en \"Validar\". Los " -"resultados aparecerán a continuación.\n" +" Browse to your local XML file and click \"Validate\". The results will be displayed below.\n" " " +msgstr "\n Busque su archivo XML localmente y haga clic en \"Validar\". Los resultados aparecerán a continuación.\n " #: validator/templates/validator/stylechecker.html:55 msgid "" "\n" -" Also validate against SciELO Brazil's specific rules. Read more.\n" +" Also validate against SciELO Brazil's specific rules. Read more.\n" " " msgstr "" @@ -2602,15 +2480,11 @@ msgstr "Atención!" msgid "" "This XML document uses a version of SciELO PS that soon will no longer be " "supported. Please consider upgrading to a newer version as soon as possible." -msgstr "" -"Este documento XML usa una versión de SciELO PS que pronto dejará de ser " -"soportada. Por favor considere actualizarlo a una versión mas nueva tan " -"pronto como sea posible." +msgstr "Este documento XML usa una versión de SciELO PS que pronto dejará de ser soportada. Por favor considere actualizarlo a una versión mas nueva tan pronto como sea posible." #: validator/templates/validator/includes/xml_annotated.html:50 msgid "If you want to know more about the support policy, please refer to" -msgstr "" -"Si usted desea conocer más sobre la política de soporte, por favor visite" +msgstr "Si usted desea conocer más sobre la política de soporte, por favor visite" #: validator/templates/validator/includes/xml_annotated.html:52 msgid "SciELO PS official documentation" @@ -2714,183 +2588,16 @@ msgstr "en las lineas anteriores" #: validator/templates/validator/includes/xml_upload_form_validation.html:30 msgid "The file size is too large! Please select a smaller file." -msgstr "" -"El tamaño de archivo es muy grande! Por favor seleccione otro archivo. " +msgstr "El tamaño de archivo es muy grande! Por favor seleccione otro archivo." #~ msgid "Lanaguages" -#~ msgstr "Idiomas" - -#~ msgid "Corpo editorial" -#~ msgstr "Cuerpo editorial" - -#~ msgid "User can't do this action: %s" -#~ msgstr "El usuario no puede realizar esta acción: %s" - -#~ msgid "User can't ACCEPT checkins, because doesn't have enough permissions" -#~ msgstr "" -#~ "El usuario no puede ACEPTAR checkins, porque no cuenta con permisos " -#~ "suficientes" - -#~ msgid "User can't REJECT checkins, because doesn't have enough permissions" -#~ msgstr "" -#~ "El usuario no puede RECHAZAR checkins, porque no cuenta con permisos " -#~ "suficientes" - -#~ msgid "" -#~ "User can't REVIEW (Level 1) checkins, because doesn't have enough " -#~ "permissions" -#~ msgstr "" -#~ "El usuario no puede REVISAR checkins (Nivel 1), porque no cuenta con " -#~ "permisos suficientes" - -#~ msgid "" -#~ "User can't REVIEW (Level 2) checkins, because doesn't have enough " -#~ "permissions" -#~ msgstr "" -#~ "El usuario no puede REVISAR checkins (Nivel 2), porque no cuenta con " -#~ "permisos suficientes" - -#~ msgid "" -#~ "User can't SEND checkins TO REVIEW, because doesn't have enough " -#~ "permissions" -#~ msgstr "" -#~ "El usuario no puede ENVIAR checkins PARA REVISIÓN, porque no cuenta con " -#~ "permisos suficientes" - -#~ msgid "" -#~ "User can't SEND checkins TO PENDING, because doesn't have enough " -#~ "permissions" -#~ msgstr "" -#~ "El usuario no puede ENVIAR checkins PARA PENDIENTE, porque no cuenta con " -#~ "permisos suficientes" - -#~ msgid "" -#~ "User can't SEND checkins TO CHECKOUT, because doesn't have enough " -#~ "permissions" -#~ msgstr "" -#~ "El usuario no puede ENVIAR checkins PARA CHECKOUT, porque no cuenta con " -#~ "permisos suficientes" +#~ msgstr "Languages" #~ msgid "National Code" -#~ msgstr "Código Nacional" - -#~ msgid "XML content" -#~ msgstr "Contenido del artículo" - -#~ msgid "Coleções" -#~ msgstr "Colecciones" - -#~ msgid "Titulos" -#~ msgstr "Títulos" - -#~ msgid "Packtools StyleChecker" -#~ msgstr "Packtools StyleChecker" - -#~ msgid "usage: " -#~ msgstr "uso:" - -#~ msgid ".__call__() not defined" -#~ msgstr ".__call__() no definido" - -#~ msgid "unknown parser {parser_name} (choices: {choices})" -#~ msgstr "parser desconocido {parser_name} (opciones: {choices})" - -#~ msgid "argument \"-\" with mode %r" -#~ msgstr "argumento \"-\" con modo %r" - -#~ msgid "cannot merge actions - two groups are named %r" -#~ msgstr "no es posible mezclar las acciones - dos grupos son nombrados %r" - -#~ msgid "'required' is an invalid argument for positionals" -#~ msgstr "'required' es un argumento no válido para posicionales" - -#~ msgid "" -#~ "invalid option string {option_string}: must start with a character " -#~ "{prefix_chars}" -#~ msgstr "" -#~ "opción de cadena invalida {option_string}: debe comenzar con el caracter " -#~ "{prefix_chars}" - -#~ msgid "dest= is required for options like %r" -#~ msgstr "dest= es requerido para opciones como %r" - -#~ msgid "invalid conflict_resolution value: %r" -#~ msgstr "valor conflict_resolution inválido: %r" - -#~ msgid "conflicting option string(s): %s" -#~ msgstr "opción de cadena(s): %s conflictantes" - -#~ msgid "mutually exclusive arguments must be optional" -#~ msgstr "argumentos mutuamente exclusivos debe ser opcional" - -#~ msgid "positional arguments" -#~ msgstr "argumentos posicionales" +#~ msgstr "National Code" #~ msgid "optional arguments" -#~ msgstr "argumentos opcionales" - -#~ msgid "show this help message and exit" -#~ msgstr "mostrar este mensaje de ayuda y salir" - -#~ msgid "show program's version number and exit" -#~ msgstr "mostrar número de la versión del programa y salir" - -#~ msgid "cannot have multiple subparser arguments" -#~ msgstr "no es posible tener múltiples argumentos de subparser" - -#~ msgid "unrecognized arguments: %s" -#~ msgstr "argumentos no reconocidos: %s" - -#~ msgid "not allowed with argument %s" -#~ msgstr "no permitido con argumentos %s" - -#~ msgid "ignored explicit argument %r" -#~ msgstr "argumentos explícitos ignorado: %r" - -#~ msgid "too few arguments" -#~ msgstr "muy pocos argumentos" - -#~ msgid "argument %s is required" -#~ msgstr "argumento %s es obligatorio" - -#~ msgid "one of the arguments %s is required" -#~ msgstr "uno de estos argumentos %s son obligatorios" - -#~ msgid "expected one argument" -#~ msgstr "un argumento esperado" - -#~ msgid "expected at most one argument" -#~ msgstr "a lo sumo un argumento esperado" - -#~ msgid "expected at least one argument" -#~ msgstr "al menos un argumento esperado" - -#~ msgid "expected %s argument(s)" -#~ msgstr "esperados argumento(s): %s" - -#~ msgid "ambiguous option: {arg_string} could match {options}" -#~ msgstr "opción ambigua: {arg_string} podría coincidir {options}" - -#~ msgid "unexpected option string: %s" -#~ msgstr "opción de cadena inesperada: %s" - -#~ msgid "%r is not callable" -#~ msgstr "%r no se puede llamar" - -#~ msgid "invalid {name} value: {arg_string}" -#~ msgstr "valor {name} inválid: {arg_string}" - -#~ msgid "invalid choice: {value} (choose from {choices})" -#~ msgstr "opción inválida: {value} (opciones {choices})" - -#~ msgid "{prog}: error: message\n" -#~ msgstr "{prog}: error: mensaje\n" - -#~ msgid "The file submitted is NOT XML" -#~ msgstr "Este archivo NO ES XML" - -#~ msgid "XML file excedes max upload size" -#~ msgstr "El archivo XML supera el tamaño máximo de subida permitido" +#~ msgstr "Total of Documents" #~ msgid "logout" #~ msgstr "logout" @@ -2986,11 +2693,9 @@ msgstr "" #~ msgstr "Your username and password did not match. Please try again." #~ msgid "" -#~ "Your account is not active. Please contact the SciELO or verify your e-" -#~ "mail" +#~ "Your account is not active. Please contact the SciELO or verify your e-mail" #~ msgstr "" -#~ "Your account is not active. Please contact the SciELO or verify your e-" -#~ "mail" +#~ "Your account is not active. Please contact the SciELO or verify your e-mail" #~ msgid "Please login on the system to see this page" #~ msgstr "Please login on the system to see this page" diff --git a/scielomanager/tools/import_data/requirements.txt b/scielomanager/tools/import_data/requirements.txt index 33b24515..e78ed0ae 100644 --- a/scielomanager/tools/import_data/requirements.txt +++ b/scielomanager/tools/import_data/requirements.txt @@ -1 +1 @@ --e git+https://github.com/scieloorg/xylose@1.7.5#egg=xylose +-e git+https://github.com/scieloorg/xylose@1.16.5#egg=xylose diff --git a/scielomanager/tools/import_data/utils.py b/scielomanager/tools/import_data/utils.py index 973adbec..bb21c395 100644 --- a/scielomanager/tools/import_data/utils.py +++ b/scielomanager/tools/import_data/utils.py @@ -15,13 +15,13 @@ def articlemeta_server(): try: - server = 'articlemeta.scielo.org:11720' + server = 'articlemeta.scielo.org:11621' host = server[0] port = int(server[1]) except: - logger.warning('Error defining Article Meta thrift server, assuming default server articlemeta.scielo.org:11720') + logger.warning('Error defining Article Meta thrift server, assuming default server articlemeta.scielo.org:11620') host = 'articlemeta.scielo.org' - port = 11720 + port = 11621 return clients.ArticleMeta(host, port)