Files
AdNova/services/backend/apps/campaign/admin.py
T
2025-03-07 19:32:09 +03:00

121 lines
3.5 KiB
Python

from django.contrib import admin
from django.http import HttpRequest
from apps.campaign.forms import CampaignForm, CampaignReportForm
from apps.campaign.models import (
Campaign,
CampaignClick,
CampaignImpression,
CampaignReport,
)
class CampaignAdmin(admin.ModelAdmin):
form = CampaignForm
readonly_fields = (
Campaign.id.field.name,
Campaign.advertiser.field.name,
)
fields = (
Campaign.id.field.name,
Campaign.advertiser.field.name,
Campaign.impressions_limit.field.name,
Campaign.clicks_limit.field.name,
Campaign.cost_per_impression.field.name,
Campaign.cost_per_click.field.name,
Campaign.ad_title.field.name,
Campaign.ad_text.field.name,
Campaign.ad_image.field.name,
Campaign.start_date.field.name,
Campaign.end_date.field.name,
Campaign.gender.field.name,
Campaign.age_from.field.name,
Campaign.age_to.field.name,
Campaign.location.field.name,
)
def has_add_permission(
self, request: HttpRequest, obj: Campaign = None
) -> bool:
return False
class CampaignImpressionAdmin(admin.ModelAdmin):
readonly_fields = (
CampaignImpression.id.field.name,
CampaignImpression.campaign.field.name,
CampaignImpression.client.field.name,
CampaignImpression.date.field.name,
)
fields = (
CampaignImpression.id.field.name,
CampaignImpression.campaign.field.name,
CampaignImpression.client.field.name,
CampaignImpression.date.field.name,
CampaignImpression.price.field.name,
)
def has_add_permission(
self, request: HttpRequest, obj: CampaignImpression = None
) -> bool:
return False
class CampaignClickAdmin(admin.ModelAdmin):
readonly_fields = (
CampaignClick.id.field.name,
CampaignClick.campaign.field.name,
CampaignClick.client.field.name,
CampaignClick.date.field.name,
)
fields = (
CampaignClick.id.field.name,
CampaignClick.campaign.field.name,
CampaignClick.client.field.name,
CampaignClick.date.field.name,
CampaignClick.price.field.name,
)
def has_add_permission(
self, request: HttpRequest, obj: CampaignClick = None
) -> bool:
return False
class CampaignReportAdmin(admin.ModelAdmin):
form = CampaignReportForm
readonly_fields = (
CampaignReport.id.field.name,
CampaignReport.campaign.field.name,
CampaignReport.client.field.name,
CampaignReport.message.field.name,
CampaignReport.flagged_by_llm.field.name,
)
fields = (
CampaignReport.id.field.name,
CampaignReport.campaign.field.name,
CampaignReport.client.field.name,
CampaignReport.state.field.name,
CampaignReport.message.field.name,
CampaignReport.flagged_by_llm.field.name,
)
list_filter = (
CampaignReport.state.field.name,
CampaignReport.flagged_by_llm.field.name,
)
list_display = (
"__str__",
CampaignReport.flagged_by_llm.field.name,
)
def has_add_permission(
self, request: HttpRequest, obj: CampaignReport = None
) -> bool:
return False
admin.site.register(Campaign, CampaignAdmin)
admin.site.register(CampaignImpression, CampaignImpressionAdmin)
admin.site.register(CampaignClick, CampaignClickAdmin)
admin.site.register(CampaignReport, CampaignReportAdmin)