@@ -170,40 +170,62 @@ def get_tabset_data(self):
170
170
tab_data = {
171
171
"icon_class" : tab_definition .get ("icon_class" ),
172
172
"template" : tab_definition .get ("template" ),
173
- "fields" : self .get_fields_with_values (tab_definition .get ("fields" ))
173
+ "fields" : self .get_fields_data (tab_definition .get ("fields" ))
174
174
}
175
175
tabset_data [label ] = tab_data
176
176
177
177
return tabset_data
178
178
179
- def get_fields_with_values (self , fields ):
179
+ def get_fields_data (self , fields ):
180
180
"""
181
181
Returns the tab fields including their values for display.
182
182
"""
183
- fields_with_values = {}
183
+ fields_data = {}
184
184
185
- for field_name in fields :
186
- fields_with_values [field_name ] = self .get_field_data (field_name )
185
+ for field_definition in fields :
186
+ # Support for single "field_name" entry in fields list.
187
+ if not isinstance (field_definition , dict ):
188
+ field_name = field_definition
189
+ field_data = {'name' : field_name }
190
+ else :
191
+ field_name = field_definition .get ('name' )
192
+ field_data = field_definition [:]
193
+
194
+ if 'label' not in field_data :
195
+ field_data ['label' ] = self .get_field_label (field_name )
196
+
197
+ field_data ['value' ] = self .get_field_value (field_name )
187
198
188
- return fields_with_values
199
+ fields_data [ field_name ] = field_data
189
200
190
- def get_field_data (self , field_name ):
201
+ return fields_data
202
+
203
+ def get_field_value (self , field_name ):
191
204
"""
192
205
Returns the formatted value for the given `field_name` on the current object.
193
206
"""
194
207
field_value = getattr (self .object , field_name , None )
208
+
209
+ # TODO: Implement proper render for those fields.
210
+ if field_name in ['dependencies' ]:
211
+ return field_value
212
+
195
213
if isinstance (field_value , list ):
196
214
field_value = "\n " .join (field_value )
215
+
197
216
return field_value
198
217
199
- # @staticmethod
200
- # def get_field_label(field_name):
201
- # return (
202
- # field_name
203
- # .replace("_", " ")
204
- # .capitalize()
205
- # .replace("url", "URL")
206
- # )
218
+ @staticmethod
219
+ def get_field_label (field_name ):
220
+ """
221
+ Returns a formatted label for display based on the `field_name`.
222
+ """
223
+ return (
224
+ field_name
225
+ .replace ("_" , " " )
226
+ .capitalize ()
227
+ .replace ("url" , "URL" )
228
+ )
207
229
208
230
def get_context_data (self , ** kwargs ):
209
231
context = super ().get_context_data (** kwargs )
0 commit comments