From b9da35d3c1dfb87fd933fea40b5991c46a0d0952 Mon Sep 17 00:00:00 2001 From: "lukasz.karykowski" Date: Mon, 15 May 2023 14:40:14 +0200 Subject: [PATCH] ITS-432085 | added features to bulk edit and added new transition action in sim cards. --- src/ralph/sim_cards/admin.py | 2 +- src/ralph/sim_cards/models.py | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/ralph/sim_cards/admin.py b/src/ralph/sim_cards/admin.py index 48782e9ac6..b201ffd2b1 100644 --- a/src/ralph/sim_cards/admin.py +++ b/src/ralph/sim_cards/admin.py @@ -36,7 +36,7 @@ class SIMCardAdmin( search_fields = ['card_number', 'phone_number', 'user__first_name', 'user__last_name', 'user__username'] - bulk_edit_list = ['status', 'warehouse', 'user', 'owner'] + bulk_edit_list = ['status', 'warehouse', 'user', 'owner', 'features'] list_filter = [ 'status', 'features', 'phone_number', 'card_number', 'warehouse', diff --git a/src/ralph/sim_cards/models.py b/src/ralph/sim_cards/models.py index 2ca83685ec..410c2c8253 100644 --- a/src/ralph/sim_cards/models.py +++ b/src/ralph/sim_cards/models.py @@ -354,3 +354,30 @@ def card_number_to_notes(cls, instances, **kwargs): instance.remarks, instance.card_number ) instance.card_number = kwargs['card number'] + + @classmethod + @transition_action( + form_fields={ + 'user': { + 'field': forms.CharField(label=_('User')), + 'autocomplete_field': 'user', + }, + 'owner': { + 'field': forms.CharField(label=_('Owner')), + 'autocomplete_field': 'owner', + 'condition': lambda obj, actions: bool(obj.owner), + } + } + ) + def change_user_and_owner(cls, instances, **kwargs): + UserModel = get_user_model() # noqa + user_id = kwargs.get('user', None) + user = UserModel.objects.get(id=user_id) + owner_id = kwargs.get('owner', None) + for instance in instances: + instance.user = user + if not owner_id: + instance.owner = user + else: + instance.owner = UserModel.objects.get(id=owner_id) + instance.location = user.location