Skip to content

Commit 36eec42

Browse files
Merge pull request #1 from PLOS/rreatherford/rct-161
Create Export Functionality
2 parents cf3c5ae + 96b1f6c commit 36eec42

22 files changed

Lines changed: 1160 additions & 37 deletions

.github/workflows/django.yml

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,25 +17,41 @@ jobs:
1717

1818
steps:
1919
- name: Fetch Main Janeway Branch
20-
uses: actions/checkout@v4
20+
uses: actions/checkout@v5
2121
with:
2222
repository: PLOS/janeway
2323
ref: develop
2424
path: /home/runner/work/editorial_manager_transfer_service/editorial_manager_transfer_service/janeway
2525
- name: Fetch Editorial Manager Transfer Service
26-
uses: actions/checkout@v4
26+
uses: actions/checkout@v5
2727
with:
2828
path: /home/runner/work/editorial_manager_transfer_service/editorial_manager_transfer_service/janeway/src/plugins/editorial_manager_transfer_service
2929
- name: Set up Python ${{ matrix.python-version }}
30-
uses: actions/setup-python@v3
30+
uses: actions/setup-python@v5
3131
with:
3232
python-version: ${{ matrix.python-version }}
33-
path: /home/runner/work/editorial_manager_transfer_service/editorial_manager_transfer_service/janeway
33+
- name: Cache pip dependencies
34+
uses: actions/cache@v4
35+
with:
36+
path: ~/.cache/pip # Path to pip's cache directory
37+
key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }} # Unique cache key
38+
restore-keys: |
39+
${{ runner.os }}-pip-
3440
- name: Install Dependencies
35-
working-directory: /home/runner/work/editorial_manager_transfer_service/editorial_manager_transfer_service/janeway
3641
run: |
3742
python -m pip install --upgrade pip
38-
sudo find . -name "*requirements.txt" -type f -exec pip3 install -r '{}' ';'
43+
find . -name "*requirements.txt" -type f -exec pip install -r '{}' ';'
44+
- name: Add `src` to Python Path
45+
run: |
46+
echo "PYTHONPATH=/home/runner/work/editorial_manager_transfer_service/editorial_manager_transfer_service/janeway/src" >> $GITHUB_ENV
47+
shell: bash
48+
- name: Import the Default Janeway Settings
49+
run: |
50+
cp /home/runner/work/editorial_manager_transfer_service/editorial_manager_transfer_service/janeway/src/core/dev_settings.py /home/runner/work/editorial_manager_transfer_service/editorial_manager_transfer_service/janeway/src/core/settings.py
3951
- name: Run Tests
52+
env:
53+
JANEWAY_SETTINGS_MODULE: core.settings
54+
DJANGO_SETTINGS_MODULE: core.settings
55+
working-directory: /home/runner/work/editorial_manager_transfer_service/editorial_manager_transfer_service/janeway
4056
run: |
41-
pytest /home/runner/work/editorial_manager_transfer_service/editorial_manager_transfer_service/janeway/src/plugins/editorial_manager_transfer_service/
57+
python src/manage.py test editorial_manager_transfer_service

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
11
/.venv/
2+
/editorial_manager_transfer_service.iml
3+
/.idea/
4+
/.hypothesis/

README.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,83 @@ A plugin to provide information for Aries' Editorial Manager to enable automatic
33

44
## Requirements
55
This plugin depends on the Production Transporter plugin in order to work properly.
6+
7+
## Development Tips
8+
This section contains guidance for developing this plugin.
9+
10+
For the purposes of this guide we'll refer to the Janeway installation folder as `[workspace]`.
11+
12+
The plugin's installation folder is assumed to be `[workspace]/src/plugins/editorial_manager_transfer_service`.
13+
14+
### Adding The Janeway SRC to the `PYTHONPATH`
15+
Adding the Janeway SRC folder to the `PYTHONPATH` can help any type of IDE correctly identify imports while developing plugins.
16+
17+
#### Instructions for Python Virtual Environment (VENV)
18+
First, open your `activate` file in a text editor. It is located at:
19+
```text
20+
[workspace]/.venv/bin/activate
21+
```
22+
Once open, scroll to find the following text section:
23+
```bash
24+
VIRTUAL_ENV="[workspace]/.venv"
25+
if ([ "$OSTYPE" = "cygwin" ] || [ "$OSTYPE" = "msys" ]) && $(command -v cygpath &> /dev/null) ; then
26+
VIRTUAL_ENV=$(cygpath -u "$VIRTUAL_ENV")
27+
fi
28+
export VIRTUAL_ENV
29+
30+
31+
_OLD_VIRTUAL_PATH="$PATH"
32+
PATH="$VIRTUAL_ENV/bin:$PATH"
33+
export PATH
34+
```
35+
Please note and change the `[worksapce]` variable to your Janeway installation path.
36+
37+
You will modify this section to become the following:
38+
```bash
39+
_PYTHON_ENV_PKG='[workspace]'
40+
VIRTUAL_ENV="$_PYTHON_ENV_PKG/.venv"
41+
if ([ "$OSTYPE" = "cygwin" ] || [ "$OSTYPE" = "msys" ]) && $(command -v cygpath &> /dev/null) ; then
42+
VIRTUAL_ENV=$(cygpath -u "$VIRTUAL_ENV")
43+
fi
44+
export VIRTUAL_ENV
45+
46+
_OLD_VIRTUAL_PATH="$PATH"
47+
PATH="$VIRTUAL_ENV/bin:$PATH"
48+
export PATH
49+
50+
_OLD_VIRTUAL_PYTHONPATH="$PYTHONPATH"
51+
PYTHONPATH="$_PYTHON_ENV_PKG:$PYTHONPATH"
52+
export PYTHONPATH
53+
```
54+
Next you will modify the `deactivate()` script. Scroll until you find this section of script:
55+
```bash
56+
deactivate () {
57+
unset -f pydoc >/dev/null 2>&1 || true
58+
59+
# reset old environment variables
60+
# ! [ -z ${VAR+_} ] returns true if VAR is declared at all
61+
if ! [ -z "${_OLD_VIRTUAL_PATH:+_}" ] ; then
62+
PATH="$_OLD_VIRTUAL_PATH"
63+
export PATH
64+
unset _OLD_VIRTUAL_PATH
65+
fi
66+
if ! [ -z "${_OLD_VIRTUAL_PYTHONHOME+_}" ] ; then
67+
PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME"
68+
export PYTHONHOME
69+
unset _OLD_VIRTUAL_PYTHONHOME
70+
fi
71+
```
72+
Modify it to add the `PYTHONPATH` deactivation:
73+
```bash
74+
...
75+
unset _OLD_VIRTUAL_PATH
76+
fi
77+
if ! [ -z "${_OLD_VIRTUAL_PYTHONPATH:+_}" ] ; then
78+
PYTHONPATH="$_OLD_VIRTUAL_PYTHONPATH"
79+
export PYTHONPATH
80+
unset _OLD_VIRTUAL_PYTHONPATH
81+
fi
82+
if ! [ -z "${_OLD_VIRTUAL_PYTHONHOME+_}" ] ; then
83+
...
84+
```
85+
After restarting your IDE, you should see it properly detect the SRC folder.

