作成・変更したファイル バックエンド(新規): apps/mail/models.py — MailSender, MailEmail, MailNotificationToken apps/mail/serializers.py apps/mail/views.py — Windmill用API、フィードバック、ルール管理 apps/mail/urls.py apps/mail/admin.py マイグレーション(自動生成・適用済み) バックエンド(変更): settings.py — apps.mail 追加、MAIL_API_KEY/FRONTEND_URL 環境変数 urls.py — /api/mail/ 追加 フロントエンド(新規): mail/feedback/[token]/page.tsx — 認証不要、フィードバック3択+スコープ選択 mail/rules/page.tsx — ルール管理(一覧・追加・削除) フロントエンド(変更): Navbar.tsx — 「メールルール」メニュー追加 types/index.ts — MailSender, MailEmailFeedback 型追加 次のステップ(Windmill側) Keinaシステム側の実装は完了しています。次はWindmillにIMAPポーリングスクリプトを書く必要があります。Windmillのスクリプトが必要になったタイミングでお声がけください。
24 lines
870 B
Python
24 lines
870 B
Python
from django.contrib import admin
|
|
from .models import MailSender, MailEmail, MailNotificationToken
|
|
|
|
|
|
@admin.register(MailSender)
|
|
class MailSenderAdmin(admin.ModelAdmin):
|
|
list_display = ('__str__', 'rule', 'note', 'created_at')
|
|
list_filter = ('rule',)
|
|
search_fields = ('email', 'domain', 'note')
|
|
|
|
|
|
@admin.register(MailEmail)
|
|
class MailEmailAdmin(admin.ModelAdmin):
|
|
list_display = ('subject', 'sender_email', 'account', 'llm_verdict', 'feedback', 'received_at')
|
|
list_filter = ('account', 'llm_verdict', 'feedback')
|
|
search_fields = ('subject', 'sender_email', 'sender_domain')
|
|
readonly_fields = ('message_id', 'received_at', 'notified_at', 'feedback_at')
|
|
|
|
|
|
@admin.register(MailNotificationToken)
|
|
class MailNotificationTokenAdmin(admin.ModelAdmin):
|
|
list_display = ('token', 'email', 'created_at')
|
|
readonly_fields = ('token', 'created_at')
|