From fa15466ce4e03aa13e5ed73a96df3e79de33d5d6 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 16 Aug 2025 08:10:02 +1000 Subject: [PATCH] Fix api_url for 'user' type (#10182) * Fix api_url for 'user' type * Added regression test --- src/backend/InvenTree/InvenTree/metadata.py | 2 +- src/backend/InvenTree/users/test_api.py | 18 ++++++++++++++++++ src/frontend/src/components/render/User.tsx | 18 +++++++++++++++++- 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/backend/InvenTree/InvenTree/metadata.py b/src/backend/InvenTree/InvenTree/metadata.py index c8819b411a..132e5d0c89 100644 --- a/src/backend/InvenTree/InvenTree/metadata.py +++ b/src/backend/InvenTree/InvenTree/metadata.py @@ -396,7 +396,7 @@ class InvenTreeMetadata(SimpleMetadata): # Special case for special models if field_info['model'] == 'user': - field_info['api_url'] = (reverse('api-user-list'),) + field_info['api_url'] = reverse('api-user-list') elif field_info['model'] == 'group': field_info['api_url'] = reverse('api-group-list') elif field_info['model'] == 'contenttype': diff --git a/src/backend/InvenTree/users/test_api.py b/src/backend/InvenTree/users/test_api.py index f2f3772438..9728e11435 100644 --- a/src/backend/InvenTree/users/test_api.py +++ b/src/backend/InvenTree/users/test_api.py @@ -42,6 +42,24 @@ class UserAPITests(InvenTreeAPITestCase): fields['is_staff']['help_text'], 'Does this user have staff permissions' ) + def test_api_url(self): + """Test the 'api_url attribute in related API endpoints. + + Ref: https://github.com/inventree/InvenTree/pull/10182 + """ + self.user.is_superuser = True + self.user.save() + + url = reverse('api-build-list') + response = self.options(url) + actions = response.data['actions']['POST'] + issued_by = actions['issued_by'] + + self.assertEqual(issued_by['pk_field'], 'pk') + self.assertEqual(issued_by['model'], 'user') + self.assertEqual(issued_by['api_url'], reverse('api-user-list')) + self.assertEqual(issued_by['default'], self.user.pk) + def test_user_api(self): """Tests for User API endpoints.""" url = reverse('api-user-list') diff --git a/src/frontend/src/components/render/User.tsx b/src/frontend/src/components/render/User.tsx index 313b1c6b84..5869d2564a 100644 --- a/src/frontend/src/components/render/User.tsx +++ b/src/frontend/src/components/render/User.tsx @@ -1,6 +1,8 @@ +import { Badge, Group, Text } from '@mantine/core'; import { IconUser, IconUsersGroup } from '@tabler/icons-react'; import type { ReactNode } from 'react'; +import { t } from '@lingui/core/macro'; import { type InstanceRenderInterface, RenderInlineModel } from './Instance'; export function RenderOwner({ @@ -29,7 +31,21 @@ export function RenderUser({ instance && ( + {!instance.is_active && ( + {t`Inactive`} + )} + + } + suffix={ + + + {instance.first_name} {instance.last_name} + + + + } /> ) );