diff --git a/recipes/forms.py b/recipes/forms.py
new file mode 100644
index 0000000..1a49779
--- /dev/null
+++ b/recipes/forms.py
@@ -0,0 +1,9 @@
+from django.forms import ModelForm, BooleanField
+from .models import Recipe, Version, Ingredient
+
+class VersionForm(ModelForm):
+ class Meta:
+ model = Version
+ fields = ['label', 'slug', 'body']
+
+ # use_author_user = BooleanField(initial=True)
diff --git a/recipes/templates/add-version.html b/recipes/templates/add-version.html
new file mode 100644
index 0000000..783c5ae
--- /dev/null
+++ b/recipes/templates/add-version.html
@@ -0,0 +1,11 @@
+{% extends "base_main.html" %}
+{% block title %}{{ recipe.title }}{% endblock %}
+{% block main %}
+
+ {% endblock %}
diff --git a/recipes/templates/recipe.html b/recipes/templates/recipe.html
index a500538..0dfa759 100644
--- a/recipes/templates/recipe.html
+++ b/recipes/templates/recipe.html
@@ -3,7 +3,7 @@
{% block main %}
{{ recipe.title }}
{% if perms.recipes.add_recipe %}
-Add version
+Add version
{% endif %}
{% for v in versions %}
diff --git a/recipes/templates/version.html b/recipes/templates/version.html
index 45190c7..dbf44b1 100644
--- a/recipes/templates/version.html
+++ b/recipes/templates/version.html
@@ -6,7 +6,7 @@
Show all versions
{% endif %}
{% if perms.recipes.add_recipe %}
-Add version
+Add version
{% endif %}
{% for i in ingredients %}
diff --git a/recipes/urls.py b/recipes/urls.py
index a0c7f45..148c522 100644
--- a/recipes/urls.py
+++ b/recipes/urls.py
@@ -3,6 +3,7 @@ from . import views
urlpatterns = [
path('', views.recipes, name='recipes'),
+ path('/add-version/', views.add_version, name='add-version'),
path('//', views.version, name='version'),
path('/', views.recipe, name='recipe'),
]
diff --git a/recipes/views.py b/recipes/views.py
index 08588ec..f153c09 100644
--- a/recipes/views.py
+++ b/recipes/views.py
@@ -1,5 +1,6 @@
from django.shortcuts import render, get_object_or_404
from .models import Recipe, Version
+from .forms import VersionForm
from django.contrib.auth.decorators import login_required, permission_required
from django.urls import reverse
from django.http.response import HttpResponseRedirect
@@ -34,3 +35,23 @@ def recipe(request, slug):
return version(request, slug, versions.get().slug)
else:
return render(request, 'recipe.html', context={'recipe': recipe, 'versions': versions})
+
+@login_required
+@permission_required('recipes.add_recipe')
+def add_version(request, slug_recipe):
+ recipe = Recipe.objects.get(slug=slug_recipe)
+
+ if request.method == 'POST':
+ form = VersionForm(request.POST)
+
+ if form.is_valid():
+ version = form.save(commit=False)
+ version.author_user = request.user
+ version.recipe = recipe
+ version.save()
+ return HttpResponseRedirect(reverse('version', kwargs={'slug_recipe': version.recipe.slug, 'slug_version': version.slug}))
+
+ else:
+ form = VersionForm()
+
+ return render(request, 'add-version.html', {'form': form})