diff --git a/plants/migrations/0002_alter_pruninglog_plant_alter_species_max_height_cm.py b/plants/migrations/0002_alter_pruninglog_plant_alter_species_max_height_cm.py new file mode 100644 index 0000000..9ef602b --- /dev/null +++ b/plants/migrations/0002_alter_pruninglog_plant_alter_species_max_height_cm.py @@ -0,0 +1,24 @@ +# Generated by Django 5.1.15 on 2026-05-27 17:58 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('plants', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='pruninglog', + name='plant', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pruning_logs', to='plants.plant'), + ), + migrations.AlterField( + model_name='species', + name='max_height_cm', + field=models.PositiveIntegerField(blank=True, null=True), + ), + ] diff --git a/plants/models.py b/plants/models.py index 1ee059d..eda0716 100644 --- a/plants/models.py +++ b/plants/models.py @@ -8,7 +8,7 @@ class Species(models.Model): watering = models.CharField(max_length=100, blank=True) sunlight = models.CharField(max_length=200, blank=True) shadow_tolerance = models.CharField(max_length=100, blank=True) - max_height_cm = models.IntegerField(null=True, blank=True) + max_height_cm = models.PositiveIntegerField(null=True, blank=True) growth_rate = models.CharField(max_length=100, blank=True) growth_season = models.CharField(max_length=100, blank=True) pruning_months = models.JSONField(default=list) @@ -45,7 +45,7 @@ class Plant(models.Model): class PruningLog(models.Model): plant = models.ForeignKey( - Plant, on_delete=models.CASCADE, related_name='pruninglogs', + Plant, on_delete=models.CASCADE, related_name='pruning_logs', ) pruned_on = models.DateField() notes = models.TextField(blank=True) diff --git a/plants/tests/test_models.py b/plants/tests/test_models.py index 5c14eee..3b3f298 100644 --- a/plants/tests/test_models.py +++ b/plants/tests/test_models.py @@ -33,3 +33,18 @@ def test_pruning_log_str(): def test_plant_pruning_months_default(): p = Plant.objects.create(name='Fern', location='Office') assert p.pruning_months == [] + + +@pytest.mark.django_db +def test_species_pruning_months_default(): + s = Species.objects.create(common_name='Oak') + assert s.pruning_months == [] + + +@pytest.mark.django_db +def test_delete_species_nulls_plant_species(): + s = Species.objects.create(common_name='Rose') + p = Plant.objects.create(name='Garden rose', location='Garden', species=s) + s.delete() + p.refresh_from_db() + assert p.species is None