from django import forms from django.contrib import admin from .models import Attachment, AttachmentPolicy class AttachmentPolicyAdminForm(forms.ModelForm): class Meta: model = AttachmentPolicy fields = "__all__" labels = { "attachment_type": "نوع پیوست (Attachment type)", "is_enabled": "فعال است", "max_file_size": "حداکثر حجم هر فایل (بایت)", "max_files_per_message": "حداکثر تعداد فایل از این نوع در هر پیام", "allowed_extensions": "پسوندهای مجاز (Allowed extensions)", "allowed_mime_types": "نوع محتوای مجاز (Allowed mime types)", "sort_order": "ترتیب نمایش", } help_texts = { "attachment_type": ( "شناسه نوع پیوست را با حروف بزرگ وارد کنید: IMAGE، VIDEO، VOICE، PDF، " "WORD، EXCEL، ZIP، RAR یا OTHER. هر نوع فقط یک سیاست دارد." ), "is_enabled": "با غیرفعال کردن، آپلود جدید این نوع فایل برای مشتری و کارکنان رد می‌شود.", "max_file_size": ( "واحد بایت است و این سقف برای هر فایل جداگانه اعمال می‌شود، نه مجموع پیوست‌ها. " "برای تبدیل حجم بر حسب مِبی‌بایت (MiB) به بایت، عدد را در ۱۰۲۴ × ۱۰۲۴ ضرب کنید؛ " "مثلاً ۳۰ × ۱۰۲۴ × ۱۰۲۴ = 31457280 بایت. فقط عدد نهایی را وارد کنید." ), "max_files_per_message": ( "سقف تعداد پیوست‌های همین نوع در یک پیام است؛ " "مثلاً مقدار ۱۰ برای PDF یعنی حداکثر ۱۰ فایل PDF در هر پیام." ), "allowed_extensions": ( 'فهرست JSON با نقل‌قول دوتایی، نقطه و حروف کوچک وارد کنید؛ ' 'برای PDF: [".pdf"] و برای تصویر، مثلاً: [".jpg", ".jpeg", ".png"]. ' "این فیلد پسوند نام فایل را کنترل می‌کند. فرم ادمین فهرست خالی را نمی‌پذیرد." ), "allowed_mime_types": ( 'فهرست JSON از نوع محتوای واقعی فایل وارد کنید؛ برای PDF: ["application/pdf"] ' 'و برای تصویر، مثلاً: ["image/jpeg", "image/png"]. ' "نوع محتوا از خود فایل تشخیص داده می‌شود و باید دقیقاً در این فهرست باشد؛ " "مقادیر کلی مثل image/* پشتیبانی نمی‌شوند. هر دو فهرست پسوند و محتوا باید " "با فایل سازگار باشند. این سیاست برای مشتری و کارکنان مشترک است؛ " "فرم ادمین فهرست خالی را نمی‌پذیرد." ), "sort_order": "عدد صحیح نامنفی برای ثبت ترتیب سیاست؛ مثلاً ۰، ۱ یا ۲.", } @admin.register(AttachmentPolicy) class AttachmentPolicyAdmin(admin.ModelAdmin): form = AttachmentPolicyAdminForm admin.site.register(Attachment)