Skip to content

Commit 388ef32

Browse files
committed
actually apply limits everywhere
1 parent bfe7221 commit 388ef32

File tree

4 files changed

+29
-4
lines changed

4 files changed

+29
-4
lines changed

cookbook/views/data.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,20 @@
2020
from cookbook.helper.permission_helper import group_required, has_group_permission
2121
from cookbook.helper.recipe_url_import import parse_cooktime
2222
from cookbook.models import (Comment, Food, Ingredient, Keyword, Recipe,
23-
RecipeImport, Step, Sync, Unit)
23+
RecipeImport, Step, Sync, Unit, UserPreference)
2424
from cookbook.tables import SyncTable
2525

2626

2727
@group_required('user')
2828
def sync(request):
29+
if request.space.max_recipes != 0 and Recipe.objects.filter(space=request.space).count() >= request.space.max_recipes: # TODO move to central helper function
30+
messages.add_message(request, messages.WARNING, _('You have reached the maximum number of recipes for your space.'))
31+
return HttpResponseRedirect(reverse('index'))
32+
33+
if request.space.max_users != 0 and UserPreference.objects.filter(space=request.space).count() > request.space.max_users:
34+
messages.add_message(request, messages.WARNING, _('You have more users than allowed in your space.'))
35+
return HttpResponseRedirect(reverse('index'))
36+
2937
if request.method == "POST":
3038
if not has_group_permission(request.user, ['admin']):
3139
messages.add_message(request, messages.ERROR, _('You do not have the required permissions to view this page!'))
@@ -109,6 +117,14 @@ def batch_edit(request):
109117
@group_required('user')
110118
@atomic
111119
def import_url(request):
120+
if request.space.max_recipes != 0 and Recipe.objects.filter(space=request.space).count() >= request.space.max_recipes: # TODO move to central helper function
121+
messages.add_message(request, messages.WARNING, _('You have reached the maximum number of recipes for your space.'))
122+
return HttpResponseRedirect(reverse('index'))
123+
124+
if request.space.max_users != 0 and UserPreference.objects.filter(space=request.space).count() > request.space.max_users:
125+
messages.add_message(request, messages.WARNING, _('You have more users than allowed in your space.'))
126+
return HttpResponseRedirect(reverse('index'))
127+
112128
if request.method == 'POST':
113129
data = json.loads(request.body)
114130
data['cookTime'] = parse_cooktime(data.get('cookTime', ''))
@@ -200,6 +216,7 @@ def import_url(request):
200216

201217
return render(request, 'url_import.html', context)
202218

219+
203220
class Object(object):
204221
pass
205222

cookbook/views/edit.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def convert_recipe(request, pk):
4545

4646
@group_required('user')
4747
def internal_recipe_update(request, pk):
48-
if request.space.max_recipes != 0 and Recipe.objects.filter(space=request.space).count() > request.space.max_recipes:
48+
if request.space.max_recipes != 0 and Recipe.objects.filter(space=request.space).count() > request.space.max_recipes: # TODO move to central helper function
4949
messages.add_message(request, messages.WARNING, _('You have reached the maximum number of recipes for your space.'))
5050
return HttpResponseRedirect(reverse('view_recipe', args=[pk]))
5151

cookbook/views/import_export.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from cookbook.integration.recipesage import RecipeSage
2424
from cookbook.integration.rezkonv import RezKonv
2525
from cookbook.integration.safron import Safron
26-
from cookbook.models import Recipe, ImportLog
26+
from cookbook.models import Recipe, ImportLog, UserPreference
2727

2828

2929
def get_integration(request, export_type):
@@ -57,6 +57,14 @@ def get_integration(request, export_type):
5757

5858
@group_required('user')
5959
def import_recipe(request):
60+
if request.space.max_recipes != 0 and Recipe.objects.filter(space=request.space).count() >= request.space.max_recipes: # TODO move to central helper function
61+
messages.add_message(request, messages.WARNING, _('You have reached the maximum number of recipes for your space.'))
62+
return HttpResponseRedirect(reverse('index'))
63+
64+
if request.space.max_users != 0 and UserPreference.objects.filter(space=request.space).count() > request.space.max_users:
65+
messages.add_message(request, messages.WARNING, _('You have more users than allowed in your space.'))
66+
return HttpResponseRedirect(reverse('index'))
67+
6068
if request.method == "POST":
6169
form = ImportForm(request.POST, request.FILES)
6270
if form.is_valid():

cookbook/views/new.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class RecipeCreate(GroupRequiredMixin, CreateView):
2828
fields = ('name',)
2929

3030
def form_valid(self, form):
31-
if self.request.space.max_recipes != 0 and Recipe.objects.filter(space=self.request.space).count() >= self.request.space.max_recipes:
31+
if self.request.space.max_recipes != 0 and Recipe.objects.filter(space=self.request.space).count() >= self.request.space.max_recipes: # TODO move to central helper function
3232
messages.add_message(self.request, messages.WARNING, _('You have reached the maximum number of recipes for your space.'))
3333
return HttpResponseRedirect(reverse('index'))
3434

0 commit comments

Comments
 (0)