Правки и улучшения визуала. Добавил функционал отметок.
This commit is contained in:
@@ -68,9 +68,75 @@ class CustomUser(models.Model):
|
||||
ordering = ["user__username"]
|
||||
|
||||
|
||||
class ObjectMark(models.Model):
|
||||
"""
|
||||
Модель отметки о наличии объекта.
|
||||
|
||||
Используется для фиксации моментов времени когда объект был обнаружен или отсутствовал.
|
||||
"""
|
||||
|
||||
# Основные поля
|
||||
mark = models.BooleanField(
|
||||
null=True,
|
||||
blank=True,
|
||||
verbose_name="Наличие объекта",
|
||||
help_text="True - объект обнаружен, False - объект отсутствует",
|
||||
)
|
||||
timestamp = models.DateTimeField(
|
||||
auto_now_add=True,
|
||||
verbose_name="Время",
|
||||
db_index=True,
|
||||
help_text="Время фиксации отметки",
|
||||
)
|
||||
source = models.ForeignKey(
|
||||
'Source',
|
||||
on_delete=models.CASCADE,
|
||||
related_name="marks",
|
||||
verbose_name="Источник",
|
||||
help_text="Связанный источник",
|
||||
)
|
||||
created_by = models.ForeignKey(
|
||||
CustomUser,
|
||||
on_delete=models.SET_NULL,
|
||||
related_name="marks_created",
|
||||
null=True,
|
||||
blank=True,
|
||||
verbose_name="Создан пользователем",
|
||||
help_text="Пользователь, создавший отметку",
|
||||
)
|
||||
|
||||
def can_edit(self):
|
||||
"""Проверка возможности редактирования отметки (в течение 5 минут)"""
|
||||
from datetime import timedelta
|
||||
if not self.timestamp:
|
||||
return False
|
||||
time_diff = timezone.now() - self.timestamp
|
||||
return time_diff < timedelta(minutes=5)
|
||||
|
||||
def can_add_new_mark_for_object(self):
|
||||
"""Проверка возможности добавления новой отметки для объекта (прошло 5 минут с последней)"""
|
||||
from datetime import timedelta
|
||||
if not self.timestamp:
|
||||
return True
|
||||
time_diff = timezone.now() - self.timestamp
|
||||
return time_diff >= timedelta(minutes=5)
|
||||
|
||||
def __str__(self):
|
||||
if self.timestamp:
|
||||
timestamp = self.timestamp.strftime("%d.%m.%Y %H:%M")
|
||||
return f"+ {timestamp}" if self.mark else f"- {timestamp}"
|
||||
return "Отметка без времени"
|
||||
|
||||
class Meta:
|
||||
verbose_name = "Отметка источника"
|
||||
verbose_name_plural = "Отметки источников"
|
||||
ordering = ["-timestamp"]
|
||||
|
||||
|
||||
# Для обратной совместимости с SigmaParameter
|
||||
class SigmaParMark(models.Model):
|
||||
"""
|
||||
Модель отметки о наличии сигнала.
|
||||
Модель отметки о наличии сигнала (для Sigma).
|
||||
|
||||
Используется для фиксации моментов времени когда сигнал был обнаружен или потерян.
|
||||
"""
|
||||
@@ -97,8 +163,8 @@ class SigmaParMark(models.Model):
|
||||
return "Отметка без времени"
|
||||
|
||||
class Meta:
|
||||
verbose_name = "Отметка"
|
||||
verbose_name_plural = "Отметки"
|
||||
verbose_name = "Отметка сигнала"
|
||||
verbose_name_plural = "Отметки сигналов"
|
||||
ordering = ["-timestamp"]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user