Skip to content
Snippets Groups Projects
Commit b00d0427 authored by Nadja Geisler's avatar Nadja Geisler :sunny:
Browse files

Merge branch 'fix-constraint-violation-string' into 'main'

Hide blank fields in string representation of ConstraintViolation and add edit link for each violation on constraint violation overview

Closes #130

See merge request !117
parents 64ca9fd5 560ccb4a
No related branches found
No related tags found
1 merge request!117Hide blank fields in string representation of ConstraintViolation and add edit link for each violation on constraint violation overview
Pipeline #81895 passed
......@@ -2,6 +2,7 @@ import itertools
from datetime import timedelta
from django.db import models
from django.urls import reverse_lazy
from django.utils import timezone
from django.utils.datetime_safe import datetime
from django.utils.text import slugify
......@@ -529,7 +530,7 @@ class ConstraintViolation(models.Model):
# Stringify all other fields
for field in self.fields:
a = getattr(self, field, None)
if a is not None:
if a is not None and str(a) != '':
output.append(f"{field}: {a}")
return ", ".join(output)
......@@ -539,6 +540,10 @@ class ConstraintViolation(models.Model):
def details(self):
return self.get_details()
@property
def edit_url(self):
return reverse_lazy('admin:AKModel_constraintviolation_change', kwargs={'object_id': self.pk})
@property
def level_display(self):
return self.get_level_display()
......
......@@ -114,7 +114,7 @@ class EventsViewSet(EventSlugMixin, viewsets.ModelViewSet):
class ConstraintViolationSerializer(serializers.ModelSerializer):
class Meta:
model = ConstraintViolation
fields = ['pk', 'type_display', 'aks', 'ak_slots', 'ak_owner', 'room', 'requirement', 'category', 'comment', 'timestamp_display', 'manually_resolved', 'level_display', 'details']
fields = ['pk', 'type_display', 'aks', 'ak_slots', 'ak_owner', 'room', 'requirement', 'category', 'comment', 'timestamp_display', 'manually_resolved', 'level_display', 'details', 'edit_url']
class ConstraintViolationsViewSet(EventSlugMixin, viewsets.ModelViewSet):
......
......@@ -63,7 +63,7 @@
// Update violations table
for(let i=0;i<response.length;i++) {
table_html += "<tr><td>" + response[i].level_display + "</td><td>" + response[i].type_display + "</td><td>" + response[i].details + "</td><td>" + response[i].timestamp_display + "</td><td></td></tr>";
table_html += "<tr><td>" + response[i].level_display + "</td><td>" + response[i].type_display + "</td><td>" + response[i].details + "</td><td class='nowrap'>" + response[i].timestamp_display + "</td><td><a href='" + response[i].edit_url + "'><i class='btn btn-primary fa fa-pen'></i></a></td></tr>";
}
}
else {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment