From 85cdf26fcfc29ae5fd0928975b45663d8b00a979 Mon Sep 17 00:00:00 2001 From: Laurent Date: Sat, 4 Oct 2025 13:14:09 +0200 Subject: [PATCH 1/5] update activity admin --- biz/admin.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/biz/admin.py b/biz/admin.py index 1abad08..7834375 100644 --- a/biz/admin.py +++ b/biz/admin.py @@ -435,10 +435,10 @@ class ProspectGroupAdmin(SyncedObjectAdmin): @admin.register(Activity) class ActivityAdmin(SyncedObjectAdmin): + raw_id_fields = ['prospects'] list_display = ('prospect_names', 'last_update', 'status', 'type', 'description', 'attachment_text', ) list_filter = ('status', 'type') - search_fields = ('description',) - filter_horizontal = ('prospects',) + search_fields = ('attachment_text',) date_hierarchy = 'last_update' def get_form(self, request, obj=None, **kwargs): From c37a6a8c1235315edb7f2c0e48d762e4f96500e0 Mon Sep 17 00:00:00 2001 From: Laurent Date: Sun, 5 Oct 2025 20:40:30 +0200 Subject: [PATCH 2/5] Adds mobile only filter for prospects --- biz/filters.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/biz/filters.py b/biz/filters.py index 848d376..5714c53 100644 --- a/biz/filters.py +++ b/biz/filters.py @@ -147,6 +147,7 @@ class PhoneFilter(admin.SimpleListFilter): def lookups(self, request, model_admin): return ( ('exclude_mobile', 'Exclude mobile (06/07)'), + ('mobile_only', 'Mobile only (06/07)'), ) def queryset(self, request, queryset): @@ -154,4 +155,9 @@ class PhoneFilter(admin.SimpleListFilter): return queryset.exclude( Q(phone__startswith='06') | Q(phone__startswith='07') ) + elif self.value() == 'mobile_only': + return queryset.filter( + Q(phone__startswith='06') | Q(phone__startswith='07') + ) + return queryset From 58557c01aab8ce224742f1100bc24646063b5d7e Mon Sep 17 00:00:00 2001 From: Laurent Date: Mon, 6 Oct 2025 11:47:44 +0200 Subject: [PATCH 3/5] fix sync crash --- sync/signals.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/sync/signals.py b/sync/signals.py index f8559e0..d11cdf2 100644 --- a/sync/signals.py +++ b/sync/signals.py @@ -8,7 +8,7 @@ from authentication.models import Device from django.contrib.auth import get_user_model from .ws_sender import websocket_sender -from .registry import device_registry, related_users_registry +from .registry import device_registry, related_users_registry, model_registry import logging import traceback @@ -53,8 +53,10 @@ def synchronization_notifications(sender, instance, created=False, **kwargs): # some classes are excluded in settings_app.py: SYNC_APPS if not isinstance(instance, BaseModel) and not isinstance(instance, User): return - # if isinstance(instance, DataAccess): - # return + + model_name = instance.__class__.__name__ + if model_registry.get_model(model_name) is None: + return try: process_foreign_key_changes(sender, instance, **kwargs) @@ -100,7 +102,6 @@ def save_model_log_if_possible(instance, signal, created): else: operation = ModelOperation.DELETE - model_name = instance.__class__.__name__ store_id = None if isinstance(instance, SideStoreModel): store_id = instance.store_id @@ -111,6 +112,7 @@ def save_model_log_if_possible(instance, signal, created): # user_ids = [user.id for user in users] # # print(f'users to notify: {user_ids}') # instance._users_to_notify = user_ids # save this for the post_save signal + model_name = instance.__class__.__name__ save_model_log(users, operation, model_name, instance.id, store_id) else: From 7120bddd26400a903609f3da267af243323c77e5 Mon Sep 17 00:00:00 2001 From: Laurent Date: Mon, 6 Oct 2025 14:36:42 +0200 Subject: [PATCH 4/5] adds phone to prospect list --- biz/admin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/biz/admin.py b/biz/admin.py index 7834375..b017567 100644 --- a/biz/admin.py +++ b/biz/admin.py @@ -121,7 +121,7 @@ class ProspectAdmin(SyncedObjectAdmin): 'fields': ['related_activities', 'id', 'entity_names', 'first_name', 'last_name', 'email', 'phone', 'contact_again', 'official_user', 'name_unsure', 'entities', 'related_user'] }), ] - list_display = ('first_name', 'last_name', 'entity_names', 'last_update_date', 'current_status', 'current_text', 'contact_again') + list_display = ('first_name', 'last_name', 'entity_names', 'last_update_date', 'current_status', 'phone', 'contact_again') list_filter = (ContactAgainFilter, ProspectStatusFilter, ProspectDeclineReasonFilter, ProspectGroupFilter, PhoneFilter, 'creation_date', StaffUserFilter, 'source', ProspectProfileFilter) search_fields = ('first_name', 'last_name', 'email', 'phone') From 169bc465c531b7d9804ae08b7c0015a52bc22712 Mon Sep 17 00:00:00 2001 From: Laurent Date: Mon, 6 Oct 2025 14:38:24 +0200 Subject: [PATCH 5/5] change param list --- biz/admin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/biz/admin.py b/biz/admin.py index b017567..f35bd94 100644 --- a/biz/admin.py +++ b/biz/admin.py @@ -121,7 +121,7 @@ class ProspectAdmin(SyncedObjectAdmin): 'fields': ['related_activities', 'id', 'entity_names', 'first_name', 'last_name', 'email', 'phone', 'contact_again', 'official_user', 'name_unsure', 'entities', 'related_user'] }), ] - list_display = ('first_name', 'last_name', 'entity_names', 'last_update_date', 'current_status', 'phone', 'contact_again') + list_display = ('first_name', 'last_name', 'entity_names', 'phone', 'last_update_date', 'current_status', 'contact_again') list_filter = (ContactAgainFilter, ProspectStatusFilter, ProspectDeclineReasonFilter, ProspectGroupFilter, PhoneFilter, 'creation_date', StaffUserFilter, 'source', ProspectProfileFilter) search_fields = ('first_name', 'last_name', 'email', 'phone')