From f9c6fe342417daff8d7121b65b167dd7d69574bc Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Mon, 23 Jun 2025 16:12:43 +0300 Subject: [PATCH] Features: 1) Add icon attributes to `Balance` and `OrderInline` admin classes; 2) Introduce `evibes_summernote_upload_to_func` for custom attachment upload paths in Summernote config; Fixes: 1) Add missing import for `os`, `uuid`, and `datetime` in `evibes.utils.__init__.py`; Extra: None; --- evibes/settings/summernote.py | 3 +++ evibes/utils/__init__.py | 15 ++++++++++++++- vibes_auth/admin.py | 2 ++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/evibes/settings/summernote.py b/evibes/settings/summernote.py index 5c826f48..2e139290 100644 --- a/evibes/settings/summernote.py +++ b/evibes/settings/summernote.py @@ -1,3 +1,5 @@ +from evibes.utils import evibes_summernote_upload_to_func + SUMMERNOTE_THEME = "bs4" SUMMERNOTE_CONFIG = { "iframe": True, @@ -14,6 +16,7 @@ SUMMERNOTE_CONFIG = { ["view", ["fullscreen", "codeview", "help"]], ], }, + "attachment_upload_to": evibes_summernote_upload_to_func(), "attachment_require_authentication": True, "disable_attachment": False, "attachment_absolute_uri": True, diff --git a/evibes/utils/__init__.py b/evibes/utils/__init__.py index 163c5c4b..603e85df 100644 --- a/evibes/utils/__init__.py +++ b/evibes/utils/__init__.py @@ -1,4 +1,8 @@ -from evibes.settings import LANGUAGE_CODE, LANGUAGES +import os +import uuid +from datetime import datetime + +from evibes.settings.base import LANGUAGE_CODE, LANGUAGES def get_language_from_header(accept_language): @@ -23,3 +27,12 @@ def get_language_from_header(accept_language): return language_codes[primary_lang].lower() return LANGUAGE_CODE.lower() + + +def evibes_summernote_upload_to_func(instance, filename: str) -> str: + ext = filename.split(".")[-1] + filename = f"{uuid.uuid4()}.{ext}" + today = datetime.now().strftime("%Y-%m-%d") + if instance: + return os.path.join('evibes-summernote', today, filename) + return os.path.join('evibes-summernote', today) diff --git a/vibes_auth/admin.py b/vibes_auth/admin.py index 730e5056..3c1fc286 100644 --- a/vibes_auth/admin.py +++ b/vibes_auth/admin.py @@ -36,6 +36,7 @@ class BalanceInline(admin.TabularInline): verbose_name = _("balance") verbose_name_plural = _("balance") is_navtab = True + icon = "fa-solid fa-wallet" class OrderInline(admin.TabularInline): @@ -44,6 +45,7 @@ class OrderInline(admin.TabularInline): verbose_name = _("order") verbose_name_plural = _("orders") is_navtab = True + icon = "fa-solid fa-cart-shopping" class UserAdmin(BaseUserAdmin, BasicModelAdmin):