From b1690b44c995055f25e98a886345006fb3918c29 Mon Sep 17 00:00:00 2001 From: Laurent Date: Mon, 22 Sep 2025 17:30:56 +0200 Subject: [PATCH] adds prospect filter to remove mobile phone prospect --- biz/admin.py | 4 ++-- biz/filters.py | 16 ++++++++++++++++ sync/admin.py | 1 - 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/biz/admin.py b/biz/admin.py index 338e21f..3c4de33 100644 --- a/biz/admin.py +++ b/biz/admin.py @@ -14,7 +14,7 @@ import logging from .models import Entity, Prospect, Activity, Status, ActivityType, EmailTemplate, DeclinationReason, ProspectGroup from .forms import FileImportForm, EmailTemplateSelectionForm -from .filters import ContactAgainFilter, ProspectStatusFilter, StaffUserFilter, ProspectProfileFilter, ProspectDeclineReasonFilter, ProspectGroupFilter +from .filters import ContactAgainFilter, ProspectStatusFilter, StaffUserFilter, ProspectProfileFilter, ProspectDeclineReasonFilter, ProspectGroupFilter, PhoneFilter from tournaments.models import CustomUser from tournaments.models.enums import UserOrigin @@ -118,7 +118,7 @@ class ProspectAdmin(SyncedObjectAdmin): ] list_display = ('first_name', 'last_name', 'entity_names', 'last_update_date', 'current_status', 'current_text', 'contact_again') - list_filter = (ContactAgainFilter, ProspectStatusFilter, ProspectDeclineReasonFilter, ProspectGroupFilter, 'creation_date', StaffUserFilter, 'source', ProspectProfileFilter) + list_filter = (ContactAgainFilter, ProspectStatusFilter, ProspectDeclineReasonFilter, ProspectGroupFilter, PhoneFilter, 'creation_date', StaffUserFilter, 'source', ProspectProfileFilter) search_fields = ('first_name', 'last_name', 'email', 'entities__name') date_hierarchy = 'creation_date' change_list_template = "admin/biz/prospect/change_list.html" diff --git a/biz/filters.py b/biz/filters.py index 6a03c5a..848d376 100644 --- a/biz/filters.py +++ b/biz/filters.py @@ -139,3 +139,19 @@ class ContactAgainFilter(admin.SimpleListFilter): # if self.value() == '0': # return queryset.filter(my_field__isnull=True) return queryset + +class PhoneFilter(admin.SimpleListFilter): + title = 'Phone number' + parameter_name = 'phone_filter' + + def lookups(self, request, model_admin): + return ( + ('exclude_mobile', 'Exclude mobile (06/07)'), + ) + + def queryset(self, request, queryset): + if self.value() == 'exclude_mobile': + return queryset.exclude( + Q(phone__startswith='06') | Q(phone__startswith='07') + ) + return queryset diff --git a/sync/admin.py b/sync/admin.py index 0f9f713..9a3a600 100644 --- a/sync/admin.py +++ b/sync/admin.py @@ -30,7 +30,6 @@ class ModelLogAdmin(admin.ModelAdmin): search_fields = ['model_id'] readonly_fields = ['date'] - class DataAccessAdmin(SyncedObjectAdmin): list_display = ['id', 'related_user', 'get_shared_users', 'model_name', 'model_id'] list_filter = ['related_user', 'shared_with']