Skip to content
Snippets Groups Projects
Commit 2db67a9e authored by Dan Braghis's avatar Dan Braghis Committed by Todd Dembrey
Browse files

Add validation for repeat review attempts

parent 8bcb342f
No related branches found
No related tags found
No related merge requests found
import json
from django import forms
from django.core.exceptions import ValidationError, NON_FIELD_ERRORS
from .models import Review, RECOMMENDATION_CHOICES
......@@ -21,16 +22,28 @@ class BaseReviewForm(forms.ModelForm):
model = Review
fields: list = []
error_messages = {
NON_FIELD_ERRORS: {
'unique_together': "You have already posted a review for this submission",
}
}
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request')
self.submission = kwargs.pop('submission')
super().__init__(*args, **kwargs)
def save(self, *args, **kwargs):
def validate_unique(self):
super().validate_unique()
self.instance.submission = self.submission
self.instance.author = self.request.user
self.instance.review = json.dumps(self.cleaned_data)
super().save(*args, **kwargs)
try:
self.instance.validate_unique()
except ValidationError as e:
self._update_errors(e)
class ConceptReviewForm(BaseReviewForm):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment