Skip to content

Commit aac971f

Browse files
committed
Merge branch 'release/0.3.14' into main
2 parents 04f457c + 7527d19 commit aac971f

32 files changed

+298
-386
lines changed
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
from django.core.handlers.wsgi import WSGIRequest
22
from edc_randomization.blinding import user_is_blinded_from_request
33

4+
from .list_filters import AssignmentListFilter
5+
46

57
def remove_fields_for_blinded_users(request: WSGIRequest, fields: tuple) -> tuple:
68
"""You need to secure custom SimpleListFilters yourself"""
79
if user_is_blinded_from_request(request):
810
fields = list(fields)
911
for f in fields:
1012
if isinstance(f, str):
11-
if "assignment" in f or "lot_no" in f:
13+
if "assignment" in f or "lot_no" in f or "lot" in f:
1214
fields.remove(f)
15+
elif issubclass(f, AssignmentListFilter):
16+
fields.remove(f)
1317
fields = tuple(fields)
1418
return fields

edc_pharmacy/admin/stock/allocation_admin.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,21 @@
33
from django.urls import NoReverseMatch, reverse
44
from django.utils.translation import gettext
55
from django_audit_fields import audit_fieldset_tuple
6+
from edc_model_admin.history import SimpleHistoryAdmin
67
from edc_utils.date import to_local
78

89
from ...admin_site import edc_pharmacy_admin
910
from ...models import Allocation
1011
from ..list_filters import AssignmentListFilter, TransferredFilter
1112
from ..model_admin_mixin import ModelAdminMixin
13+
from ..remove_fields_for_blinded_users import remove_fields_for_blinded_users
1214

1315

1416
@admin.register(Allocation, site=edc_pharmacy_admin)
15-
class AllocationAdmin(ModelAdminMixin, admin.ModelAdmin):
17+
class AllocationAdmin(ModelAdminMixin, SimpleHistoryAdmin):
1618
change_list_title = "Pharmacy: Allocations"
1719
change_form_title = "Pharmacy: Allocation"
20+
history_list_display = ()
1821
show_object_tools = True
1922
show_cancel = True
2023
list_per_page = 20
@@ -70,6 +73,21 @@ class AllocationAdmin(ModelAdminMixin, admin.ModelAdmin):
7073
"allocated_by",
7174
)
7275

76+
def get_list_display(self, request):
77+
fields = super().get_list_display(request)
78+
fields = remove_fields_for_blinded_users(request, fields)
79+
return fields
80+
81+
def get_list_filter(self, request):
82+
fields = super().get_list_filter(request)
83+
fields = remove_fields_for_blinded_users(request, fields)
84+
return fields
85+
86+
def get_search_fields(self, request):
87+
fields = super().get_search_fields(request)
88+
fields = remove_fields_for_blinded_users(request, fields)
89+
return fields
90+
7391
@admin.display(description="ALLOCATION #", ordering="allocation_identifier")
7492
def identifier(self, obj):
7593
return obj.allocation_identifier.split("-")[0]

edc_pharmacy/admin/stock/container_admin.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from django.contrib import admin
22
from django_audit_fields.admin import audit_fieldset_tuple
3+
from edc_model_admin.history import SimpleHistoryAdmin
34

45
from ...admin_site import edc_pharmacy_admin
56
from ...forms import ContainerForm
@@ -9,9 +10,10 @@
910

1011

1112
@admin.register(Container, site=edc_pharmacy_admin)
12-
class ContainerAdmin(ModelAdminMixin, admin.ModelAdmin):
13+
class ContainerAdmin(ModelAdminMixin, SimpleHistoryAdmin):
1314
change_list_title = "Pharmacy: Containers"
1415
show_object_tools = True
16+
history_list_display = ()
1517
list_per_page = 20
1618

1719
form = ContainerForm

edc_pharmacy/admin/stock/dispense_admin.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from django.template.loader import render_to_string
33
from django.urls import reverse
44
from django_audit_fields.admin import audit_fieldset_tuple
5+
from edc_model_admin.history import SimpleHistoryAdmin
56
from edc_utils.date import to_local
67

78
from ...admin_site import edc_pharmacy_admin
@@ -11,9 +12,10 @@
1112

1213

1314
@admin.register(Dispense, site=edc_pharmacy_admin)
14-
class DispenseAdmin(ModelAdminMixin, admin.ModelAdmin):
15+
class DispenseAdmin(ModelAdminMixin, SimpleHistoryAdmin):
1516
change_list_title = "Pharmacy: Dispense"
1617
change_form_title = "Pharmacy: Dispense"
18+
history_list_display = ()
1719
show_object_tools = True
1820
show_cancel = True
1921
list_per_page = 20

edc_pharmacy/admin/stock/dispense_item_admin.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from django.template.loader import render_to_string
33
from django.urls import reverse
44
from django_audit_fields.admin import audit_fieldset_tuple
5+
from edc_model_admin.history import SimpleHistoryAdmin
56
from edc_utils.date import to_local
67

78
from ...admin_site import edc_pharmacy_admin
@@ -10,9 +11,10 @@
1011

1112

1213
@admin.register(DispenseItem, site=edc_pharmacy_admin)
13-
class DispenseItemAdmin(ModelAdminMixin, admin.ModelAdmin):
14+
class DispenseItemAdmin(ModelAdminMixin, SimpleHistoryAdmin):
1415
change_list_title = "Pharmacy: Dispense items"
1516
change_form_title = "Pharmacy: Dispense item"
17+
history_list_display = ()
1618
show_object_tools = True
1719
show_cancel = True
1820
list_per_page = 20

edc_pharmacy/admin/stock/location_admin.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from django.contrib import admin
2+
from edc_model_admin.history import SimpleHistoryAdmin
23

