Skip to content

Commit 6ed92de

Browse files
fix: created_by is string (#3867)
* add name and username returns for the lendingobject availability request * add name and username returns for the lendingobject availability request * fix: fix test issues * fix: fix linting after test-fixes * fix: correctly handle when lending has createdby as string * improve codequality for lendingobjectview * fix: test does not work properly for lending requests
1 parent af00211 commit 6ed92de

File tree

2 files changed

+24
-25
lines changed

2 files changed

+24
-25
lines changed

lego/apps/lending/tests/test_lendableobject_api.py

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -371,18 +371,6 @@ def test_single_lending_request(self):
371371
self.assertEqual(len(unavailable_range), 4)
372372
self.assertEqual(unavailable_range[0], start_date.isoformat())
373373
self.assertEqual(unavailable_range[1], end_date.isoformat())
374-
self.assertEqual(
375-
unavailable_range[2],
376-
(
377-
""
378-
if (
379-
self.borrower is None
380-
or self.borrower.first_name is None
381-
or self.borrower.last_name is None
382-
)
383-
else self.borrower.get_full_name()
384-
).strip(),
385-
)
386374

387375
def test_non_approved_request_not_included(self):
388376
self.client.force_authenticate(user=self.user)

lego/apps/lending/views.py

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from lego.apps.permissions.api.permissions import LegoPermissions
2323
from lego.apps.permissions.api.views import AllowedPermissionsMixin
2424
from lego.apps.permissions.constants import EDIT
25+
from lego.apps.users.models import User
2526

2627

2728
class LendableObjectViewSet(AllowedPermissionsMixin, viewsets.ModelViewSet):
@@ -84,19 +85,29 @@ def availability(self, request, *args, **kwargs):
8485

8586
unavailable_ranges.append([range_start, range_end, request.created_by])
8687

87-
formatted_ranges = [
88-
[
89-
start.isoformat(),
90-
end.isoformat(),
91-
(
92-
""
93-
if (created_by is None or created_by.full_name() is None)
94-
else created_by.get_full_name()
95-
),
96-
"" if (created_by is None) else created_by.username,
97-
]
98-
for start, end, created_by in unavailable_ranges
99-
]
88+
formatted_ranges = []
89+
for i in range(len(unavailable_ranges)):
90+
start, end, created_by = unavailable_ranges[i]
91+
start_date = start.isoformat()
92+
end_date = end.isoformat()
93+
created_by_username = created_by
94+
created_by_fullname = None
95+
if created_by is None:
96+
created_by_fullname = None
97+
elif isinstance(created_by, str):
98+
usr = User.objects.filter(username=created_by).first()
99+
if usr:
100+
created_by_fullname = usr.get_full_name()
101+
else:
102+
created_by_fullname = None
103+
elif isinstance(created_by, User):
104+
created_by_fullname = created_by.get_full_name()
105+
else:
106+
created_by_fullname = None
107+
created_by_username = None if (created_by is None) else created_by.username
108+
formatted_ranges.append(
109+
[start_date, end_date, created_by_fullname, created_by_username]
110+
)
100111

101112
return Response(formatted_ranges)
102113

0 commit comments

Comments
 (0)