mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -05:00 
			
		
		
		
	Use parameter's name instead of description to save sql query
This commit is contained in:
		
							parent
							
								
									610d99c338
								
							
						
					
					
						commit
						e74e836017
					
				@ -82,7 +82,7 @@ class ExecuteSQLWidget(BASE, WIDGET):
 | 
			
		||||
 | 
			
		||||
    def insert(self):
 | 
			
		||||
        if self.mExpressionWidget.currentText():
 | 
			
		||||
            exp = '[% {} %]'.format(self.mExpressionWidget.currentText())
 | 
			
		||||
            exp = '[%{}%]'.format(self.mExpressionWidget.currentText())
 | 
			
		||||
            self.mText.insertPlainText(exp)
 | 
			
		||||
 | 
			
		||||
    def setValue(self, value):
 | 
			
		||||
@ -95,6 +95,17 @@ class ExecuteSQLWidget(BASE, WIDGET):
 | 
			
		||||
                            and v.source() == QgsProcessingModelChildParameterSource.ExpressionText:
 | 
			
		||||
                        text = v.expressionText()
 | 
			
		||||
 | 
			
		||||
                        # replace parameter's name by expression (diverging after model save)
 | 
			
		||||
                        names = QgsExpression.referencedVariables(text)
 | 
			
		||||
 | 
			
		||||
                        strings = self.dialog.getAvailableValuesOfType(
 | 
			
		||||
                            [QgsProcessingParameterString, QgsProcessingParameterNumber], [])
 | 
			
		||||
                        model_params = [(self.dialog.resolveValueDescription(s), s) for s in strings]
 | 
			
		||||
 | 
			
		||||
                        for k, v in model_params:
 | 
			
		||||
                            if v.parameterName() in names:
 | 
			
		||||
                                text = text.replace('[% @{} %]'.format(v.parameterName()), '[% @{} %]'.format(k))
 | 
			
		||||
 | 
			
		||||
        self.mText.setPlainText(text)
 | 
			
		||||
 | 
			
		||||
    def value(self):
 | 
			
		||||
@ -113,8 +124,19 @@ class ExecuteSQLWidget(BASE, WIDGET):
 | 
			
		||||
        model_params = [(self.dialog.resolveValueDescription(s), s) for s in strings]
 | 
			
		||||
 | 
			
		||||
        variables = QgsExpression.referencedVariables(text)
 | 
			
		||||
 | 
			
		||||
        # replace description by parameter's name (diverging after model save)
 | 
			
		||||
        descriptions = QgsExpression.referencedVariables(text)
 | 
			
		||||
 | 
			
		||||
        for k, v in model_params:
 | 
			
		||||
            if k in descriptions:
 | 
			
		||||
                text = text.replace('[% @{} %]'.format(k), '[% @{} %]'.format(v.parameterName()))
 | 
			
		||||
 | 
			
		||||
        src = QgsProcessingModelChildParameterSource.fromExpressionText(text)
 | 
			
		||||
 | 
			
		||||
        # add parameters currently used by the expression
 | 
			
		||||
        expression_values = []
 | 
			
		||||
        expression_values.append(QgsProcessingModelChildParameterSource.fromExpressionText(text))
 | 
			
		||||
        expression_values.append(src)
 | 
			
		||||
 | 
			
		||||
        for k, v in model_params:
 | 
			
		||||
            if k in variables:
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user