From 5706776002e65cb3c05b9e2ecd347235b51c0192 Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Tue, 2 Jun 2020 10:53:32 +0200 Subject: [PATCH] added setting to disable recent viewed recipes --- cookbook/forms.py | 5 +++-- .../0045_userpreference_show_recent.py | 18 ++++++++++++++++++ cookbook/models.py | 1 + cookbook/views/views.py | 3 ++- 4 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 cookbook/migrations/0045_userpreference_show_recent.py diff --git a/cookbook/forms.py b/cookbook/forms.py index b2bd34e8..22ef33ef 100644 --- a/cookbook/forms.py +++ b/cookbook/forms.py @@ -31,12 +31,13 @@ class UserPreferenceForm(forms.ModelForm): class Meta: model = UserPreference - fields = ('default_unit', 'theme', 'nav_color', 'default_page', 'search_style', 'plan_share') + fields = ('default_unit', 'theme', 'nav_color', 'default_page', 'show_recent', 'search_style', 'plan_share') help_texts = { 'nav_color': _('Color of the top navigation bar. Not all colors work with all themes, just try them out!'), 'default_unit': _('Default Unit to be used when inserting a new ingredient into a recipe.'), - 'plan_share': _('Default user to share newly created meal plan entries with.') + 'plan_share': _('Default user to share newly created meal plan entries with.'), + 'show_recent': _('Show recently viewed recipes on search page.'), } widgets = { diff --git a/cookbook/migrations/0045_userpreference_show_recent.py b/cookbook/migrations/0045_userpreference_show_recent.py new file mode 100644 index 00000000..c6bc7db8 --- /dev/null +++ b/cookbook/migrations/0045_userpreference_show_recent.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.5 on 2020-06-02 08:51 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('cookbook', '0044_viewlog'), + ] + + operations = [ + migrations.AddField( + model_name='userpreference', + name='show_recent', + field=models.BooleanField(default=True), + ), + ] diff --git a/cookbook/models.py b/cookbook/models.py index 42a8a698..1a1aab79 100644 --- a/cookbook/models.py +++ b/cookbook/models.py @@ -61,6 +61,7 @@ class UserPreference(models.Model): default_unit = models.CharField(max_length=32, default='g') default_page = models.CharField(choices=PAGES, max_length=64, default=SEARCH) search_style = models.CharField(choices=SEARCH_STYLE, max_length=64, default=LARGE) + show_recent = models.BooleanField(default=True) plan_share = models.ManyToManyField(User, blank=True, related_name='plan_share_default') def __str__(self): diff --git a/cookbook/views/views.py b/cookbook/views/views.py index 45520a2d..e66b9d8d 100644 --- a/cookbook/views/views.py +++ b/cookbook/views/views.py @@ -46,7 +46,7 @@ def search(request): table = RecipeTableSmall(f.qs) RequestConfig(request, paginate={'per_page': 25}).configure(table) - if request.GET == {}: + if request.GET == {} and request.user.userpreference.show_recent: qs = Recipe.objects.filter(viewlog__created_by=request.user).order_by('-viewlog__created_at').all() recent_list = [] @@ -229,6 +229,7 @@ def user_settings(request): up.nav_color = form.cleaned_data['nav_color'] up.default_unit = form.cleaned_data['default_unit'] up.default_page = form.cleaned_data['default_page'] + up.show_recent = form.cleaned_data['show_recent'] up.search_style = form.cleaned_data['search_style'] up.plan_share.set(form.cleaned_data['plan_share']) up.save()