Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix/supervisor clarity #566

Merged
merged 6 commits into from
Nov 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified locale/en/LC_MESSAGES/django.mo
Binary file not shown.
361 changes: 115 additions & 246 deletions locale/en/LC_MESSAGES/django.po

Large diffs are not rendered by default.

19 changes: 14 additions & 5 deletions proposals/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ class Meta:
}),
'funding': forms.CheckboxSelectMultiple(),
'applicants': SelectMultipleUser(),
'supervisor': SelectUser(),
'supervisor': forms.Select(),
}
error_messages = {
'title': {
Expand All @@ -65,7 +65,6 @@ class Meta:
}

_soft_validation_fields = ['relation',
'supervisor',
'other_applicants',
'other_stakeholders',
'stakeholders',
Expand Down Expand Up @@ -132,6 +131,7 @@ def __init__(self, *args, **kwargs):

self.fields['supervisor'].choices = [(None, _(
'Selecteer...'))] + get_users_as_list(supervisors)

self.fields['applicants'].choices = get_users_as_list(applicants)

if in_course:
Expand Down Expand Up @@ -166,6 +166,7 @@ def clean(self):
"""
Check for conditional requirements:
- If relation needs supervisor, make sure supervisor is set
- If relation needs supervisor, make sure supervisor is a different person
- If other_applicants is checked, make sure applicants are set
- If other_stakeholders is checked, make sure stakeholders is not empty
- Maximum number of words for summary
Expand All @@ -183,20 +184,28 @@ def clean(self):
self.mark_soft_required(cleaned_data, 'date_start')

relation = cleaned_data.get('relation')
supervisor = cleaned_data.get('supervisor')

if relation and relation.needs_supervisor and \
not cleaned_data.get('supervisor'):
not supervisor:
error = forms.ValidationError(
_('Je dient een eindverantwoordelijke op te geven.'),
_('Je dient een promotor/begeleider op te geven.'),
code='required')
self.add_error('supervisor', error)

if relation and relation.needs_supervisor and \
supervisor == self.user:
error = forms.ValidationError(
_('Je kunt niet jezelf als promotor/begeleider opgeven.')
)
self.add_error('supervisor', error)

if relation.check_in_course:
self.mark_soft_required(cleaned_data, 'student_context')
self.mark_soft_required(cleaned_data, 'student_justification')

other_applicants = cleaned_data.get('other_applicants')
applicants = cleaned_data.get('applicants')
supervisor = cleaned_data.get('supervisor')

# Always make sure the applicant is actually in the applicants list
if self.user not in applicants and self.user != supervisor:
Expand Down
21 changes: 21 additions & 0 deletions proposals/migrations/0049_alter_proposal_supervisor.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Generated by Django 3.2.20 on 2023-10-26 09:38

from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('proposals', '0048_auto_20231016_1202'),
]

operations = [
migrations.AlterField(
model_name='proposal',
name='supervisor',
field=models.ForeignKey(blank=True, help_text='Je aanvraag moet, als je alles hebt ingevuld, via de portal \n naar je promotor of begeleider gestuurd worden. Deze persoon \n is de eindverantwoordelijk onderzoeker, en zal de aanvraag \n vervolgens waar nodig kunnen aanpassen en indienen bij de FETC-GW.\n <br><br><strong>Belangrijk</strong>: als je je promotor of \n begeleider niet kunt vinden met dit veld, dan moeten zij \n waarschijnlijk eerst één keer inloggen in deze portal. \n Je kunt nog wel verder met de aanvraag, maar vergeet dit veld \n niet in te vullen voor je de aanvraag indient. Je aanvraag \n zal dan namelijk niet in behandeling kunnen worden genomen.', null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Promotor/Begeleider'),
),
]
20 changes: 11 additions & 9 deletions proposals/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -514,17 +514,19 @@ class Proposal(models.Model):

supervisor = models.ForeignKey(
settings.AUTH_USER_MODEL,
verbose_name=_('Eindverantwoordelijke onderzoeker'),
verbose_name=_('Promotor/Begeleider'),
blank=True,
null=True,
help_text=_('''Aan het einde van de procedure kan je deze aanvraag ter
verificatie naar je eindverantwoordelijke sturen. De
eindverantwoordelijke zal de aanvraag vervolgens kunnen aanpassen en
indienen bij de FETC-GW. <br><br><strong>NB</strong>: als je je
eindverantwoordelijke niet kunt vinden met dit veld, moeten zij
waarschijnlijk eerst één keer inloggen in deze portal. Je kunt nog wel
verder met de aanvraag, maar vergeet dit veld niet in te vullen voor je de
aanvraag indient.'''),
help_text=_('''Je aanvraag moet, als je alles hebt ingevuld, via de portal
naar je promotor of begeleider gestuurd worden. Deze persoon
is de eindverantwoordelijk onderzoeker, en zal de aanvraag
vervolgens waar nodig kunnen aanpassen en indienen bij de FETC-GW.
<br><br><strong>Belangrijk</strong>: als je je promotor of
begeleider niet kunt vinden met dit veld, dan moeten zij
waarschijnlijk eerst één keer inloggen in deze portal.
Je kunt nog wel verder met de aanvraag, maar vergeet dit veld
niet in te vullen voor je de aanvraag indient. Je aanvraag
zal dan namelijk niet in behandeling kunnen worden genomen.'''),
on_delete=models.CASCADE,
)

Expand Down
18 changes: 1 addition & 17 deletions proposals/templates/proposals/proposal_form.html
Original file line number Diff line number Diff line change
Expand Up @@ -49,23 +49,7 @@
});

// AJAX supervisors
$('select#id_supervisor').select2({
ajax: {
url: '{% url 'main:user_search' %}',
dataType: 'json',
data: function (params) {
return {
q: params.term || '*',
page: params.page || 1
}
},
delay: 1500,
error: function (err) {
console.log(err)
},
cache: true
}
});
$('select#id_supervisor').select2();
});
$(function() {
// adds running wordcounter for the summary and self_assessment text fields
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ <h4>
</tr>
<tr v-if="proposal.supervisor">
<td>
{% trans "Eindverantwoordelijke onderzoeker" %}:
{% trans "Promotor/Begeleider" %}:
</td>
<td v-html="proposal.supervisor.fullname">

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ <h4>
</tr>
<tr v-if="proposal.supervisor">
<td>
{% trans "Eindverantwoordelijke onderzoeker" %}:
{% trans "Promotor/Begeleider" %}:
</td>
<td v-html="proposal.supervisor.fullname">

Expand Down
Loading