Skip to content

Commit

Permalink
Merge branch 'develop' into feature/2810_automate_journals_public_list
Browse files Browse the repository at this point in the history
  • Loading branch information
philipkcl committed Sep 29, 2023
2 parents 5b18863 + 7074f82 commit 3d99e12
Show file tree
Hide file tree
Showing 15 changed files with 339 additions and 30 deletions.
File renamed without changes
7 changes: 0 additions & 7 deletions cms/data/ambassadors.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,6 @@
photo: "ivonne.jpg"
coi:
2022: https://drive.google.com/file/d/1HnGhYbvbzL34guWOmIqcthcwAN8NADX1/view?usp=sharing

- name: John G. Dove
region: North America
bio: "John has had a career in executive management, and is now an independent consultant and open access advocate who works with organisations seeking to accelerate their transition to open access. He advises both for-profits and non-profits, and has a particular interest in identifying the steps necessary to flip an entire discipline’s scholarly record to open access. His ambassador activities focus on increasing the support to DOAJ from the community. He served for six years on NISO’s <a href='https://www.niso.org/topic-committees/information-discovery-interchange' target='_blank'>Information Discovery and Interchange Topic Committee</a>, and has written for <a href='https://onlinelibrary.wiley.com/doi/10.1002/leap.1086' target='_blank'>Learned Publishing</a>, <a href='https://against-the-grain.com/2011/12/v23-5-atg-interviews-john-g-dove-president-credo-reference/' target='_blank'>Against the Grain</a>, and <a href='https://scholarlykitchen.sspnet.org/2019/11/07/guest-post-transparency-what-can-one-learn-from-a-trove-of-invoices/' target='_blank'>Scholarly Kitchen</a>. John serves on the Board of Trustees of his local public library in Revere, Massachusetts. He has a B.A. in Mathematics from Oberlin College."
photo: "johndove.jpg"
coi:
2022: https://drive.google.com/file/d/1cWijl2xdmVjshsvaGTABOvC_chIIfuVA/view?usp=sharing

- name: Mahmoud Khalifa
region: Middle East and Persian Gulf
Expand Down
18 changes: 9 additions & 9 deletions cms/data/team.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
2022: https://drive.google.com/file/d/1E45ycyctDfYkh65ZCM8PMtQsYym_eP6L/view?usp=sharing

- name: Cenyu Shen
role: Quality Team Lead and Managing Editor
role: Deputy Head of Editorial (Quality)
photo: cenyu.jpg
bio: 'Cenyu holds a PhD in Information Systems Science at Hanken School of Economics in Finland. She has spent around seven years on Open Access research with a particular focus on gold OA publishing concerning journals and publishers outside the mainstream. She was one of three DOAJ ambassadors for China from 2016 to 2017.'
coi:
Expand Down Expand Up @@ -58,6 +58,13 @@
coi:
2022: https://drive.google.com/file/d/1-3xzwkHMclREgLhj_XNF5n6Nr4q2_bnw/view?usp=sharing

- name: John G. Dove
role: Advisor
photo: johndove.jpg
bio: "John has had a career in executive management, and is now an independent consultant and open access advocate who works with organisations seeking to accelerate their transition to open access. He advises both for-profits and non-profits, and has a particular interest in identifying the steps necessary to flip an entire discipline’s scholarly record to open access. His ambassador activities focus on increasing the support to DOAJ from the community. He served for six years on NISO’s <a href='https://www.niso.org/topic-committees/information-discovery-interchange' target='_blank'>Information Discovery and Interchange Topic Committee</a>, and has written for <a href='https://onlinelibrary.wiley.com/doi/10.1002/leap.1086' target='_blank'>Learned Publishing</a>, <a href='https://against-the-grain.com/2011/12/v23-5-atg-interviews-john-g-dove-president-credo-reference/' target='_blank'>Against the Grain</a>, and <a href='https://scholarlykitchen.sspnet.org/2019/11/07/guest-post-transparency-what-can-one-learn-from-a-trove-of-invoices/' target='_blank'>Scholarly Kitchen</a>. John serves on the Board of Trustees of his local public library in Revere, Massachusetts. He has a B.A. in Mathematics from Oberlin College."
coi:
2022: https://drive.google.com/file/d/1cWijl2xdmVjshsvaGTABOvC_chIIfuVA/view?usp=sharing

