summaryrefslogtreecommitdiff
path: root/ishtar_common/models_common.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/models_common.py')
-rw-r--r--ishtar_common/models_common.py64
1 files changed, 36 insertions, 28 deletions
diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py
index e5afb0b3a..c68d3252b 100644
--- a/ishtar_common/models_common.py
+++ b/ishtar_common/models_common.py
@@ -4974,24 +4974,11 @@ class ImageContainerModel:
n = timezone.now()
return "upload/{}/{:02d}/{:02d}".format(n.year, n.month, n.day)
-
-class CompleteIdentifierItem(models.Model, ImageContainerModel):
+class QrCodeItem(models.Model, ImageContainerModel):
HAS_QR_CODE = True
- cached_label = models.TextField(
- _("Cached name"),
- blank=True,
- default="",
- db_index=True,
- help_text=_("Generated automatically - do not edit"),
- )
- complete_identifier = models.TextField(
- _("Complete identifier"), blank=True, default=""
- )
- custom_index = models.IntegerField(_("Custom index"), blank=True, null=True)
qrcode = models.ImageField(
upload_to=get_image_path, blank=True, null=True, max_length=255
)
-
class Meta:
abstract = True
@@ -5004,19 +4991,6 @@ class CompleteIdentifierItem(models.Model, ImageContainerModel):
return ""
return self.qrcode.path
- def _profile_generate_cached_label(self):
- slug = getattr(self, "SLUG", None)
- if not slug:
- return
- return get_generated_id(slug + "_cached_label", self)
-
- def _generate_cached_label(self):
- label = self._profile_generate_cached_label()
- if not label:
- # to be eventually overloaded by parent class
- return str(self)
- return label
-
def generate_qrcode(self, request=None, secure=True, tmpdir=None):
if not hasattr(self, "get_absolute_url"):
return
@@ -5056,6 +5030,35 @@ class CompleteIdentifierItem(models.Model, ImageContainerModel):
if tmpdir_created:
shutil.rmtree(tmpdir)
+
+class IdentifierItem(models.Model):
+ cached_label = models.TextField(
+ _("Cached name"),
+ blank=True,
+ default="",
+ db_index=True,
+ help_text=_("Generated automatically - do not edit"),
+ )
+ complete_identifier = models.TextField(
+ _("Complete identifier"), blank=True, default=""
+ )
+ custom_index = models.IntegerField(_("Custom index"), blank=True, null=True)
+ class Meta:
+ abstract = True
+
+ def _profile_generate_cached_label(self):
+ slug = getattr(self, "SLUG", None)
+ if not slug:
+ return
+ return get_generated_id(slug + "_cached_label", self)
+
+ def _generate_cached_label(self):
+ label = self._profile_generate_cached_label()
+ if not label:
+ # to be eventually overloaded by parent class
+ return str(self)
+ return label
+
def generate_complete_identifier(self):
SLUG = getattr(self, "SLUG", None)
if not SLUG:
@@ -5127,7 +5130,7 @@ class CompleteIdentifierItem(models.Model, ImageContainerModel):
return r["max_index"] + 1
def save(self, *args, **kwargs):
- super(CompleteIdentifierItem, self).save(*args, **kwargs)
+ super().save(*args, **kwargs)
self.regenerate_all_ids()
def regenerate_all_ids(self, save=True):
@@ -5153,6 +5156,11 @@ class CompleteIdentifierItem(models.Model, ImageContainerModel):
return updated
+class CompleteIdentifierItem(IdentifierItem, QrCodeItem):
+ class Meta:
+ abstract = True
+
+
class SearchVectorConfig:
def __init__(self, key, language=None, func=None):
self.key = key