FIX #486: Make training item edit work

This commit is contained in:
2022-02-14 11:19:44 +00:00
parent aa19ceaf18
commit ccdc13df93
4 changed files with 5 additions and 10 deletions

View File

@@ -12,7 +12,8 @@ class QualificationForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
pk = kwargs.pop('pk', None)
super().__init__(*args, **kwargs)
self.fields['trainee'].initial = Profile.objects.get(pk=pk)
if pk:
self.fields['trainee'].initial = Profile.objects.get(pk=pk)
self.fields['date'].widget.format = '%Y-%m-%d'
def clean_date(self):

View File

@@ -33,7 +33,7 @@
<td><a href="{{ object.supervisor.get_absolute_url}}">{{ object.supervisor }}</a></td>
<td>{{ object.notes }}</td>
{% if request.user.is_supervisor or perms.training.change_trainingitemqualification %}
<td>{% button 'edit' 'edit_qualification' trainee.pk %}</td>
<td>{% button 'edit' 'edit_qualification' object.pk %}</td>
{% endif %}
</tr>
{% empty %}

View File

@@ -15,7 +15,7 @@ urlpatterns = [
path('trainee/<int:pk>/history', has_perm_or_supervisor('RIGS.view_profile')(VersionHistory.as_view()), name='trainee_history', kwargs={'model': models.Trainee, 'app': 'training'}), # Not picked up automatically because proxy model (I think)
path('trainee/<int:pk>/add_qualification/', has_perm_or_supervisor('training.add_trainingitemqualification')(views.AddQualification.as_view()),
name='add_qualification'),
path('trainee/<int:pk>/edit_qualification/', has_perm_or_supervisor('training.change_trainingitemqualification')(views.EditQualification.as_view()),
path('trainee/edit_qualification/<int:pk>/', has_perm_or_supervisor('training.change_trainingitemqualification')(views.EditQualification.as_view()),
name='edit_qualification'),
path('levels/', login_required(views.LevelList.as_view()), name='level_list'),

View File

@@ -136,15 +136,9 @@ class EditQualification(generic.UpdateView):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["depths"] = models.TrainingItemQualification.CHOICES
trainee = models.Trainee.objects.get(pk=self.kwargs['pk'])
context['page_title'] = f"Edit Qualification {self.object} for {trainee}"
context['page_title'] = f"Edit Qualification <em>{self.object}</em> for {self.object.trainee}"
return context
def get_form_kwargs(self):
kwargs = super().get_form_kwargs()
kwargs['pk'] = self.kwargs['pk']
return kwargs
@transaction.atomic()
@reversion.create_revision()
def form_valid(self, form, *args, **kwargs):