From 1b2bd5c3fd47515ca8e96b4dce1b9ca9b88b5cb1 Mon Sep 17 00:00:00 2001 From: Mike Crute Date: Sat, 20 Apr 2013 12:38:53 -0400 Subject: Start with unit conversion --- ..._add_field_unit_grams__add_field_unit_liters.py | 66 ++++++++++++++++++++++ recipe/models.py | 31 +++++----- 2 files changed, 84 insertions(+), 13 deletions(-) create mode 100644 recipe/migrations/0002_auto__add_field_unit_grams__add_field_unit_liters.py diff --git a/recipe/migrations/0002_auto__add_field_unit_grams__add_field_unit_liters.py b/recipe/migrations/0002_auto__add_field_unit_grams__add_field_unit_liters.py new file mode 100644 index 0000000..215c81c --- /dev/null +++ b/recipe/migrations/0002_auto__add_field_unit_grams__add_field_unit_liters.py @@ -0,0 +1,66 @@ +# -*- 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 'Unit.grams' + db.add_column('recipe_unit', 'grams', + self.gf('django.db.models.fields.DecimalField')(null=True, max_digits=10, decimal_places=10, blank=True), + keep_default=False) + + # Adding field 'Unit.liters' + db.add_column('recipe_unit', 'liters', + self.gf('django.db.models.fields.DecimalField')(null=True, max_digits=10, decimal_places=10, blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'Unit.grams' + db.delete_column('recipe_unit', 'grams') + + # Deleting field 'Unit.liters' + db.delete_column('recipe_unit', 'liters') + + + models = { + 'recipe.ingredient': { + 'Meta': {'ordering': "('name',)", 'object_name': 'Ingredient'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'recipe.recipe': { + 'Meta': {'ordering': "('title',)", 'object_name': 'Recipe'}, + 'cook_time': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'instructions': ('django.db.models.fields.TextField', [], {}), + 'oven_temp': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'prep_time': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'servings': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '150'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'recipe.recipeingredient': { + 'Meta': {'object_name': 'RecipeIngredient'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'ingredient': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['recipe.Ingredient']"}), + 'quantity': ('django.db.models.fields.FloatField', [], {}), + 'recipe': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['recipe.Recipe']"}), + 'units': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['recipe.Unit']"}) + }, + 'recipe.unit': { + 'Meta': {'ordering': "('name',)", 'object_name': 'Unit'}, + 'abbreviation': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'grams': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '10', 'decimal_places': '10', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'liters': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '10', 'decimal_places': '10', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['recipe'] \ No newline at end of file diff --git a/recipe/models.py b/recipe/models.py index fc611a3..1db7f42 100644 --- a/recipe/models.py +++ b/recipe/models.py @@ -1,5 +1,4 @@ from django.db import models -from django.db.models import fields class Unit(models.Model): @@ -7,8 +6,14 @@ class Unit(models.Model): class Meta: ordering = ('name',) - name = fields.CharField(max_length=100) - abbreviation = fields.CharField(max_length=10, blank=True, null=True) + name = models.CharField(max_length=100) + abbreviation = models.CharField(max_length=10, blank=True, null=True) + grams = models.DecimalField(max_digits=10, decimal_places=10, + blank=True, null=True, + help_text="Conversion from this unit to grams (dry measure)") + liters = models.DecimalField(max_digits=10, decimal_places=10, + blank=True, null=True, + help_text="Conversion from this unit to liters (liquid measure)") def __unicode__(self): return "{0} ({1})".format(self.name, self.abbreviation) @@ -19,14 +24,14 @@ class Recipe(models.Model): class Meta: ordering = ('title',) - title = fields.CharField(max_length=100) - slug = fields.SlugField(max_length=150) - description = fields.TextField(blank=True, null=True) - servings = fields.IntegerField(blank=True, null=True) - instructions = fields.TextField() - oven_temp = fields.IntegerField(blank=True, null=True) - cook_time = fields.IntegerField(blank=True, null=True, help_text="In minutes") - prep_time = fields.IntegerField(blank=True, null=True, help_text="In minutes") + title = models.CharField(max_length=100) + slug = models.SlugField(max_length=150) + description = models.TextField(blank=True, null=True) + servings = models.IntegerField(blank=True, null=True) + instructions = models.TextField() + oven_temp = models.IntegerField(blank=True, null=True) + cook_time = models.IntegerField(blank=True, null=True, help_text="In minutes") + prep_time = models.IntegerField(blank=True, null=True, help_text="In minutes") def __unicode__(self): return self.title @@ -37,7 +42,7 @@ class Ingredient(models.Model): class Meta: ordering = ('name',) - name = fields.CharField(max_length=100, unique=True) + name = models.CharField(max_length=100, unique=True) def __unicode__(self): return self.name @@ -47,7 +52,7 @@ class RecipeIngredient(models.Model): ingredient = models.ForeignKey(Ingredient) units = models.ForeignKey(Unit) - quantity = fields.FloatField() + quantity = models.FloatField() recipe = models.ForeignKey(Recipe) def __unicode__(self): -- cgit v1.2.3