From 11a8698a6fd76bedba811221b5f0ce6baca6d17c Mon Sep 17 00:00:00 2001 From: Benjamin Date: Sun, 5 Mar 2023 19:00:48 +0100 Subject: [PATCH] Fix version author placeholder --- recipes/forms.py | 8 ++++++++ recipes/views.py | 9 ++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/recipes/forms.py b/recipes/forms.py index c7731f7..95dbac5 100644 --- a/recipes/forms.py +++ b/recipes/forms.py @@ -4,6 +4,14 @@ from .models import Recipe, Version, Ingredient class VersionForm(ModelForm): recipe_id: int + def __init__(self, *args, **kwargs): + placeholder = None + if 'author_placeholder' in kwargs: + placeholder = kwargs.pop('author_placeholder') + super().__init__(*args, **kwargs) + if placeholder: + self.fields['author'].widget.attrs.update({'placeholder': placeholder}) + class Meta: model = Version fields = ['label', 'slug', 'body', 'author'] diff --git a/recipes/views.py b/recipes/views.py index 5ef9087..8f18dd6 100644 --- a/recipes/views.py +++ b/recipes/views.py @@ -49,7 +49,7 @@ def add_version(request, slug_recipe): version_initial = {} if request.method == 'POST': - version_form = VersionForm(request.POST, prefix=VERSION_FORM_PREFIX, initial=version_initial) + version_form = VersionForm(request.POST, prefix=VERSION_FORM_PREFIX, initial=version_initial, author_placeholder=request.user.first_name if request.user.first_name else request.user.username) ingredients_formset = IngredientFormSet(request.POST, queryset=Ingredient.objects.none(), prefix=INGREDIENTS_FORMSET_PREFIX) version_form.recipe_id = recipe.id # type: ignore @@ -66,8 +66,7 @@ def add_version(request, slug_recipe): return HttpResponseRedirect(reverse('version', kwargs={'slug_recipe': version.recipe.slug, 'slug_version': version.slug})) else: - version_form = VersionForm(prefix=VERSION_FORM_PREFIX, initial=version_initial) - version_form.fields['author'].widget.attrs['placeholder'] = request.user.first_name if request.user.first_name else request.user.username + version_form = VersionForm(prefix=VERSION_FORM_PREFIX, initial=version_initial, author_placeholder=request.user.first_name if request.user.first_name else request.user.username) ingredients_formset = IngredientFormSet(queryset=Ingredient.objects.none(), prefix=INGREDIENTS_FORMSET_PREFIX) return render(request, 'add-version.html', {'version_form': version_form, 'ingredients_formset': ingredients_formset}) @@ -79,7 +78,7 @@ def edit_version(request, slug_recipe, slug_version): version = get_object_or_404(Version, recipe=recipe, slug=slug_version) if request.method == 'POST': # TODO refactor with add_version - version_form = VersionForm(request.POST, prefix=VERSION_FORM_PREFIX, instance=version) + version_form = VersionForm(request.POST, prefix=VERSION_FORM_PREFIX, instance=version, author_placeholder=request.user.first_name if request.user.first_name else request.user.username) ingredients_formset = IngredientFormSet(request.POST, queryset=version.ingredients.all(), prefix=INGREDIENTS_FORMSET_PREFIX) # type: ignore version_form.recipe_id = recipe.id # type: ignore @@ -97,7 +96,7 @@ def edit_version(request, slug_recipe, slug_version): return HttpResponseRedirect(reverse('version', kwargs={'slug_recipe': version.recipe.slug, 'slug_version': version.slug})) else: - version_form = VersionForm(instance=version, prefix=VERSION_FORM_PREFIX) + version_form = VersionForm(instance=version, prefix=VERSION_FORM_PREFIX, author_placeholder=request.user.first_name if request.user.first_name else request.user.username) ingredients_formset = IngredientFormSet(queryset=version.ingredients.all(), prefix=INGREDIENTS_FORMSET_PREFIX) # type: ignore return render(request, 'edit-version.html', {'version_form': version_form, 'ingredients_formset': ingredients_formset})