summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-09-12 12:05:12 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-09-12 12:05:12 +0200
commit1352fd1274896bc0fc5a495132babfb12b360d0c (patch)
treef1838febade75a171ea15dc942c6c0dd351c41c6
parent53bc30c87385c4332a7b6674c0b4887481f4c65b (diff)
downloadIshtar-1352fd1274896bc0fc5a495132babfb12b360d0c.tar.bz2
Ishtar-1352fd1274896bc0fc5a495132babfb12b360d0c.zip
Remove contenttype from serialization - instead force regen of content_types
-rw-r--r--ishtar_common/serializers.py7
-rw-r--r--ishtar_common/tests.py13
2 files changed, 18 insertions, 2 deletions
diff --git a/ishtar_common/serializers.py b/ishtar_common/serializers.py
index d2e3c2b98..84108c135 100644
--- a/ishtar_common/serializers.py
+++ b/ishtar_common/serializers.py
@@ -28,6 +28,8 @@ from archaeological_finds.serializers import find_serialization, \
from archaeological_warehouse.serializers import warehouse_serialization, \
WAREHOUSE_MODEL_LIST
+from django.contrib.contenttypes.management import create_contenttypes
+
class PublicSerializer(serializers.BaseSerializer):
def to_representation(self, obj):
@@ -38,7 +40,7 @@ TYPE_MODEL_EXCLUDE = ["Area", "OperationTypeOld", "ProfileTypeSummary"]
def get_type_models():
- return [ContentType, Permission, Group] + [
+ return [Permission, Group] + [
model for model in apps.get_models()
if isinstance(model(), models.GeneralType) and (
model.__name__ not in TYPE_MODEL_EXCLUDE)
@@ -295,6 +297,9 @@ def full_serialization(operation_queryset=None, site_queryset=None,
def restore_serialized(archive_name, user=None, delete_existing=False,
release_locks=False):
+ for app in apps.get_app_configs():
+ create_contenttypes(app, verbosity=1, interactive=False)
+
with zipfile.ZipFile(archive_name, "r") as zip_file:
# check version
info = json.loads(zip_file.read("info.json").decode("utf-8"))
diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py
index 2cad1ef81..765d74312 100644
--- a/ishtar_common/tests.py
+++ b/ishtar_common/tests.py
@@ -628,7 +628,18 @@ class GenericSerializationTest:
for key in json_result.keys():
__, k = key
module_name, model_name = k.split("__")
- module = importlib.import_module(module_name + ".models")
+ if module_name == "django":
+ if model_name in ("Group", "Permission"):
+ module = importlib.import_module(
+ "django.contrib.auth.models")
+ elif model_name in ("ContentType",):
+ module = importlib.import_module(
+ "django.contrib.contenttypes.models")
+ else:
+ return
+ else:
+ module = importlib.import_module(module_name + ".models")
+
model = getattr(module, model_name)
current_count = model.objects.count()
result = json.loads(json_result[key])