Files
outbo-2-stgclone/evg-outbo-api/outbo/apps/projects/models/project_number.py
T
2024-11-27 13:18:16 +01:00

27 lines
761 B
Python
Executable File

from django.utils.translation import gettext_lazy as _
from django.db import models
from django.db.models import F
from rules.contrib.models import RulesModel
from outbo.apps.core.models import TimestampableDeletableMixin, SoftDeletableManager
class ProjectNumberManager(SoftDeletableManager):
def get_next_number(self, prefix):
current = self.get_or_create(prefix=prefix)[0]
value = current.value
current.value = F("value") + 1
current.save()
return value
class ProjectNumber(TimestampableDeletableMixin, RulesModel):
objects = ProjectNumberManager()
all_objects = ProjectNumberManager(alive_only=False)
prefix = models.CharField(max_length=4)
value = models.PositiveIntegerField(default=1)