Skip to content

Commit

Permalink
Update models for generic prepub notifications #4089
Browse files Browse the repository at this point in the history
  • Loading branch information
joemull authored and ajrbyers committed Jun 4, 2024
1 parent fa1f9e8 commit 071cc68
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 9 deletions.
4 changes: 2 additions & 2 deletions src/journal/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -119,11 +119,11 @@ def _section(self, obj):

class FixedPubCheckItemsAdmin(admin_utils.ArticleFKModelAdmin):
list_display = ('_article', '_journal', 'metadata', 'verify_doi',
'select_issue', 'set_pub_date', 'notify_the_author',
'select_issue', 'set_pub_date', 'send_notifications',
'select_render_galley', 'select_article_image',
'select_open_reviews')
list_filter = ('article__journal', 'metadata', 'verify_doi',
'select_issue', 'set_pub_date', 'notify_the_author',
'select_issue', 'set_pub_date', 'send_notifications',
'select_render_galley', 'select_article_image',
'select_open_reviews')
search_fields = ('article__pk', 'article__title', 'article__journal__code')
Expand Down
39 changes: 39 additions & 0 deletions src/journal/migrations/0065_prepub_send_notifications.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Generated by Django 3.2.20 on 2024-04-17 15:26

from django.db import migrations
from utils import migration_utils


def replace_peer_reviewer_pub_notification(apps, schema_editor):
values_to_replace = [
'<p>Dear {{reviewer.full_name}}</p><p>An article that you served as peer reviewer for, \"{{ article.safe_title }}\", has been set for publication.<br><br>The article will be published on {{ article.date_published }}.<br><br>Regards,',
]

replacement_value = '<p>Dear reviewers,</p><p>An article that you served as peer reviewer for, \"{{ article.safe_title }}\", has been set for publication.<br><br>The article will be published on {{ article.date_published }}.<br><br>Regards,'

migration_utils.update_default_setting_values(
apps,
setting_name='peer_reviewer_pub_notification',
group_name='email',
values_to_replace=values_to_replace,
replacement_value=replacement_value,
)


class Migration(migrations.Migration):

dependencies = [
('journal', '0064_journal_default_editorial_team_image'),
]

operations = [
migrations.RenameField(
model_name='fixedpubcheckitems',
old_name='notify_the_author',
new_name='send_notifications',
),
migrations.RunPython(
replace_peer_reviewer_pub_notification,
reverse_code=migrations.RunPython.noop,
),
]
2 changes: 1 addition & 1 deletion src/journal/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -1210,7 +1210,7 @@ class FixedPubCheckItems(models.Model):
verify_doi = models.BooleanField(default=False)
select_issue = models.BooleanField(default=False)
set_pub_date = models.BooleanField(default=False)
notify_the_author = models.BooleanField(default=False)
send_notifications = models.BooleanField(default=False)
select_render_galley = models.BooleanField(default=False)
select_article_image = models.BooleanField(default=False)
select_open_reviews = models.BooleanField(default=False)
Expand Down
20 changes: 14 additions & 6 deletions src/submission/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -1116,6 +1116,12 @@ def identifiers(self):
def get_pubid(self):
return self.get_identifier('pubid')

def non_correspondence_authors(self):
if self.correspondence_author:
return self.authors.exclude(pk=self.correspondence_author.pk)
else:
return self.authors

def is_accepted(self):
if self.date_published:
return True
Expand Down Expand Up @@ -1321,13 +1327,15 @@ def contact_emails(self):
emails.append(self.owner.email)
return set(emails)

def peer_reviewers(self, emails=False):
reviewers = [assignment.reviewer for assignment in self.reviewassignment_set.all()]

def peer_reviewers(self, emails=False, completed=False):
if completed:
assignments = self.completed_reviews_with_decision
else:
assignments = self.reviewassignment_set.all()
if emails:
return set([reviewer.email for reviewer in reviewers])

return set(reviewers)
return set(assignment.reviewer.email for assignment in assignments)
else:
return set(assignment.reviewer for assignment in assignments)

def issues_list(self):
from journal import models as journal_models
Expand Down

0 comments on commit 071cc68

Please sign in to comment.