diff options
Diffstat (limited to 'ishtar_common')
| -rw-r--r-- | ishtar_common/serializers.py | 9 | ||||
| -rw-r--r-- | ishtar_common/serializers_utils.py | 8 | 
2 files changed, 13 insertions, 4 deletions
| diff --git a/ishtar_common/serializers.py b/ishtar_common/serializers.py index 50a48d79b..d2e3c2b98 100644 --- a/ishtar_common/serializers.py +++ b/ishtar_common/serializers.py @@ -13,6 +13,7 @@ from django.contrib.contenttypes.models import ContentType  from django.contrib.auth.models import Group, Permission  from . import models +from archaeological_operations.models import ActType  from ishtar_common.serializers_utils import generic_get_results, \      archive_serialization, generic_archive_files, SERIALIZATION_VERSION, \ @@ -56,16 +57,20 @@ CONF_MODEL_LIST = [      models.IshtarSiteProfile, models.GlobalVar, models.CustomForm,      models.ExcludedField, models.JsonDataSection, models.JsonDataField,      models.CustomFormJsonField, models.ImporterModel, -    models.DocumentTemplate +    models.DocumentTemplate, ActType  ] +CONF_SERIALIZATION_INCLUDE = {ActType.__name__: ["associated_template"]} +  def conf_serialization(archive=False, return_empty_types=False,                         archive_name=None):      media_archive = None      if archive:          media_archive = generic_archive_files(CONF_MODEL_LIST) -    result = generic_get_results(CONF_MODEL_LIST, "common_configuration") +    result = generic_get_results( +        CONF_MODEL_LIST, "common_configuration", +        serialization_include=CONF_SERIALIZATION_INCLUDE)      full_archive = archive_serialization(          result, archive_dir="common_configuration", archive=archive,          return_empty_types=return_empty_types, archive_name=archive_name) diff --git a/ishtar_common/serializers_utils.py b/ishtar_common/serializers_utils.py index efa390e59..e3b132ae0 100644 --- a/ishtar_common/serializers_utils.py +++ b/ishtar_common/serializers_utils.py @@ -108,7 +108,7 @@ def archive_serialization(result, archive_dir=None, archive=False,  def generic_get_results(model_list, dirname, no_geo=True, -                        result_queryset=None): +                        result_queryset=None, serialization_include=None):      result = OrderedDict()      for model in model_list:          base_model_name = model.__name__ @@ -173,11 +173,15 @@ def generic_get_results(model_list, dirname, no_geo=True,          excluded_fields = ["history_modifier", "history_creator", "imports",                             "locked", "lock_user"]          if hasattr(model, "SERIALIZATION_EXCLUDE"): -            excluded_fields = list(model.SERIALIZATION_EXCLUDE) +            excluded_fields += list(model.SERIALIZATION_EXCLUDE)          if no_geo:              excluded_fields += ["center", "limit"] + [                  field.name for field in models.GeoItem._meta.get_fields()              ] +        if serialization_include and model.__name__ in serialization_include: +            for k in serialization_include[model.__name__]: +                if k in excluded_fields: +                    excluded_fields.pop(excluded_fields.index(k))          if excluded_fields:              new_result = json.loads(result[key])              for idx in range(len(new_result)): | 
