diff --git a/bizdev/admin.py b/bizdev/admin.py index 9bd6b3d..1adfd1d 100644 --- a/bizdev/admin.py +++ b/bizdev/admin.py @@ -35,34 +35,35 @@ class EmailTemplateAdmin(SyncedObjectAdmin): search_fields = ('name', 'subject') 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" 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" 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" 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" 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" 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" -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: activity = Activity.objects.create( type=type, status=status, + declination_reason=reason, related_user = request.user ) activity.prospects.add(prospect) diff --git a/bizdev/models.py b/bizdev/models.py index 340db98..26d6948 100644 --- a/bizdev/models.py +++ b/bizdev/models.py @@ -12,6 +12,7 @@ User = get_user_model() class Status(models.TextChoices): NONE = 'NONE', 'None' + INBOUND = 'INBOUND', 'Inbound' CONTACTED = 'CONTACTED', 'Contacted' RESPONDED = 'RESPONDED', 'Responded' SHOULD_TEST = 'SHOULD_TEST', 'Should test' @@ -32,6 +33,7 @@ class ActivityType(models.TextChoices): SMS = 'SMS', 'SMS Campaign' CALL = 'CALL', 'Call' PRESS = 'PRESS', 'Press Release' + WORD_OF_MOUTH = 'WORD_OF_MOUTH', 'Word of mouth' class Entity(BaseModel): 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()}" 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 = '' for field in fields: html += f''
{field}