consts.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import os
2+
3+
from django.conf import settings
4+
5+
# Plugin Settings
6+
PLUGIN_NAME = 'Editorial Manager Transfer Service Plugin'
7+
DISPLAY_NAME = 'Editorial Manager Transfer Service'
8+
DESCRIPTION = 'A plugin to provide information for Aries\' Editorial Manager to enable automatic transfers.'
9+
AUTHOR = 'PLOS'
10+
VERSION = '0.1'
11+
SHORT_NAME = 'editorial_manager_transfer_service'
12+
MANAGER_URL = 'editorial_manager_transfer_service_manager'
13+
JANEWAY_VERSION = "1.8.0"
14+
15+
# Setting Configuration
16+
PLUGIN_SETTINGS_GROUP_NAME = "plugin:editorial_manager_transfer_service"
17+
PLUGIN_SETTINGS_LICENSE_CODE = "license_code"
18+
PLUGIN_SETTINGS_JOURNAL_CODE = "journal_code"
19+
PLUGIN_SETTINGS_SUBMISSION_PARTNER_CODE = "submission_partner_code"
20+
21+
# Import and export filepaths
22+
EXPORT_FILE_PATH = os.path.join(settings.BASE_DIR, 'files', 'plugins', 'editorial-manager-transfer-service', 'export')
23+
IMPORT_FILE_PATH = os.path.join(settings.BASE_DIR, 'files', 'plugins', 'editorial-manager-transfer-service', 'import')
24+
25+
# XML File
26+
GO_FILE_ELEMENT_TAG_GO = "GO"
27+
GO_FILE_GO_ELEMENT_ATTRIBUTE_XMLNS_XSI_KEY = "xmlns:xsi"
28+
GO_FILE_GO_ELEMENT_ATTRIBUTE_XMLNS_XSI_VALUE = "http://www.w3.org/2001/XMLSchema-instance"
29+
GO_FILE_GO_ELEMENT_ATTRIBUTE_SCHEMA_LOCATION_KEY = "xsi:noNamespaceSchemaLocation"
30+
GO_FILE_GO_ELEMENT_ATTRIBUTE_SCHEMA_LOCATION_VALUE = "app://Aries.EditorialManager/Resources/XmlDefineTransformFiles/aries_import_go_file.xsd"
31+
GO_FILE_ELEMENT_TAG_HEADER = "header"
32+
GO_FILE_ELEMENT_TAG_VERSION = "version"
33+
GO_FILE_VERSION_ELEMENT_ATTRIBUTE_NUMBER_KEY = "number"
34+
GO_FILE_VERSION_ELEMENT_ATTRIBUTE_NUMBER_VALUE = "1.0"
35+
GO_FILE_ELEMENT_TAG_JOURNAL = "journal"
36+
GO_FILE_JOURNAL_ELEMENT_ATTRIBUTE_CODE_KEY = "code"
37+
GO_FILE_ELEMENT_TAG_IMPORT_TYPE = "import-type"
38+
GO_FILE_IMPORT_TYPE_ELEMENT_ATTRIBUTE_ID_KEY = "id"
39+
GO_FILE_IMPORT_TYPE_ELEMENT_ATTRIBUTE_ID_VALUE = "2"
40+
GO_FILE_ELEMENT_TAG_PARAMETERS = "parameters"
41+
GO_FILE_ELEMENT_TAG_PARAMETER = "parameter"
42+
GO_FILE_ATTRIBUTE_ELEMENT_NAME_KEY = "name"
43+
GO_FILE_PARAMETER_ELEMENT_NAME_VALUE = "license-code"
44+
GO_FILE_PARAMETER_ELEMENT_VALUE_KEY = "value"
45+
GO_FILE_ELEMENT_TAG_ARCHIVE_FILE = "archive-file"
46+
GO_FILE_ELEMENT_TAG_FILEGROUP = "filegroup"
47+
GO_FILE_ELEMENT_TAG_FILE = "file"
48+
GO_FILE_ELEMENT_TAG_METADATA_FILE = "metadata-file"

dev-requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
pytest
1+
hypothesis==6.138.7
2+
pytest==8.4.1

0 commit comments

Comments
 (0)