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: