Compare commits
4 commits
adb67386af
...
c0a8ba031f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c0a8ba031f | ||
|
|
38b7d20f29 | ||
|
|
99594a7e14 | ||
|
|
8705473454 |
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
|
|
@ -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");
|
||||||
|
|
|
||||||
|
|
@ -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})
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue