CORD-1621: Inherited models with custom code fail to import in Monitoring service

Change-Id: I7b330f13d36cc76a76b52a15330bb1776d85d620
diff --git a/xos/genx/targets/django-split.xtarget b/xos/genx/targets/django-split.xtarget
index f3a998b..32694b7 100644
--- a/xos/genx/targets/django-split.xtarget
+++ b/xos/genx/targets/django-split.xtarget
@@ -18,7 +18,7 @@
 {% endfor %}
 
 
-class {{ m.name }}{{ xproto_base_def(m.bases) }}:
+class {{ m.name }}{{ xproto_base_def(m.bases, m.name) }}:
   # Primitive Fields (Not Relations)
   {% for f in m.fields %}
   {%- if not f.link -%}
diff --git a/xos/genx/targets/django.xtarget b/xos/genx/targets/django.xtarget
index 131676a..8eb5707 100644
--- a/xos/genx/targets/django.xtarget
+++ b/xos/genx/targets/django.xtarget
@@ -18,7 +18,7 @@
 {% endfor %}
 
 
-class {{ m.name }}{{ xproto_base_def(m.bases) }}:
+class {{ m.name }}{{ xproto_base_def(m.bases, m.name) }}:
   # Primitive Fields (Not Relations)
   {% for f in m.fields %}
   {%- if not f.link -%}
diff --git a/xos/genx/targets/service.xtarget b/xos/genx/targets/service.xtarget
index ebb3e14..abb6db2 100644
--- a/xos/genx/targets/service.xtarget
+++ b/xos/genx/targets/service.xtarget
@@ -30,8 +30,7 @@
 {% endfor %}
 
 {% for m in proto.messages %}
-
-class {{ m.name }}{{ legacy_tag }}{{ xproto_base_def(m.bases) }}:
+class {{ m.name }}{{ legacy_tag }}{{ xproto_base_def(m.bases, m.name,legacy_tag, proto.message_names) }}:
 
   KIND = {{ xproto_first_non_empty([m.options.kind, options.kind, options.name, "Set a kind in your xproto!"]) }}
 
diff --git a/xos/genx/tool/lib.py b/xos/genx/tool/lib.py
index 7a400bf..d90b82f 100644
--- a/xos/genx/tool/lib.py
+++ b/xos/genx/tool/lib.py
@@ -34,11 +34,13 @@
     else:
         return 'TextField'
 
-def xproto_base_def(base):
+def xproto_base_def(base, model_name, suffix='', suffix_list=[]):
     if (not base):
         return ''
     else:
-        return '(' + ','.join(base) + ')'
+        int_base = [i+suffix for i in base if i in suffix_list]
+        ext_base = [i for i in base if i not in suffix_list]
+        return '(' + ','.join(int_base + ext_base) + ')'
 
 def xproto_first_non_empty(lst):
     for l in lst: