2020-10-16 15:54:34 +00:00
|
|
|
import uuid
|
|
|
|
|
2020-10-17 17:28:15 +00:00
|
|
|
import tagulous.models
|
2020-10-16 16:31:54 +00:00
|
|
|
from bx_py_utils.models.timetracking import TimetrackingBaseModel
|
2020-10-16 18:20:18 +00:00
|
|
|
from django.conf import settings
|
2020-10-16 15:54:34 +00:00
|
|
|
from django.db import models
|
|
|
|
from django.utils.translation import ugettext_lazy as _
|
|
|
|
|
|
|
|
|
2020-10-16 16:31:54 +00:00
|
|
|
class BaseModel(TimetrackingBaseModel):
|
2020-10-16 15:54:34 +00:00
|
|
|
id = models.UUIDField(
|
|
|
|
primary_key=True,
|
|
|
|
default=uuid.uuid4,
|
|
|
|
editable=False,
|
2020-10-16 18:20:18 +00:00
|
|
|
verbose_name=_('BaseModel.id.verbose_name'),
|
|
|
|
help_text=_('BaseModel.id.help_text')
|
|
|
|
)
|
|
|
|
user = models.ForeignKey( # "Owner" of this entry
|
|
|
|
settings.AUTH_USER_MODEL,
|
|
|
|
related_name='+',
|
|
|
|
on_delete=models.CASCADE,
|
|
|
|
editable=False, # Must be set automatically and never changed
|
|
|
|
verbose_name=_('BaseModel.user.verbose_name'),
|
|
|
|
help_text=_('BaseModel.user.help_text')
|
|
|
|
)
|
|
|
|
name = models.CharField(
|
|
|
|
max_length=255,
|
|
|
|
verbose_name=_('BaseModel.name.verbose_name'),
|
|
|
|
help_text=_('BaseModel.name.help_text')
|
|
|
|
)
|
2020-10-17 17:28:15 +00:00
|
|
|
tags = tagulous.models.TagField(
|
2020-10-16 18:20:18 +00:00
|
|
|
blank=True,
|
2020-10-17 16:34:05 +00:00
|
|
|
force_lowercase=False,
|
2020-10-16 18:20:18 +00:00
|
|
|
max_count=10,
|
|
|
|
verbose_name=_('BaseModel.tags.verbose_name'),
|
|
|
|
help_text=_('BaseModel.tags.help_text')
|
2020-10-16 15:54:34 +00:00
|
|
|
)
|
|
|
|
|
2020-10-17 16:34:05 +00:00
|
|
|
def __str__(self):
|
|
|
|
return self.name
|
|
|
|
|
2020-10-16 15:54:34 +00:00
|
|
|
class Meta:
|
|
|
|
abstract = True
|