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):
|
||||
recipe_id: int
|
||||
|
||||
use_user_for_author = BooleanField(initial=True, label='I am the author', required=False)
|
||||
|
||||
class Meta:
|
||||
model = Version
|
||||
fields = ['label', 'slug', 'body', 'author_name']
|
||||
fields = ['label', 'slug', 'body', 'author']
|
||||
|
||||
def clean_slug(self):
|
||||
recipe = Recipe.objects.get(id=self.recipe_id)
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@ class Version(models.Model):
|
|||
label = models.CharField(max_length=20, default='Original')
|
||||
slug = models.SlugField(max_length=20, default='original')
|
||||
body = models.TextField(null=True, blank=True)
|
||||
author_user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)
|
||||
author_name = models.CharField(max_length=30, blank=True)
|
||||
user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, 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')
|
||||
|
||||
def __str__(self) -> str:
|
||||
|
|
|
|||
|
|
@ -15,26 +15,6 @@
|
|||
</form>
|
||||
|
||||
<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 addIngredientButton = document.querySelector("#add-ingredient");
|
||||
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():
|
||||
version = version_form.save(commit=False)
|
||||
if version_form.cleaned_data['use_user_for_author']:
|
||||
version.author_user = request.user
|
||||
version.author_name = ''
|
||||
elif 'author_name' in version_form.cleaned_data:
|
||||
version.author_name = version_form.cleaned_data['author_name']
|
||||
version.user = request.user
|
||||
|
||||
if 'author' in version_form.cleaned_data:
|
||||
version.author = version_form.cleaned_data['author']
|
||||
|
||||
version.recipe = recipe
|
||||
version.save()
|
||||
|
||||
|
|
@ -73,6 +73,7 @@ def add_version(request, slug_recipe):
|
|||
else:
|
||||
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)
|
||||
|
||||
return render(request, 'add-version.html', {'version_form': version_form, 'ingredients_formset': ingredients_formset})
|
||||
|
|
|
|||
Loading…
Reference in a new issue