From d6d2567bd4b010584a9b781ae84cc2dff9c7c5df Mon Sep 17 00:00:00 2001 From: "ilya.basyrov" Date: Thu, 2 Nov 2023 14:28:23 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B8=D0=BB=20=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D1=83=D0=B6=D0=BD=D1=8B=D0=B5=20=D1=82=D0=B5=D0=B3?= =?UTF-8?q?=D0=B8,=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D1=8B=D0=B5.=20=D0=9F=D0=BE=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D0=BB=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D1=83=20?= =?UTF-8?q?=D0=BF=D0=B0=D0=B3=D0=B8=D0=BD=D0=B0=D1=86=D0=B8=D0=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templatetags/custom_catalog_tags.py | 25 ------ .../templatetags/custom_pages_tags.py | 20 ----- project_name/management/__init__.py | 0 project_name/management/commands/__init__.py | 0 .../management/commands/init_catalog.py | 56 ------------ project_name/management/utils.py | 90 ------------------- project_name/templates/catalog/product.html | 2 - project_name/templates/catalog/root.html | 4 - project_name/templates/catalog/section.html | 6 -- .../templates/easy_news/news_detail.html | 3 - project_name/templates/easy_news/root.html | 2 - project_name/templates/pages/contacts.html | 2 - project_name/templates/pages/default.html | 2 - project_name/templates/pages/frontpage.html | 2 - project_name/templates/pages/list.html | 6 -- project_name/templates/service/base_404.html | 2 - project_name/templates/service/base_500.html | 2 - project_name/templatetags/base_tags.py | 89 +++++++++++++++--- requirements.txt | 20 ++--- 19 files changed, 85 insertions(+), 248 deletions(-) delete mode 100644 project_name/management/__init__.py delete mode 100644 project_name/management/commands/__init__.py delete mode 100644 project_name/management/commands/init_catalog.py delete mode 100644 project_name/management/utils.py diff --git a/project_name/custom_catalog/templatetags/custom_catalog_tags.py b/project_name/custom_catalog/templatetags/custom_catalog_tags.py index de7c71e..5e59610 100644 --- a/project_name/custom_catalog/templatetags/custom_catalog_tags.py +++ b/project_name/custom_catalog/templatetags/custom_catalog_tags.py @@ -6,28 +6,3 @@ register = template.Library() - - -@register.inclusion_tag('catalog/parts/block_cards.html', takes_context=True) -def show_block_cards(context): - - """ Возвращает список разделов + список товаров """ - - obj = context.get('object') - items = get_sorted_content_objects(get_content_objects(obj.tree.get().get_children())) - sections, products = [], [] - for item in items: - item_data = { - 'title': item.title, - 'get_absolute_url': item.get_absolute_url(), - 'description': item.description, - 'image': AttachmentImage.objects - .filter(object_id=item.id, content_type=ContentType.objects.get_for_model(item)).first() - } - if item.leaf: - products.append(item_data) - else: - sections.append(item_data) - - context['object_list'] = sections + products - return context \ No newline at end of file diff --git a/project_name/custom_pages/templatetags/custom_pages_tags.py b/project_name/custom_pages/templatetags/custom_pages_tags.py index a93f002..a34ca46 100644 --- a/project_name/custom_pages/templatetags/custom_pages_tags.py +++ b/project_name/custom_pages/templatetags/custom_pages_tags.py @@ -52,26 +52,6 @@ def show_block_gallery(context, key='all'): return context -@register.inclusion_tag('pages/parts/block_cards.html', takes_context=True) -def show_block_cards(context): - - """ Возвращает список дочерних страниц """ - - context['object_list'] = [] - obj = context.get("current_page") - - for page in obj.get_children().filter(status=Page.PUBLISHED): - - context['object_list'].append({ - 'title': page.title(), - 'description': page.get_content(LANG, 'description'), - 'image': AttachmentImage.objects - .filter(object_id=page.id, content_type=PAGE_CT).first(), - 'get_absolute_url': page.get_absolute_url() - }) - return context - - @register.inclusion_tag('catalog/parts/block_cards.html', takes_context=True) def show_block_products(context): diff --git a/project_name/management/__init__.py b/project_name/management/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/project_name/management/commands/__init__.py b/project_name/management/commands/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/project_name/management/commands/init_catalog.py b/project_name/management/commands/init_catalog.py deleted file mode 100644 index 02b576c..0000000 --- a/project_name/management/commands/init_catalog.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- -import sys -from django.core.management.base import BaseCommand -from django.contrib.auth import get_user_model -from {{ project_name }}.custom_catalog.models import Product, Section, Root -from {{ project_name }}.management.utils import BLOCK_CONTENT -from catalog.models import TreeItem - - -UserModel = get_user_model() - - -class Command(BaseCommand): - - """ Заполнение базы каталога, через fixtures невозможно """ - - def handle(self, *args, **options): - sys.stdout.write("\rCreating catalog...") - root_page = Root.objects.all().first() - if not root_page: - root_page = Root.objects.create(title=u'Каталог', main_content=BLOCK_CONTENT, bottom_content=BLOCK_CONTENT) - root = TreeItem.objects.create(content_object=root_page) - - root = root_page.tree.get() - if not root.get_children().exists(): - for i in range(1, 8): - section = Section.objects.create(title=u'Раздел %d' % i, slug='section-%d' % i, main_content=BLOCK_CONTENT) - section.tree.get().move_to(root) - for i in range(1, 17): - Product.objects.create(title=u'Товар %d' % i, slug='product-%d' % i, main_content=BLOCK_CONTENT) - - section_1 = Section.objects.get(id=1).tree.get() - for ss in Section.objects.filter(id__in=[2, 3, 4]): - ss.tree.get().move_to(section_1) - - section_2 = Section.objects.get(id=2).tree.get() - for p in Product.objects.filter(id__in=[1, 2, 3, 4, 5]): - p.tree.get().move_to(section_2) - - section_3 = Section.objects.get(id=3).tree.get() - for p in Product.objects.filter(id__in=[6, 7, 8, 9, 10]): - p.tree.get().move_to(section_3) - - section_5 = Section.objects.get(id=5).tree.get() - section_6 = Section.objects.get(id=6).tree.get() - section_6.move_to(section_5) - Product.objects.get(id=11).tree.get().move_to(section_6) - - section_7 = Section.objects.get(id=7).tree.get() - for p in Product.objects.filter(id__in=[12, 13, 14, 15, 16]): - p.tree.get().move_to(section_7) - - sys.stdout.write(self.style.SUCCESS(" OK\n")) - else: - sys.stdout.write(self.style.WARNING(" ALREADY EXIST\n")) - diff --git a/project_name/management/utils.py b/project_name/management/utils.py deleted file mode 100644 index 9560849..0000000 --- a/project_name/management/utils.py +++ /dev/null @@ -1,90 +0,0 @@ -# -*- coding: utf-8 -*- -BLOCK_CONTENT = u"""

