summaryrefslogtreecommitdiff
path: root/ishtar_common/models_common.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2020-10-06 19:44:11 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-02-28 12:15:21 +0100
commit9f8e22e404f30b0c26933ebc85efdb416cc7bca4 (patch)
tree04961ac0119f44f5c46cb4356733f8bf2b5b0c1d /ishtar_common/models_common.py
parent8b11f10de8259e2c0108434b15f97a968f5ccd93 (diff)
downloadIshtar-9f8e22e404f30b0c26933ebc85efdb416cc7bca4.tar.bz2
Ishtar-9f8e22e404f30b0c26933ebc85efdb416cc7bca4.zip
Complete identifier field: database - profile settings - save
Diffstat (limited to 'ishtar_common/models_common.py')
-rw-r--r--ishtar_common/models_common.py27
1 files changed, 24 insertions, 3 deletions
diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py
index 20809e38e..8c5d60637 100644
--- a/ishtar_common/models_common.py
+++ b/ishtar_common/models_common.py
@@ -60,7 +60,7 @@ from ishtar_common.models_imports import Import
from ishtar_common.templatetags.link_to_window import simple_link_to_window
from ishtar_common.utils import get_cache, disable_for_loaddata, \
get_all_field_names, merge_tsvectors, cached_label_changed, post_save_geo, \
- task, duplicate_item, get_external_id, get_current_profile
+ task, duplicate_item, get_generated_id, get_current_profile
"""
from ishtar_common.models import get_external_id, \
@@ -1224,7 +1224,7 @@ class BaseHistorizedItem(StatisticItem, TemplateItem, FullSearch, Imported,
self.external_id and
not getattr(self, 'auto_external_id', False)):
return
- external_id = get_external_id(self.EXTERNAL_ID_KEY, self)
+ external_id = get_generated_id(self.EXTERNAL_ID_KEY, self)
if external_id == self.external_id:
return
self.auto_external_id = True
@@ -2641,8 +2641,9 @@ class ImageContainerModel:
return "upload/{}/{:02d}/{:02d}".format(n.year, n.month, n.day)
-class QRCodeItem(models.Model, ImageContainerModel):
+class CompleteIdentifierItem(models.Model, ImageContainerModel):
HAS_QR_CODE = True
+ complete_identifier = models.TextField(_("Complete identifier"), blank=True)
qrcode = models.ImageField(upload_to=get_image_path, blank=True, null=True,
max_length=255)
@@ -2689,6 +2690,26 @@ class QRCodeItem(models.Model, ImageContainerModel):
if tmpdir_created:
shutil.rmtree(tmpdir)
+ def generate_complete_identifier(self):
+ SLUG = getattr(self, "SLUG", None)
+ if not SLUG:
+ return ""
+ complete_identifier = get_generated_id(
+ SLUG + "_complete_identifier", self)
+ if complete_identifier:
+ return complete_identifier
+ cached_label_key = 'cached_label'
+ if getattr(self, 'GEO_LABEL', None):
+ cached_label_key = getattr(self, 'GEO_LABEL', None)
+ if getattr(self, "CACHED_LABELS", None):
+ cached_label_key = getattr(self, "CACHED_LABELS")[-1]
+ complete_identifier = getattr(self, cached_label_key)
+ return complete_identifier
+
+ def save(self, *args, **kwargs):
+ self.complete_identifier = self.generate_complete_identifier()
+ super(CompleteIdentifierItem, self).save(*args, **kwargs)
+
class SearchVectorConfig:
def __init__(self, key, language=None, func=None):