diff --git a/cookbook/urls.py b/cookbook/urls.py index 62ad73480..2ece95d3e 100644 --- a/cookbook/urls.py +++ b/cookbook/urls.py @@ -18,7 +18,10 @@ urlpatterns = [ path('list/import', lists.recipe_import, name='list_import'), path('list/storage', lists.storage, name='list_storage'), - path('edit/recipe//', edit.RecipeUpdate.as_view(), name='edit_recipe'), + path('edit/recipe//', edit.switch_recipe, name='edit_recipe'), + path('edit/recipe/internal//', edit.internal_recipe_update, name='edit_internal_recipe'), # for internal use only + path('edit/recipe/external//', edit.RecipeUpdate.as_view(), name='edit_external_recipe'), # for internal use only + path('edit/keyword//', edit.KeywordUpdate.as_view(), name='edit_keyword'), path('edit/sync//', edit.SyncUpdate.as_view(), name='edit_sync'), path('edit/import//', edit.ImportUpdate.as_view(), name='edit_import'), diff --git a/cookbook/views/edit.py b/cookbook/views/edit.py index 7e3c0b8de..82fa96da6 100644 --- a/cookbook/views/edit.py +++ b/cookbook/views/edit.py @@ -1,6 +1,7 @@ from django.contrib import messages from django.contrib.auth.decorators import login_required from django.contrib.auth.mixins import LoginRequiredMixin +from django.http import HttpResponseRedirect from django.shortcuts import redirect, get_object_or_404, render from django.urls import reverse_lazy, reverse from django.utils.translation import gettext as _ @@ -11,7 +12,16 @@ from cookbook.models import Recipe, Sync, Keyword, RecipeImport, Storage @login_required -def edit_internal_recipe(request, pk): +def switch_recipe(request, pk): + recipe = get_object_or_404(Recipe, pk=pk) + if recipe.instructions: + return HttpResponseRedirect(reverse('edit_internal_recipe', args=[pk])) + else: + return HttpResponseRedirect(reverse('edit_external_recipe', args=[pk])) + + +@login_required +def internal_recipe_update(request, pk): recipe_instance = get_object_or_404(Recipe, pk=pk) if request.method == "POST":