Высококачественный прототип будущего проекта не оставляет шанса -для приоритизации разума над эмоциями. Приятно, граждане, наблюдать, как активно развивающиеся -страны третьего мира, превозмогая сложившуюся непростую экономическую ситуацию, объявлены нарушающими -общечеловеческие нормы этики и морали. Внезапно, тщательные исследования конкурентов, которые представляют -собой яркий пример континентально-европейского типа политической культуры, будут объединены в целые кластеры -себе подобных. Таким образом, выбранный нами инновационный путь обеспечивает широкому кругу (специалистов) -участие в формировании поэтапного и последовательного развития общества.

""" - -BLOCK_DESC = u"""Высокотехнологичная концепция общественного уклада способствует подготовке и реализации -переосмысления внешнеэкономических политик. Кстати, тщательные исследования конкурентов, вне зависимости -от их уровня, должны быть превращены в посмешище, хотя само их существование приносит несомненную пользу -обществу.""" - -GUIDELINE_CONTENT = u"""

Современные технологии достигли такого уровня, что выбранный нами инновационный путь говорит о возможностях форм воздействия. Как уже неоднократно упомянуто, интерактивные прототипы, вне зависимости от их уровня, должны быть функционально разнесены на независимые элементы. Не следует, однако, забывать, что глубокий уровень погружения не оставляет шанса для инновационных методов управления процессами.

