Fix quick actions

apikeys
Laurent 4 months ago
parent 35079e1cb1
commit 5611450360
  1. 18
      bizdev/admin.py
  2. 5
      bizdev/filters.py

@ -35,30 +35,30 @@ class EmailTemplateAdmin(SyncedObjectAdmin):
search_fields = ('name', 'subject')
def contacted_by_sms(modeladmin, request, queryset):
create_activity_for_prospect(modeladmin, request, queryset, None, Status.CONTACTED)
create_default_activity_for_prospect(modeladmin, request, queryset, ActivityType.SMS, Status.CONTACTED)
contacted_by_sms.short_description = "Contacted by SMS"
def mark_as_customer(modeladmin, request, queryset):
create_activity_for_prospect(modeladmin, request, queryset, None, Status.CUSTOMER)
create_default_activity_for_prospect(modeladmin, request, queryset, None, Status.CUSTOMER)
mark_as_customer.short_description = "Mark as customer"
def mark_as_should_test(modeladmin, request, queryset):
create_activity_for_prospect(modeladmin, request, queryset, None, Status.TESTING)
create_default_activity_for_prospect(modeladmin, request, queryset, None, Status.TESTING)
mark_as_should_test.short_description = "Mark as should test"
def mark_as_testing(modeladmin, request, queryset):
create_activity_for_prospect(modeladmin, request, queryset, None, Status.CUSTOMER)
create_default_activity_for_prospect(modeladmin, request, queryset, None, Status.CUSTOMER)
mark_as_testing.short_description = "Mark as testing"
def declined_too_expensive(modeladmin, request, queryset):
create_activity_for_prospect(modeladmin, request, queryset, None, Status.DECLINED_TOO_EXPENSIVE)
create_default_activity_for_prospect(modeladmin, request, queryset, None, Status.DECLINED_TOO_EXPENSIVE)
declined_too_expensive.short_description = "Declined too expensive"
def declined_use_something_else(modeladmin, request, queryset):
create_activity_for_prospect(modeladmin, request, queryset, None, Status.DECLINED_USE_SOMETHING_ELSE)
create_default_activity_for_prospect(modeladmin, request, queryset, None, Status.DECLINED_USE_SOMETHING_ELSE)
declined_use_something_else.short_description = "Declined use something else"
def create_activity_for_prospect(modeladmin, request, queryset, type, status):
def create_default_activity_for_prospect(modeladmin, request, queryset, type, status):
for prospect in queryset:
activity = Activity.objects.create(
type=type,
@ -83,10 +83,6 @@ def create_activity_for_prospect(modeladmin, request, queryset):
# Build the URL with pre-populated fields
url = reverse('admin:bizdev_activity_add')
url += f'?prospect={prospect.id}'
# You can add more fields as URL parameters
# url += f'&title=Event for {prospect.name}&status=pending'
return redirect(url)
create_activity_for_prospect.short_description = "Create event"

@ -1,3 +1,4 @@
from xml.dom import Node
import django_filters
from django.db.models import Max, F, Q
from django.contrib.auth import get_user_model
@ -77,7 +78,9 @@ class ProspectStatusFilter(admin.SimpleListFilter):
return [(tag.name, tag.value) for tag in Status]
def queryset(self, request, queryset):
if self.value():
if self.value() == Status.NONE:
return queryset.filter(activities__isnull=True)
elif self.value():
# Get prospects whose most recent activity has the selected status
return queryset.filter(
activities__status=self.value()

Loading…
Cancel
Save