- name: Judith Barnsby
role: Head of Editorial
photo: judith.jpg
Expand Down Expand Up @@ -93,21 +100,14 @@
2022: https://drive.google.com/file/d/1fRJtvci2_j4vad0C5N1pfqm2sHZQkFz3/view?usp=sharing

- name: Leena Shah
role: Managing Editor and Ambassador
role: Deputy Head of Editorial (Workflow) and Ambassador
photo: leena.jpg
bio: "Leena joined the DOAJ team in 2016 as an Ambassador for India before becoming a Managing Editor. Prior to joining DOAJ she worked as a science librarian at Nanyang Technological University, Singapore, where she developed a keen interest in scholarly communication & open science. A recent addition to her interests is artificial intelligence in scholarly communication. Leena holds a Master’s degree in Information Studies and lives in Singapore. She loves watching sci-fi shows and is enthusiastic about travelling to new places."
coi:
2018: https://drive.google.com/file/d/1tifEjAIlU3txBw9DjIcRW9cZL7YG7_nU/view?usp=sharing
2020: https://drive.google.com/file/d/1zU-lLB5W54E_QUm5uto5tqB6cZl83TAJ/view?usp=sharing
2022: https://drive.google.com/file/d/19rw-naMJqHkI5T7aDIDPUkwPutBdDpDm/view?usp=sharing

- name: Luis Montilla
role: Managing Editor
photo: luis.jpeg
bio: "Luis is a marine ecologist with a passion for improving the quality of scientific publishing. After finishing his Masters in Venezuela, he spent three years in Italy completing his PhD studying marine microbial symbioses in seagrass beds. In his free time, he enjoys reading and watching movies."
coi:
2023: https://drive.google.com/file/d/1IJhnV2Ht5t5jilaCAFzpuFdYk7UMOjN3/view?usp=sharing

- name: Mahmoud Khalifa
role: Managing Editor and Ambassador
photo: mahmoud-new.jpg
Expand Down
2 changes: 1 addition & 1 deletion cms/pages/legal/terms.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ DOAJ uses a variety of licenses for the different parts of its website and the c
+ In our [OAI-PMH feed](/docs/oai-pmh)
+ In the [full data dump of all article metadata](/docs/public-data-dump/).