-

В своём стремлении повысить качество жизни, они забывают, что граница обучения кадров говорит о возможностях поэтапного и последовательного развития общества. Безусловно, повышение уровня гражданского сознания влечет за собой процесс внедрения и модернизации своевременного выполнения сверхзадачи.На страницах проекта мы собрали огромную базу технической информации и другие инструменты для повседневной работы. Предварительные выводы неутешительны: постоянный количественный рост и сфера нашей активности обеспечивает широкому кругу (специалистов) участие в формировании экспериментов, поражающих по своей масштабности и грандиозности.

-

Заголовок 1

-

Заголовок 2

-

Заголовок 3

-

Заголовок 4

-
Заголовок 5
-
Заголовок 6
-

Маркированный список

- -

Нумерованный список

-
    -
  1. В целом, конечно, граница обучения кадров не даёт нам иного выбора, кроме определения модели развития;
  2. -
  3. Как принято считать, элементы политического процесса формируют глобальную экономическую сеть;
  4. -
  5. Следует отметить, что социально-экономическое развитие способствует подготовке и реализации глубокомысленных рассуждений;
  6. -
  7. Также как экономическая повестка сегодняшнего дня позволяет выполнить важные задания по разработке стандартных подходов.Кстати, активно развивающиеся страны третьего мира и по сей день остаются уделом либералов, которые жаждут быть смешаны с не уникальными данными до степени совершенной неузнаваемости, из-за чего возрастает их статус бесполезности;
  8. -
  9. Интерактивные прототипы набирают популярность среди определенных слоев населения, а значит, должны быть призваны к ответу;
  10. -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Заголовок таблицы
 Тип1,251,51,752,02,5
Толщина, мм1,25±0,11,5±0,11,75±0,122,0±0,122,5±0,12
Граммаж, г/м210101100125014001750
Плотность, г/см3, не более0,75
Предел прочности при расслаивании, кПа, не менее200
Жесткость при статическом изгибе в поперечном направлении, Н*см, не менее9,013,018,028,050,0
Влажность, %6-10
Размер листа92(долевая)*105
-

-

Цитата

-
-

Цитата – это точная дословная выдержка из какого-либо текста или высказывания, от словосочетания или простого предложения до внушительного отрывка текста.

