mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-11-03 22:55:43 +00:00 
			
		
		
		
	Add "external" field to StockLocation (#4377)
* Add "external" field to StockLocation - New model for field - Database migrations - Serializer / API updates - Front end tables / filters * Update API version
This commit is contained in:
		@@ -2,11 +2,14 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# InvenTree API version
 | 
					# InvenTree API version
 | 
				
			||||||
INVENTREE_API_VERSION = 96
 | 
					INVENTREE_API_VERSION = 97
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"""
 | 
					"""
 | 
				
			||||||
Increment this API version number whenever there is a significant change to the API that any clients need to know about
 | 
					Increment this API version number whenever there is a significant change to the API that any clients need to know about
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					v97 -> 2023-02-20 : https://github.com/inventree/InvenTree/pull/4377
 | 
				
			||||||
 | 
					    - Adds "external" attribute to StockLocation model
 | 
				
			||||||
 | 
					
 | 
				
			||||||
v96 -> 2023-02-16 : https://github.com/inventree/InvenTree/pull/4345
 | 
					v96 -> 2023-02-16 : https://github.com/inventree/InvenTree/pull/4345
 | 
				
			||||||
    - Adds stocktake report generation functionality
 | 
					    - Adds stocktake report generation functionality
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -310,7 +310,8 @@ class StockLocationList(APIDownloadMixin, ListCreateAPI):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    filterset_fields = [
 | 
					    filterset_fields = [
 | 
				
			||||||
        'name',
 | 
					        'name',
 | 
				
			||||||
        'structural'
 | 
					        'structural',
 | 
				
			||||||
 | 
					        'external',
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    search_fields = [
 | 
					    search_fields = [
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										18
									
								
								InvenTree/stock/migrations/0095_stocklocation_external.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								InvenTree/stock/migrations/0095_stocklocation_external.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					# Generated by Django 3.2.18 on 2023-02-20 12:22
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from django.db import migrations, models
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Migration(migrations.Migration):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    dependencies = [
 | 
				
			||||||
 | 
					        ('stock', '0094_auto_20230220_0025'),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    operations = [
 | 
				
			||||||
 | 
					        migrations.AddField(
 | 
				
			||||||
 | 
					            model_name='stocklocation',
 | 
				
			||||||
 | 
					            name='external',
 | 
				
			||||||
 | 
					            field=models.BooleanField(default=False, help_text='This is an external stock location', verbose_name='External'),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
@@ -122,6 +122,12 @@ class StockLocation(InvenTreeBarcodeMixin, MetadataMixin, InvenTreeTree):
 | 
				
			|||||||
            'but may be located to child locations.'),
 | 
					            'but may be located to child locations.'),
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    external = models.BooleanField(
 | 
				
			||||||
 | 
					        default=False,
 | 
				
			||||||
 | 
					        verbose_name=_('External'),
 | 
				
			||||||
 | 
					        help_text=_('This is an external stock location')
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_location_owner(self):
 | 
					    def get_location_owner(self):
 | 
				
			||||||
        """Get the closest "owner" for this location.
 | 
					        """Get the closest "owner" for this location.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -584,6 +584,7 @@ class LocationSerializer(InvenTree.serializers.InvenTreeModelSerializer):
 | 
				
			|||||||
            'owner',
 | 
					            'owner',
 | 
				
			||||||
            'icon',
 | 
					            'icon',
 | 
				
			||||||
            'structural',
 | 
					            'structural',
 | 
				
			||||||
 | 
					            'external',
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        read_only_fields = [
 | 
					        read_only_fields = [
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -117,6 +117,7 @@ function stockLocationFields(options={}) {
 | 
				
			|||||||
        description: {},
 | 
					        description: {},
 | 
				
			||||||
        owner: {},
 | 
					        owner: {},
 | 
				
			||||||
        structural: {},
 | 
					        structural: {},
 | 
				
			||||||
 | 
					        external: {},
 | 
				
			||||||
        icon: {
 | 
					        icon: {
 | 
				
			||||||
            help_text: `{% trans "Icon (optional) - Explore all available icons on" %} <a href="https://fontawesome.com/v5/search?s=solid" target="_blank" rel="noopener noreferrer">Font Awesome</a>.`,
 | 
					            help_text: `{% trans "Icon (optional) - Explore all available icons on" %} <a href="https://fontawesome.com/v5/search?s=solid" target="_blank" rel="noopener noreferrer">Font Awesome</a>.`,
 | 
				
			||||||
            placeholder: 'fas fa-box',
 | 
					            placeholder: 'fas fa-box',
 | 
				
			||||||
@@ -2491,6 +2492,24 @@ function loadStockLocationTable(table, options) {
 | 
				
			|||||||
                title: '{% trans "Stock Items" %}',
 | 
					                title: '{% trans "Stock Items" %}',
 | 
				
			||||||
                switchable: true,
 | 
					                switchable: true,
 | 
				
			||||||
                sortable: true,
 | 
					                sortable: true,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                field: 'structural',
 | 
				
			||||||
 | 
					                title: '{% trans "Structural" %}',
 | 
				
			||||||
 | 
					                switchable: true,
 | 
				
			||||||
 | 
					                sortable: false,
 | 
				
			||||||
 | 
					                formatter: function(value) {
 | 
				
			||||||
 | 
					                    return yesNoLabel(value);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                field: 'external',
 | 
				
			||||||
 | 
					                title: '{% trans "External" %}',
 | 
				
			||||||
 | 
					                switchable: true,
 | 
				
			||||||
 | 
					                sortable: false,
 | 
				
			||||||
 | 
					                formatter: function(value) {
 | 
				
			||||||
 | 
					                    return yesNoLabel(value);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -134,6 +134,10 @@ function getAvailableTableFilters(tableKey) {
 | 
				
			|||||||
                type: 'bool',
 | 
					                type: 'bool',
 | 
				
			||||||
                title: '{% trans "Structural" %}',
 | 
					                title: '{% trans "Structural" %}',
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
 | 
					            external: {
 | 
				
			||||||
 | 
					                type: 'bool',
 | 
				
			||||||
 | 
					                title: '{% trans "External" %}',
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user