old_console/rotation/models.py
2024-11-02 14:12:45 +03:00

39 lines
1.5 KiB
Python

from django.db import models
from django.utils.translation import gettext_lazy
from django_celery_beat.models import PeriodicTask
from solo.models import SingletonModel
from core.fields import IntegerField
from rotation.constants import DEFAULT_ROTATION_SIZE
from rotation.enums import RotationType
class RotationSettings(SingletonModel):
""" Base model for Object rotation settings """
rotation_type = IntegerField(choices=RotationType.choices,
verbose_name=gettext_lazy('Rotation type'),
default=RotationType.DISABLED)
size_rotation = IntegerField(default=DEFAULT_ROTATION_SIZE,
min_value=1,
verbose_name=gettext_lazy('Size of table when rotation occurs'),
help_text=gettext_lazy('Size of table'),
null=True,
blank=True)
task = models.ForeignKey(PeriodicTask,
null=True,
blank=True,
verbose_name=gettext_lazy('Task'),
help_text=gettext_lazy('Periodic task'),
on_delete=models.SET_NULL)
class Meta:
abstract = True
class IncidentRotationSettings(RotationSettings):
singleton_instance_id = 5
class EventRotationSettings(RotationSettings):
singleton_instance_id = 1