diff --git a/scholarly_articles/migrations/0007_affiliations_country.py b/scholarly_articles/migrations/0007_affiliations_country.py new file mode 100644 index 00000000..c8ad1ffa --- /dev/null +++ b/scholarly_articles/migrations/0007_affiliations_country.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.12 on 2022-10-25 16:51 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('scholarly_articles', '0006_rawunpaywall_scholarly_a_is_para_720cbd_idx'), + ] + + operations = [ + migrations.AddField( + model_name='affiliations', + name='country', + field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Country'), + ), + ] diff --git a/scholarly_articles/migrations/0008_alter_affiliations_country.py b/scholarly_articles/migrations/0008_alter_affiliations_country.py new file mode 100755 index 00000000..e4f4bdb5 --- /dev/null +++ b/scholarly_articles/migrations/0008_alter_affiliations_country.py @@ -0,0 +1,20 @@ +# Generated by Django 3.2.12 on 2022-10-26 13:20 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('usefulmodels', '0006_auto_20221026_1320'), + ('scholarly_articles', '0007_affiliations_country'), + ] + + operations = [ + migrations.AlterField( + model_name='affiliations', + name='country', + field=models.ForeignKey(blank=True, max_length=255, null=True, on_delete=django.db.models.deletion.SET_NULL, to='usefulmodels.country', verbose_name='Country'), + ), + ] diff --git a/scholarly_articles/models.py b/scholarly_articles/models.py index 59651ceb..0f53aa87 100755 --- a/scholarly_articles/models.py +++ b/scholarly_articles/models.py @@ -5,6 +5,7 @@ from wagtailautocomplete.edit_handlers import AutocompletePanel from institution.models import Institution +from usefulmodels.models import Country from . import choices from core.models import CommonControlField @@ -135,6 +136,8 @@ class Affiliations(models.Model): name = models.CharField(_("Affiliation Name"), max_length=510, null=True, blank=True) official = models.ForeignKey(Institution, verbose_name=_("Official Affiliation Name"), on_delete=models.SET_NULL, max_length=1020, null=True, blank=True) + country = models.ForeignKey(Country, verbose_name=_("Country"), on_delete=models.SET_NULL, + max_length=255, null=True, blank=True) autocomplete_search_field = 'name' @@ -146,6 +149,7 @@ def __str__(self): def autocomplete_label(self): return str(self) + class Meta: indexes = [ models.Index(fields=['name', ]), @@ -154,6 +158,7 @@ class Meta: panels = [ FieldPanel('name'), FieldPanel('official'), + FieldPanel('country'), ] diff --git a/scholarly_articles/scripts/examples.json b/scholarly_articles/scripts/examples.json index 32b23873..edd03ffb 100644 --- a/scholarly_articles/scripts/examples.json +++ b/scholarly_articles/scripts/examples.json @@ -1,3 +1,10 @@ -{"doi": "10.1002/psp.2296", "year": 2020, "genre": "journal-article", "is_oa": false, "title": "Trap or opportunity—What role does geography play in the use of cash for childcare?", "doi_url": "https://doi.org/10.1002/psp.2296", "updated": "2021-04-02T00:47:21.884997", "oa_status": "closed", "publisher": "Wiley", "z_authors": [{"ORCID": "http://orcid.org/0000-0002-4877-2961", "given": "Lena", "family": "Magnusson Turner", "sequence": "first", "affiliation": [{"name": "Norwegian Social Research Oslo Metropolitan University Oslo Norway"}], "authenticated-orcid": false}, {"ORCID": "http://orcid.org/0000-0002-4536-9229", "given": "John", "family": "Östh", "sequence": "additional", "affiliation": [{"name": "Department of Social and Economic Geography Uppsala University Uppsala Sweden"}], "authenticated-orcid": false}], "is_paratext": true, "journal_name": "Population, Space and Place", "oa_locations": [], "data_standard": 2, "journal_is_oa": false, "journal_issns": "1544-8444,1544-8452", "journal_issn_l": "1544-8444", "published_date": "2020-01-07", "best_oa_location": null, "first_oa_location": null, "journal_is_in_doaj": false, "has_repository_copy": false, "oa_locations_embargoed": []} -{"doi": "10.1093/dote/doab014", "year": 2021, "genre": "journal-article", "is_oa": false, "title": "Population trends in achalasia diagnosis and management: a changing paradigm", "doi_url": "https://doi.org/10.1093/dote/doab014", "updated": "2021-03-17T21:05:16.450507", "oa_status": "closed", "publisher": "Oxford University Press (OUP)", "z_authors": [{"given": "Judy A", "family": "Trieu", "sequence": "first", "affiliation": [{"name": "Division of Gastroenterology and Nutrition, Loyola University Medical Center, Maywood, IL, USA"}]}, {"ORCID": "http://orcid.org/0000-0002-1870-9881", "given": "Arshish", "family": "Dua", "sequence": "additional", "affiliation": [{"name": "Division of Gastroenterology and Nutrition, Loyola University Medical Center, Maywood, IL, USA"}], "authenticated-orcid": false}, {"given": "Ikponmwosa", "family": "Enofe", "sequence": "additional", "affiliation": [{"name": "Division of Gastroenterology and Nutrition, Centro Regional de Estudos em Ciências Humanas, Maywood, IL, USA"}]}, {"given": "Nikhil", "family": "Shastri", "sequence": "additional", "affiliation": [{"name": "Division of Gastroenterology and Nutrition, Loyola University Medical Center, Maywood, IL, USA"}]}, {"given": "Mukund", "family": "Venu", "sequence": "additional", "affiliation": [{"name": "Division of Gastroenterology and Nutrition, Loyola University Medical Center, Maywood, IL, USA"}]}], "is_paratext": false, "journal_name": "Diseases of the Esophagus", "oa_locations": [], "data_standard": 2, "journal_is_oa": false, "journal_issns": "1120-8694,1442-2050", "journal_issn_l": "1120-8694", "published_date": "2021-03-17", "best_oa_location": null, "first_oa_location": null, "journal_is_in_doaj": false, "has_repository_copy": false, "oa_locations_embargoed": []} -{"doi": "10.1080/01430750.2019.1708791", "year": 2020, "genre": "journal-article", "is_oa": false, "title": "Techno-economic study of hybrid renewable energy system of Metropolitan Cities in India", "doi_url": "https://doi.org/10.1080/01430750.2019.1708791", "updated": "2021-03-30T01:23:35.505209", "oa_status": "closed", "publisher": "Informa UK Limited", "z_authors": [{"ORCID": "http://orcid.org/0000-0001-6059-6326", "given": "Balachander", "family": "Kalappan", "sequence": "first", "affiliation": [{"name": "Department of Electrical and Electronics Engineering, Faculty of Engineering, Karpagam Academy of Higher Education, Coimbatore, India"}], "authenticated-orcid": false}, {"ORCID": "http://orcid.org/0000-0001-5138-716X", "given": "A.", "family": "Amudha", "sequence": "additional", "affiliation": [{"name": "Department of Electrical and Electronics Engineering, Faculty of Engineering, Karpagam Academy of Higher Education, Coimbatore, India"}], "authenticated-orcid": false}, {"ORCID": "http://orcid.org/0000-0003-1370-1140", "given": "K.", "family": "Keerthivasan", "sequence": "additional", "affiliation": [{"name": "Higher College of Technology, Muscat, Oman"}], "authenticated-orcid": false}], "is_paratext": false, "journal_name": "International Journal of Ambient Energy", "oa_locations": [], "data_standard": 2, "journal_is_oa": false, "journal_issns": "0143-0750,2162-8246", "journal_issn_l": "0143-0750", "published_date": "2020-01-06", "best_oa_location": null, "first_oa_location": null, "journal_is_in_doaj": false, "has_repository_copy": false, "oa_locations_embargoed": []} \ No newline at end of file +{"doi": "10.1590/1678-4499.20210063", "year": 2022, "genre": "journal-article", "is_oa": true, "title": "Calcium applications on ‘Fuji Suprema’ and ‘Maxi Gala’ apple trees: fruit quality at harvest and after cold storage", "doi_url": "https://doi.org/10.1590/1678-4499.20210063", "updated": "2022-02-18T19:53:26.715470", "oa_status": "gold", "publisher": "FapUNIFESP (SciELO)", "z_authors": [{"ORCID": "http://orcid.org/0000-0002-1796-9761", "given": "Leandro", "family": "Hahn", "sequence": "first", "affiliation": [{"name": "Empresa de Pesquisa Agropecuária e Extensão Rural de Santa Catarina, Brazil"}], "authenticated-orcid": false}, {"ORCID": "http://orcid.org/0000-0003-3231-3792", "given": "Denimar Luiz", "family": "Suzin", "sequence": "additional", "affiliation": [{"name": "Universidade do Alto Vale do Rio do Peixe, Brazil"}], "authenticated-orcid": false}, {"ORCID": "http://orcid.org/0000-0001-9614-0523", "given": "Luiz Carlos", "family": "Argenta", "sequence": "additional", "affiliation": [{"name": "Empresa de Pesquisa Agropecuária e Extensão Rural de Santa Catarina, Brazil"}], "authenticated-orcid": false}, {"ORCID": "http://orcid.org/0000-0002-6903-9961", "given": "Tadeu Luis", "family": "Tiecher", "sequence": "additional", "affiliation": [{"name": "Instituto Federal do Rio Grande do Sul, Brazil"}], "authenticated-orcid": false}, {"ORCID": "http://orcid.org/0000-0002-7951-0294", "given": "Fabio Rodrigo", "family": "Thewes", "sequence": "additional", "affiliation": [{"name": "Universidade Federal de Santa Maria, Brazil"}], "authenticated-orcid": false}, {"ORCID": "http://orcid.org/0000-0002-7240-3728", "given": "Jean Michel", "family": "Moura-Bueno", "sequence": "additional", "affiliation": [{"name": "Universidade Federal de Santa Maria, Brazil"}], "authenticated-orcid": false}, {"ORCID": "http://orcid.org/0000-0002-3174-9992", "given": "Gustavo", "family": "Brunetto", "sequence": "additional", "affiliation": [{"name": "Universidade Federal de Santa Maria, Brazil"}], "authenticated-orcid": false}], "is_paratext": false, "journal_name": "Bragantia", "oa_locations": [{"url": "https://www.scielo.br/j/brag/a/S3djfLNrvYdPZKN9S34TC6P/?lang=en&format=pdf", "pmh_id": null, "is_best": true, "license": "cc-by", "oa_date": "2022-01-01", "updated": "2022-02-18T19:53:26.670548", "version": "publishedVersion", "evidence": "oa journal (via doaj)", "host_type": "publisher", "endpoint_id": null, "url_for_pdf": "https://www.scielo.br/j/brag/a/S3djfLNrvYdPZKN9S34TC6P/?lang=en&format=pdf", "url_for_landing_page": "https://doi.org/10.1590/1678-4499.20210063", "repository_institution": null}], "data_standard": 2, "journal_is_oa": true, "journal_issns": "1678-4499,0006-8705", "journal_issn_l": "0006-8705", "published_date": "2022-01-01", "best_oa_location": {"url": "https://www.scielo.br/j/brag/a/S3djfLNrvYdPZKN9S34TC6P/?lang=en&format=pdf", "pmh_id": null, "is_best": true, "license": "cc-by", "oa_date": "2022-01-01", "updated": "2022-02-18T19:53:26.670548", "version": "publishedVersion", "evidence": "oa journal (via doaj)", "host_type": "publisher", "endpoint_id": null, "url_for_pdf": "https://www.scielo.br/j/brag/a/S3djfLNrvYdPZKN9S34TC6P/?lang=en&format=pdf", "url_for_landing_page": "https://doi.org/10.1590/1678-4499.20210063", "repository_institution": null}, "first_oa_location": {"url": "https://www.scielo.br/j/brag/a/S3djfLNrvYdPZKN9S34TC6P/?lang=en&format=pdf", "pmh_id": null, "is_best": true, "license": "cc-by", "oa_date": "2022-01-01", "updated": "2022-02-18T19:53:26.670548", "version": "publishedVersion", "evidence": "oa journal (via doaj)", "host_type": "publisher", "endpoint_id": null, "url_for_pdf": "https://www.scielo.br/j/brag/a/S3djfLNrvYdPZKN9S34TC6P/?lang=en&format=pdf", "url_for_landing_page": "https://doi.org/10.1590/1678-4499.20210063", "repository_institution": null}, "journal_is_in_doaj": true, "has_repository_copy": false, "oa_locations_embargoed": []} +{"doi": "10.1111/jgs.17743", "year": 2022, "genre": "journal-article", "is_oa": false, "title": "Psoas muscle area and one‐year mortality in a cohort of patients undergoing vascular surgery", "doi_url": "https://doi.org/10.1111/jgs.17743", "updated": "2022-03-07T21:07:05.723241", "oa_status": "closed", "publisher": "Wiley", "z_authors": [{"given": "Caio Assis Moura", "family": "Tavares", "sequence": "first", "affiliation": [{"name": "Unidade de Cardiogeriatria, Instituto do Coração (InCor), Hospital das Clinicas HCFMUSP, Faculdade de Medicina Universidade de Sao Paulo Sao Paulo Brazil"}, {"name": "Academic Research Organization (ARO) Hospital Israelita Albert Einstein Sao Paulo Brazil"}]}, {"given": "Danielle Menosi", "family": "Gualandro", "sequence": "additional", "affiliation": [{"name": "Unidade de Medicina Interdisciplinar em Cardiologia, Instituto do Coração (InCor), Hospital das Clinicas HCFMUSP, Faculdade de Medicina Universidade de Sao Paulo Sao Paulo Brazil"}, {"name": "Department of Cardiology and Cardiovascular Research Institute Basel (CRIB), University Hospital Basel University of Basel Basel Switzerland"}]}, {"given": "Francisco Akira Malta", "family": "Cardozo", "sequence": "additional", "affiliation": [{"name": "Unidade de Medicina Interdisciplinar em Cardiologia, Instituto do Coração (InCor), Hospital das Clinicas HCFMUSP, Faculdade de Medicina Universidade de Sao Paulo Sao Paulo Brazil"}]}, {"given": "Marcelo Oranges", "family": "Filho", "sequence": "additional", "affiliation": [{"name": "Instituto de Radiologia (InRad), Hospital das Clinicas HCFMUSP, Faculdade de Medicina Universidade de Sao Paulo Sao Paulo Brazil"}]}, {"given": "Sabrina", "family": "Mello Ando", "sequence": "additional", "affiliation": [{"name": "Instituto de Radiologia (InRad), Hospital das Clinicas HCFMUSP, Faculdade de Medicina Universidade de Sao Paulo Sao Paulo Brazil"}]}, {"given": "Daniela", "family": "Calderaro", "sequence": "additional", "affiliation": [{"name": "Unidade de Medicina Interdisciplinar em Cardiologia, Instituto do Coração (InCor), Hospital das Clinicas HCFMUSP, Faculdade de Medicina Universidade de Sao Paulo Sao Paulo Brazil"}]}, {"given": "Bruno", "family": "Caramelli", "sequence": "additional", "affiliation": [{"name": "Unidade de Medicina Interdisciplinar em Cardiologia, Instituto do Coração (InCor), Hospital das Clinicas HCFMUSP, Faculdade de Medicina Universidade de Sao Paulo Sao Paulo Brazil"}]}], "is_paratext": false, "journal_name": "Journal of the American Geriatrics Society", "oa_locations": [], "data_standard": 1, "journal_is_oa": false, "journal_issns": "0002-8614,1532-5415", "journal_issn_l": "0002-8614", "published_date": "2022-03-07", "best_oa_location": null, "first_oa_location": null, "journal_is_in_doaj": false, "has_repository_copy": false, "oa_locations_embargoed": []} +{"doi": "10.1111/dth.15422", "year": 2022, "genre": "journal-article", "is_oa": false, "title": "Lichen Planus and Vitiligo occurring after ChAdOx1 nCoV‐19 vaccination against SARS‐CoV‐2.", "doi_url": "https://doi.org/10.1111/dth.15422", "updated": "2022-03-07T21:07:23.029206", "oa_status": "closed", "publisher": "Wiley", "z_authors": [{"given": "Shirley Braga Lima", "family": "Gamonal", "sequence": "first", "affiliation": [{"name": "Department of Dermatology, Faculty of Medicine Federal University of Juiz de Fora (UFJF) Juiz de Fora (MG) Brazil"}]}, {"given": "Aloisio Carlos Couri", "family": "Gamonal", "sequence": "additional", "affiliation": [{"name": "Department of Dermatology, Faculty of Medicine Federal University of Juiz de Fora (UFJF) Juiz de Fora (MG) Brazil"}]}, {"given": "Nathália Couri Vieira", "family": "Marques", "sequence": "additional", "affiliation": [{"name": "Faculty of Medicine Federal University of Juiz de Fora (UFJF) Juiz de Fora (MG) Brazil"}]}, {"given": "Caio Lima", "family": "Adário", "sequence": "additional", "affiliation": [{"name": "Faculty of Medicine Federal University of Juiz de Fora (UFJF) Juiz de Fora (MG) Brazil"}]}], "is_paratext": false, "journal_name": "Dermatologic Therapy", "oa_locations": [], "data_standard": 1, "journal_is_oa": false, "journal_issns": "1396-0296,1529-8019", "journal_issn_l": "1396-0296", "published_date": "2022-03-07", "best_oa_location": null, "first_oa_location": null, "journal_is_in_doaj": false, "has_repository_copy": false, "oa_locations_embargoed": []} +{"doi": "10.21577/0100-4042.20170866", "year": 2022, "genre": "journal-article", "is_oa": true, "title": "ENHANCED REMOVAL OF PERSISTENT CONTAMINANTS AND TOXICITY REDUCTION THROUGH THE APPLICATION OF A TRIPLE-STAGE FENTON PROCESS TO SANITARY LANDFILL LEACHATES FROM YUCATAN, MEXICO", "doi_url": "https://doi.org/10.21577/0100-4042.20170866", "updated": "2022-02-18T18:12:15.880465", "oa_status": "gold", "publisher": "Sociedade Brasileira de Quimica (SBQ)", "z_authors": [{"given": "Ana", "family": "Escalante-Mañé", "sequence": "first"}, {"given": "Roger", "family": "Méndez-Novelo", "sequence": "additional"}, {"given": "Germán", "family": "Giácoman-Vallejos", "sequence": "additional"}, {"given": "Avel", "family": "González-Sánchez", "sequence": "additional"}, {"given": "Jéssica", "family": "Romo-Alvarado", "sequence": "additional"}, {"given": "Reyna", "family": "Collí-Dulá", "sequence": "additional"}, {"given": "Carlos", "family": "Quintal-Franco", "sequence": "additional"}, {"given": "Carlos", "family": "Puch-Hau", "sequence": "additional"}], "is_paratext": false, "journal_name": "Química Nova", "oa_locations": [{"url": "https://doi.org/10.21577/0100-4042.20170866", "pmh_id": null, "is_best": true, "license": "cc-by-nc", "oa_date": "2022-01-01", "updated": "2022-02-18T18:12:15.858227", "version": "publishedVersion", "evidence": "oa journal (via doaj)", "host_type": "publisher", "endpoint_id": null, "url_for_pdf": null, "url_for_landing_page": "https://doi.org/10.21577/0100-4042.20170866", "repository_institution": null}], "data_standard": 1, "journal_is_oa": true, "journal_issns": "1678-7064", "journal_issn_l": "0100-4042", "published_date": "2022-01-01", "best_oa_location": {"url": "https://doi.org/10.21577/0100-4042.20170866", "pmh_id": null, "is_best": true, "license": "cc-by-nc", "oa_date": "2022-01-01", "updated": "2022-02-18T18:12:15.858227", "version": "publishedVersion", "evidence": "oa journal (via doaj)", "host_type": "publisher", "endpoint_id": null, "url_for_pdf": null, "url_for_landing_page": "https://doi.org/10.21577/0100-4042.20170866", "repository_institution": null}, "first_oa_location": {"url": "https://doi.org/10.21577/0100-4042.20170866", "pmh_id": null, "is_best": true, "license": "cc-by-nc", "oa_date": "2022-01-01", "updated": "2022-02-18T18:12:15.858227", "version": "publishedVersion", "evidence": "oa journal (via doaj)", "host_type": "publisher", "endpoint_id": null, "url_for_pdf": null, "url_for_landing_page": "https://doi.org/10.21577/0100-4042.20170866", "repository_institution": null}, "journal_is_in_doaj": true, "has_repository_copy": false, "oa_locations_embargoed": []} +{"doi": "10.1590/s1678-4634202248234239", "year": 2022, "genre": "journal-article", "is_oa": true, "title": "A rede estrangeira de estudos sobre antropologia da educação pensada por meio da inscrição literária", "doi_url": "https://doi.org/10.1590/s1678-4634202248234239", "updated": "2022-02-18T19:53:31.830761", "oa_status": "gold", "publisher": "FapUNIFESP (SciELO)", "z_authors": [{"ORCID": "http://orcid.org/0000-0003-2615-6583", "given": "Bruno Luiz", "family": "Américo", "sequence": "first", "affiliation": [{"name": "Universidade Estadual de Maringá, Brasil"}], "authenticated-orcid": false}, {"ORCID": "http://orcid.org/0000-0002-7453-1993", "given": "Fagner", "family": "Carniel", "sequence": "additional", "affiliation": [{"name": "Universidade Estadual de Maringá, Brasil"}], "authenticated-orcid": false}], "is_paratext": false, "journal_name": "Educação e Pesquisa", "oa_locations": [{"url": "https://www.scielo.br/j/ep/a/NKxdR9ff4fzNvvmyQJnVSRm/?lang=pt&format=pdf", "pmh_id": null, "is_best": true, "license": "cc-by-nc", "oa_date": "2022-01-01", "updated": "2022-02-18T19:53:31.764456", "version": "publishedVersion", "evidence": "oa journal (via doaj)", "host_type": "publisher", "endpoint_id": null, "url_for_pdf": "https://www.scielo.br/j/ep/a/NKxdR9ff4fzNvvmyQJnVSRm/?lang=pt&format=pdf", "url_for_landing_page": "https://doi.org/10.1590/s1678-4634202248234239", "repository_institution": null}], "data_standard": 2, "journal_is_oa": true, "journal_issns": "1678-4634,1517-9702", "journal_issn_l": "1517-9702", "published_date": "2022-01-01", "best_oa_location": {"url": "https://www.scielo.br/j/ep/a/NKxdR9ff4fzNvvmyQJnVSRm/?lang=pt&format=pdf", "pmh_id": null, "is_best": true, "license": "cc-by-nc", "oa_date": "2022-01-01", "updated": "2022-02-18T19:53:31.764456", "version": "publishedVersion", "evidence": "oa journal (via doaj)", "host_type": "publisher", "endpoint_id": null, "url_for_pdf": "https://www.scielo.br/j/ep/a/NKxdR9ff4fzNvvmyQJnVSRm/?lang=pt&format=pdf", "url_for_landing_page": "https://doi.org/10.1590/s1678-4634202248234239", "repository_institution": null}, "first_oa_location": {"url": "https://www.scielo.br/j/ep/a/NKxdR9ff4fzNvvmyQJnVSRm/?lang=pt&format=pdf", "pmh_id": null, "is_best": true, "license": "cc-by-nc", "oa_date": "2022-01-01", "updated": "2022-02-18T19:53:31.764456", "version": "publishedVersion", "evidence": "oa journal (via doaj)", "host_type": "publisher", "endpoint_id": null, "url_for_pdf": "https://www.scielo.br/j/ep/a/NKxdR9ff4fzNvvmyQJnVSRm/?lang=pt&format=pdf", "url_for_landing_page": "https://doi.org/10.1590/s1678-4634202248234239", "repository_institution": null}, "journal_is_in_doaj": true, "has_repository_copy": false, "oa_locations_embargoed": []} +{"doi": "10.3354/dao03657", "year": 2022, "genre": "journal-article", "is_oa": false, "title": "Detection of Megalocytivirus in Oreochromis niloticus and Pseudoplatystoma corruscans in Brazil", "doi_url": "https://doi.org/10.3354/dao03657", "updated": "2022-02-18T18:11:17.644470", "oa_status": "closed", "publisher": "Inter-Research Science Center", "z_authors": [{"given": "AA", "family": "Fonseca Júnior", "sequence": "first"}, {"given": "M", "family": "Laguardia-Nascimento", "sequence": "additional"}, {"given": "APS", "family": "Ferreira", "sequence": "additional"}, {"given": "CA", "family": "Pinto", "sequence": "additional"}, {"given": "TRP", "family": "Freitas", "sequence": "additional"}, {"given": "AV", "family": "Rivetti Júnior", "sequence": "additional"}, {"given": "VSF", "family": "Homem", "sequence": "additional"}, {"given": "MF", "family": "Camargos", "sequence": "additional"}], "is_paratext": false, "journal_name": "Diseases of Aquatic Organisms", "oa_locations": [], "data_standard": 1, "journal_is_oa": false, "journal_issns": "0177-5103,1616-1580", "journal_issn_l": "0177-5103", "published_date": "2022-01-01", "best_oa_location": null, "first_oa_location": null, "journal_is_in_doaj": false, "has_repository_copy": false, "oa_locations_embargoed": []} +{"doi": "10.1108/oxan-es267764", "year": 2022, "genre": "other", "is_oa": false, "title": "Brazil GDP recovered in 2021 but will slow this year", "doi_url": "https://doi.org/10.1108/oxan-es267764", "updated": "2022-03-07T21:07:28.499714", "oa_status": "closed", "publisher": "Emerald", "z_authors": null, "is_paratext": false, "journal_name": "Emerald Expert Briefings", "oa_locations": [], "data_standard": 1, "journal_is_oa": false, "journal_issns": "2633-304X", "journal_issn_l": "2633-304X", "published_date": "2022-03-07", "best_oa_location": null, "first_oa_location": null, "journal_is_in_doaj": false, "has_repository_copy": false, "oa_locations_embargoed": []} +{"doi": "10.1590/1806-9126-rbef-2021-0336", "year": 2022, "genre": "journal-article", "is_oa": true, "title": "Twin paradox in curved spacetime", "doi_url": "https://doi.org/10.1590/1806-9126-rbef-2021-0336", "updated": "2022-02-18T19:54:16.779524", "oa_status": "gold", "publisher": "FapUNIFESP (SciELO)", "z_authors": [{"ORCID": "http://orcid.org/0000-0002-5920-0221", "given": "E.", "family": "Benedetto", "sequence": "first", "affiliation": [{"name": "Università Degli Studi di Salerno, Italia; Università Degli Studi del Sannio, Italia"}], "authenticated-orcid": false}, {"ORCID": "http://orcid.org/0000-0001-8227-1303", "given": "A.", "family": "Feoli", "sequence": "additional", "affiliation": [{"name": "Università Degli Studi del Sannio, Italia"}], "authenticated-orcid": false}, {"given": "A. L.", "family": "Iannella", "sequence": "additional", "affiliation": [{"name": "Università Degli Studi del Sannio, Italia"}]}], "is_paratext": false, "journal_name": "Revista Brasileira de Ensino de Física", "oa_locations": [{"url": "https://www.scielo.br/j/rbef/a/sjRndsK8F8W8cNqn4SK5PxP/?lang=en&format=pdf", "pmh_id": null, "is_best": true, "license": "cc-by", "oa_date": "2022-01-01", "updated": "2022-02-18T19:54:16.750756", "version": "publishedVersion", "evidence": "oa journal (via doaj)", "host_type": "publisher", "endpoint_id": null, "url_for_pdf": "https://www.scielo.br/j/rbef/a/sjRndsK8F8W8cNqn4SK5PxP/?lang=en&format=pdf", "url_for_landing_page": "https://doi.org/10.1590/1806-9126-rbef-2021-0336", "repository_institution": null}], "data_standard": 2, "journal_is_oa": true, "journal_issns": "1806-9126,1806-1117", "journal_issn_l": "1806-1117", "published_date": "2022-01-01", "best_oa_location": {"url": "https://www.scielo.br/j/rbef/a/sjRndsK8F8W8cNqn4SK5PxP/?lang=en&format=pdf", "pmh_id": null, "is_best": true, "license": "cc-by", "oa_date": "2022-01-01", "updated": "2022-02-18T19:54:16.750756", "version": "publishedVersion", "evidence": "oa journal (via doaj)", "host_type": "publisher", "endpoint_id": null, "url_for_pdf": "https://www.scielo.br/j/rbef/a/sjRndsK8F8W8cNqn4SK5PxP/?lang=en&format=pdf", "url_for_landing_page": "https://doi.org/10.1590/1806-9126-rbef-2021-0336", "repository_institution": null}, "first_oa_location": {"url": "https://www.scielo.br/j/rbef/a/sjRndsK8F8W8cNqn4SK5PxP/?lang=en&format=pdf", "pmh_id": null, "is_best": true, "license": "cc-by", "oa_date": "2022-01-01", "updated": "2022-02-18T19:54:16.750756", "version": "publishedVersion", "evidence": "oa journal (via doaj)", "host_type": "publisher", "endpoint_id": null, "url_for_pdf": "https://www.scielo.br/j/rbef/a/sjRndsK8F8W8cNqn4SK5PxP/?lang=en&format=pdf", "url_for_landing_page": "https://doi.org/10.1590/1806-9126-rbef-2021-0336", "repository_institution": null}, "journal_is_in_doaj": true, "has_repository_copy": false, "oa_locations_embargoed": []} +{"doi": "10.32859/era.23.2.1-12", "year": 2022, "genre": "journal-article", "is_oa": true, "title": "Between tradition and modernity: the relationship among healers and medicinal plants in an urban center in southern Brazil", "doi_url": "https://doi.org/10.32859/era.23.2.1-12", "updated": "2022-01-29T09:45:28.329357", "oa_status": "gold", "publisher": "Ilia State University", "z_authors": [{"given": "Camila Fabiana", "family": "da Silva", "sequence": "first"}, {"given": "Silvia", "family": "Zank", "sequence": "additional"}], "is_paratext": false, "journal_name": "Ethnobotany Research and Applications", "oa_locations": [{"url": "https://ethnobotanyjournal.org/index.php/era/article/download/2929/1393", "pmh_id": null, "is_best": true, "license": null, "oa_date": null, "updated": "2022-01-29T09:45:13.444684", "version": "publishedVersion", "evidence": "open (via free pdf)", "host_type": "publisher", "endpoint_id": null, "url_for_pdf": "https://ethnobotanyjournal.org/index.php/era/article/download/2929/1393", "url_for_landing_page": "https://doi.org/10.32859/era.23.2.1-12", "repository_institution": null}], "data_standard": 2, "journal_is_oa": true, "journal_issns": "1547-3465,1547-3465", "journal_issn_l": "1547-3465", "published_date": "2022-01-16", "best_oa_location": {"url": "https://ethnobotanyjournal.org/index.php/era/article/download/2929/1393", "pmh_id": null, "is_best": true, "license": null, "oa_date": null, "updated": "2022-01-29T09:45:13.444684", "version": "publishedVersion", "evidence": "open (via free pdf)", "host_type": "publisher", "endpoint_id": null, "url_for_pdf": "https://ethnobotanyjournal.org/index.php/era/article/download/2929/1393", "url_for_landing_page": "https://doi.org/10.32859/era.23.2.1-12", "repository_institution": null}, "first_oa_location": {"url": "https://ethnobotanyjournal.org/index.php/era/article/download/2929/1393", "pmh_id": null, "is_best": true, "license": null, "oa_date": null, "updated": "2022-01-29T09:45:13.444684", "version": "publishedVersion", "evidence": "open (via free pdf)", "host_type": "publisher", "endpoint_id": null, "url_for_pdf": "https://ethnobotanyjournal.org/index.php/era/article/download/2929/1393", "url_for_landing_page": "https://doi.org/10.32859/era.23.2.1-12", "repository_institution": null}, "journal_is_in_doaj": false, "has_repository_copy": false, "oa_locations_embargoed": []} +{"doi": "10.1007/978-3-030-83557-6_2", "year": 2022, "genre": "book-chapter", "is_oa": false, "title": "Teaching in Critical Junctures: Challenges to International Relations Bachelor’s Programs in Brazil During the COVID-19 Pandemic", "doi_url": "https://doi.org/10.1007/978-3-030-83557-6_2", "updated": "2022-02-18T18:07:25.863855", "oa_status": "closed", "publisher": "Springer International Publishing", "z_authors": [{"given": "Elia Elisa Cia", "family": "Alves", "sequence": "first"}, {"given": "Marcos Alan S. V.", "family": "Ferreira", "sequence": "additional"}], "is_paratext": false, "journal_name": "Political Pedagogies", "oa_locations": [], "data_standard": 1, "journal_is_oa": false, "journal_issns": "2662-7809,2662-7817", "journal_issn_l": "2662-7809", "published_date": "2022-01-01", "best_oa_location": null, "first_oa_location": null, "journal_is_in_doaj": false, "has_repository_copy": false, "oa_locations_embargoed": []} diff --git a/scholarly_articles/scripts/set_country.py b/scholarly_articles/scripts/set_country.py new file mode 100755 index 00000000..a3129d0a --- /dev/null +++ b/scholarly_articles/scripts/set_country.py @@ -0,0 +1,13 @@ +from django.db.models import Q + +from scholarly_articles import models +from usefulmodels.models import Country + + +def run(): + for country in Country.objects.all(): + for aff in models.Affiliations.objects.filter( + Q(name__icontains=country.name_en) | Q(name__icontains=country.name_pt), + country__isnull=True, official__isnull=True).iterator(): + aff.country = country + aff.save() diff --git a/scholarly_articles/wagtail_hooks.py b/scholarly_articles/wagtail_hooks.py index b98b4e56..95e7ccc3 100755 --- a/scholarly_articles/wagtail_hooks.py +++ b/scholarly_articles/wagtail_hooks.py @@ -105,8 +105,9 @@ class AffiliationsAdmin(ModelAdmin): list_display = ( 'name', 'official', + 'country', ) - #list_filter = ('name',) + list_filter = ('country',) search_fields = ('name', 'official',) diff --git a/usefulmodels/fixtures/countries.csv b/usefulmodels/fixtures/countries.csv new file mode 100644 index 00000000..6924a99f --- /dev/null +++ b/usefulmodels/fixtures/countries.csv @@ -0,0 +1,198 @@ +País (pt);País (en);Capital;Código ISO (3 letras);Código ISO (2 letras) +Afeganistão;Afghanistan;Cabul;AFG;AF +África do Sul;South Africa;Pretória;ZAF;ZA +Albânia;Albania;Tirana;ALB;AL +Alemanha;Germany;Berlim;DEU;DE +Andorra;Andorra;Andorra-a-Velha;AND;AD +Angola;Angola;Luanda;AGO;AO +Antiga e Barbuda;Old And Bearded;São João;ATG;AG +Arábia Saudita;Saudi Arabia;Riade;SAU;SA +Argélia;Algeria;Argel;DZA;DZ +Argentina;Argentina;Buenos Aires;ARG;AR +Arménia;Armenia;Erevã;ARM;AM +Austrália;Australia;Camberra;AUS;AU +Áustria;Austria;Viena;AUT;AT +Azerbaijão;Azerbaijan;Bacu;AZE;AZ +Bahamas;Bahamas;Nassau;BHS;BS +Bangladexe;Bangladesh;Daca;BGD;BD +Barbados;Barbados;Bridgetown;BRB;BB +Barém;Bahrain;Manama;BHR;BH +Bélgica;Belgium;Bruxelas;BEL;BE +Belize;Belize;Belmopã;BLZ;BZ +Benim;Benin;Porto Novo;BEN;BJ +Bielorrússia;Belarus;Minsque;BLR;BY +Bolívia;Bolivia;Sucre;BOL;BO +Bósnia e Herzegovina;Bosnia And Herzegovina;Saraievo;BIH;BA +Botsuana;Botswana;Gaborone;BWA;BW +Brasil;Brazil;Brasília;BRA;BR +Brunei;Brunei;Bandar Seri Begauã;BRN;BN +Bulgária;Bulgaria;Sófia;BGR;BG +Burquina Faso;Burkina Faso;Uagadugu;BFA;BF +Burúndi;Burundi;Bujumbura;BDI;BI +Butão;Bhutan;Timbu;BTN;BT +Cabo Verde;Cape Green;Praia;CPV;CV +Camarões;Cameroon;Iaundé;CMR;CM +Camboja;Cambodia;Pnom Pene;KHM;KH +Canadá;Canada;Otava;CAN;CA +Catar;Qatar;Doa;QAT;QA +Cazaquistão;Kazakhstan;Astana;KAZ;KZ +Chade;Chad;Jamena;TCD;TD +Chile;Chile;Santiago;CHL;CL +China;China;Pequim;CHN;CN +Chipre;Cyprus;Nicósia;CYP;CY +Colômbia;Colombia;Bogotá;COL;CO +Comores;Comoros;Moroni;COM;KM +Congo-Brazzaville;Congo-Brazzaville;Brazavile;COG;CG +Coreia do Norte;North Korea;Pionguiangue;PRK;KP +Coreia do Sul;South Korea;Seul;KOR;KR +Cosovo;Cosov;Pristina;-;- +Costa do Marfim;Costa Do Marfim;Iamussucro;CIV;CI +Costa Rica;Costa Rica;São José;CRI;CR +Croácia;Croatia;Zagrebe;HRV;HR +Cuaite;Cuaite;Cidade do Cuaite;KWT;KW +Cuba;Cuba;Havana;CUB;CU +Dinamarca;Denmark;Copenhaga;DNK;DK +Dominica;Dominica;Roseau;DMA;DM +Egito;Egypt;Cairo;EGY;EG +Emirados Árabes Unidos;United Arab Emirates;Abu Dabi;ARE;AE +Equador;Ecuador;Quito;ECU;EC +Eritreia;Eritrea;Asmara;ERI;ER +Eslováquia;Slovakia;Bratislava;SVK;SK +Eslovénia;Slovenia;Liubliana;SVN;SI +Espanha;Spain;Madrid;ESP;ES +Essuatíni;Eswatini;Lobamba;SWZ;SZ +Estado da Palestina;State Of Palestine;Jerusalém Oriental;PSE;PS +Estados Unidos;United States;Washington D.C.;USA;US +Estónia;Estonia;Talim;EST;EE +Etiópia;Ethiopia;Adis Abeba;ETH;ET +Fiji;Fiji;Suva;FJI;FJ +Filipinas;Philippines;Manila;PHL;PH +Finlândia;Finland;Helsínquia;FIN;FI +França;France;Paris;FRA;FR +Gabão;Gabon;Libreville;GAB;GA +Gâmbia;Gambia;Banjul;GMB;GM +Gana;Ghana;Acra;GHA;GH +Geórgia;Georgia;Tebilíssi;GEO;GE +Granada;Grenade;São Jorge;GRD;GD +Grécia;Greece;Atenas;GRC;GR +Guatemala;Guatemala;Cidade da Guatemala;GTM;GT +Guiana;Guyana;Georgetown;GUY;GY +Guiné;Guinea;Conacri;GIN;GN +Guiné Equatorial;Equatorial Guinea;Malabo;GNQ;GQ +Guiné-Bissau;Guinea Bissau;Bissau;GNB;GW +Haiti;Haiti;Porto Príncipe;HTI;HT +Honduras;Honduras;Tegucigalpa;HND;HN +Hungria;Hungary;Budapeste;HUN;HU +Iémen;Yemen;Saná;YEM;YE +Ilhas Marechal;Marshal Islands;Majuro;MHL;MH +Índia;India;Nova Déli;IND;IN +Indonésia;Indonesia;Jacarta;IDN;ID +Irão;Iran;Teerão;IRN;IR +Iraque;Iraq;Bagdade;IRQ;IQ +Irlanda;Ireland;Dublim;IRL;IE +Islândia;Iceland;Reiquiavique;ISL;IS +Israel;Israel;Jerusalém;ISR;IL +Itália;Italy;Roma;ITA;IT +Jamaica;Jamaica;Kingston;JAM;JM +Japão;Japan;Tóquio;JPN;JP +Jibuti;Djibouti;Jibuti;DJI;DJ +Jordânia;Jordan;Amã;JOR;JO +Laus;Laus;Vienciana;LAO;LA +Lesoto;Lesotho;Maseru;LSO;LS +Letónia;Latvia;Riga;LVA;LV +Líbano;Lebanon;Beirute;LBN;LB +Libéria;Liberia;Monróvia;LBR;LR +Líbia;Libya;Trípoli;LBY;LY +Listenstaine;Liechtenstein;Vaduz;LIE;LI +Lituânia;Lithuania;Vílnius;LTU;LT +Luxemburgo;Luxembourg;Luxemburgo;LUX;LU +Macedónia do Norte;North Macedonia;Escópia;MKD;MK +Madagáscar;Madagascar;Antananarivo;MDG;MG +Malásia;Malaysia;Cuala Lumpur;MYS;MY +Maláui;Malawi;Lilôngue;MWI;MW +Maldivas;Maldives;Malé;MDV;MV +Mali;Mali;Bamaco;MLI;ML +Malta;Malta;Valeta;MLT;MT +Marrocos;Morocco;Rebate;MAR;MA +Maurícia;Mauritius;Porto Luís;MUS;MU +Mauritânia;Mauritania;Nuaquechote;MRT;MR +México;Mexico;Cidade do México;MEX;MX +Mianmar;Myanmar;Nepiedó;MMR;MM +Micronésia;Micronesia;Paliquir;FSM;FM +Moçambique;Mozambique;Maputo;MOZ;MZ +Moldávia;Moldavia;Quixinau;MDA;MD +Mónaco;Monaco;Mónaco;MCO;MC +Mongólia;Mongolia;Ulã Bator;MNG;MN +Montenegro;Montenegro;Podgoritsa;MNE;ME +Namíbia;Namibia;Vinduque;NAM;NA +Nauru;Nauru;Iarém;NRU;NR +Nepal;Nepal;Catmandu;NPL;NP +Nicarágua;Nicaragua;Manágua;NIC;NI +Níger;Niger;Niamei;NER;NE +Nigéria;Nigeria;Abuja;NGA;NG +Noruega;Norway;Oslo;NOR;NO +Nova Zelândia;New Zealand;Wellington;NZL;NZ +Omã;Oman;Mascate;OMN;OM +Países Baixos;Netherlands;Amesterdão;NLD;NL +Palau;Palau;Ngerulmud;PLW;PW +Panamá;Panama;Cidade do Panamá;PAN;PA +Papua Nova Guiné;Papua New Guinea;Porto Moresby;PNG;PG +Paquistão;Pakistan;Islamabade;PAK;PK +Paraguai;Paraguay;Assunção;PRY;PY +Peru;Peru;Lima;PER;PE +Polónia;Poland;Varsóvia;POL;PL +Portugal;Portugal;Lisboa;PRT;PT +Quénia;Kenya;Nairóbi;KEN;KE +Quirguistão;Kyrgyzstan;Bisqueque;KGZ;KG +Quiribáti;Kiribati;Taraua do Sul;KIR;KI +Reino Unido;Uk;Londres;GBR;GB +República Centro-Africana;Central African Republic;Bangui;CAF;CF +República Checa;Czech Republic;Praga;CZE;CZ +República Democrática do Congo;Democratic Republic Of Congo;Quinxassa;COD;CD +República Dominicana;Dominican Republic;São Domingos;DOM;DO +Roménia;Romania;Bucareste;ROU;RO +Ruanda;Rwanda;Quigali;RWA;RW +Rússia;Russia;Moscovo;RUS;RU +Salomão;Solomon;Honiara;SLB;SB +Salvador;Savior;São Salvador;SLV;SV +Samoa;Samoa;Apia;WSM;WS +Santa Lúcia;Saint Lucia;Castries;LCA;LC +São Cristóvão e Neves;Saint Kitts And Nevis;Basseterre;KNA;KN +São Marinho;San Marino;São Marinho;SMR;SM +São Tomé e Príncipe;Sao Tome And Principe;São Tomé;STP;ST +São Vicente e Granadinas;Saint Vincent And The Grenadines;Kingstown;VCT;VC +Seicheles;Seychelles;Vitória;SYC;SC +Senegal;Senegal;Dacar;SEN;SN +Serra Leoa;Sierra Leone;Freetown;SLE;SL +Sérvia;Serbia;Belgrado;SRB;RS +Singapura;Singapore;Singapura;SGP;SG +Síria;Syria;Damasco;SYR;SY +Somália;Somalia;Mogadíscio;SOM;SO +Sri Lanca;Sri Lanka;Sri Jaiavardenapura-Cota;LKA;LK +Sudão;Sudan;Cartum;SDN;SD +Sudão do Sul;Southern Sudan;Juba;SSD;SS +Suécia;Sweden;Estocolmo;SWE;SE +Suíça;Switzerland;Berna;CHE;CH +Suriname;Suriname;Paramaribo;SUR;SR +Tailândia;Thailand;Banguecoque;THA;TH +Taiuã;Taiwan;Taipé;TWN;TW +Tajiquistão;Tajikistan;Duchambé;TJK;TJ +Tanzânia;Tanzania;Dodoma;TZA;TZ +Timor-Leste;East Timor;Díli;TLS;TL +Togo;Togo;Lomé;TGO;TG +Tonga;Tonga;Nucualofa;TON;TO +Trindade e Tobago;Trinidad And Tobago;Porto de Espanha;TTO;TT +Tunísia;Tunisia;Tunes;TUN;TN +Turcomenistão;Turkmenistan;Asgabate;TKM;TM +Turquia;Turkey;Ancara;TUR;TR +Tuvalu;Tuvalu;Funafuti;TUV;TV +Ucrânia;Ukraine;Quieve;UKR;UA +Uganda;Uganda;Campala;UGA;UG +Uruguai;Uruguay;Montevideu;URY;UY +Usbequistão;Uzbekistan;Tasquente;UZB;UZ +Vanuatu;Vanuatu;Porto Vila;VUT;VU +Vaticano;Vatican;Vaticano;VAT;VA +Venezuela;Venezuela;Caracas;VEN;VE +Vietname;Vietnam;Hanói;VNM;VN +Zâmbia;Zambia;Lusaca;ZMB;ZM +Zimbábue;Zimbabwe;Harare;ZWE;ZW diff --git a/usefulmodels/migrations/0005_alter_state_region.py b/usefulmodels/migrations/0005_alter_state_region.py new file mode 100755 index 00000000..53cedd32 --- /dev/null +++ b/usefulmodels/migrations/0005_alter_state_region.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.12 on 2022-10-25 16:51 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('usefulmodels', '0004_alter_country_options'), + ] + + operations = [ + migrations.AlterField( + model_name='state', + name='region', + field=models.CharField(blank=True, choices=[('', ''), ('Norte', 'Norte'), ('Nordeste', 'Nordeste'), ('Centro-oeste', 'Centro-Oeste'), ('Sudeste', 'Sudeste'), ('Sul', 'Sul'), ('ALL', 'ALL'), ('NOT APPLICABLE', 'NOT_APPLICABLE'), ('UNDEFINED', 'UNDEFINED')], max_length=255, null=True, verbose_name='Região'), + ), + ] diff --git a/usefulmodels/migrations/0006_auto_20221026_1320.py b/usefulmodels/migrations/0006_auto_20221026_1320.py new file mode 100755 index 00000000..e823696e --- /dev/null +++ b/usefulmodels/migrations/0006_auto_20221026_1320.py @@ -0,0 +1,27 @@ +# Generated by Django 3.2.12 on 2022-10-26 13:20 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('usefulmodels', '0005_alter_state_region'), + ] + + operations = [ + migrations.RemoveField( + model_name='country', + name='name', + ), + migrations.AddField( + model_name='country', + name='name_en', + field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Name of the Country (en)'), + ), + migrations.AddField( + model_name='country', + name='name_pt', + field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Name of the Country (pt)'), + ), + ] diff --git a/usefulmodels/migrations/0007_auto_20221027_1317.py b/usefulmodels/migrations/0007_auto_20221027_1317.py new file mode 100644 index 00000000..6e70dc3c --- /dev/null +++ b/usefulmodels/migrations/0007_auto_20221027_1317.py @@ -0,0 +1,27 @@ +# Generated by Django 3.2.12 on 2022-10-27 13:17 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('usefulmodels', '0006_auto_20221026_1320'), + ] + + operations = [ + migrations.RemoveField( + model_name='country', + name='acronym', + ), + migrations.AddField( + model_name='country', + name='acron2', + field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Acronym to the Country (2 char)'), + ), + migrations.AddField( + model_name='country', + name='acron3', + field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Acronym to the Country (3 char)'), + ), + ] diff --git a/usefulmodels/migrations/0008_auto_20221027_1424.py b/usefulmodels/migrations/0008_auto_20221027_1424.py new file mode 100644 index 00000000..0a4c17f1 --- /dev/null +++ b/usefulmodels/migrations/0008_auto_20221027_1424.py @@ -0,0 +1,23 @@ +# Generated by Django 3.2.12 on 2022-10-27 14:24 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('usefulmodels', '0007_auto_20221027_1317'), + ] + + operations = [ + migrations.RenameField( + model_name='country', + old_name='acron3', + new_name='acronym', + ), + migrations.RenameField( + model_name='country', + old_name='acron2', + new_name='acronym2', + ), + ] diff --git a/usefulmodels/migrations/0009_country_capital.py b/usefulmodels/migrations/0009_country_capital.py new file mode 100644 index 00000000..35608997 --- /dev/null +++ b/usefulmodels/migrations/0009_country_capital.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.12 on 2022-10-28 13:22 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('usefulmodels', '0008_auto_20221027_1424'), + ] + + operations = [ + migrations.AddField( + model_name='country', + name='capital', + field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Capital of the Country'), + ), + ] diff --git a/usefulmodels/migrations/0010_auto_20221028_1327.py b/usefulmodels/migrations/0010_auto_20221028_1327.py new file mode 100644 index 00000000..2b8ff9a0 --- /dev/null +++ b/usefulmodels/migrations/0010_auto_20221028_1327.py @@ -0,0 +1,23 @@ +# Generated by Django 3.2.12 on 2022-10-28 13:27 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('usefulmodels', '0009_country_capital'), + ] + + operations = [ + migrations.RenameField( + model_name='country', + old_name='acronym2', + new_name='acron2', + ), + migrations.RenameField( + model_name='country', + old_name='acronym', + new_name='acron3', + ), + ] diff --git a/usefulmodels/models.py b/usefulmodels/models.py old mode 100644 new mode 100755 index f72b5405..b3f1a670 --- a/usefulmodels/models.py +++ b/usefulmodels/models.py @@ -106,38 +106,44 @@ class Country(CommonControlField): acronym """ - name = models.CharField(_("Name of the Country"), blank=True, null=True, max_length=255) - acronym = models.CharField(_("Acronym to the Country"), blank=True, null=True, max_length=255) + name_pt = models.CharField(_("Name of the Country (pt)"), blank=True, null=True, max_length=255) + name_en = models.CharField(_("Name of the Country (en)"), blank=True, null=True, max_length=255) + capital = models.CharField(_("Capital of the Country"), blank=True, null=True, max_length=255) + acron3 = models.CharField(_("Acronym to the Country (3 char)"), blank=True, null=True, max_length=255) + acron2 = models.CharField(_("Acronym to the Country (2 char)"), blank=True, null=True, max_length=255) - autocomplete_search_field = 'name' + autocomplete_search_field = 'name_pt' class Meta: verbose_name = _("Country") verbose_name_plural = _("Countries") def __unicode__(self): - return u'%s' % self.name + return u'%s' % self.name_pt def __str__(self): - return u'%s' % self.name + return u'%s' % self.name_pt def autocomplete_label(self): return str(self) @classmethod - def get_or_create(cls, user, name=None, acronym=None): + def get_or_create(cls, user, name_pt=None, name_en=None, capital=None, acron3=None, acron2=None): - if name: - if cls.objects.filter(name__exact=name).exists(): - return cls.objects.get(name__exact=name) + if name_pt: + if cls.objects.filter(name_pt__exact=name_pt).exists(): + return cls.objects.get(name_pt__exact=name_pt) - if acronym: - if cls.objects.filter(acronym__exact=acronym).exists(): - return cls.objects.get(acronym__exact=acronym) + if name_en: + if cls.objects.filter(name_en__exact=name_en).exists(): + return cls.objects.get(name_en__exact=name_en) country = Country() - country.name = name - country.acronym = acronym + country.name_pt = name_pt + country.name_en = name_en + country.capital = capital + country.acron3 = acron3 + country.acron2 = acron2 country.creator = user country.save() diff --git a/usefulmodels/scripts/bulk_countries.py b/usefulmodels/scripts/bulk_countries.py new file mode 100755 index 00000000..848186a0 --- /dev/null +++ b/usefulmodels/scripts/bulk_countries.py @@ -0,0 +1,30 @@ +import os +from usefulmodels import models +from django.contrib.auth import get_user_model + +User = get_user_model() + +# This script add bulk of countries +# This presuppose a fixtures/countries.csv file exists. +# Consider that existe a user with id=1 + +SEPARATOR = ';' + +def run(*args): + user_id = 1 + + # Delete all cities + models.Country.objects.all().delete() + + with open(os.path.dirname(os.path.realpath(__file__)) + "/../fixtures/countries.csv", 'r') as fp: + for line in fp.readlines(): + name_pt, name_en, capital, acron3, acron2 = line.strip().split(SEPARATOR) + + # User + if args: + user_id = args[0] + + creator = User.objects.get(id=user_id) + + models.Country(name_pt=name_pt, name_en=name_en, capital=capital, + acron3=acron3, acron2=acron2, creator=creator).save() diff --git a/usefulmodels/wagtail_hooks.py b/usefulmodels/wagtail_hooks.py old mode 100644 new mode 100755 index e379caae..e12ef389 --- a/usefulmodels/wagtail_hooks.py +++ b/usefulmodels/wagtail_hooks.py @@ -85,10 +85,10 @@ class CountryAdmin(ModelAdmin): menu_order = 100 add_to_settings_menu = False # or True to add your model to the Settings sub-menu exclude_from_explorer = False # or True to exclude pages of this type from Wagtail's explorer view - list_display = ('name', 'acronym', 'creator', + list_display = ('name_pt', 'name_en', 'capital', 'acron3', 'acron2', 'creator', 'updated', 'created') - search_fields = ('name', 'acronym') - list_export = ('name', 'acronym') + search_fields = ('name_pt', 'acron3') + list_export = ('name_pt', 'acron3') export_filename = 'countryies'