diff --git a/cookbook/urls.py b/cookbook/urls.py index 3b45ed472..01c4d25b8 100644 --- a/cookbook/urls.py +++ b/cookbook/urls.py @@ -137,7 +137,8 @@ urlpatterns = [ path('api-token-auth/', CustomAuthToken.as_view()), path('api-import-open-data/', ImportOpenData.as_view(), name='api_import_open_data'), path('offline/', views.offline, name='view_offline'), - path('service-worker.js', (TemplateView.as_view(template_name="sw.js", content_type='application/javascript', )), name='service_worker'), + path('service-worker.js', (TemplateView.as_view(template_name="sw.js", content_type='application/javascript', + )), name='service_worker'), path('manifest.json', views.web_manifest, name='web_manifest'), ] diff --git a/cookbook/views/new.py b/cookbook/views/new.py index e2cbaad02..542682ac2 100644 --- a/cookbook/views/new.py +++ b/cookbook/views/new.py @@ -6,11 +6,40 @@ from django.utils.translation import gettext as _ from django.views.generic import CreateView from cookbook.forms import ImportRecipeForm, Storage, StorageForm -from cookbook.helper.permission_helper import GroupRequiredMixin, group_required -from cookbook.models import Recipe, RecipeImport, ShareLink +from cookbook.helper.permission_helper import GroupRequiredMixin, above_space_limit, group_required +from cookbook.models import Recipe, RecipeImport, ShareLink, Step from recipes import settings +class RecipeCreate(GroupRequiredMixin, CreateView): + groups_required = ['user'] + template_name = "generic/new_template.html" + model = Recipe + fields = ('name', ) + + def form_valid(self, form): + limit, msg = above_space_limit(self.request.space) + if limit: + messages.add_message(self.request, messages.WARNING, msg) + return HttpResponseRedirect(reverse('index')) + + obj = form.save(commit=False) + obj.created_by = self.request.user + obj.space = self.request.space + obj.internal = True + obj.save() + obj.steps.add(Step.objects.create(space=self.request.space, show_as_header=False, show_ingredients_table=self.request.user.userpreference.show_step_ingredients)) + return HttpResponseRedirect(reverse('edit_recipe', kwargs={'pk': obj.pk})) + + def get_success_url(self): + return reverse('edit_recipe', kwargs={'pk': self.object.pk}) + + def get_context_data(self, **kwargs): + context = super(RecipeCreate, self).get_context_data(**kwargs) + context['title'] = _("Recipe") + return context + + @group_required('user') def share_link(request, pk): recipe = get_object_or_404(Recipe, pk=pk, space=request.space) diff --git a/requirements.txt b/requirements.txt index e799af7ab..7eda2c550 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,6 @@ Django==4.2.10 cryptography===42.0.2 django-annoying==0.10.6 -django-autocomplete-light==3.9.7 django-cleanup==8.0.0 django-crispy-forms==2.0 crispy-bootstrap4==2022.1