summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/models_common.py7
-rw-r--r--ishtar_common/models_rest.py13
-rw-r--r--ishtar_common/templatetags/window_field.py4
3 files changed, 21 insertions, 3 deletions
diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py
index e55a21e0c..3138cecc6 100644
--- a/ishtar_common/models_common.py
+++ b/ishtar_common/models_common.py
@@ -29,7 +29,7 @@ from django.contrib.postgres.fields import JSONField
from django.contrib.postgres.search import SearchVectorField, SearchVector
from django.contrib.sites.models import Site
from django.core.cache import cache
-from django.core.exceptions import ObjectDoesNotExist
+from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
from django.core.files import File
from django.core.serializers import serialize
from django.urls import reverse, NoReverseMatch
@@ -3268,7 +3268,10 @@ class MainItem(ShortMenuItem):
if field.name in self.SERIALIZE_EXCLUDE:
continue
if field.many_to_one or field.one_to_one:
- value = getattr(self, field.name)
+ try:
+ value = getattr(self, field.name)
+ except (MultipleObjectsReturned, ObjectDoesNotExist):
+ value = None
if value:
value = str(value)
else:
diff --git a/ishtar_common/models_rest.py b/ishtar_common/models_rest.py
index cc07a8803..f2b060bef 100644
--- a/ishtar_common/models_rest.py
+++ b/ishtar_common/models_rest.py
@@ -21,7 +21,18 @@ except (AssertionError, ImportError):
from ishtar_common.utils import ugettext_lazy as _
-MAIN_CONTENT_TYPES = (("archaeological_operations", "operation"),)
+APP_CONTENT_TYPES = [
+ ("archaeological_operations", "operation"),
+ ("archaeological_context_records", "contextrecord"),
+ ("archaeological_finds", "find"),
+ ("archaeological_warehouse", "warehouse"),
+ ("archaeological_files", "file"),
+]
+
+MAIN_CONTENT_TYPES = APP_CONTENT_TYPES + [
+ ("archaeological_operations", "archaeologicalsite"),
+ ("archaeological_warehouse", "container"),
+]
class ApiUser(models.Model):
diff --git a/ishtar_common/templatetags/window_field.py b/ishtar_common/templatetags/window_field.py
index cffa2a54f..70a2ba4da 100644
--- a/ishtar_common/templatetags/window_field.py
+++ b/ishtar_common/templatetags/window_field.py
@@ -211,4 +211,8 @@ def field_flex_detail_multiple_full(context, caption, items):
@register.filter
def m2m_listing(item, key):
+ if isinstance(item, dict):
+ if key in item:
+ return item[key]
+ return []
return item.m2m_listing(key)