File size: 2,632 Bytes
ae677bb | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | from django.contrib import admin
from .models import MasterQuestion, PropertyQA, AgencyAutoChatSetting, PropertyAutoChatState, GlobalQA, PropertyCustomQA
@admin.register(GlobalQA)
class GlobalQAAdmin(admin.ModelAdmin):
list_display = ['question', 'answer_preview', 'language', 'priority', 'is_active']
list_filter = ['language', 'is_active', 'priority']
search_fields = ['question', 'answer']
list_editable = ['priority', 'is_active']
def answer_preview(self, obj):
return obj.answer[:50]
answer_preview.short_description = 'Answer'
fieldsets = (
('Question & Answer', {
'fields': ('question', 'answer', 'language')
}),
('Settings', {
'fields': ('priority', 'is_active'),
'description': 'Higher priority = checked first for matching'
}),
)
@admin.register(MasterQuestion)
class MasterQuestionAdmin(admin.ModelAdmin):
list_display = ['question', 'order', 'is_active']
list_editable = ['order', 'is_active']
search_fields = ['question']
@admin.register(PropertyQA)
class PropertyQAAdmin(admin.ModelAdmin):
list_display = ['property', 'question_preview', 'answer_preview']
list_filter = ['agency']
search_fields = ['answer']
def question_preview(self, obj):
return obj.question_text[:50]
question_preview.short_description = 'Question'
def answer_preview(self, obj):
return obj.answer[:50]
answer_preview.short_description = 'Answer'
@admin.register(AgencyAutoChatSetting)
class AgencyAutoChatSettingAdmin(admin.ModelAdmin):
list_display = ['agency', 'is_enabled', 'delay_seconds', 'confidence_threshold']
list_filter = ['is_enabled']
list_editable = ['delay_seconds', 'confidence_threshold']
@admin.register(PropertyAutoChatState)
class PropertyAutoChatStateAdmin(admin.ModelAdmin):
list_display = ['property', 'is_auto_chat_enabled', 'total_auto_replies', 'last_auto_reply_at']
list_filter = ['is_auto_chat_enabled']
readonly_fields = ['total_auto_replies', 'last_auto_reply_at']
@admin.register(PropertyCustomQA)
class PropertyCustomQAAdmin(admin.ModelAdmin):
list_display = ['property', 'agency', 'order', 'question_preview', 'is_active']
list_filter = ['agency', 'is_active', 'property']
search_fields = ['question', 'answer']
list_editable = ['is_active']
def question_preview(self, obj):
return obj.question[:60]
question_preview.short_description = 'Question'
readonly_fields = ['question_embedding'] |