121 lines
3.5 KiB
Python
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)
|