mirror of
https://github.com/qgis/QGIS.git
synced 2025-11-09 00:17:27 -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