schon/core/abstract.py
Egor fureunoir Gorbunov c682137fc5 Features: 1) Replace I18NFieldsetMixin with TranslationFieldsetMixin across all applicable admin classes; 2) Add new inlines for managing related objects such as OrderProduct and CategoryChildren; 3) Introduce support for dynamic translation fields in admin fieldsets.
Fixes: 1) Correct `notifications` field handling in `OrderAdmin` and `OrderItemAdmin` save logic; 2) Fix admin `get_queryset` prefetching logic for various models.

Extra: Remove outdated labels and sections in fieldsets; clean up unused imports and commented code for readability.
2025-06-22 16:15:48 +03:00

40 lines
1.3 KiB
Python

import uuid
from datetime import datetime
from django.db.models import BooleanField, Model, UUIDField
from django.utils.translation import gettext_lazy as _
from django_extensions.db.fields import CreationDateTimeField, ModificationDateTimeField
class NiceModel(Model):
id = None
uuid: uuid = UUIDField( # type: ignore
verbose_name=_("unique id"),
help_text=_("unique id is used to surely identify any database object"),
primary_key=True,
default=uuid.uuid4,
editable=False,
)
is_active: bool = BooleanField( # type: ignore
default=True,
verbose_name=_("is active"),
help_text=_(
"if set to false, this object can't be seen by users without needed permission"
),
)
created: datetime = CreationDateTimeField( # type: ignore
_("created"), help_text=_("when the object first appeared on the database")
)
modified: datetime = ModificationDateTimeField( # type: ignore
_("modified"), help_text=_("when the object was last modified")
)
def save(self, **kwargs):
self.update_modified = kwargs.pop(
"update_modified", getattr(self, "update_modified", True)
)
super().save(**kwargs)
class Meta:
abstract = True
get_latest_by = "modified"