rename Campaign into ProspectGroup

mailing
Laurent 2 months ago
parent 146dae4039
commit e1e2fb08ef
  1. 10
      biz/admin.py
  2. 14
      biz/filters.py
  3. 37
      biz/migrations/0007_prospectgroup_delete_campaign.py
  4. 4
      biz/models.py
  5. 2
      tournaments/admin.py

@ -12,9 +12,9 @@ import io
import time import time
import logging import logging
from .models import Entity, Prospect, Activity, Status, ActivityType, EmailTemplate, DeclinationReason, Campaign from .models import Entity, Prospect, Activity, Status, ActivityType, EmailTemplate, DeclinationReason, ProspectGroup
from .forms import FileImportForm, EmailTemplateSelectionForm from .forms import FileImportForm, EmailTemplateSelectionForm
from .filters import ContactAgainFilter, ProspectStatusFilter, StaffUserFilter, ProspectProfileFilter, ProspectDeclineReasonFilter, ProspectCampaignFilter from .filters import ContactAgainFilter, ProspectStatusFilter, StaffUserFilter, ProspectProfileFilter, ProspectDeclineReasonFilter, ProspectGroupFilter
from tournaments.models import CustomUser from tournaments.models import CustomUser
from tournaments.models.enums import UserOrigin 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_display = ('first_name', 'last_name', 'entity_names', 'last_update_date', 'current_status', 'current_text', 'contact_again')
list_filter = (ContactAgainFilter, ProspectStatusFilter, ProspectDeclineReasonFilter, ProspectCampaignFilter, 'creation_date', StaffUserFilter, 'source', ProspectProfileFilter) list_filter = (ContactAgainFilter, ProspectStatusFilter, ProspectDeclineReasonFilter, ProspectGroupFilter, 'creation_date', StaffUserFilter, 'source', ProspectProfileFilter)
search_fields = ('first_name', 'last_name', 'email', 'entities__name') search_fields = ('first_name', 'last_name', 'email', 'entities__name')
date_hierarchy = 'creation_date' date_hierarchy = 'creation_date'
change_list_template = "admin/biz/prospect/change_list.html" change_list_template = "admin/biz/prospect/change_list.html"
@ -401,8 +401,8 @@ class ProspectAdmin(SyncedObjectAdmin):
time.sleep(1) time.sleep(1)
@admin.register(Campaign) @admin.register(ProspectGroup)
class CampaignAdmin(SyncedObjectAdmin): class ProspectGroupAdmin(SyncedObjectAdmin):
list_display = ('name', 'user_count') list_display = ('name', 'user_count')
date_hierarchy = 'creation_date' date_hierarchy = 'creation_date'

@ -7,7 +7,7 @@ from django.utils import timezone
from dateutil.relativedelta import relativedelta from dateutil.relativedelta import relativedelta
from .models import Activity, Prospect, Status, DeclinationReason, Campaign from .models import Activity, Prospect, Status, DeclinationReason, ProspectGroup
User = get_user_model() User = get_user_model()
@ -110,17 +110,17 @@ class ProspectDeclineReasonFilter(admin.SimpleListFilter):
else: else:
return queryset return queryset
class ProspectCampaignFilter(admin.SimpleListFilter): class ProspectGroupFilter(admin.SimpleListFilter):
title = 'Campaign' title = 'ProspectGroup'
parameter_name = 'campaign' parameter_name = 'prospect_group'
def lookups(self, request, model_admin): def lookups(self, request, model_admin):
campaigns = Campaign.objects.all().order_by('-creation_date') prospect_groups = ProspectGroup.objects.all().order_by('-creation_date')
return [(campaign.id, campaign.name) for campaign in campaigns] return [(group.id, group.name) for group in prospect_groups]
def queryset(self, request, queryset): def queryset(self, request, queryset):
if self.value(): if self.value():
return queryset.filter(campaigns__id=self.value()) return queryset.filter(prospect_groups__id=self.value())
return queryset return queryset
class ContactAgainFilter(admin.SimpleListFilter): class ContactAgainFilter(admin.SimpleListFilter):

@ -0,0 +1,37 @@
# Generated by Django 5.1 on 2025-09-22 14:08
import django.db.models.deletion
import django.utils.timezone
import uuid
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('biz', '0006_alter_campaign_id'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='ProspectGroup',
fields=[
('creation_date', models.DateTimeField(default=django.utils.timezone.now, editable=False)),
('last_update', models.DateTimeField(default=django.utils.timezone.now)),
('data_access_ids', models.JSONField(default=list)),
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('name', models.CharField(blank=True, max_length=200, null=True)),
('last_updated_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)),
('prospects', models.ManyToManyField(blank=True, related_name='prospect_groups', to='biz.prospect')),
('related_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)),
],
options={
'abstract': False,
},
),
migrations.DeleteModel(
name='Campaign',
),
]

@ -171,10 +171,10 @@ class EmailTemplate(BaseModel):
def delete_dependencies(self): def delete_dependencies(self):
pass pass
class Campaign(BaseModel): class ProspectGroup(BaseModel):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=True) id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=True)
name = models.CharField(max_length=200, null=True, blank=True) name = models.CharField(max_length=200, null=True, blank=True)
prospects = models.ManyToManyField(Prospect, blank=True, related_name='campaigns') prospects = models.ManyToManyField(Prospect, blank=True, related_name='prospect_groups')
def user_count(self): def user_count(self):
return self.prospects.count() return self.prospects.count()

@ -9,7 +9,7 @@ from django.shortcuts import render
from django.db.models import Avg from django.db.models import Avg
from datetime import timedelta, datetime from datetime import timedelta, datetime
from biz.models import Prospect, Campaign from biz.models import Prospect, ProspectGroup
from .models import Club, TeamScore, Tournament, CustomUser, Event, Round, GroupStage, Match, TeamRegistration, PlayerRegistration, Purchase, Court, DateInterval, FailedApiCall, Log, DeviceToken, DrawLog, UnregisteredTeam, UnregisteredPlayer, Image from .models import Club, TeamScore, Tournament, CustomUser, Event, Round, GroupStage, Match, TeamRegistration, PlayerRegistration, Purchase, Court, DateInterval, FailedApiCall, Log, DeviceToken, DrawLog, UnregisteredTeam, UnregisteredPlayer, Image
from .forms import CustomUserCreationForm, CustomUserChangeForm from .forms import CustomUserCreationForm, CustomUserChangeForm

Loading…
Cancel
Save