Skip to content

Plugin for Open Journal Systems for author issue selection during submission. Editors configure available issues and pre-assign guest editors. Submissions are automatically scheduled and assigned to configured editors.

License

Notifications You must be signed in to change notification settings

abenteuerzeit/issuePreselection

Repository files navigation

Issue Preselection Plugin for OJS 3.5+

Release OJS License

Table of Contents

Overview

The Issue Preselection Plugin allows authors to select which journal issue their submission should be assigned to during the submission process. Editors can configure which issues are open for submissions and pre-assign guest editors who will automatically be assigned to incoming submissions.

Features

For Authors

  • Issue Selection During Submission - Select from available future issues when submitting
  • Direct Response to Calls for Papers - Submit directly to specific themed issues
  • Filtered Issue List - Only see issues that editors have marked as open

For Editors

  • Issue Configuration - Mark issues as open/closed for author selection
  • Editor Pre-assignment - Assign guest editors to issues for automatic workflow assignment
  • Automatic Workflow - Submissions automatically assigned to configured editors with notifications

Requirements

  • OJS Version: 3.5.0.1 or higher
  • PHP Version: 8.2 or higher
  • Database: MySQL 5.7+ or PostgreSQL 9.5+

Installation

Method 1: Manual Installation

  1. Download the latest release from the releases page
  2. Extract the archive
  3. Copy the issuePreselection folder to plugins/generic/ in your OJS installation
  4. Log in to OJS as Administrator
  5. Navigate to Settings > Website > Plugins
  6. Find "Issue Preselection Plugin" under Generic Plugins
  7. Click Enable

Method 2: Git Installation

cd /path/to/ojs/plugins/generic
git clone https://github.com/abenteuerzeit/ojs-issue-preselection.git issuePreselection

Then enable via the OJS admin interface as described above.

Configuration

Setting Up Issues

Step 1: Navigate to Future Issues

Navigate to Issues > Future Issues

Issues Future Issues

Step 2: Create or Edit an Issue

Click Create or Edit on an issue you want to configure

Create or Edit Issue

Edit is shown after expanding the view by clicking on the triangular bullet to the left of the issue. You can also click on the name directly.

Issue Options

Step 3: Configure Issue Data

You'll see two new fields under Issue Data

Issue Data Fields
  • Enable for Submission: Check to make this issue available for author selection
  • Assigned Editors (Optional): Select one or more editors to automatically assign to submissions

Updates to editor assignments under the issue data tab apply to all active submissions assigned to an issue and not scheduled for publication.

Step 4: Save Changes

Click Save

Author Submission Workflow

Step 1: Start New Submission

Author clicks "New Submission"

Step 2: View Issue Selection

In the "For the Editors" step, they see an "Issue Selection" dropdown

Issue Selection Dropdown

Step 3: Select Target Issue

Author selects the target issue

Target Issue Selection

Step 4: Validation - Missing Issue Selection

If the author does not select an issue, an error notification appears

Error Notification

Step 5: Navigation - Back Button

On clicking Back

Back Navigation

Step 6: Validation - Success

Successful validation

Successful Validation

Step 7: Publication Scheduled

Upon submission, publication is scheduled to the selected issue

Publication Scheduled

Step 8: Guest Editors Added

All pre-assigned editors are added as Guest Editors

Guest Editors Added

Step 9: Notifications Sent

Editors receive notifications

Technical Details

Architecture

The plugin uses OJS's hook system exclusively for integration:

  • Schema Hooks: Extend issue and submission schemas with custom fields
  • Form Hooks: Add UI elements to issue and submission forms
  • Template Hooks: Display selected issue in review section
  • Validation Hooks: Process issue assignment and editor assignment on submission

Data Storage

Uses OJS's existing settings tables (no database migrations required):

  • issue_settings: Stores isOpen (boolean) and editedBy (array of user IDs)
  • submission_settings: Stores preselectedIssueId (integer)
  • publications: Uses existing issueId field for scheduling

Hooks Used

Hook Purpose
Schema::get::issue Add custom fields to issue schema
Templates::Editor::Issues::IssueData::AdditionalMetadata Extend issue form
issueform::readuservars Register custom form variables
issueform::execute Save custom issue settings
Issue::edit Preserve custom data during edits
Schema::get::submission Add preselectedIssueId to submission schema
Form::config::after Add issue selector to submission wizard
Submission::getSubmissionsListProps Include field in Vue state
Template::SubmissionWizard::Section::Review::Editors Display in review section
Submission::validateSubmit Process assignment on submission

Development

Adding Translations

  1. Copy locale/en/locale.po to locale/{locale_code}/locale.po
  2. Translate the strings
  3. Submit a pull request

Testing

The plugin includes Cypress end-to-end tests. To run them:

npx cypress run --config-file plugins/generic/issuePreselection/cypress.json

See cypress/README.md for more details.

Debugging

Enable error logging in config.inc.php:

[debug]
show_stacktrace = On
display_errors = On

The plugin logs extensively with [IssuePreselection] prefix.

Support

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

License

This plugin is licensed under the GNU General Public License v3.0. See LICENSE for details.

About

Plugin for Open Journal Systems for author issue selection during submission. Editors configure available issues and pre-assign guest editors. Submissions are automatically scheduled and assigned to configured editors.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published