mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-30 20:55:42 +00:00 
			
		
		
		
	Automatically associate ''filters' with relations
This commit is contained in:
		| @@ -97,6 +97,7 @@ class InvenTreeMetadata(SimpleMetadata): | |||||||
|  |  | ||||||
|             model_fields = model_meta.get_field_info(ModelClass) |             model_fields = model_meta.get_field_info(ModelClass) | ||||||
|  |  | ||||||
|  |             # Iterate through simple fields | ||||||
|             for name, field in model_fields.fields.items(): |             for name, field in model_fields.fields.items(): | ||||||
|  |  | ||||||
|                 if field.has_default() and name in field_info.keys(): |                 if field.has_default() and name in field_info.keys(): | ||||||
| @@ -110,9 +111,25 @@ class InvenTreeMetadata(SimpleMetadata): | |||||||
|                             continue |                             continue | ||||||
|  |  | ||||||
|                     field_info[name]['default'] = default |                     field_info[name]['default'] = default | ||||||
|  |  | ||||||
|  |             # Iterate through relations | ||||||
|  |             for name, relation in model_fields.relations.items(): | ||||||
|  |  | ||||||
|  |                 if relation.reverse: | ||||||
|  |                     print("skipping reverse relation -", name) | ||||||
|  |                     continue | ||||||
|  |  | ||||||
|  |                 print('filters:', name, relation.model_field.get_limit_choices_to()) | ||||||
|  |  | ||||||
|  |                 continue | ||||||
|  |                 # Extract and provide the "limit_choices_to" filters | ||||||
|  |                 field_info[name]['filters'] = relation.model_field.get_limit_choices_to() | ||||||
|  |  | ||||||
|         except AttributeError: |         except AttributeError: | ||||||
|             pass |             pass | ||||||
|  |  | ||||||
|  |         print(field_info.keys()) | ||||||
|  |  | ||||||
|         return field_info |         return field_info | ||||||
|  |  | ||||||
|     def get_field_info(self, field): |     def get_field_info(self, field): | ||||||
|   | |||||||
| @@ -40,12 +40,34 @@ | |||||||
|  |  | ||||||
|     $('#new-company-2').click(function() { |     $('#new-company-2').click(function() { | ||||||
|         constructForm( |         constructForm( | ||||||
|             '{% url "api-company-list" %}', |             '{% url "api-build-list" %}', | ||||||
|             { |             { | ||||||
|                 method: 'POST', |                 method: 'POST', | ||||||
|                 fields: [ |                 title: '{% trans "Edit Part Details" %}', | ||||||
|                     'name', |                 fields: { | ||||||
|                     'description', |                     name: { | ||||||
|  |                         onEdit: function() { | ||||||
|  |                             console.log('Edited name field'); | ||||||
|  |                         } | ||||||
|  |                     }, | ||||||
|  |                     description: {}, | ||||||
|  |                     category: { | ||||||
|  |                         filters: { | ||||||
|  |                             parent: 1, | ||||||
|  |                         }, | ||||||
|  |                         secondary: { | ||||||
|  |                             label: '{% trans "New Category" %}', | ||||||
|  |                         }, | ||||||
|  |                     }, | ||||||
|  |                     active: { | ||||||
|  |                         onEdit: function() { | ||||||
|  |                             console.log('edited active field'); | ||||||
|  |                         } | ||||||
|  |                     }, | ||||||
|  |                     purchaseable: {}, | ||||||
|  |                     salable: {}, | ||||||
|  |                     component: {}, | ||||||
|  |                     /* | ||||||
|                     'website', |                     'website', | ||||||
|                     'address', |                     'address', | ||||||
|                     'phone', |                     'phone', | ||||||
| @@ -54,7 +76,8 @@ | |||||||
|                     'is_supplier', |                     'is_supplier', | ||||||
|                     'is_manufacturer', |                     'is_manufacturer', | ||||||
|                     'is_customer', |                     'is_customer', | ||||||
|                 ] |                     */ | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         ); |         ); | ||||||
|     }); |     }); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user