diff --git a/modelbaker/dataobjects/layers.py b/modelbaker/dataobjects/layers.py index 118cfdd..05f3eb5 100644 --- a/modelbaker/dataobjects/layers.py +++ b/modelbaker/dataobjects/layers.py @@ -341,20 +341,6 @@ def real_id(self): else: return None - @property - def oid_domain(self): - t_ili_tid_field = self.t_ili_tid_field - if t_ili_tid_field: - return t_ili_tid_field.oid_domain - return None - - @property - def t_ili_tid_field(self): - for field in self.fields: - if field.name.lower() == "t_ili_tid": - return field - return None - def isPureLinkTable(self, project): """ Returns True if the layer is a pure link table in a n:m relation. diff --git a/modelbaker/generator/generator.py b/modelbaker/generator/generator.py index d013bc3..35a8a5f 100644 --- a/modelbaker/generator/generator.py +++ b/modelbaker/generator/generator.py @@ -49,6 +49,7 @@ def __init__( mgmt_uri=None, consider_basket_handling=False, optimize_strategy=OptimizeStrategy.NONE, + expose_t_ili_tid=False, ): """ Creates a new Generator objects. @@ -71,6 +72,7 @@ def __init__( self._db_connector.new_message.connect(self.append_print_message) self.basket_handling = consider_basket_handling and self.get_basket_handling() self.optimize_strategy = optimize_strategy + self.expose_t_ili_tid = expose_t_ili_tid self._additional_ignored_layers = ( [] @@ -308,7 +310,8 @@ def layers(self, filter_layer_list=[]): break if column_name in IGNORED_FIELDNAMES: - hide_attribute = True + if not self.expose_t_ili_tid and column_name.lower() == "t_ili_tid": + hide_attribute = True if not self.basket_handling and column_name in BASKET_FIELDNAMES: hide_attribute = True @@ -316,7 +319,8 @@ def layers(self, filter_layer_list=[]): field.hidden = hide_attribute if column_name in READONLY_FIELDNAMES: - field.read_only = True + if not self.expose_t_ili_tid and column_name.lower() == "t_ili_tid": + field.read_only = True if column_name in min_max_info: field.widget = "Range" @@ -392,8 +396,7 @@ def layers(self, filter_layer_list=[]): # when there is a t_ili_tid it should be filled up when there is no OID defined in the model if "oid_domain" not in fielddef or fielddef["oid_domain"] is None: field.default_value_expression = "substr(uuid(), 2, 36)" - else: - field.oid_domain = fielddef["oid_domain"] + if "enum_domain" in fielddef and fielddef["enum_domain"]: field.enum_domain = fielddef["enum_domain"]