Removing feedback_state fields when saving a model from the GUI

Change-Id: I5cd9dcb202594b9a29473483c8af1d3c9d5ed71e
diff --git a/src/app/core/services/helpers/config.helpers.ts b/src/app/core/services/helpers/config.helpers.ts
index 194bea1..0e17d73 100644
--- a/src/app/core/services/helpers/config.helpers.ts
+++ b/src/app/core/services/helpers/config.helpers.ts
@@ -97,7 +97,9 @@
   public form_excluded_fields = this.excluded_fields.concat([
     'id',
     'policy_status',
+    'policy_code',
     'backend_status',
+    'backend_code',
   ]);
 
   constructor(
@@ -319,7 +321,7 @@
 
         return;
       }
-      // remove fields added by the GUI
+      // remove fields that are not part of the model
       item = this.removeExtraFields(item, model);
 
       const itemCopy = angular.copy(item);
@@ -356,8 +358,9 @@
 
   private removeExtraFields(item: any, modelDef: IXosModeldef) {
     _.forEach(Object.keys(item), prop => {
-      const hasField = _.findIndex(modelDef.fields, {name: prop}) > -1;
-      if (!hasField) {
+      const field = _.find(modelDef.fields, {name: prop});
+      const hasField = angular.isDefined(field);
+      if (!hasField || field.read_only) {
         delete item[prop];
       }
     });