mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-11-04 15:15:42 +00:00 
			
		
		
		
	Parameter ordering fix (#3704)
* Hard-code URL fforr loadPartParameterTable function * Improve API efficiency for including parameter data in Part query * Fix loading of part parameter data into table
This commit is contained in:
		@@ -1605,6 +1605,20 @@ class PartParameterList(ListCreateAPI):
 | 
				
			|||||||
    queryset = PartParameter.objects.all()
 | 
					    queryset = PartParameter.objects.all()
 | 
				
			||||||
    serializer_class = part_serializers.PartParameterSerializer
 | 
					    serializer_class = part_serializers.PartParameterSerializer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def get_serializer(self, *args, **kwargs):
 | 
				
			||||||
 | 
					        """Return the serializer instance for this API endpoint.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        If requested, extra detail fields are annotated to the queryset:
 | 
				
			||||||
 | 
					        - template_detail
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            kwargs['template_detail'] = str2bool(self.request.GET.get('template_detail', True))
 | 
				
			||||||
 | 
					        except AttributeError:
 | 
				
			||||||
 | 
					            pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return self.serializer_class(*args, **kwargs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    filter_backends = [
 | 
					    filter_backends = [
 | 
				
			||||||
        DjangoFilterBackend
 | 
					        DjangoFilterBackend
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -247,6 +247,19 @@ class PartParameterTemplateSerializer(InvenTreeModelSerializer):
 | 
				
			|||||||
class PartParameterSerializer(InvenTreeModelSerializer):
 | 
					class PartParameterSerializer(InvenTreeModelSerializer):
 | 
				
			||||||
    """JSON serializers for the PartParameter model."""
 | 
					    """JSON serializers for the PartParameter model."""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __init__(self, *args, **kwargs):
 | 
				
			||||||
 | 
					        """Custom initialization method for the serializer.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Allows us to optionally include or exclude particular information
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        template_detail = kwargs.pop('template_detail', False)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        super().__init__(*args, **kwargs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if not template_detail:
 | 
				
			||||||
 | 
					            self.fields.pop('template_detail')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    template_detail = PartParameterTemplateSerializer(source='template', many=False, read_only=True)
 | 
					    template_detail = PartParameterTemplateSerializer(source='template', many=False, read_only=True)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -813,7 +813,6 @@
 | 
				
			|||||||
    onPanelLoad("part-parameters", function() {
 | 
					    onPanelLoad("part-parameters", function() {
 | 
				
			||||||
        loadPartParameterTable(
 | 
					        loadPartParameterTable(
 | 
				
			||||||
            '#parameter-table',
 | 
					            '#parameter-table',
 | 
				
			||||||
            '{% url "api-part-parameter-list" %}',
 | 
					 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                params: {
 | 
					                params: {
 | 
				
			||||||
                    part: {{ part.pk }},
 | 
					                    part: {{ part.pk }},
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -803,7 +803,7 @@ function loadSimplePartTable(table, url, options={}) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function loadPartParameterTable(table, url, options) {
 | 
					function loadPartParameterTable(table, options) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    var params = options.params || {};
 | 
					    var params = options.params || {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -819,7 +819,7 @@ function loadPartParameterTable(table, url, options) {
 | 
				
			|||||||
    setupFilterList('part-parameters', $(table), filterTarget);
 | 
					    setupFilterList('part-parameters', $(table), filterTarget);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $(table).inventreeTable({
 | 
					    $(table).inventreeTable({
 | 
				
			||||||
        url: url,
 | 
					        url: '{% url "api-part-parameter-list" %}',
 | 
				
			||||||
        original: params,
 | 
					        original: params,
 | 
				
			||||||
        queryParams: filters,
 | 
					        queryParams: filters,
 | 
				
			||||||
        name: 'partparameters',
 | 
					        name: 'partparameters',
 | 
				
			||||||
@@ -1292,13 +1292,12 @@ function loadParametricPartTable(table, options={}) {
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        columns: columns,
 | 
					        columns: columns,
 | 
				
			||||||
        showColumns: true,
 | 
					        showColumns: true,
 | 
				
			||||||
        // filterControl: true,
 | 
					 | 
				
			||||||
        sidePagination: 'server',
 | 
					        sidePagination: 'server',
 | 
				
			||||||
        idField: 'pk',
 | 
					        idField: 'pk',
 | 
				
			||||||
        uniqueId: 'pk',
 | 
					        uniqueId: 'pk',
 | 
				
			||||||
        onLoadSuccess: function() {
 | 
					        onLoadSuccess: function(response) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var data = $(table).bootstrapTable('getData');
 | 
					            var data = response.results;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            for (var idx = 0; idx < data.length; idx++) {
 | 
					            for (var idx = 0; idx < data.length; idx++) {
 | 
				
			||||||
                var row = data[idx];
 | 
					                var row = data[idx];
 | 
				
			||||||
@@ -1309,7 +1308,7 @@ function loadParametricPartTable(table, options={}) {
 | 
				
			|||||||
                    row[`parameter_${parameter.template}`] = parameter.data;
 | 
					                    row[`parameter_${parameter.template}`] = parameter.data;
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                $(table).bootstrapTable('updateRow', pk, row);
 | 
					                $(table).bootstrapTable('updateByUniqueId', pk, row);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user