Skip to content

Commit

Permalink
Add error message on category line. Moved validator check to form
Browse files Browse the repository at this point in the history
  • Loading branch information
mscanlan-git committed Dec 12, 2023
1 parent ca267f2 commit 9224953
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 5 deletions.
4 changes: 2 additions & 2 deletions physionet-django/user/fixtures/demo-user.json
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@
"pk": 6,
"fields": {
"password": "pbkdf2_sha256$150000$6e8RyzxeUEDC$XjhKiSVwTTucKJIvpC2gYWL/6jCeSBWuZQRMSe8bm3g=",
"email": "eula_easley@fake_gmail.com",
"email": "eula_easley@mit.edu",
"username": "eulaeasley",
"join_date": "2020-03-29",
"last_login": null,
Expand Down Expand Up @@ -3438,7 +3438,7 @@
"user": [
"eulaeasley"
],
"email": "eula_easley@fake_gmail.com",
"email": "eula_easley@mit.edu",
"is_primary_email": true,
"added_date": "2020-03-29T21:51:08.458Z",
"verification_date": "2020-03-29T21:51:08.458Z",
Expand Down
18 changes: 17 additions & 1 deletion physionet-django/user/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from django.conf import settings
from django.contrib.auth import forms as auth_forms
from django.contrib.auth import password_validation
from django.core.exceptions import ValidationError
from django.core.files.uploadedfile import UploadedFile
from django.db import transaction
from django.db.models import F, Q
Expand All @@ -28,7 +29,7 @@
)
from user.trainingreport import TrainingCertificateError, find_training_report_url
from user.userfiles import UserFiles
from user.validators import UsernameValidator, validate_name, validate_training_file_size
from user.validators import UsernameValidator, validate_email, validate_name, validate_training_file_size
from user.validators import validate_institutional_email
from user.widgets import ProfilePhotoInput

Expand Down Expand Up @@ -474,6 +475,21 @@ def __init__(self, user, *args, **kwargs):
'organization_name':self.profile.affiliation,
'webpage':self.profile.website}

def clean(self):
email = self.user.email
category = self.cleaned_data.get('researcher_category')

if category in [0, 1, 2, 7]:
validate_email(email)
domains = [
"yahoo.com", "163.com", "126.com", "outlook.com", "gmail.com", "qq.com",
"foxmail.com", "hotmail.com", "168.com"
]
if email.split('@')[-1].lower() in domains:
self.add_error('researcher_category', 'Please provide your academic email address'
' in your email settings.'
' Select your academic email as your primary email address.')


class ResearchCAF(forms.ModelForm):
"""
Expand Down
3 changes: 2 additions & 1 deletion physionet-django/user/validators.py
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,8 @@ def validate_institutional_email(value):
Validate that the email address is from an institutional domain.
"""
validate_email(value)
domains = ["yahoo.com", "163.com", "126.com", "outlook.com", "gmail.com", "qq.com", "foxmail.com"]
domains = ["yahoo.com", "163.com", "126.com", "outlook.com", "gmail.com", "qq.com",
"foxmail.com", "hotmail.com", "168.com"]
if value.split('@')[-1].lower() in domains:
raise ValidationError('Please provide an academic or institutional email address.')

Expand Down
2 changes: 1 addition & 1 deletion physionet-django/user/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
from physionet.settings.base import StorageTypes
from project.models import Author, DUASignature, DUA, PublishedProject
from requests_oauthlib import OAuth2Session
from user import forms, validators
from user import forms
from user.models import (
AssociatedEmail,
CodeOfConduct,
Expand Down

0 comments on commit 9224953

Please sign in to comment.