Skip to content

Commit

Permalink
standardize states and triggers more
Browse files Browse the repository at this point in the history
  • Loading branch information
John Tordoff committed Jul 18, 2024
1 parent 1983681 commit b08a843
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 15 deletions.
6 changes: 3 additions & 3 deletions api/providers/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ class Meta:
related_view='providers:collection-providers:provider-moderator-list',
related_view_kwargs={'provider_id': '<_id>'},
)
reviews_workflow = ser.ChoiceField(choices=ModerationWorkflows.choices(), read_only=True)
reviews_workflow = ser.ChoiceField(choices=ModerationWorkflows.choices(legacy=True), read_only=True)

subscriptions = RelationshipField(
related_view='providers:collection-providers:notification-subscription-list',
Expand Down Expand Up @@ -166,7 +166,7 @@ class Meta:
'permissions',
])

reviews_workflow = ser.ChoiceField(choices=ModerationWorkflows.choices(), read_only=True)
reviews_workflow = ser.ChoiceField(choices=ModerationWorkflows.choices(legacy=True), read_only=True)
reviews_comments_anonymous = ser.BooleanField(read_only=True)
allow_updates = ser.BooleanField(read_only=True)
allow_bulk_uploads = ser.BooleanField(read_only=True)
Expand Down Expand Up @@ -216,7 +216,7 @@ class Meta:
advertise_on_discover_page = ser.BooleanField(read_only=True)

# Reviews settings are the only writable fields
reviews_workflow = ser.ChoiceField(choices=ModerationWorkflows.choices())
reviews_workflow = ser.ChoiceField(choices=ModerationWorkflows.choices(legacy=True))
reviews_comments_private = ser.BooleanField()
reviews_comments_anonymous = ser.BooleanField()

Expand Down
2 changes: 1 addition & 1 deletion api/providers/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -481,7 +481,7 @@ def get_queryset(self):

# overrides APIView
def get_renderer_context(self):
context = super().get_renderer_context()
context = super(PreprintProviderPreprintList, self).get_renderer_context()
show_counts = is_truthy(self.request.query_params.get('meta[reviews_state_counts]', False))

if show_counts:
Expand Down
4 changes: 2 additions & 2 deletions osf/models/action.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class Meta:

creator = models.ForeignKey('OSFUser', related_name='+', on_delete=models.CASCADE)

trigger = models.CharField(max_length=31, choices=DefaultTriggers.choices())
trigger = models.CharField(max_length=31, choices=DefaultTriggers.choices(legacy_trigger=True))
from_state = models.CharField(max_length=31, choices=DefaultStates.choices())
to_state = models.CharField(max_length=31, choices=DefaultStates.choices())

Expand All @@ -43,7 +43,7 @@ def target(self):
class ReviewAction(BaseAction):
target = models.ForeignKey('Preprint', related_name='actions', on_delete=models.CASCADE)

trigger = models.CharField(max_length=31, choices=PreprintStateTriggers.char_field_choices())
trigger = models.CharField(max_length=31, choices=PreprintStateTriggers.choices(legacy_trigger=True))
from_state = models.CharField(max_length=31, choices=PreprintStates.char_field_choices())
to_state = models.CharField(max_length=31, choices=PreprintStates.char_field_choices())

Expand Down
2 changes: 1 addition & 1 deletion osf/models/chronos.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class ChronosSubmission(BaseModel):

submitter = models.ForeignKey('osf.OSFUser', null=False, blank=False, on_delete=models.CASCADE)

status = models.IntegerField(null=True, blank=True, default=None, choices=ChronosSubmissionStatus.choices())
status = models.IntegerField(null=True, blank=True, default=None, choices=ChronosSubmissionStatus.choices(legacy_integer=True))

raw_response = DateTimeAwareJSONField(null=False, blank=False)
submission_url = models.TextField(null=False, blank=False)
Expand Down
2 changes: 1 addition & 1 deletion osf/models/mixins.py
Original file line number Diff line number Diff line change
Expand Up @@ -924,7 +924,7 @@ class ReviewProviderMixin(GuardianMixin):
class Meta:
abstract = True

reviews_workflow = models.CharField(null=True, blank=True, max_length=30, choices=ModerationWorkflows.choices())
reviews_workflow = models.CharField(null=True, blank=True, max_length=30, choices=ModerationWorkflows.choices(legacy=True))
reviews_comments_private = models.BooleanField(null=True, blank=True)
reviews_comments_anonymous = models.BooleanField(null=True, blank=True)

Expand Down
27 changes: 20 additions & 7 deletions osf/utils/workflows.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,15 @@ def char_field_choices(cls):
return tuple((member.db_name, member.readable_value) for member in cls)

@classmethod
def choices(cls):
return tuple((member.db_name, member.readable_value) for member in cls)
def choices(cls, legacy=False, legacy_integer=False, legacy_trigger=False):
if legacy:
return tuple((member.legacy_value, str(member.legacy_value).title()) for member in cls)
elif legacy_integer:
return tuple((member.value, str(member.value)) for member in cls)
elif legacy_trigger:
return tuple((member.db_name, member.db_name.title()) for member in cls)
else:
return tuple((member.db_name, member.readable_value) for member in cls)

@classmethod
def from_db_name(cls, state_db_name):
Expand All @@ -27,6 +34,12 @@ def from_db_name(cls, state_db_name):
def readable_value(self):
return super().name.title().replace('_', '')

@property
def legacy_value(self):
if super().name == 'NONE':
return None
return super().name.lower().replace('_', '-')

@property
def db_name(self):
return self.name.lower()
Expand Down Expand Up @@ -236,11 +249,11 @@ class RegistrationStates(ModerationEnum):


class ChronosSubmissionStatus(ModerationEnum):
DRAFT = 0
SUBMITTED = 1
ACCEPTED = 2
PUBLISHED = 3
CANCELLED = 4
DRAFT = 1
SUBMITTED = 2
ACCEPTED = 3
PUBLISHED = 4
CANCELLED = 5


@unique
Expand Down

0 comments on commit b08a843

Please sign in to comment.