Compare commits

...

4 commits

Author SHA1 Message Date
Benjamin c0a8ba031f fixup! Add forms for adding recipes and versions
rename to author
2023-03-02 19:43:04 +01:00
Benjamin 38b7d20f29 fixup! Add forms for adding recipes and versions
simple alternative author input
2023-03-02 19:05:34 +01:00
Benjamin 99594a7e14 fixup! Add forms for adding recipes and versions
rename to alternative author
2023-03-02 18:58:21 +01:00
Benjamin 8705473454 fixup! Add forms for adding recipes and versions
rename to user
2023-03-02 18:54:26 +01:00
4 changed files with 9 additions and 30 deletions

View file

@ -4,11 +4,9 @@ from .models import Recipe, Version, Ingredient
class VersionForm(ModelForm): class VersionForm(ModelForm):
recipe_id: int recipe_id: int
use_user_for_author = BooleanField(initial=True, label='I am the author', required=False)
class Meta: class Meta:
model = Version model = Version
fields = ['label', 'slug', 'body', 'author_name'] fields = ['label', 'slug', 'body', 'author']
def clean_slug(self): def clean_slug(self):
recipe = Recipe.objects.get(id=self.recipe_id) recipe = Recipe.objects.get(id=self.recipe_id)

View file

@ -16,8 +16,8 @@ class Version(models.Model):
label = models.CharField(max_length=20, default='Original') label = models.CharField(max_length=20, default='Original')
slug = models.SlugField(max_length=20, default='original') slug = models.SlugField(max_length=20, default='original')
body = models.TextField(null=True, blank=True) body = models.TextField(null=True, blank=True)
author_user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True) user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)
author_name = models.CharField(max_length=30, blank=True) author = models.CharField(max_length=30, blank=True)
recipe = models.ForeignKey(Recipe, on_delete=models.PROTECT, null=False, blank=False, related_name='versions') recipe = models.ForeignKey(Recipe, on_delete=models.PROTECT, null=False, blank=False, related_name='versions')
def __str__(self) -> str: def __str__(self) -> str:

View file

@ -15,26 +15,6 @@
</form> </form>
<script> <script>
let userIsAuthorCheckbox = document.querySelector("#id_version-use_user_for_author");
let authorNameValue = "";
function enableAuthorNameInput() {
let authorName = document.querySelector("#id_version-author_name")
if (userIsAuthorCheckbox.checked) {
authorName.setAttribute("disabled", "");
authorNameValue = authorName.value;
authorName.value = "";
} else {
authorName.removeAttribute("disabled");
authorName.value = authorNameValue;
}
}
enableAuthorNameInput();
userIsAuthorCheckbox.addEventListener('input', enableAuthorNameInput)
let firstIngredientDiv = document.querySelector("input[id^=id_ingredient][id$=text]").parentElement; let firstIngredientDiv = document.querySelector("input[id^=id_ingredient][id$=text]").parentElement;
let addIngredientButton = document.querySelector("#add-ingredient"); let addIngredientButton = document.querySelector("#add-ingredient");
let form = document.querySelector("#add-version-form"); let form = document.querySelector("#add-version-form");

View file

@ -51,11 +51,11 @@ def add_version(request, slug_recipe):
if version_form.is_valid() and ingredients_formset.is_valid(): if version_form.is_valid() and ingredients_formset.is_valid():
version = version_form.save(commit=False) version = version_form.save(commit=False)
if version_form.cleaned_data['use_user_for_author']: version.user = request.user
version.author_user = request.user
version.author_name = '' if 'author' in version_form.cleaned_data:
elif 'author_name' in version_form.cleaned_data: version.author = version_form.cleaned_data['author']
version.author_name = version_form.cleaned_data['author_name']
version.recipe = recipe version.recipe = recipe
version.save() version.save()
@ -73,6 +73,7 @@ def add_version(request, slug_recipe):
else: else:
initial = {} initial = {}
version_form = VersionForm(prefix=VERSION_FORM_PREFIX, initial=initial) version_form = VersionForm(prefix=VERSION_FORM_PREFIX, initial=initial)
version_form.fields['author'].widget.attrs['placeholder'] = request.user.first_name if request.user.first_name else request.user.username
ingredients_formset = IngredientFormSet(prefix=INGREDIENTS_FORMSET_PREFIX) ingredients_formset = IngredientFormSet(prefix=INGREDIENTS_FORMSET_PREFIX)
return render(request, 'add-version.html', {'version_form': version_form, 'ingredients_formset': ingredients_formset}) return render(request, 'add-version.html', {'version_form': version_form, 'ingredients_formset': ingredients_formset})