From 1aeb83d571395e596b058d3b55a075fdfd773f87 Mon Sep 17 00:00:00 2001 From: SDE Date: Thu, 11 Jul 2024 15:06:06 +0300 Subject: [PATCH] 0.5.3 documentation --- BaseModels/functions.py | 17 +++++++++++++++++ DocsApp/admin.py | 23 ++++++++++++++++++++--- 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/BaseModels/functions.py b/BaseModels/functions.py index f19bb49..2dd38bf 100644 --- a/BaseModels/functions.py +++ b/BaseModels/functions.py @@ -346,6 +346,23 @@ def translit(locallangstring): return ''.join(translitstring) +def create_url(data, model): + url = None + + objs = True + i = 0 + while objs: + url = url_translit(data['name']) + if i > 0: + url += f'_{str(i)}' + + objs = model.objects.filter(url=url) + + i += 1 + + return url + + def slugify_text(str_text): utf8_code = False try: diff --git a/DocsApp/admin.py b/DocsApp/admin.py index 2c8bf7e..28400f6 100644 --- a/DocsApp/admin.py +++ b/DocsApp/admin.py @@ -58,11 +58,11 @@ class Admin_DocArt(SuperModelAdmin, Admin_Trans_BaseModelViewPage): list_display = [ 'id', 'enable', 'name', 'url', - 'show_versions', + 'show_versions', 'parent', 'order', 'modifiedDT', 'createDT' ] - # ordering = ['section', 'parent_service', 'order'] + ordering = ['versions', 'order', 'name'] prepopulated_fields = {"url": ("name_en",)} @@ -72,18 +72,35 @@ class Admin_DocArt(SuperModelAdmin, Admin_Trans_BaseModelViewPage): filter_horizontal = ['versions'] list_filter = [ - # 'section', 'parent_service', + 'versions', 'modifiedDT', 'createDT', ] search_fields = ['name', 'title'] # filter_horizontal = ['options'] # inlines = [Admin_StackedInline_Block] + actions = ["create_copy_arts"] + + @admin.action(description=_("Создать копии выбранных статей")) + def create_copy_arts(self, request, queryset): + from BaseModels.functions import create_url + for obj in queryset: + obj.name += '-копия' + obj.url = create_url({'name': obj.name}, DocArt) + obj.pk = None + obj.save() + + self.message_user( + request, + _('Копии успешно созданы') + ) admin.site.register(DocArt, Admin_DocArt) + + class Admin_DocVersion(Admin_BaseIconModel): fieldsets = [