From 674e10c7facda1316cd556b437deb9ec16283f49 Mon Sep 17 00:00:00 2001 From: jebus Date: Wed, 27 May 2026 21:09:17 +1200 Subject: [PATCH] [Fix] Legacy API Package Endpoint, Pepper Unit in Pathway View (#399) Co-authored-by: Tim Lorsbach Reviewed-on: https://git.envipath.com/enviPath/enviPy/pulls/399 --- epdb/legacy_api.py | 51 +++++++++++++++++++++++++++++++++++----------- static/js/pw.js | 2 +- 2 files changed, 40 insertions(+), 13 deletions(-) diff --git a/epdb/legacy_api.py b/epdb/legacy_api.py index d2153a6e..952d4d5d 100644 --- a/epdb/legacy_api.py +++ b/epdb/legacy_api.py @@ -386,23 +386,50 @@ class PackageSchema(Schema): @staticmethod def resolve_readers(obj: Package): - users = User.objects.filter( - id__in=UserPackagePermission.objects.filter( - package=obj, permission=UserPackagePermission.READ[0] - ).values_list("user", flat=True) - ).distinct() + readers = [] - return [{u.id: u.get_name()} for u in users] + user_ids = UserPackagePermission.objects.filter(package=obj).values_list("user", flat=True) + + users = User.objects.filter(id__in=user_ids).distinct() + + for u in users: + readers.append({"id": str(u.url), "identifier": "user", "name": u.get_name()}) + + group_ids = GroupPackagePermission.objects.filter(package=obj).values_list( + "group", flat=True + ) + + groups = Group.objects.filter(id__in=group_ids).distinct() + + for g in groups: + readers.append({"id": str(g.url), "identifier": "group", "name": g.get_name()}) + + return readers @staticmethod def resolve_writers(obj: Package): - users = User.objects.filter( - id__in=UserPackagePermission.objects.filter( - package=obj, permission=UserPackagePermission.WRITE[0] - ).values_list("user", flat=True) - ).distinct() + writers = [] - return [{u.id: u.get_name()} for u in users] + user_ids = UserPackagePermission.objects.filter( + package=obj, + permission__in=[UserPackagePermission.WRITE[0], UserPackagePermission.ALL[0]], + ).values_list("user", flat=True) + + users = User.objects.filter(id__in=user_ids).distinct() + + for u in users: + writers.append({"id": str(u.url), "identifier": "user", "name": u.get_name()}) + + group_ids = GroupPackagePermission.objects.filter( + package=obj, permission=[UserPackagePermission.WRITE[0], UserPackagePermission.ALL[0]] + ).values_list("group", flat=True) + + groups = Group.objects.filter(id__in=group_ids).distinct() + + for g in groups: + writers.append({"id": str(g.url), "identifier": "group", "name": g.get_name()}) + + return writers @staticmethod def resolve_review_comment(obj): diff --git a/static/js/pw.js b/static/js/pw.js index 26f4d870..7bf7fff7 100644 --- a/static/js/pw.js +++ b/static/js/pw.js @@ -463,7 +463,7 @@ function draw(pathway, elem) { // TODO needs to be generic once we store it as AddInf for (var s of n.predicted_properties["PepperPrediction"]) { if (s["mean"] != null) { - tempContent += "DT50 predicted via Pepper: " + s["mean"].toFixed(2) + "
" + tempContent += "DT50 predicted via Pepper: " + s["mean"].toFixed(2) + " days
" } } }