Files
eumi_v4/interventions/models.py
T

66 lines
2.0 KiB
Python

from django.db import models
from simple_history.models import HistoricalRecords
from users.models import Employee
class Intervention(models.Model):
STATUS_CHOICES = [
("nou", "Nou (Deschis)"),
("in_lucru", "În lucru"),
("in_asteptare", "În așteptare"),
("solutionat", "Soluționat"),
("inchis", "Închis"),
]
PRIORITY_CHOICES = [
("scazuta", "Scăzută"),
("medie", "Medie"),
("ridicata", "Ridicată"),
("critica", "Critică (Urgență)"),
]
title = models.CharField(max_length=255, verbose_name="Titlu scurt / Subiect")
description = models.TextField(verbose_name="Descrierea problemei")
# Tracking the timeline
created_at = models.DateTimeField(auto_now_add=True, verbose_name="Data raportării")
updated_at = models.DateTimeField(auto_now=True, verbose_name="Ultima actualizare")
resolved_at = models.DateTimeField(
null=True, blank=True, verbose_name="Data soluționării"
)
status = models.CharField(
max_length=20, choices=STATUS_CHOICES, default="nou", verbose_name="Stare"
)
priority = models.CharField(
max_length=20,
choices=PRIORITY_CHOICES,
default="medie",
verbose_name="Prioritate",
)
# People involved
reported_by = models.ForeignKey(
Employee,
on_delete=models.CASCADE,
related_name="reported_interventions",
verbose_name="Raportat de (Utilizator)",
)
assigned_to_it = models.CharField(
max_length=150, blank=True, null=True, verbose_name="Atribuit către (IT)"
)
resolution_notes = models.TextField(
blank=True, null=True, verbose_name="Note de soluționare"
)
history = HistoricalRecords()
def __str__(self):
return f"Ticket #{self.id} - {self.title} ({self.get_status_display()})"
class Meta:
verbose_name = "Intervenție Tehnică"
verbose_name_plural = "Intervenții Tehnice"
ordering = ["-created_at"]