From 0401fe596342dec570eba8a3d1c2a0cd606eb2fb Mon Sep 17 00:00:00 2001 From: "J.-S. Caux" <J.S.Caux@uva.nl> Date: Sun, 27 Sep 2020 17:26:43 +0200 Subject: [PATCH] Finish removal of discipline and expertises for profiles --- profiles/admin.py | 2 +- profiles/factories.py | 3 +-- profiles/forms.py | 1 - .../migrations/0033_auto_20200927_1658.py | 21 +++++++++++++++++++ profiles/models.py | 9 ++------ .../templates/profiles/_profile_card.html | 11 +++++----- profiles/views.py | 4 ++-- 7 files changed, 33 insertions(+), 18 deletions(-) create mode 100644 profiles/migrations/0033_auto_20200927_1658.py diff --git a/profiles/admin.py b/profiles/admin.py index 5f6cbe7b2..8c1094bba 100644 --- a/profiles/admin.py +++ b/profiles/admin.py @@ -21,7 +21,7 @@ class AffiliationInline(admin.TabularInline): class ProfileAdmin(admin.ModelAdmin): - list_display = ['__str__', 'email', 'discipline', 'expertises', 'has_active_contributor'] + list_display = ['__str__', 'email', 'acad_field', 'has_active_contributor'] search_fields = ['first_name', 'last_name', 'emails__email', 'orcid_id'] inlines = [ProfileEmailInline, AffiliationInline] autocomplete_fields = [ diff --git a/profiles/factories.py b/profiles/factories.py index 0ff040835..0d5d0cf1e 100644 --- a/profiles/factories.py +++ b/profiles/factories.py @@ -6,13 +6,12 @@ import factory from .models import Profile -from scipost.constants import TITLE_CHOICES, SCIPOST_DISCIPLINES +from scipost.constants import TITLE_CHOICES class ProfileFactory(factory.django.DjangoModelFactory): title = factory.Iterator(TITLE_CHOICES, getter=lambda c: c[0]) first_name = factory.Faker('first_name') last_name = factory.Faker('last_name') - discipline = factory.Iterator(SCIPOST_DISCIPLINES[2][1], getter=lambda c: c[0]) class Meta: model = Profile diff --git a/profiles/forms.py b/profiles/forms.py index dfacc22bc..84363c735 100644 --- a/profiles/forms.py +++ b/profiles/forms.py @@ -24,7 +24,6 @@ class ProfileForm(forms.ModelForm): class Meta: model = Profile fields = ['title', 'first_name', 'last_name', - 'discipline', 'expertises', 'orcid_id', 'webpage', 'acad_field', 'specialties', 'topics', 'accepts_SciPost_emails', 'accepts_refereeing_requests', diff --git a/profiles/migrations/0033_auto_20200927_1658.py b/profiles/migrations/0033_auto_20200927_1658.py new file mode 100644 index 000000000..f59e35895 --- /dev/null +++ b/profiles/migrations/0033_auto_20200927_1658.py @@ -0,0 +1,21 @@ +# Generated by Django 2.2.16 on 2020-09-27 14:58 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('profiles', '0032_populate_profile_acad_field_specialties'), + ] + + operations = [ + migrations.RemoveField( + model_name='profile', + name='discipline', + ), + migrations.RemoveField( + model_name='profile', + name='expertises', + ), + ] diff --git a/profiles/models.py b/profiles/models.py index 683807d5d..ae67c9c77 100644 --- a/profiles/models.py +++ b/profiles/models.py @@ -8,8 +8,7 @@ from django.db.models.functions import Concat from django.shortcuts import get_object_or_404 from scipost.behaviors import orcid_validator -from scipost.constants import ( - TITLE_CHOICES, SCIPOST_DISCIPLINES, DISCIPLINE_PHYSICS, SCIPOST_SUBJECT_AREAS) +from scipost.constants import TITLE_CHOICES from scipost.fields import ChoiceArrayField from scipost.models import Contributor @@ -51,11 +50,7 @@ class Profile(models.Model): title = models.CharField(max_length=4, choices=TITLE_CHOICES, blank=True, null=True) first_name = models.CharField(max_length=64) last_name = models.CharField(max_length=64) - discipline = models.CharField(max_length=20, choices=SCIPOST_DISCIPLINES, - default=DISCIPLINE_PHYSICS, verbose_name='Main discipline') - expertises = ChoiceArrayField( - models.CharField(max_length=10, choices=SCIPOST_SUBJECT_AREAS), - blank=True, null=True) + orcid_id = models.CharField(max_length=20, verbose_name="ORCID id", blank=True, validators=[orcid_validator]) webpage = models.URLField(max_length=300, blank=True) diff --git a/profiles/templates/profiles/_profile_card.html b/profiles/templates/profiles/_profile_card.html index 9c3aa6209..0a7d8253c 100644 --- a/profiles/templates/profiles/_profile_card.html +++ b/profiles/templates/profiles/_profile_card.html @@ -74,13 +74,14 @@ </td> </tr> <tr> - <td>Discipline</td><td>{{ profile.get_discipline_display }}</td> + <td>Field</td><td>{{ profile.acad_field }}</td> </tr> <tr> - <td>Expertises</td> - <td>{% for expertise in profile.expertises %} - <div class="single d-inline" data-specialization="{{expertise|lower}}" data-toggle="tooltip" data-placement="bottom" title="{{expertise|get_specialization_display}}">{{ expertise|get_specialization_code }}</div> - {% endfor %} + <td>Specialties</td> + <td> + {% for specialty in profile.specialties.all %} + <div class="single d-inline" data-specialty="{{ specialty }}" data-toggle="tooltip" data-placement="bottom" title="{{ specialty }}">{{ specialty.code }}</div> + {% endfor %} </td> </tr> <tr><td>ORCID ID</td><td><a href="//orcid.org/{{ profile.orcid_id }}" target="_blank">{{ profile.orcid_id }}</a></td></tr> diff --git a/profiles/views.py b/profiles/views.py index efad548f0..bb6cbb41a 100644 --- a/profiles/views.py +++ b/profiles/views.py @@ -121,8 +121,8 @@ class ProfileCreateView(PermissionsMixin, CreateView): 'first_name': refinv.first_name, 'last_name': refinv.last_name, 'email': refinv.email_address, - 'discipline': refinv.submission.discipline, - 'expertises': refinv.submission.secondary_areas, + 'acad_field': refinv.submission.acad_field.id, + 'specialties': [s.id for s in refinv.submission.specialties.all()], }) elif from_type == 'registrationinvitation': reginv = get_object_or_404(RegistrationInvitation, pk=pk) -- GitLab