From a03acebb69791d7bc2c403044fdd8ea42dafd08d Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Thu, 31 Oct 2013 14:46:58 +0100 Subject: [PATCH] models: add unicity constraint on title and domain fixes #3926 --- ...ce_domain__add_unique_wcsinstance_title.py | 58 +++++++++++++++++++ wcsinst/wcsinst/models.py | 4 +- 2 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 wcsinst/wcsinst/migrations/0003_auto__add_unique_wcsinstance_domain__add_unique_wcsinstance_title.py diff --git a/wcsinst/wcsinst/migrations/0003_auto__add_unique_wcsinstance_domain__add_unique_wcsinstance_title.py b/wcsinst/wcsinst/migrations/0003_auto__add_unique_wcsinstance_domain__add_unique_wcsinstance_title.py new file mode 100644 index 0000000..a9ea262 --- /dev/null +++ b/wcsinst/wcsinst/migrations/0003_auto__add_unique_wcsinstance_domain__add_unique_wcsinstance_title.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding unique constraint on 'WcsInstance', fields ['domain'] + db.create_unique(u'wcsinst_wcsinstance', ['domain']) + + # Adding unique constraint on 'WcsInstance', fields ['title'] + db.create_unique(u'wcsinst_wcsinstance', ['title']) + + + def backwards(self, orm): + # Removing unique constraint on 'WcsInstance', fields ['title'] + db.delete_unique(u'wcsinst_wcsinstance', ['title']) + + # Removing unique constraint on 'WcsInstance', fields ['domain'] + db.delete_unique(u'wcsinst_wcsinstance', ['domain']) + + + models = { + u'wcsinst.apisecret': { + 'Meta': {'object_name': 'ApiSecret'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'key': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'value': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'blank': 'True'}), + 'wcs_instance': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'api_secrets'", 'to': u"orm['wcsinst.WcsInstance']"}) + }, + u'wcsinst.variable': { + 'Meta': {'object_name': 'Variable'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'key': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'value': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'blank': 'True'}), + 'wcs_instance': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'variables'", 'to': u"orm['wcsinst.WcsInstance']"}) + }, + u'wcsinst.wcsinstance': { + 'Meta': {'object_name': 'WcsInstance'}, + 'backoffice_feed_url': ('django.db.models.fields.URLField', [], {'max_length': '128', 'blank': 'True'}), + 'clicrdv': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'domain': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'domino': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'drupal': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'ezldap': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'postgresql': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'saml2_role_prefix': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}), + 'saml2_use_role': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'strongbox': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'title': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '50'}) + } + } + + complete_apps = ['wcsinst'] \ No newline at end of file diff --git a/wcsinst/wcsinst/models.py b/wcsinst/wcsinst/models.py index ee5add2..99c9128 100644 --- a/wcsinst/wcsinst/models.py +++ b/wcsinst/wcsinst/models.py @@ -9,8 +9,8 @@ from django.utils.translation import ugettext_lazy as _ logger = logging.getLogger(__name__) class WcsInstance(models.Model): - title = models.CharField(max_length=50) - domain = models.CharField(max_length=100) + title = models.CharField(max_length=50, unique=True) + domain = models.CharField(max_length=100, unique=True) # site-options.cfg options postgresql = models.BooleanField(verbose_name=_('postgresql'),