-
-""" \ No newline at end of file diff --git a/project_name/templates/catalog/product.html b/project_name/templates/catalog/product.html index 372d455..cbbdd4f 100644 --- a/project_name/templates/catalog/product.html +++ b/project_name/templates/catalog/product.html @@ -37,6 +37,4 @@ - {% show_block_content object.main_content %} - {% endblock %} \ No newline at end of file diff --git a/project_name/templates/catalog/root.html b/project_name/templates/catalog/root.html index 4525933..a4f1c16 100644 --- a/project_name/templates/catalog/root.html +++ b/project_name/templates/catalog/root.html @@ -16,14 +16,10 @@ {% block content %} - {% show_block_content object.main_content %} -
{% for obj in object.root_sections %} {% include 'catalog/parts/card.html' %} {% endfor %}
- {% show_block_content object.bottom_content %} - {% endblock %} \ No newline at end of file diff --git a/project_name/templates/catalog/section.html b/project_name/templates/catalog/section.html index da01325..a03ac48 100644 --- a/project_name/templates/catalog/section.html +++ b/project_name/templates/catalog/section.html @@ -3,11 +3,5 @@ {% block content %} - {% show_block_content object.main_content %} - - {% show_block_cards %} - - {% show_block_content object.bottom_content %} - {% endblock %} diff --git a/project_name/templates/easy_news/news_detail.html b/project_name/templates/easy_news/news_detail.html index 4e62f89..86fecae 100644 --- a/project_name/templates/easy_news/news_detail.html +++ b/project_name/templates/easy_news/news_detail.html @@ -18,7 +18,4 @@ {% block content %}
{{ object.date|date:"d.m.Y" }}
- - {% show_block_content object.main_content %} - {% endblock %} \ No newline at end of file diff --git a/project_name/templates/easy_news/root.html b/project_name/templates/easy_news/root.html index 3a23993..b9af65f 100644 --- a/project_name/templates/easy_news/root.html +++ b/project_name/templates/easy_news/root.html @@ -3,8 +3,6 @@ {% block content %} - {% show_block_content object.main_content %} - {% show_block_news %} {% endblock %} diff --git a/project_name/templates/pages/contacts.html b/project_name/templates/pages/contacts.html index 00500a9..47876ff 100644 --- a/project_name/templates/pages/contacts.html +++ b/project_name/templates/pages/contacts.html @@ -4,12 +4,10 @@ {% block content %} {% placeholder main_content with TinyMCE label 'Контент страницы' as main_content %} - {% show_block_content main_content %} {% placeholder map with LargeTextarea label 'Скрипт карты' as map %} {{ map|safe }} {% placeholder bottom_content with TinyMCE label 'Контент внизу страницы' as bottom_content %} - {% show_block_content bottom_content %} {% endblock %} diff --git a/project_name/templates/pages/default.html b/project_name/templates/pages/default.html index 39fbacb..f6b383e 100644 --- a/project_name/templates/pages/default.html +++ b/project_name/templates/pages/default.html @@ -6,8 +6,6 @@ {% placeholder description with LargeTextarea label 'Короткое описание' as description %} {% placeholder main_content with TinyMCE label 'Контент страницы' as main_content %} - {% show_block_content main_content %} - {% show_block_gallery %} {% endblock %} diff --git a/project_name/templates/pages/frontpage.html b/project_name/templates/pages/frontpage.html index 009012b..0f6d5e6 100644 --- a/project_name/templates/pages/frontpage.html +++ b/project_name/templates/pages/frontpage.html @@ -5,6 +5,4 @@ {% placeholder main_content with TinyMCE label 'Контент страницы' as main_content %} - {% show_block_content main_content %} - {% endblock %} diff --git a/project_name/templates/pages/list.html b/project_name/templates/pages/list.html index f28f88f..e4b7ae4 100644 --- a/project_name/templates/pages/list.html +++ b/project_name/templates/pages/list.html @@ -6,10 +6,4 @@ {% placeholder main_content with TinyMCE label 'Контент страницы' as main_content %} {% placeholder bottom_content with TinyMCE label 'Контент внизу страницы' as bottom_content %} - {% show_block_content main_content %} - - {% show_block_cards %} - - {% show_block_content bottom_content %} - {% endblock %} \ No newline at end of file diff --git a/project_name/templates/service/base_404.html b/project_name/templates/service/base_404.html index bb39330..dc9eec1 100644 --- a/project_name/templates/service/base_404.html +++ b/project_name/templates/service/base_404.html @@ -3,8 +3,6 @@ {% block content %} - {% show_block_content object.main_content %} - {% show_block_sitemap %} {% endblock %} diff --git a/project_name/templates/service/base_500.html b/project_name/templates/service/base_500.html index 7a8ba4f..34126db 100644 --- a/project_name/templates/service/base_500.html +++ b/project_name/templates/service/base_500.html @@ -5,8 +5,6 @@ {% block content %} - {% show_block_content object.main_content %} - {% endblock %} {% block footer_nav %} diff --git a/project_name/templatetags/base_tags.py b/project_name/templatetags/base_tags.py index 7c213f3..75437d4 100644 --- a/project_name/templatetags/base_tags.py +++ b/project_name/templatetags/base_tags.py @@ -4,6 +4,7 @@ from django.utils.html import strip_spaces_between_tags from easy_news.models import News from django.contrib.contenttypes.models import ContentType +from ast import literal_eval try: NEWS_CT = ContentType.objects.get_for_model(News) @@ -13,14 +14,6 @@ register = template.Library() -@register.inclusion_tag('parts/block_content.html') -def show_block_content(content): - - """ Отображение блока html-контента """ - - return {'content': content} - - def get_ranged_pagination_pages(current, pages, count): """ Возвращает список из count страниц пагинации вокруг текущего элемента @@ -30,7 +23,7 @@ def get_ranged_pagination_pages(current, pages, count): if len(pages): first_page, last_page = pages[0], pages[-1] if count < last_page: - step = count / 2 + step = count // 2 left_page = current - step + 1 right_page = current + step if left_page < first_page and right_page > last_page: @@ -59,12 +52,12 @@ def get_custom_pagination(current, pages): data['pages'] = get_ranged_pagination_pages(current, pages, count=4) data['first'] = 1 data['last'] = pages[-1] - data['prev'] = data['pages'][0] - 1 + data['prev'] = current - 1 if data['prev'] < data['first']: data['prev'] = None - data['next'] = data['pages'][-1] + 1 + data['next'] = current + 1 if data['next'] > data['last']: - data['next'] = None + data['next'] = None return data @@ -93,4 +86,74 @@ def equal(val1, val2): """ Сравнение значений разных типов через приведение в юникод """ - return unicode(val1) == unicode(val2) + return str(val1) == str(val2) + + +@register.simple_tag +def get_items_by_model_name(model_name, ordering=None, num=None, **kwargs): + """ + return queryset of every items by model name with filtering + example: + {% get_items_by_model_name 'door' ordering='-id' num=20 show=True price__gt=6000 as doors %} + """ + items = ContentType.objects.filter(model=model_name).first().get_all_objects_for_this_type().filter(**kwargs) + if ordering: + items = items.order_by(ordering) + if num: + items = items[:num] + return items + + +@register.simple_tag +def exclude_query(query, num=None, **kwargs): + + """ exclude queryset objects """ + result = '' + try: + result = query.exclude(**kwargs) + + if num: + result = result[:num] + except: + pass + return result + + + +@register.simple_tag +def filter_query(query, num=None, **kwargs): + + """ filter queryset objects """ + result = '' + try: + result = query.filter(**kwargs) + + if num: + result = result[:num] + except: + pass + return result + + +@register.filter +def price_format(val): + + """ Разделение разрядов числа пробелами """ + + s = str(val) + buf = '' + result = '' + for i in range(len(s)-1, -1, -1): + buf = s[i] + buf + if len(buf) == 3: + result = buf + ' ' + result + buf = '' + if len(buf): + result = buf + ' ' + result + return result + + +@register.filter() +def string_to_list(val): + list = literal_eval(val) + return list diff --git a/requirements.txt b/requirements.txt index 465c5a5..e0f963e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,19 +8,17 @@ xlsxwriter==1.1.8 unicodecsv==0.14.1 requests==2.20 django-mptt==0.9.1 -django-tinymce==2.9.0 dj-pagination==2.4.0 django-modeladmin-reorder==0.3.1 django-filebrowser-no-grappelli==3.8.0 -git+https://github.com/shoker174/django-catalog-tree@2.2 -git+https://github.com/shoker174/django-treemenus@2.2 -git+https://github.com/shoker174/django-simple-feedback.git@2.2 -git+https://github.com/shoker174/django-imagekit@support/0.4.x -git+https://github.com/shoker174/django-tinymce-attachment.git@2.2 +git+https://github.com/redsolution/django-catalog-tree@2.2 +git+https://github.com/redsolution/django-treemenus@2.2 +git+https://github.com/redsolution/django-simple-feedback.git@2.2 +git+https://github.com/redsolution/django-tinymce-attachment.git@2.2 git+https://github.com/redsolution/django-nocaptcha-recaptcha.git -git+https://github.com/shoker174/django-chunks.git@2.2 -git+https://github.com/shoker174/django-easy-news.git@2.2 -git+https://github.com/shoker174/django-seo.git@2.2 -git+https://github.com/shoker174/django-import-redirects@2.2 -git+https://github.com/shoker174/django-page-cms@django-2.2 \ No newline at end of file +git+https://github.com/redsolution/django-chunks.git@2.2 +git+https://github.com/redsolution/django-easy-news.git@2.2 +git+https://github.com/redsolution/django-seo.git@2.2 +git+https://github.com/redsolution/django-import-redirects@2.2 +git+https://github.com/redsolution/django-page-cms@2.2 \ No newline at end of file