mirror of
https://github.com/eitchtee/WYGIWYH.git
synced 2026-03-20 16:44:00 +01:00
fix: unable to update TransactionRuleAction
This commit is contained in:
@@ -102,13 +102,21 @@ class TransactionRuleActionForm(forms.ModelForm):
|
||||
field = cleaned_data.get("field")
|
||||
|
||||
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
|
||||
).exists():
|
||||
)
|
||||
|
||||
if self.instance.pk:
|
||||
existing_action = existing_action.exclude(pk=self.instance.pk)
|
||||
|
||||
if existing_action.exists():
|
||||
raise ValidationError(
|
||||
_("A value for this field already exists in the rule.")
|
||||
)
|
||||
|
||||
return cleaned_data
|
||||
|
||||
def save(self, commit=True):
|
||||
instance = super().save(commit=False)
|
||||
instance.rule = self.rule
|
||||
|
||||
@@ -169,13 +169,17 @@ def transaction_rule_action_edit(request, transaction_rule_action_id):
|
||||
transaction_rule_action = get_object_or_404(
|
||||
TransactionRuleAction, id=transaction_rule_action_id
|
||||
)
|
||||
transaction_rule = get_object_or_404(
|
||||
TransactionRule, id=transaction_rule_action.rule.id
|
||||
)
|
||||
|
||||
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():
|
||||
action = form.save(commit=False)
|
||||
action.rule = transaction_rule_action.rule
|
||||
action.save()
|
||||
form.save()
|
||||
messages.success(request, _("Action updated successfully"))
|
||||
|
||||
return HttpResponse(
|
||||
status=204,
|
||||
@@ -184,7 +188,9 @@ def transaction_rule_action_edit(request, transaction_rule_action_id):
|
||||
},
|
||||
)
|
||||
else:
|
||||
form = TransactionRuleActionForm(instance=transaction_rule_action)
|
||||
form = TransactionRuleActionForm(
|
||||
instance=transaction_rule_action, rule=transaction_rule
|
||||
)
|
||||
|
||||
return render(
|
||||
request,
|
||||
|
||||
Reference in New Issue
Block a user