Merged [5426] from ietf@augustcellars.com:
Make sure that the same rule cannot be entered twice in a community list.
As part of this fix, you need to do the following:
1. Eliminate duplicates currently in the data base. This statement can be used to identify them.
SELECT e1.id id1, e2.id id2, e1.community_list_id, e1.rule_type, e1.value FROM ietf_utf8.community_rule e1 JOIN ietf_utf8.community_rule e2 ON (e1.id != e2.id AND e1.community_list_id=e2.community_list_id AND e1.rule_type=e2.rule_type AND e1.value=e2.value);
2. Delete any current duplicate lines in the text. This uses the following commands as of the check-in
DELETE FROM TABLE ietf_utf8.community_rule WHERE id=19 OR id=91 OR id=177
3. Add a constraint to the table so that it will enforce the rule itself
ALTER TABLE ietf_utf8.community_rule ADD CONSTRAINT pc_CommunityRule UNIQUE (community_list_id, rule_type, value)
- Legacy-Id: 5460
Note: SVN reference [5426] has been migrated to Git commit a18bebe7bd
This commit is contained in:
commit
f7d979c83e
|
@ -126,6 +126,9 @@ class Rule(models.Model):
|
|||
value = models.CharField(
|
||||
max_length=255)
|
||||
|
||||
class Meta:
|
||||
unique_together= ("community_list", "rule_type", "value")
|
||||
|
||||
last_updated = models.DateTimeField(
|
||||
auto_now=True)
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ import uuid
|
|||
import datetime
|
||||
import hashlib
|
||||
from datetime import timedelta
|
||||
from django.db import IntegrityError
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib.auth import REDIRECT_FIELD_NAME
|
||||
|
@ -25,7 +26,10 @@ def _manage_list(request, clist):
|
|||
rule_form = RuleForm(request.POST, clist=clist)
|
||||
display_form = DisplayForm(instance=display_config)
|
||||
if rule_form.is_valid():
|
||||
rule_form.save()
|
||||
try:
|
||||
rule_form.save()
|
||||
except IntegrityError:
|
||||
pass;
|
||||
rule_form = RuleForm(clist=clist)
|
||||
display_form = DisplayForm(instance=display_config)
|
||||
elif request.method == 'POST' and request.POST.get('save_display', None):
|
||||
|
|
Loading…
Reference in a new issue