4. The *open source software* that DOAJ is built with is licensed under [an Apache license Version 2](https://github.com/DOAJ/doaj/blob/a6fc2bee499b5a8a1f24fb098acfb8e10bd72503/portality/static/vendor/select2-3.5.4/LICENSE).
4. The *open source software* that DOAJ is built with is licensed under [an Apache license Version 2](https://github.com/DOAJ/doaj/blob/develop/LICENSE).

---

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
test_id,eissn,pissn,validated
1,eissn_in_doaj,pissn_in_doaj,yes
2,eissn_in_doaj,eissn_not_in_doaj,
3,eissn_in_doaj,pissn_not_in_doaj,
4,eissn_in_doaj,!eissn_in_doaj,
5,pissn_in_doaj,eissn_in_doaj,
6,pissn_in_doaj,eissn_not_in_doaj,
7,pissn_in_doaj,pissn_not_in_doaj,
8,pissn_in_doaj,!pissn_in_doaj,
9,eissn_not_in_doaj,eissn_in_doaj,
10,eissn_not_in_doaj,pissn_in_doaj,
11,eissn_not_in_doaj,pissn_not_in_doaj,
12,eissn_not_in_doaj,!eissn_not_in_doaj,
13,pissn_not_in_doaj,eissn_in_doaj,
14,pissn_not_in_doaj,pissn_in_doaj,
15,pissn_not_in_doaj,eissn_not_in_doaj,
16,pissn_not_in_doaj,!pissn_not_in_doaj,
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
field,test_id,eissn,pissn,validated
type,index,generated,generated,conditional
deafult,,,,no
,,,,
values,,eissn_in_doaj,eissn_in_doaj,yes
values,,pissn_in_doaj,pissn_in_doaj,no
values,,eissn_not_in_doaj,eissn_not_in_doaj,
values,,pissn_not_in_doaj,pissn_not_in_doaj,
,,,,
,,,,
conditional validated,,eissn_in_doaj,pissn_in_doaj,yes
constraint eissn,,eissn_in_doaj,!eissn_in_doaj,
constraint eissn,,eissn_not_in_doaj,!eissn_not_in_doaj,
constraint eissn,,pissn_not_in_doaj,!pissn_not_in_doaj,
constraint eissn,,pissn_in_doaj,!pissn_in_doaj,
constraint pissn,,eissn_in_doaj,!eissn_in_doaj,
constraint pissn,,eissn_not_in_doaj,!eissn_not_in_doaj,
constraint pissn,,pissn_not_in_doaj,!pissn_not_in_doaj,
constraint pissn,,pissn_in_doaj,!pissn_in_doaj,
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
{
"parameters": [
{
"name": "test_id",
"type": "index"
},
{
"name": "eissn",
"type": "generated",
"values": {
"eissn_in_doaj": {
"constraints": {
"pissn": {
"nor": [
"eissn_in_doaj"
]
}
}
},
"pissn_in_doaj": {
"constraints": {
"pissn": {
"nor": [
"pissn_in_doaj"
]
}
}
},
"eissn_not_in_doaj": {
"constraints": {
"pissn": {
"nor": [
"eissn_not_in_doaj"
]
}
}
},
"pissn_not_in_doaj": {
"constraints": {
"pissn": {
"nor": [
"pissn_not_in_doaj"
]
}
}
}
}
},
{
"name": "pissn",
"type": "generated",
"values": {
"eissn_in_doaj": {},
"pissn_in_doaj": {},
"eissn_not_in_doaj": {},
"pissn_not_in_doaj": {},
"!eissn_in_doaj": {
"constraints": {
"eissn": {
"or": [
"eissn_in_doaj"
]
}
}
},
"!eissn_not_in_doaj": {
"constraints": {
"eissn": {
"or": [
"eissn_not_in_doaj"
]
}
}
},
"!pissn_not_in_doaj": {
"constraints": {
"eissn": {
"or": [
"pissn_not_in_doaj"
]
}
}
},
"!pissn_in_doaj": {
"constraints": {
"eissn": {
"or": [
"pissn_in_doaj"
]
}
}
}
}
},
{
"name": "validated",
"type": "conditional",
"values": {
"yes": {
"conditions": [
{
"eissn": {
"or": [
"eissn_in_doaj"
]
},
"pissn": {
"or": [
"pissn_in_doaj"
]
}
}
]
},
"no": {}
}
}
]
}
76 changes: 75 additions & 1 deletion doajtest/unit/test_article_acceptable_and_permissions.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ def is_acceptable_load_cases():
"test_id",
{"test_id": []})

def issn_validation_against_journal_load_sets():
return load_parameter_sets(rel2abs(__file__, "..", "matrices", "article_create_article"), "issn_validation_against_journal",
"test_id",
{"test_id": []})


class TestBLLPrepareUpdatePublisher(DoajTestCase):

Expand Down Expand Up @@ -110,4 +115,73 @@ def test_has_permissions(self):
assert failed_result["unowned"].sort() == [pissn, eissn].sort()
# assert failed_result == {'success': 0, 'fail': 1, 'update': 0, 'new': 0, 'shared': [],
# 'unowned': [pissn, eissn],
# 'unmatched': []}, "received: {}".format(failed_result)
# 'unmatched': []}, "received: {}".format(failed_result)


@parameterized.expand(issn_validation_against_journal_load_sets)
def test_issn_validation_against_journal_load_sets(self, value, kwargs):
kwpissn = kwargs.get("pissn")
kweissn = kwargs.get("eissn")
validated = kwargs.get("validated")

js = JournalFixtureFactory.make_many_journal_sources(2)
journal_in_doaj = Journal(**js[0])
journal_in_doaj.set_in_doaj(True)
journal_in_doaj.bibjson().pissn = "1111-1111"
journal_in_doaj.bibjson().eissn = "2222-2222"
journal_in_doaj.save(blocking=True)

journal_not_in_doaj = Journal(**js[1])
journal_not_in_doaj.set_in_doaj(False)
journal_not_in_doaj.bibjson().pissn = "3333-3333"
journal_not_in_doaj.bibjson().eissn = "4444-4444"
journal_not_in_doaj.save(blocking=True)

if (kwpissn == "pissn_in_doaj"):
pissn = journal_in_doaj.bibjson().pissn
elif (kwpissn == "eissn_in_doaj"):
pissn = journal_in_doaj.bibjson().eissn
elif (kwpissn == "pissn_not_in_doaj"):
pissn = journal_not_in_doaj.bibjson().pissn
else:
pissn = journal_not_in_doaj.bibjson().eissn

if (kweissn == "pissn_in_doaj"):
eissn = journal_in_doaj.bibjson().pissn
elif (kweissn == "eissn_in_doaj"):
eissn = journal_in_doaj.bibjson().eissn
elif (kweissn == "pissn_not_in_doaj"):
eissn = journal_not_in_doaj.bibjson().pissn
else:
eissn = journal_not_in_doaj.bibjson().eissn


art_source = ArticleFixtureFactory.make_article_source(pissn=pissn, eissn=eissn)
article = Article(**art_source)

if validated:
self.assertIsNone(self.svc.is_acceptable(article))

else:
with self.assertRaises(exceptions.ArticleNotAcceptable):
self.svc.is_acceptable(article)

def test_check_validation_for_2_journals(self):

js = JournalFixtureFactory.make_many_journal_sources(2, in_doaj=True)
journal_in_doaj = Journal(**js[0])
journal_in_doaj.bibjson().pissn = "1111-1111"
journal_in_doaj.bibjson().eissn = "2222-2222"
journal_in_doaj.save(blocking=True)

journal_not_in_doaj = Journal(**js[1])
journal_not_in_doaj.bibjson().pissn = "3333-3333"
journal_not_in_doaj.bibjson().eissn = "4444-4444"
journal_not_in_doaj.save(blocking=True)


art_source = ArticleFixtureFactory.make_article_source(pissn="1111-1111", eissn="4444-4444")
article = Article(**art_source)

with self.assertRaises(exceptions.ArticleNotAcceptable):
self.svc.is_acceptable(article)
27 changes: 27 additions & 0 deletions doajtest/unit/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -1661,3 +1661,30 @@ def test_get_name_safe(self):
# account does not exist
assert models.Account.get_name_safe('not existing account id') == ''

def test_11_find_by_issn(self):
js = JournalFixtureFactory.make_many_journal_sources(2, in_doaj=True)
j1 = models.Journal(**js[0])
j1.bibjson().pissn = "1111-1111"
j1.bibjson().eissn = "2222-2222"
j1.save(blocking=True)

j2 = models.Journal(**js[1])
j2.bibjson().pissn = "3333-3333"
j2.bibjson().eissn = "4444-4444"
j2.save(blocking=True)

journals = models.Journal.find_by_issn(["1111-1111", "2222-2222"], True)
assert len(journals) == 1
assert journals[0].id == j1.id

journals = models.Journal.find_by_issn(["1111-1111", "3333-3333"], True)
assert len(journals) == 2
assert journals[0].id == j1.id
assert journals[1].id == j2.id

journals = models.Journal.find_by_issn_exact(["1111-1111", "2222-2222"], True)
assert len(journals) == 1
assert journals[0].id == j1.id

journals = models.Journal.find_by_issn_exact(["1111-1111", "3333-3333"], True)
assert len(journals) == 0
Loading

0 comments on commit 3d99e12

Please sign in to comment.