diff --git a/app/api/v2/serializers/core/ticket_linked_item.py b/app/api/v2/serializers/core/ticket_linked_item.py index 55378f777..62a28b235 100644 --- a/app/api/v2/serializers/core/ticket_linked_item.py +++ b/app/api/v2/serializers/core/ticket_linked_item.py @@ -5,6 +5,7 @@ from access.serializers.organization import OrganizationBaseSerializer from api.v2.serializers.assistance.request import TicketBaseSerializer +from core.fields.badge import BadgeField from core.models.ticket.ticket_linked_items import TicketLinkedItem @@ -15,12 +16,16 @@ class TicketLinkedItemBaseSerializer(serializers.ModelSerializer): def get_display_name(self, item): - return str( item ) + return '#' + str( item.ticket.id ) url = serializers.HyperlinkedIdentityField( view_name="API:_api_v2_device-detail", format="html" ) + created = serializers.DateTimeField(source='ticket.created') + + status_badge = BadgeField(source='ticket.status_badge') + class Meta: model = TicketLinkedItem @@ -28,7 +33,8 @@ class Meta: fields = [ 'id', 'display_name', - # 'name', + 'status_badge', + 'created' 'url', ] diff --git a/app/api/v2/views/itam/device.py b/app/api/v2/views/itam/device.py index 21afee81b..bc7342076 100644 --- a/app/api/v2/views/itam/device.py +++ b/app/api/v2/views/itam/device.py @@ -34,6 +34,10 @@ class ViewSet(OrganizationMixin, viewsets.ModelViewSet): metadata_class = NavigationMetadata + model_documentation: str = 'https://nofusscomputing.com/docs' + + documentation: str = 'https://nofusscomputing.com/docs/not_model_docs' + permission_classes = [ OrganizationPermissionAPI ] diff --git a/app/api/v2/views/metadata.py b/app/api/v2/views/metadata.py index 6d467dd8d..a0d611913 100644 --- a/app/api/v2/views/metadata.py +++ b/app/api/v2/views/metadata.py @@ -65,7 +65,9 @@ def determine_metadata(self, request, view): metadata['actions']['PUT'] = self.field_choices(metadata['actions']['PUT']) - metadata['documentation'] = 'https://nofusscomputing.com/docs' + if hasattr(view, 'model_documentation'): + + metadata['documentation'] = getattr(view, 'model_documentation') # for field_name, value in metadata['actions']['PUT'].items(): @@ -93,6 +95,10 @@ def determine_metadata(self, request, view): metadata['table_fields'] = view.queryset.model.table_fields + if hasattr(view, 'documentation'): + + metadata['documentation'] = getattr(view, 'documentation') + if 'actions' in metadata: if request.method in metadata['actions']: diff --git a/app/core/models/ticket/ticket_linked_items.py b/app/core/models/ticket/ticket_linked_items.py index 3e15f0904..a8e508cce 100644 --- a/app/core/models/ticket/ticket_linked_items.py +++ b/app/core/models/ticket/ticket_linked_items.py @@ -66,7 +66,11 @@ class Modules(models.IntegerChoices): verbose_name = 'Item ID', ) - table_fields: list = [] + table_fields: list = [ + 'display_name', + 'status_badge', + 'created' + ] def __str__(self) -> str: diff --git a/app/itam/models/device.py b/app/itam/models/device.py index fa7ba614e..0e2b20312 100644 --- a/app/itam/models/device.py +++ b/app/itam/models/device.py @@ -225,9 +225,13 @@ def validate_hostname_format(self): }, { "name": "Tickets", - "layout": "table", "slug": "tickets", - "field": "tickets", + "sections": [ + { + "layout": "table", + "field": "tickets", + } + ], }, { "name": "Notes",