internal recipe stuff

This commit is contained in:
vabene1111 2019-11-13 23:22:26 +01:00
parent b54da49858
commit 50cd44d13b
4 changed files with 54 additions and 4 deletions

View File

@ -0,0 +1,24 @@
{% extends "base.html" %}
{% load crispy_forms_tags %}
{% load i18n %}
{% block title %}{% trans 'Edit Recipe' %}{% endblock %}
{% block content %}
<h3>{% trans 'Edit Recipe' %}</h3>
<form action="." method="post">
{% csrf_token %}
{{ form|crispy }}
<input type="submit" value="Submit" class="btn btn-success">
</form>
<script>
//converts multiselct in recipe edit to searchable multiselect
//shitty solution that needs to be redone at some point
$(document).ready(function () {
$('#id_keywords').select2();
});
</script>
{% endblock %}

View File

@ -9,7 +9,7 @@ urlpatterns = [
path('test', views.test, name='test'), path('test', views.test, name='test'),
path('new/recipe/', new.RecipeCreate.as_view(), name='new_recipe'), path('new/recipe/', new.RecipeCreate.as_view(), name='new_recipe'),
path('new/recipe_import/<int:import_id>/', new.create_new_recipe, name='new_recipe_import'), path('new/recipe_import/<int:import_id>/', new.create_new_external_recipe, name='new_recipe_import'),
path('new/keyword/', new.KeywordCreate.as_view(), name='new_keyword'), path('new/keyword/', new.KeywordCreate.as_view(), name='new_keyword'),
path('new/storage/', new.StorageCreate.as_view(), name='new_storage'), path('new/storage/', new.StorageCreate.as_view(), name='new_storage'),

View File

@ -1,14 +1,40 @@
from django.contrib import messages from django.contrib import messages
from django.contrib.auth.decorators import login_required
from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.mixins import LoginRequiredMixin
from django.shortcuts import redirect from django.shortcuts import redirect, get_object_or_404, render
from django.urls import reverse_lazy, reverse from django.urls import reverse_lazy, reverse
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
from django.views.generic import UpdateView, DeleteView from django.views.generic import UpdateView, DeleteView
from cookbook.forms import ExternalRecipeForm, KeywordForm, StorageForm, SyncForm from cookbook.forms import ExternalRecipeForm, KeywordForm, StorageForm, SyncForm, InternalRecipeForm
from cookbook.models import Recipe, Sync, Keyword, RecipeImport, Storage from cookbook.models import Recipe, Sync, Keyword, RecipeImport, Storage
@login_required
def edit_internal_recipe(request, pk):
recipe_instance = get_object_or_404(Recipe, pk=pk)
if request.method == "POST":
form = InternalRecipeForm(request.POST)
if form.is_valid():
recipe = Recipe()
recipe.name = form.cleaned_data['name']
recipe.instructions = form.cleaned_data['instructions']
recipe.save()
recipe.keywords.set(form.cleaned_data['keywords'])
messages.add_message(request, messages.SUCCESS, _('Recipe saved!'))
return redirect('index')
else:
messages.add_message(request, messages.ERROR, _('There was an error importing this recipe!'))
else:
form = InternalRecipeForm(recipe_instance)
return render(request, 'forms/edit_internal_recipe.html', {'form': form})
class SyncUpdate(LoginRequiredMixin, UpdateView): class SyncUpdate(LoginRequiredMixin, UpdateView):
template_name = "generic/edit_template.html" template_name = "generic/edit_template.html"
model = Sync model = Sync

View File

@ -47,7 +47,7 @@ class StorageCreate(LoginRequiredMixin, CreateView):
@login_required @login_required
def create_new_recipe(request, import_id): def create_new_external_recipe(request, import_id):
if request.method == "POST": if request.method == "POST":
form = ImportRecipeForm(request.POST) form = ImportRecipeForm(request.POST)
if form.is_valid(): if form.is_valid():