59 lines
3.5 KiB
Python
59 lines
3.5 KiB
Python
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
|
|
|
|
|
|
from apps.tickets.response_admin import RelatedResponseContentAdmin
|
|
admin.site.register(Attachment, RelatedResponseContentAdmin)
|