diff options
author | Mike Crute <mcrute@gmail.com> | 2013-04-20 12:38:53 -0400 |
---|---|---|
committer | Mike Crute <mcrute@gmail.com> | 2013-04-20 12:38:53 -0400 |
commit | 1b2bd5c3fd47515ca8e96b4dce1b9ca9b88b5cb1 (patch) | |
tree | 5c3e89a290a50252dcf0e13c47804572f49b360e | |
parent | 3a8a5dd687e44f4adb9750decd290d36cf9a1772 (diff) | |
download | greenbox-1b2bd5c3fd47515ca8e96b4dce1b9ca9b88b5cb1.tar.bz2 greenbox-1b2bd5c3fd47515ca8e96b4dce1b9ca9b88b5cb1.tar.xz greenbox-1b2bd5c3fd47515ca8e96b4dce1b9ca9b88b5cb1.zip |
Start with unit conversion
-rw-r--r-- | recipe/migrations/0002_auto__add_field_unit_grams__add_field_unit_liters.py | 66 | ||||
-rw-r--r-- | recipe/models.py | 31 |
2 files changed, 84 insertions, 13 deletions
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 @@ | |||
1 | # -*- coding: utf-8 -*- | ||
2 | import datetime | ||
3 | from south.db import db | ||
4 | from south.v2 import SchemaMigration | ||
5 | from django.db import models | ||
6 | |||
7 | |||
8 | class Migration(SchemaMigration): | ||
9 | |||
10 | def forwards(self, orm): | ||
11 | # Adding field 'Unit.grams' | ||
12 | db.add_column('recipe_unit', 'grams', | ||
13 | self.gf('django.db.models.fields.DecimalField')(null=True, max_digits=10, decimal_places=10, blank=True), | ||
14 | keep_default=False) | ||
15 | |||
16 | # Adding field 'Unit.liters' | ||
17 | db.add_column('recipe_unit', 'liters', | ||
18 | self.gf('django.db.models.fields.DecimalField')(null=True, max_digits=10, decimal_places=10, blank=True), | ||
19 | keep_default=False) | ||
20 | |||
21 | |||
22 | def backwards(self, orm): | ||
23 | # Deleting field 'Unit.grams' | ||
24 | db.delete_column('recipe_unit', 'grams') | ||
25 | |||
26 | # Deleting field 'Unit.liters' | ||
27 | db.delete_column('recipe_unit', 'liters') | ||
28 | |||
29 | |||
30 | models = { | ||
31 | 'recipe.ingredient': { | ||
32 | 'Meta': {'ordering': "('name',)", 'object_name': 'Ingredient'}, | ||
33 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
34 | 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) | ||
35 | }, | ||
36 | 'recipe.recipe': { | ||
37 | 'Meta': {'ordering': "('title',)", 'object_name': 'Recipe'}, | ||
38 | 'cook_time': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), | ||
39 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | ||
40 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
41 | 'instructions': ('django.db.models.fields.TextField', [], {}), | ||
42 | 'oven_temp': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), | ||
43 | 'prep_time': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), | ||
44 | 'servings': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), | ||
45 | 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '150'}), | ||
46 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
47 | }, | ||
48 | 'recipe.recipeingredient': { | ||
49 | 'Meta': {'object_name': 'RecipeIngredient'}, | ||
50 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
51 | 'ingredient': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['recipe.Ingredient']"}), | ||
52 | 'quantity': ('django.db.models.fields.FloatField', [], {}), | ||
53 | 'recipe': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['recipe.Recipe']"}), | ||
54 | 'units': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['recipe.Unit']"}) | ||
55 | }, | ||
56 | 'recipe.unit': { | ||
57 | 'Meta': {'ordering': "('name',)", 'object_name': 'Unit'}, | ||
58 | 'abbreviation': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), | ||
59 | 'grams': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '10', 'decimal_places': '10', 'blank': 'True'}), | ||
60 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
61 | 'liters': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '10', 'decimal_places': '10', 'blank': 'True'}), | ||
62 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
63 | } | ||
64 | } | ||
65 | |||
66 | 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 @@ | |||
1 | from django.db import models | 1 | from django.db import models |
2 | from django.db.models import fields | ||
3 | 2 | ||
4 | 3 | ||
5 | class Unit(models.Model): | 4 | class Unit(models.Model): |
@@ -7,8 +6,14 @@ class Unit(models.Model): | |||
7 | class Meta: | 6 | class Meta: |
8 | ordering = ('name',) | 7 | ordering = ('name',) |
9 | 8 | ||
10 | name = fields.CharField(max_length=100) | 9 | name = models.CharField(max_length=100) |
11 | abbreviation = fields.CharField(max_length=10, blank=True, null=True) | 10 | abbreviation = models.CharField(max_length=10, blank=True, null=True) |
11 | grams = models.DecimalField(max_digits=10, decimal_places=10, | ||
12 | blank=True, null=True, | ||
13 | help_text="Conversion from this unit to grams (dry measure)") | ||
14 | liters = models.DecimalField(max_digits=10, decimal_places=10, | ||
15 | blank=True, null=True, | ||
16 | help_text="Conversion from this unit to liters (liquid measure)") | ||
12 | 17 | ||
13 | def __unicode__(self): | 18 | def __unicode__(self): |
14 | return "{0} ({1})".format(self.name, self.abbreviation) | 19 | return "{0} ({1})".format(self.name, self.abbreviation) |
@@ -19,14 +24,14 @@ class Recipe(models.Model): | |||
19 | class Meta: | 24 | class Meta: |
20 | ordering = ('title',) | 25 | ordering = ('title',) |
21 | 26 | ||
22 | title = fields.CharField(max_length=100) | 27 | title = models.CharField(max_length=100) |
23 | slug = fields.SlugField(max_length=150) | 28 | slug = models.SlugField(max_length=150) |
24 | description = fields.TextField(blank=True, null=True) | 29 | description = models.TextField(blank=True, null=True) |
25 | servings = fields.IntegerField(blank=True, null=True) | 30 | servings = models.IntegerField(blank=True, null=True) |
26 | instructions = fields.TextField() | 31 | instructions = models.TextField() |
27 | oven_temp = fields.IntegerField(blank=True, null=True) | 32 | oven_temp = models.IntegerField(blank=True, null=True) |
28 | cook_time = fields.IntegerField(blank=True, null=True, help_text="In minutes") | 33 | cook_time = models.IntegerField(blank=True, null=True, help_text="In minutes") |
29 | prep_time = fields.IntegerField(blank=True, null=True, help_text="In minutes") | 34 | prep_time = models.IntegerField(blank=True, null=True, help_text="In minutes") |
30 | 35 | ||
31 | def __unicode__(self): | 36 | def __unicode__(self): |
32 | return self.title | 37 | return self.title |
@@ -37,7 +42,7 @@ class Ingredient(models.Model): | |||
37 | class Meta: | 42 | class Meta: |
38 | ordering = ('name',) | 43 | ordering = ('name',) |
39 | 44 | ||
40 | name = fields.CharField(max_length=100, unique=True) | 45 | name = models.CharField(max_length=100, unique=True) |
41 | 46 | ||
42 | def __unicode__(self): | 47 | def __unicode__(self): |
43 | return self.name | 48 | return self.name |
@@ -47,7 +52,7 @@ class RecipeIngredient(models.Model): | |||
47 | 52 | ||
48 | ingredient = models.ForeignKey(Ingredient) | 53 | ingredient = models.ForeignKey(Ingredient) |
49 | units = models.ForeignKey(Unit) | 54 | units = models.ForeignKey(Unit) |
50 | quantity = fields.FloatField() | 55 | quantity = models.FloatField() |
51 | recipe = models.ForeignKey(Recipe) | 56 | recipe = models.ForeignKey(Recipe) |
52 | 57 | ||
53 | def __unicode__(self): | 58 | def __unicode__(self): |