Modelos de Tickets¶
class Ticket(models.Model):
titulo = models.CharField(max_length=200)
descripcion = models.TextField()
servicio = models.ForeignKey('Servicio', on_delete=models.PROTECT)
creador = models.ForeignKey(User, related_name='tickets_creados')
asignado = models.ForeignKey(User, related_name='tickets_asignados')
PRIORIDAD_CHOICES = [
('BAJA', 'Baja'),
('MEDIA', 'Media'),
('ALTA', 'Alta'),
('URGENTE', 'Urgente'),
]
prioridad = models.CharField(max_length=20, choices=PRIORIDAD_CHOICES)
ESTATUS_CHOICES = [
('PENDIENTE', 'Pendiente'),
('EN_PROCESO', 'En Proceso'),
('COMPLETADO', 'Completado'),
('CANCELADO', 'Cancelado'),
]
estatus = models.CharField(max_length=20, choices=ESTATUS_CHOICES)
fecha_limite = models.DateField()
plaza = models.CharField(max_length=50)
class Acuerdo(models.Model):
titulo = models.CharField(max_length=200)
descripcion = models.TextField()
fecha_limite = models.DateField()
class SubtareaTicket(models.Model):
ticket = models.ForeignKey(Ticket, on_delete=models.CASCADE)
descripcion = models.CharField(max_length=200)
completada = models.BooleanField(default=False)
dependencias = models.ManyToManyField('self', blank=True)
class TareaProgramada(models.Model):
nombre = models.CharField(max_length=200)
frecuencia = models.CharField(max_length=20) # DIARIA, SEMANAL, MENSUAL
activa = models.BooleanField(default=True)
class ChatTicket(models.Model):
ticket = models.ForeignKey(Ticket, on_delete=models.CASCADE)
usuario = models.ForeignKey(User, on_delete=models.PROTECT)
mensaje = models.TextField()
fecha = models.DateTimeField(auto_now_add=True)
Ver: Módulo Tickets