Test work, some CSS fixes, mild reversion pokage

This commit is contained in:
2022-01-27 00:51:08 +00:00
parent 8ef520619a
commit eda314c092
6 changed files with 39 additions and 26 deletions

View File

@@ -77,13 +77,13 @@
border-collapse: separate !important;
border-spacing: 0;
}
.table tr th {
#event_table tr th {
border-right: 0 !important;
}
.table tr td {
#event_table tr td {
border-left: 0 !important;
}
.table tr td:not(:last-child) {
#event_table tr td:not(:last-child) {
border-right: 0 !important;
}
@each $color, $value in $theme-colors {

View File

@@ -2,7 +2,7 @@ from django.contrib import admin
from training import models
from reversion.admin import VersionAdmin
# admin.site.register(models.Trainee, VersionAdmin)
admin.site.register(models.TrainingCategory, VersionAdmin)
admin.site.register(models.TrainingItem, VersionAdmin)
admin.site.register(models.TrainingLevel, VersionAdmin)

View File

@@ -11,7 +11,7 @@ class TraineeManager(models.Manager):
return super().get_queryset().filter(is_active=True, is_approved=True)
@reversion.register(for_concrete_model=False, fields=[])
@reversion.register(for_concrete_model=False, fields=['is_supervisor'])
class Trainee(Profile, RevisionMixin):
class Meta:
proxy = True
@@ -50,10 +50,6 @@ class Trainee(Profile, RevisionMixin):
def display_id(self):
return str(self)
@property
def full_name(self):
return self.first_name + " " + self.last_name
class TrainingCategory(models.Model):
reference_number = models.IntegerField(unique=True)
@@ -226,9 +222,9 @@ class TrainingLevel(models.Model, RevisionMixin):
if self.level == self.TA:
return self.get_level_display()
else:
return "{} Common Competencies".format(self.get_level_display())
return f"{self.get_level_display()} Common Competencies"
else:
return "{} {}".format(self.get_department_display(), self.get_level_display())
return f"{self.get_department_display()} {self.get_level_display()}"
@property
def activity_feed_string(self):
@@ -243,7 +239,7 @@ class TrainingLevel(models.Model, RevisionMixin):
icon = f"<span class='fas fa-{self.icon}'></span>"
else:
icon = "".join([w[0] for w in str(self).split()])
return mark_safe("<span class='badge badge-{} badge-pill' data-toggle='tooltip' title='{}'>{}</span>".format(self.department_colour, str(self), icon))
return mark_safe(f"<span class='badge badge-{self.department_colour} badge-pill' data-toggle='tooltip' title='{str(self)}'>{icon}</span>")
@reversion.register
@@ -252,8 +248,6 @@ class TrainingLevelRequirement(models.Model, RevisionMixin):
item = models.ForeignKey('TrainingItem', on_delete=models.CASCADE)
depth = models.IntegerField(choices=TrainingItemQualification.CHOICES)
reversion_hide = True
def __str__(self):
depth = TrainingItemQualification.CHOICES[self.depth][1]
return f"{depth} in {self.item}"
@@ -269,8 +263,6 @@ class TrainingLevelQualification(models.Model, RevisionMixin):
confirmed_on = models.DateTimeField(null=True)
confirmed_by = models.ForeignKey('Trainee', related_name='confirmer', on_delete=models.CASCADE, null=True)
reversion_hide = True
@property
def get_icon(self):
return self.level.get_icon

View File

@@ -7,7 +7,10 @@
{% load button from filters %}
{% load get_levels_of_depth from tags %}
{% load static %}
{% block js %}
<script src="{% static "js/tooltip.js" %}"></script>
<script>
$(function () {
$('[data-toggle="tooltip"]').tooltip();

View File

@@ -42,22 +42,40 @@ def test_add_requirement(admin_client, level):
assertContains(response, level.pk)
def test_trainee_detail(admin_client, trainee, admin_user):
url = reverse('trainee_detail', kwargs={'pk': admin_user.pk})
def get_response(admin_client, url, kwargs={}):
url = reverse(url, kwargs=kwargs)
response = admin_client.get(url)
assert response.status_code == 200
return response
def test_trainee_detail(admin_client, trainee, admin_user):
response = get_response(admin_client, 'trainee_detail', {'pk': admin_user.pk})
assertContains(response, "Your Training Record")
assertContains(response, "No qualifications in any levels")
url = reverse('trainee_detail', kwargs={'pk': trainee.pk})
response = admin_client.get(url)
response = get_response(admin_client, 'trainee_detail', {'pk': trainee.pk})
assertNotContains(response, "Your")
name = trainee.first_name + " " + trainee.last_name
assertContains(response, f"{name}'s Training Record")
assertContains(response, f"{trainee.get_full_name()}'s Training Record")
def test_trainee_item_detail(admin_client, trainee):
url = reverse('trainee_item_detail', kwargs={'pk': trainee.pk})
response = admin_client.get(url)
assert response.status_code == 200
response = get_response(admin_client, 'trainee_item_detail', {'pk': trainee.pk})
assertContains(response, "Nothing found")
def test_item_list(admin_client, training_item):
response = get_response(admin_client, 'item_list')
assertContains(response, str(training_item.category))
def test_trainee_list_search(admin_client, admin_user, trainee, supervisor):
response = get_response(admin_client, 'trainee_list')
assertContains(response, admin_user.get_full_name())
assertContains(response, trainee.get_full_name())
assertContains(response, supervisor.get_full_name())
url = reverse('trainee_list')
response = admin_client.get(url, {'q': trainee.get_full_name()})
assertContains(response, trainee.get_full_name())
assertNotContains(response, supervisor.get_full_name())

View File

@@ -35,7 +35,7 @@ class TraineeDetail(views.ProfileDetail):
if self.request.user.pk == self.object.pk:
context["page_title"] = "Your Training Record"
else:
context["page_title"] = f"{self.object.full_name}'s Training Record"
context["page_title"] = f"{self.object.get_full_name()}'s Training Record"
context["started_levels"] = self.object.started_levels()
context["completed_levels"] = self.object.level_qualifications.all()
context["categories"] = models.TrainingCategory.objects.all().prefetch_related('items')