mirror of
https://github.com/eitchtee/WYGIWYH.git
synced 2026-07-07 05:15:22 +02:00
fix: unable to update TransactionRuleAction
This commit is contained in:
+10
-2
@@ -102,13 +102,21 @@ class TransactionRuleActionForm(forms.ModelForm):
|
|||||||
field = cleaned_data.get("field")
|
field = cleaned_data.get("field")
|
||||||
|
|
||||||
if field and self.rule:
|
if field and self.rule:
|
||||||
if TransactionRuleAction.objects.filter(
|
# Create a queryset that excludes the current instance
|
||||||
|
existing_action = TransactionRuleAction.objects.filter(
|
||||||
rule=self.rule, field=field
|
rule=self.rule, field=field
|
||||||
).exists():
|
)
|
||||||
|
|
||||||
|
if self.instance.pk:
|
||||||
|
existing_action = existing_action.exclude(pk=self.instance.pk)
|
||||||
|
|
||||||
|
if existing_action.exists():
|
||||||
raise ValidationError(
|
raise ValidationError(
|
||||||
_("A value for this field already exists in the rule.")
|
_("A value for this field already exists in the rule.")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
return cleaned_data
|
||||||
|
|
||||||
def save(self, commit=True):
|
def save(self, commit=True):
|
||||||
instance = super().save(commit=False)
|
instance = super().save(commit=False)
|
||||||
instance.rule = self.rule
|
instance.rule = self.rule
|
||||||
|
|||||||
+11
-5
@@ -169,13 +169,17 @@ def transaction_rule_action_edit(request, transaction_rule_action_id):
|
|||||||
transaction_rule_action = get_object_or_404(
|
transaction_rule_action = get_object_or_404(
|
||||||
TransactionRuleAction, id=transaction_rule_action_id
|
TransactionRuleAction, id=transaction_rule_action_id
|
||||||
)
|
)
|
||||||
|
transaction_rule = get_object_or_404(
|
||||||
|
TransactionRule, id=transaction_rule_action.rule.id
|
||||||
|
)
|
||||||
|
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
form = TransactionRuleActionForm(request.POST, instance=transaction_rule_action)
|
form = TransactionRuleActionForm(
|
||||||
|
request.POST, instance=transaction_rule_action, rule=transaction_rule
|
||||||
|
)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
action = form.save(commit=False)
|
form.save()
|
||||||
action.rule = transaction_rule_action.rule
|
messages.success(request, _("Action updated successfully"))
|
||||||
action.save()
|
|
||||||
|
|
||||||
return HttpResponse(
|
return HttpResponse(
|
||||||
status=204,
|
status=204,
|
||||||
@@ -184,7 +188,9 @@ def transaction_rule_action_edit(request, transaction_rule_action_id):
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
form = TransactionRuleActionForm(instance=transaction_rule_action)
|
form = TransactionRuleActionForm(
|
||||||
|
instance=transaction_rule_action, rule=transaction_rule
|
||||||
|
)
|
||||||
|
|
||||||
return render(
|
return render(
|
||||||
request,
|
request,
|
||||||
|
|||||||
Reference in New Issue
Block a user