174 lines
4.3 KiB
Python
174 lines
4.3 KiB
Python
from django.contrib import admin
|
|
from .models import (
|
|
ReferralCode,
|
|
ReferralRecord,
|
|
ReferralRecordReward,
|
|
ReferralTracking,
|
|
GoodTimeCoins,
|
|
)
|
|
|
|
|
|
class ReferralCodeAdmin(admin.ModelAdmin):
|
|
list_display = (
|
|
"referral_code",
|
|
"principal",
|
|
"principal_type",
|
|
"get_principal_name",
|
|
)
|
|
search_fields = (
|
|
"referral_code",
|
|
"principal__first_name",
|
|
"principal__last_name",
|
|
"principal_type__name",
|
|
)
|
|
list_filter = ("principal_type",)
|
|
|
|
def get_principal_name(self, obj):
|
|
return obj.principal.first_name + " " + obj.principal.last_name
|
|
|
|
get_principal_name.short_description = "Principal Name"
|
|
|
|
|
|
admin.site.register(ReferralCode, ReferralCodeAdmin)
|
|
|
|
|
|
class ReferralRecordAdmin(admin.ModelAdmin):
|
|
list_display = (
|
|
"id",
|
|
"get_referrer_name",
|
|
"get_referred_name",
|
|
"principal_type",
|
|
"is_completed",
|
|
)
|
|
search_fields = (
|
|
"referrer_principal__first_name",
|
|
"referrer_principal__last_name",
|
|
"referred_principal__first_name",
|
|
"referred_principal__last_name",
|
|
"principal_type__name",
|
|
)
|
|
list_filter = (
|
|
"is_completed",
|
|
"principal_type",
|
|
)
|
|
raw_id_fields = ("referrer_principal", "referred_principal", "principal_type")
|
|
|
|
def get_referrer_name(self, obj):
|
|
return f"{obj.referrer_principal.first_name} {obj.referrer_principal.last_name}"
|
|
|
|
get_referrer_name.short_description = "Referrer Name"
|
|
|
|
def get_referred_name(self, obj):
|
|
return f"{obj.referred_principal.first_name} {obj.referred_principal.last_name}"
|
|
|
|
get_referred_name.short_description = "Referred Name"
|
|
|
|
|
|
admin.site.register(ReferralRecord, ReferralRecordAdmin)
|
|
|
|
|
|
class ReferralRecordRewardAdmin(admin.ModelAdmin):
|
|
list_display = (
|
|
"id",
|
|
"get_referral_record_id",
|
|
"get_subscription_name",
|
|
"coins",
|
|
"value",
|
|
"unique_token",
|
|
)
|
|
search_fields = ("referral_record__id", "subscription__title", "coins")
|
|
list_filter = ("subscription",)
|
|
raw_id_fields = ("referral_record", "subscription")
|
|
|
|
def get_referral_record_id(self, obj):
|
|
return f"{obj.referral_record.id}"
|
|
|
|
get_referral_record_id.short_description = "Referral Record ID"
|
|
|
|
def get_subscription_name(self, obj):
|
|
return obj.subscription.title
|
|
|
|
get_subscription_name.short_description = "Subscription Name"
|
|
|
|
|
|
admin.site.register(ReferralRecordReward, ReferralRecordRewardAdmin)
|
|
|
|
|
|
class ReferralTrackingAdmin(admin.ModelAdmin):
|
|
list_display = (
|
|
"referral_record",
|
|
"referrer_subscription_id",
|
|
"referred_subscription_id",
|
|
"is_referrer_subscribed",
|
|
"ip_address",
|
|
"user_agent",
|
|
"device_model",
|
|
)
|
|
list_filter = ("is_referrer_subscribed", "referral_record")
|
|
search_fields = (
|
|
"referrer_subscription_id",
|
|
"referred_subscription_id",
|
|
"ip_address",
|
|
)
|
|
|
|
# Customize form fields
|
|
fieldsets = (
|
|
(
|
|
None,
|
|
{
|
|
"fields": (
|
|
"referral_record",
|
|
"referrer_subscription_id",
|
|
"referred_subscription_id",
|
|
"is_referrer_subscribed",
|
|
)
|
|
},
|
|
),
|
|
(
|
|
"Advanced options",
|
|
{
|
|
"classes": ("collapse",),
|
|
"fields": ("ip_address", "user_agent", "device_model"),
|
|
},
|
|
),
|
|
)
|
|
|
|
|
|
# Register your models here.
|
|
admin.site.register(ReferralTracking, ReferralTrackingAdmin)
|
|
|
|
|
|
@admin.register(GoodTimeCoins)
|
|
class GoodTimeCoinsAdmin(admin.ModelAdmin):
|
|
list_display = (
|
|
"id",
|
|
"coins",
|
|
"value_in_pound",
|
|
"comments",
|
|
"start_date",
|
|
"end_date",
|
|
"active",
|
|
"deleted",
|
|
)
|
|
list_filter = ("start_date", "end_date")
|
|
search_fields = ("comments",)
|
|
date_hierarchy = "start_date"
|
|
ordering = ("-start_date",)
|
|
|
|
fieldsets = (
|
|
(
|
|
None,
|
|
{
|
|
"fields": (
|
|
"coins",
|
|
"value_in_pound",
|
|
"comments",
|
|
"start_date",
|
|
"end_date",
|
|
"active",
|
|
"deleted",
|
|
)
|
|
},
|
|
),
|
|
)
|