add Inbound status + fixes

apikeys
Laurent 4 months ago
parent c9ad392ce1
commit 4ab605bbc9
  1. 15
      bizdev/admin.py
  2. 4
      bizdev/models.py

@ -35,34 +35,35 @@ class EmailTemplateAdmin(SyncedObjectAdmin):
search_fields = ('name', 'subject') search_fields = ('name', 'subject')
def contacted_by_sms(modeladmin, request, queryset): def contacted_by_sms(modeladmin, request, queryset):
create_default_activity_for_prospect(modeladmin, request, queryset, ActivityType.SMS, Status.CONTACTED) create_default_activity_for_prospect(modeladmin, request, queryset, ActivityType.SMS, Status.CONTACTED, None)
contacted_by_sms.short_description = "Contacted by SMS" contacted_by_sms.short_description = "Contacted by SMS"
def mark_as_customer(modeladmin, request, queryset): def mark_as_customer(modeladmin, request, queryset):
create_default_activity_for_prospect(modeladmin, request, queryset, None, Status.CUSTOMER) create_default_activity_for_prospect(modeladmin, request, queryset, None, Status.CUSTOMER, None)
mark_as_customer.short_description = "Mark as customer" mark_as_customer.short_description = "Mark as customer"
def mark_as_should_test(modeladmin, request, queryset): def mark_as_should_test(modeladmin, request, queryset):
create_default_activity_for_prospect(modeladmin, request, queryset, None, Status.TESTING) create_default_activity_for_prospect(modeladmin, request, queryset, None, Status.TESTING, None)
mark_as_should_test.short_description = "Mark as should test" mark_as_should_test.short_description = "Mark as should test"
def mark_as_testing(modeladmin, request, queryset): def mark_as_testing(modeladmin, request, queryset):
create_default_activity_for_prospect(modeladmin, request, queryset, None, Status.CUSTOMER) create_default_activity_for_prospect(modeladmin, request, queryset, None, Status.CUSTOMER, None)
mark_as_testing.short_description = "Mark as testing" mark_as_testing.short_description = "Mark as testing"
def declined_too_expensive(modeladmin, request, queryset): def declined_too_expensive(modeladmin, request, queryset):
create_default_activity_for_prospect(modeladmin, request, queryset, None, Status.DECLINED_TOO_EXPENSIVE) create_default_activity_for_prospect(modeladmin, request, queryset, None, Status.DECLINED, DeclinationReason.TOO_EXPENSIVE)
declined_too_expensive.short_description = "Declined too expensive" declined_too_expensive.short_description = "Declined too expensive"
def declined_use_something_else(modeladmin, request, queryset): def declined_use_something_else(modeladmin, request, queryset):
create_default_activity_for_prospect(modeladmin, request, queryset, None, Status.DECLINED_USE_SOMETHING_ELSE) create_default_activity_for_prospect(modeladmin, request, queryset, None, Status.DECLINED, DeclinationReason.USE_OTHER_PRODUCT)
declined_use_something_else.short_description = "Declined use something else" declined_use_something_else.short_description = "Declined use something else"
def create_default_activity_for_prospect(modeladmin, request, queryset, type, status): def create_default_activity_for_prospect(modeladmin, request, queryset, type, status, reason):
for prospect in queryset: for prospect in queryset:
activity = Activity.objects.create( activity = Activity.objects.create(
type=type, type=type,
status=status, status=status,
declination_reason=reason,
related_user = request.user related_user = request.user
) )
activity.prospects.add(prospect) activity.prospects.add(prospect)

@ -12,6 +12,7 @@ User = get_user_model()
class Status(models.TextChoices): class Status(models.TextChoices):
NONE = 'NONE', 'None' NONE = 'NONE', 'None'
INBOUND = 'INBOUND', 'Inbound'
CONTACTED = 'CONTACTED', 'Contacted' CONTACTED = 'CONTACTED', 'Contacted'
RESPONDED = 'RESPONDED', 'Responded' RESPONDED = 'RESPONDED', 'Responded'
SHOULD_TEST = 'SHOULD_TEST', 'Should test' SHOULD_TEST = 'SHOULD_TEST', 'Should test'
@ -32,6 +33,7 @@ class ActivityType(models.TextChoices):
SMS = 'SMS', 'SMS Campaign' SMS = 'SMS', 'SMS Campaign'
CALL = 'CALL', 'Call' CALL = 'CALL', 'Call'
PRESS = 'PRESS', 'Press Release' PRESS = 'PRESS', 'Press Release'
WORD_OF_MOUTH = 'WORD_OF_MOUTH', 'Word of mouth'
class Entity(BaseModel): class Entity(BaseModel):
name = models.CharField(max_length=200, null=True, blank=True) name = models.CharField(max_length=200, null=True, blank=True)
@ -119,7 +121,7 @@ class Activity(BaseModel):
# return f"{self.get_type_display()} - {self.creation_date.date()}" # return f"{self.get_type_display()} - {self.creation_date.date()}"
def html_desc(self): def html_desc(self):
fields = [field for field in [self.creation_date.strftime("%d/%m/%Y %H:%M"), self.status, self.attachment_text, self.description, self.type] if field is not None] fields = [field for field in [self.creation_date.strftime("%d/%m/%Y %H:%M"), self.status, self.declination_reason, self.attachment_text, self.description, self.type] if field is not None]
html = '<table><tr>' html = '<table><tr>'
for field in fields: for field in fields:
html += f'<td style="padding:0px 5px;">{field}</td>' html += f'<td style="padding:0px 5px;">{field}</td>'

Loading…
Cancel
Save