34
from ...admin_site import edc_pharmacy_admin
45
from ...forms import LocationForm
@@ -7,7 +8,8 @@
78

89

910
@admin.register(Location, site=edc_pharmacy_admin)
10-
class LocationAdmin(ModelAdminMixin, admin.ModelAdmin):
11+
class LocationAdmin(ModelAdminMixin, SimpleHistoryAdmin):
12+
history_list_display = ()
1113
show_cancel = True
1214
ordering = ("name",)
1315
list_per_page = 20

edc_pharmacy/admin/stock/lot_admin.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from django.contrib import admin
44
from django_audit_fields.admin import audit_fieldset_tuple
5+
from edc_model_admin.history import SimpleHistoryAdmin
56
from edc_randomization.blinding import user_is_blinded_from_request
67

78
from ...admin_site import edc_pharmacy_admin
@@ -12,9 +13,10 @@
1213

1314

1415
@admin.register(Lot, site=edc_pharmacy_admin)
15-
class LotAdmin(ModelAdminMixin, admin.ModelAdmin):
16-
change_list_title = "Pharmacy: Lots"
17-
change_form_title = "Pharmacy: Lot"
16+
class LotAdmin(ModelAdminMixin, SimpleHistoryAdmin):
17+
change_list_title = "Pharmacy: Batches"
18+
change_form_title = "Pharmacy: Batch"
19+
history_list_display = ()
1820
show_object_tools = True
1921
show_cancel = True
2022
list_per_page = 20

edc_pharmacy/admin/stock/order_admin.py

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,40 +4,20 @@
44
from django.urls import reverse
55
from django.utils.html import format_html
66
from django_audit_fields.admin import audit_fieldset_tuple
7-
from edc_model_admin.mixins import TabularInlineMixin
7+
from edc_model_admin.history import SimpleHistoryAdmin
88
from edc_utils.date import to_local
99

1010
from ...admin_site import edc_pharmacy_admin
11-
from ...forms import OrderForm, OrderItemForm
11+
from ...forms import OrderForm
1212
from ...models import Order, OrderItem, Receive
1313
from ..model_admin_mixin import ModelAdminMixin
1414

1515

16-
class OrderItemInlineAdmin(TabularInlineMixin, admin.TabularInline):
17-
model = OrderItem
18-
form = OrderItemForm
19-
extra = 1
20-
21-
fieldsets = (
22-
(
23-
None,
24-
{
25-
"fields": (
26-
[
27-
"product",
28-
"container",
29-
"qty",
30-
]
31-
)
32-
},
33-
),
34-
)
35-
36-
3716
@admin.register(Order, site=edc_pharmacy_admin)
38-
class OrderAdmin(ModelAdminMixin, admin.ModelAdmin):
17+
class OrderAdmin(ModelAdminMixin, SimpleHistoryAdmin):
3918
change_list_title = "Pharmacy: Orders"
4019
change_form_title = "Pharmacy: Order"
20+
history_list_display = ()
4121
show_object_tools = True
4222
show_cancel = True
4323
list_per_page = 20

edc_pharmacy/admin/stock/order_item_admin.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from django.utils.translation import gettext as _
88
from django_audit_fields.admin import audit_fieldset_tuple
99
from edc_constants.constants import NEW, PARTIAL, RECEIVED
10+
from edc_model_admin.history import SimpleHistoryAdmin
1011
from edc_utils import message_in_queue
1112

1213
from ...admin_site import edc_pharmacy_admin
@@ -20,8 +21,9 @@
2021

2122

2223
@admin.register(OrderItem, site=edc_pharmacy_admin)
23-
class OrderItemAdmin(ModelAdminMixin, admin.ModelAdmin):
24+
class OrderItemAdmin(ModelAdminMixin, SimpleHistoryAdmin):
2425
change_list_title = "Pharmacy: Ordered items"
26+
history_list_display = ()
2527
show_object_tools = False
2628
show_cancel = True
2729
list_per_page = 20

edc_pharmacy/admin/stock/product_admin.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
from django.contrib import admin
22
from django_audit_fields.admin import audit_fieldset_tuple
3+
from edc_model_admin.history import SimpleHistoryAdmin
34

45
from ...admin_site import edc_pharmacy_admin
56
from ...forms import ProductForm
67
from ...models import Product
78
from ..model_admin_mixin import ModelAdminMixin
9+
from ..remove_fields_for_blinded_users import remove_fields_for_blinded_users
810

911

1012
@admin.register(Product, site=edc_pharmacy_admin)
11-
class ProductAdmin(ModelAdminMixin, admin.ModelAdmin):
13+
class ProductAdmin(ModelAdminMixin, SimpleHistoryAdmin):
1214
change_list_title = "Pharmacy: Products"
15+
history_list_display = ()
1316
show_object_tools = True
1417
show_cancel = True
1518
list_per_page = 20
@@ -61,3 +64,18 @@ def get_readonly_fields(self, request, obj=None):
6164
if obj:
6265
return self.readonly_fields + ("formulation", "assignment")
6366
return self.readonly_fields
67+
68+
def get_list_display(self, request):
69+
fields = super().get_list_display(request)
70+
fields = remove_fields_for_blinded_users(request, fields)
71+
return fields
72+
73+
def get_list_filter(self, request):
74+
fields = super().get_list_filter(request)
75+
fields = remove_fields_for_blinded_users(request, fields)
76+
return fields
77+
78+
def get_search_fields(self, request):
79+
fields = super().get_search_fields(request)
80+
fields = remove_fields_for_blinded_users(request, fields)
81+
return fields

0 commit comments

Comments
 (0)