[TGDK][Feature] Add Research Topics System to Improve Editor and Reviewer Assignments #4560
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Important
This implementation is part of a set of features and fixes developed within the context of a project for the TGDK academic journal, with the goal of customizing Janeway to meet the journal's specific needs, which may also be extended to other contexts.
Note
This implementation requires as a base:
Problem / Objective
The objective is to enhance the capabilities of the current assignment system by introducing a research topic-based approach to optimize the selection of editors and reviewers. The system enables journals to define and manage predefined research topics to tag both articles and users, with the aim of prioritizing matches between the research topics defined for articles and the areas of expertise of journal members. This enables more precise and tailored assignments, aligning with the journal's editorial needs.
Solution
To enable this functionality, a new journal-level configuration, "Enable Research Topics", has been introduced. This option, located in the Review Settings, is disabled by default to maintain compatibility with existing workflows.
The solution also leverages the Django Select2 library to construct the multiple-selection fields for primary and secondary research topics, providing a dynamic and intuitive interface for selecting and managing study topics in articles and user profiles.
1. Research Topics Management System
Creation of interfaces and services that allow creating and managing the journal's research topics. These research topics are organized into groups, which can also be created and managed within the same interface. This interface provides:
Two new models are defined to store these research topics:
Topics
→ Defines the research topics for assigning articles and accountsGroupTopic
→ Defines the research topic groups2. Research Topics in Forms
Extension of interfaces and forms for creating and editing articles and accounts, with two new selection fields:
Preferred Research Topics
.General Research Topics
.The interfaces and services modified and extended are:
Note
These new fields are not defined as part of the new user registration form, as it would impose (even if optional) and complicate authors who want to enter the system and are not part of the journal members.
The following models are defined to store these relationships and assignments between research topics, articles, and users:
ArticleTopic
→ Defines the relationship between an article and a research topic. The relationship can be categorized as primary or secondary (mutually exclusive) and is many-to-many.AccountTopic
→ Defines the relationship between an account and a research topic. The relationship can be categorized as primary or secondary (mutually exclusive) and is many-to-many.3. Assignment Prioritization System
The tagging process, for both an article and a user with a research topic, is represented at two levels, allowing matches to be ranked and prioritized according to a simple scoring system:
This user prioritization system considers and equally prioritizes users with fewer active reviews.