Make new recipes public by default

New recipes (manual, AI draft and all imports) now start as public;
private can still be chosen per recipe. Existing recipes are unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
Kyle Dammann
2026-10-30 23:05:05 +01:00
co-authored by Claude Opus 5.5
parent ffb4c0150a
commit c76fd119cf
3 changed files with 35 additions and 1 deletions
@@ -0,0 +1,18 @@
# Generated by Django 5.2.18 on 2026-10-30 22:04
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('recipes', '0002_comment'),
]
operations = [
migrations.AlterField(
model_name='recipe',
name='visibility',
field=models.CharField(choices=[('private', 'Privat (nur für mich)'), ('public', 'Öffentlich (alle Nutzer)')], default='public', max_length=10, verbose_name='Sichtbarkeit'),
),
]
+1 -1
View File
@@ -82,7 +82,7 @@ class Recipe(models.Model):
cook_minutes = models.PositiveSmallIntegerField("Koch-/Backzeit (Min.)", null=True, blank=True)
source_url = models.URLField("Quelle (URL)", max_length=1000, blank=True)
author_notes = models.TextField("Notizen", blank=True)
visibility = models.CharField("Sichtbarkeit", max_length=10, choices=Visibility.choices, default=Visibility.PRIVATE)
visibility = models.CharField("Sichtbarkeit", max_length=10, choices=Visibility.choices, default=Visibility.PUBLIC)
tags = models.ManyToManyField(Tag, blank=True, related_name="recipes")
created_at = models.DateTimeField("Erstellt", auto_now_add=True)
updated_at = models.DateTimeField("Geändert", auto_now=True)
+16
View File
@@ -188,3 +188,19 @@ def test_user_cannot_bulk_delete(user_client, other_user):
make_recipe(other_user)
assert user_client.post(reverse("accounts:admin_user_delete_recipes", args=[other_user.pk])).status_code == 403
assert Recipe.objects.exists()
def test_new_recipe_form_defaults_to_public(user_client):
form = user_client.get(reverse("recipes:create")).context["form"]
assert form["visibility"].value() == "public"
def test_imported_draft_defaults_to_public(user_client, settings):
settings.OPENAI_API_KEY = ""
response = user_client.post(reverse("recipes:import_text"), {"text": "200 g Mehl, 2 Eier, verrühren und backen"})
assert response.context["form"]["visibility"].value() == "public"
def test_private_can_still_be_chosen(user_client):
user_client.post(reverse("recipes:create"), form_data(visibility="private"))
assert Recipe.objects.get().visibility == "private"