summaryrefslogtreecommitdiff
path: root/app/garden/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/garden/models.py')
-rw-r--r--app/garden/models.py153
1 files changed, 0 insertions, 153 deletions
diff --git a/app/garden/models.py b/app/garden/models.py
deleted file mode 100644
index 56e8c30..0000000
--- a/app/garden/models.py
+++ /dev/null
@@ -1,153 +0,0 @@
-import datetime
-
-from django.contrib.gis.db import models
-
-from utils.util import render_images, markdown_to_html
-
-
-PLANT_FAMILY = (
- (0, 'Tomatoes'),
- (1, 'Cucumbers'),
- (2, 'Watermelons'),
- (3, 'Pumkins'),
- (4, 'Cantelope'),
- (5, 'Kale'),
- (6, 'Okra'),
- (7, 'Collards'),
- (8, 'Arugula'),
- (9, 'Butter Lettuce'),
- (10, 'Basil'),
- (11, 'Lemongrass'),
- (12, 'Thyme'),
- (13, 'Mint'),
-)
-
-
-class Plant(models.Model):
- """
- Model to hold Plant Definitions
- """
- name = models.CharField(max_length=200)
- family = models.IntegerField(choices=PLANT_FAMILY, default=0)
- scientific_name = models.CharField(max_length=200, null=True, blank=True)
- edible = models.BooleanField(default=False)
- date_created = models.DateTimeField(default=datetime.datetime.now)
- growth_time = models.PositiveIntegerField()
- germination_time = models.PositiveIntegerField()
- seperation = models.PositiveIntegerField()
- notes = models.TextField(null=True, blank=True)
- CONDITIONS = (
- (0, 'Direct Sun'),
- (1, 'Part Sun'),
- (2, 'Shade'),
- )
- conditions = models.IntegerField(choices=CONDITIONS, default=0)
- PLANT_TYPE= (
- (0, 'Vegetable'),
- (1, 'Herb'),
- (2, 'Berry'),
- (3, 'Nut'),
- )
- conditions = models.IntegerField(choices=PLANT_TYPE, default=0)
- organic = models.BooleanField(default=True)
- heirloom = models.BooleanField(default=True)
- annual = models.BooleanField(default=True)
-
- class Meta:
- ordering = ('-date_created',)
- get_latest_by = 'date_created'
-
- def __str__(self):
- return self.name
-
-
-class Seed(models.Model):
- plant = models.ForeignKey(Plant, on_delete=models.CASCADE)
- brand = models.CharField(max_length=200)
- date_created = models.DateTimeField(default=datetime.datetime.now)
- estimated_growth_time = models.PositiveIntegerField()
- estimated_germination_time = models.PositiveIntegerField()
- organic = models.BooleanField(default=True)
- notes = models.TextField(null=True, blank=True)
-
- class Meta:
- ordering = ('-date_created',)
- get_latest_by = 'date_created'
-
- def __str__(self):
- return self.plant.name
-
-
-class Planting(models.Model):
- plant = models.ForeignKey(Plant, on_delete=models.CASCADE)
- number_of_plants = models.PositiveIntegerField()
- seed = models.ForeignKey(Seed, on_delete=models.CASCADE, null=True, blank=True)
- START_AREA = (
- (0, 'Indoors'),
- (1, 'Direct Sow'),
- (2, 'Greenhouse'),
- (2, 'Purchased Seedling'),
- )
- seed_start_area = models.IntegerField(choices=START_AREA, default=0)
- date_seed_started = models.DateField(null=True, blank=True)
- date_seed_sprouted = models.DateField(null=True, blank=True)
- date_hardened_off = models.DateField(null=True, blank=True)
- date_planted = models.DateField()
- GARDEN_PLOT = (
- (0, 'Far Plot Mound'),
- (1, 'Far Plot ground'),
- (2, 'Herb Plot ground'),
- (2, 'Herb Plot bed'),
- )
- garden_area = models.IntegerField(choices=GARDEN_PLOT, default=0)
- OUTCOME = (
- (0, 'Unknown'),
- (1, 'Success'),
- (2, 'Moderate Success'),
- (3, 'Fail'),
- )
- outcome = models.IntegerField(choices=OUTCOME, default=0)
- notes = models.TextField(null=True, blank=True)
-
- class Meta:
- ordering = ('-date_seed_started',)
- get_latest_by = 'date_seed_started'
-
- def __str__(self):
- return self.plant.name
-
- @property
- def get_previous_admin_url(self):
- n = self.get_previous_by_pub_date()
- return reverse('admin:%s_%s_change' %(self._meta.app_label, self._meta.model_name), args=[n.id] )
-
- @property
- def get_next_admin_url(self):
- model = apps.get_model(app_label=self._meta.app_label, model_name=self._meta.model_name)
- try:
- return reverse('admin:%s_%s_change' %(self._meta.app_label, self._meta.model_name), args=[self.get_next_by_pub_date().pk] )
- except model.DoesNotExist:
- return ''
-
-
- @property
- def family(self):
- return self.plant.get_family_display()
-
-
- def save(self, *args, **kwargs):
- created = self.pk is None
- if not created:
- md = render_images(self.notes)
- self.body_html = markdown_to_html(md)
- super(Planting, self).save(*args, **kwargs)
-
-
-class Guild(models.Model):
- name = models.CharField(max_length=200, blank=True)
- plant = models.ManyToManyField(Plant)
- seperation = models.PositiveIntegerField()
- notes = models.TextField(null=True, blank=True)
-
- def __str__(self):
- return self.name