file attechment for ticket

This commit is contained in:
Parsa Nazer
2025-02-23 14:34:42 +03:30
parent f9daff02d5
commit 362777bf7c
5 changed files with 101 additions and 5 deletions
+18
View File
@@ -3,6 +3,22 @@ from account.models import User
from order.models import OrderModel
from django_jalali.db import models as jmodels
class Attachment(models.Model):
file = models.FileField(upload_to='attachments')
created_at = models.DateTimeField(auto_now_add=True)
size = models.PositiveIntegerField(null=True, blank=True)
name = models.CharField(max_length=400, null=True, blank=True)
def __str__(self):
return self.file.name
def save(self, *args, **kwargs):
if self.file:
self.size = self.file.size
self.name = self.file.name
super(Attachment, self).save(*args, **kwargs)
class Ticket(models.Model):
objects = jmodels.jManager()
STATUS_CHOICES = [
@@ -28,6 +44,7 @@ class Ticket(models.Model):
created_at = jmodels.jDateTimeField(auto_now_add=True, verbose_name='ساخته شده در')
updated_at = jmodels.jDateTimeField(auto_now=True, verbose_name='اپدیت شده در')
order = models.ForeignKey(OrderModel ,blank=True, null=True, on_delete=models.SET_NULL)
attachments = models.ManyToManyField(Attachment, related_name='tickets', blank=True)
def __str__(self):
return self.subject
@@ -44,6 +61,7 @@ class Message(models.Model):
sender = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='ارسال کننده')
content = models.TextField(verbose_name='محتوای پیام')
created_at = jmodels.jDateTimeField(auto_now_add=True, verbose_name='ساخته شده در')
attachments = models.ManyToManyField(Attachment, related_name='messages', blank=True)
def __str__(self):
return f"Message by {self.sender.full_name} on {self.ticket.subject}"