Fix version author placeholder

This commit is contained in:
Benjamin 2023-03-05 19:00:48 +01:00
parent b3ef2853b6
commit 11a8698a6f
2 changed files with 12 additions and 5 deletions

View file

@ -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']

View file

@ -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})