From 9658993163230b6c3783ca686382dc85e46da741 Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Tue, 22 Jun 2021 18:21:14 +0200 Subject: [PATCH] admin filter options and timestamp fields --- cookbook/admin.py | 21 +++++++++++++++++-- cookbook/migrations/0139_space_created_at.py | 20 ++++++++++++++++++ .../0140_userpreference_created_at.py | 20 ++++++++++++++++++ cookbook/models.py | 2 ++ 4 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 cookbook/migrations/0139_space_created_at.py create mode 100644 cookbook/migrations/0140_userpreference_created_at.py diff --git a/cookbook/admin.py b/cookbook/admin.py index f59ce06d..2301ca7f 100644 --- a/cookbook/admin.py +++ b/cookbook/admin.py @@ -23,14 +23,20 @@ admin.site.unregister(Group) class SpaceAdmin(admin.ModelAdmin): - list_display = ('name', 'created_by', 'message') + list_display = ('name', 'created_by', 'max_recipes', 'max_users', 'max_file_storage_mb', 'allow_sharing') + search_fields = ('name', 'created_by__username') + list_filter = ('max_recipes', 'max_users', 'max_file_storage_mb', 'allow_sharing') + date_hierarchy = 'created_at' admin.site.register(Space, SpaceAdmin) class UserPreferenceAdmin(admin.ModelAdmin): - list_display = ('name', 'space', 'theme', 'nav_color', 'default_page', 'search_style',) + list_display = ('name', 'space', 'theme', 'nav_color', 'default_page', 'search_style',) # TODO add new fields + search_fields = ('user__username', 'space__name') + list_filter = ('theme', 'nav_color', 'default_page', 'search_style') + date_hierarchy = 'created_at' @staticmethod def name(obj): @@ -42,6 +48,7 @@ admin.site.register(UserPreference, UserPreferenceAdmin) class StorageAdmin(admin.ModelAdmin): list_display = ('name', 'method') + search_fields = ('name',) admin.site.register(Storage, StorageAdmin) @@ -49,6 +56,7 @@ admin.site.register(Storage, StorageAdmin) class SyncAdmin(admin.ModelAdmin): list_display = ('storage', 'path', 'active', 'last_checked') + search_fields = ('storage__name', 'path') admin.site.register(Sync, SyncAdmin) @@ -77,6 +85,7 @@ admin.site.register(Keyword) class StepAdmin(admin.ModelAdmin): list_display = ('name', 'type', 'order') + search_fields = ('name', 'type') admin.site.register(Step, StepAdmin) @@ -84,6 +93,9 @@ admin.site.register(Step, StepAdmin) class RecipeAdmin(admin.ModelAdmin): list_display = ('name', 'internal', 'created_by', 'storage') + search_fields = ('name', 'created_by__username') + list_filter = ('internal',) + date_hierarchy = 'created_at' @staticmethod def created_by(obj): @@ -98,6 +110,7 @@ admin.site.register(Food) class IngredientAdmin(admin.ModelAdmin): list_display = ('food', 'amount', 'unit') + search_fields = ('food__name', 'unit__name') admin.site.register(Ingredient, IngredientAdmin) @@ -105,6 +118,8 @@ admin.site.register(Ingredient, IngredientAdmin) class CommentAdmin(admin.ModelAdmin): list_display = ('recipe', 'name', 'created_at') + search_fields = ('text', 'user__username') + date_hierarchy = 'created_at' @staticmethod def name(obj): @@ -123,6 +138,7 @@ admin.site.register(RecipeImport, RecipeImportAdmin) class RecipeBookAdmin(admin.ModelAdmin): list_display = ('name', 'user_name') + search_fields = ('name', 'created_by__username') @staticmethod def user_name(obj): @@ -152,6 +168,7 @@ admin.site.register(MealPlan, MealPlanAdmin) class MealTypeAdmin(admin.ModelAdmin): list_display = ('name', 'created_by', 'order') + search_fields = ('name', 'created_by__username') admin.site.register(MealType, MealTypeAdmin) diff --git a/cookbook/migrations/0139_space_created_at.py b/cookbook/migrations/0139_space_created_at.py new file mode 100644 index 00000000..a453423e --- /dev/null +++ b/cookbook/migrations/0139_space_created_at.py @@ -0,0 +1,20 @@ +# Generated by Django 3.2.4 on 2021-06-22 16:14 + +from django.db import migrations, models +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('cookbook', '0138_auto_20210617_1602'), + ] + + operations = [ + migrations.AddField( + model_name='space', + name='created_at', + field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now), + preserve_default=False, + ), + ] diff --git a/cookbook/migrations/0140_userpreference_created_at.py b/cookbook/migrations/0140_userpreference_created_at.py new file mode 100644 index 00000000..5c25a524 --- /dev/null +++ b/cookbook/migrations/0140_userpreference_created_at.py @@ -0,0 +1,20 @@ +# Generated by Django 3.2.4 on 2021-06-22 16:19 + +from django.db import migrations, models +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('cookbook', '0139_space_created_at'), + ] + + operations = [ + migrations.AddField( + model_name='userpreference', + name='created_at', + field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now), + preserve_default=False, + ), + ] diff --git a/cookbook/models.py b/cookbook/models.py index 83e6496f..f753cbee 100644 --- a/cookbook/models.py +++ b/cookbook/models.py @@ -66,6 +66,7 @@ class PermissionModelMixin: class Space(ExportModelOperationsMixin('space'), models.Model): name = models.CharField(max_length=128, default='Default') created_by = models.ForeignKey(User, on_delete=models.PROTECT, null=True) + created_at = models.DateTimeField(auto_now_add=True) message = models.CharField(max_length=512, default='', blank=True) max_recipes = models.IntegerField(default=0) max_file_storage_mb = models.IntegerField(default=0, help_text=_('Maximum file storage for space in MB. 0 for unlimited, -1 to disable file upload.')) @@ -153,6 +154,7 @@ class UserPreference(models.Model, PermissionModelMixin): shopping_auto_sync = models.IntegerField(default=5) sticky_navbar = models.BooleanField(default=STICKY_NAV_PREF_DEFAULT) + created_at = models.DateTimeField(auto_now_add=True) space = models.ForeignKey(Space, on_delete=models.CASCADE, null=True) objects = ScopedManager(space='space')