Add slug field to the bootstap setup model

This commit is contained in:
Roberto Rosario
2012-10-16 01:08:12 -04:00
parent b54dff51a6
commit 55b01f1516
5 changed files with 44 additions and 1 deletions

View File

@@ -71,5 +71,6 @@ FIXTURE_METADATA_EDITED = 'edited'
FIXTURE_METADATA_MAYAN_VERSION = 'mayan_edms_version' FIXTURE_METADATA_MAYAN_VERSION = 'mayan_edms_version'
FIXTURE_METADATA_FORMAT = 'format' FIXTURE_METADATA_FORMAT = 'format'
FIXTURE_METADATA_NAME = 'name' FIXTURE_METADATA_NAME = 'name'
FIXTURE_METADATA_SLUG = 'slug'
FIXTURE_METADATA_DESCRIPTION = 'description' FIXTURE_METADATA_DESCRIPTION = 'description'
BOOTSTRAP_EXTENSION = 'txt' BOOTSTRAP_EXTENSION = 'txt'

View File

@@ -0,0 +1,35 @@
# -*- 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 field 'BootstrapSetup.slug'
db.add_column('bootstrap_bootstrapsetup', 'slug',
self.gf('django.db.models.fields.SlugField')(default='', unique=True, max_length=128, blank=True),
keep_default=False)
def backwards(self, orm):
# Deleting field 'BootstrapSetup.slug'
db.delete_column('bootstrap_bootstrapsetup', 'slug')
models = {
'bootstrap.bootstrapsetup': {
'Meta': {'ordering': "['name']", 'object_name': 'BootstrapSetup'},
'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 10, 16, 0, 0)'}),
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'fixture': ('django.db.models.fields.TextField', [], {}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '128', 'blank': 'True'}),
'type': ('django.db.models.fields.CharField', [], {'max_length': '16'})
}
}
complete_apps = ['bootstrap']

View File

@@ -5,6 +5,8 @@ import tempfile
import re import re
import datetime import datetime
import slugify
try: try:
from cStringIO import StringIO from cStringIO import StringIO
except ImportError: except ImportError:
@@ -26,6 +28,7 @@ class BootstrapSetup(models.Model):
Model to store the fixture for a pre configured setup. Model to store the fixture for a pre configured setup.
""" """
name = models.CharField(max_length=128, verbose_name=_(u'name'), unique=True) name = models.CharField(max_length=128, verbose_name=_(u'name'), unique=True)
slug = models.SlugField(max_length=128, verbose_name=_(u'slug'), unique=True, blank=True)
description = models.TextField(verbose_name=_(u'description'), blank=True) description = models.TextField(verbose_name=_(u'description'), blank=True)
fixture = models.TextField(verbose_name=_(u'fixture'), help_text=_(u'These are the actual database structure creation instructions.')) fixture = models.TextField(verbose_name=_(u'fixture'), help_text=_(u'These are the actual database structure creation instructions.'))
type = models.CharField(max_length=16, verbose_name=_(u'type'), choices=FIXTURE_TYPES_CHOICES) type = models.CharField(max_length=16, verbose_name=_(u'type'), choices=FIXTURE_TYPES_CHOICES)
@@ -92,6 +95,8 @@ class BootstrapSetup(models.Model):
self.get_metadata_string(), self.get_metadata_string(),
self.cleaned_fixture self.cleaned_fixture
) )
if not self.slug:
self.slug = slugify.slugify(self.name)
return super(BootstrapSetup, self).save(*args, **kwargs) return super(BootstrapSetup, self).save(*args, **kwargs)
class Meta: class Meta:

View File

@@ -13,7 +13,7 @@ from .models import BootstrapSetup
from .classes import FixtureMetadata from .classes import FixtureMetadata
from .literals import (FIXTURE_METADATA_CREATED, FIXTURE_METADATA_EDITED, from .literals import (FIXTURE_METADATA_CREATED, FIXTURE_METADATA_EDITED,
FIXTURE_METADATA_MAYAN_VERSION, FIXTURE_METADATA_FORMAT, FIXTURE_METADATA_NAME, FIXTURE_METADATA_MAYAN_VERSION, FIXTURE_METADATA_FORMAT, FIXTURE_METADATA_NAME,
FIXTURE_METADATA_DESCRIPTION, DATETIME_STRING_FORMAT) FIXTURE_METADATA_DESCRIPTION, DATETIME_STRING_FORMAT, FIXTURE_METADATA_SLUG)
register_links([BootstrapSetup], [link_bootstrap_setup_view, link_bootstrap_setup_edit, link_bootstrap_setup_delete, link_bootstrap_setup_execute, link_bootstrap_setup_export]) register_links([BootstrapSetup], [link_bootstrap_setup_view, link_bootstrap_setup_edit, link_bootstrap_setup_delete, link_bootstrap_setup_execute, link_bootstrap_setup_export])
register_links([BootstrapSetup], [link_bootstrap_setup_list, link_bootstrap_setup_create, link_bootstrap_setup_dump, link_bootstrap_setup_import], menu_name='secondary_menu') register_links([BootstrapSetup], [link_bootstrap_setup_list, link_bootstrap_setup_create, link_bootstrap_setup_dump, link_bootstrap_setup_import], menu_name='secondary_menu')
@@ -24,4 +24,5 @@ FixtureMetadata(FIXTURE_METADATA_EDITED, generate_function=lambda fixture_instan
FixtureMetadata(FIXTURE_METADATA_MAYAN_VERSION, generate_function=lambda fixture_instance: __version__) FixtureMetadata(FIXTURE_METADATA_MAYAN_VERSION, generate_function=lambda fixture_instance: __version__)
FixtureMetadata(FIXTURE_METADATA_FORMAT, generate_function=lambda fixture_instance: fixture_instance.type, property_name='type') FixtureMetadata(FIXTURE_METADATA_FORMAT, generate_function=lambda fixture_instance: fixture_instance.type, property_name='type')
FixtureMetadata(FIXTURE_METADATA_NAME, generate_function=lambda fixture_instance: fixture_instance.name, property_name='name') FixtureMetadata(FIXTURE_METADATA_NAME, generate_function=lambda fixture_instance: fixture_instance.name, property_name='name')
FixtureMetadata(FIXTURE_METADATA_SLUG, generate_function=lambda fixture_instance: fixture_instance.slug, property_name='slug')
FixtureMetadata(FIXTURE_METADATA_DESCRIPTION, generate_function=lambda fixture_instance: fixture_instance.description, property_name='description') FixtureMetadata(FIXTURE_METADATA_DESCRIPTION, generate_function=lambda fixture_instance: fixture_instance.description, property_name='description')

View File

@@ -21,3 +21,4 @@ pbs==0.105
psutil==0.5.1 psutil==0.5.1
GitPython==0.3.2.RC1 GitPython==0.3.2.RC1
PyYAML==3.10 PyYAML==3.10
unicode-slugify==0.1