From f72a4d5a5bd6cbc278d52449eb442ef39428e701 Mon Sep 17 00:00:00 2001 From: "Andrey K. Choi" Date: Wed, 26 Nov 2025 21:02:33 +0900 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=20=D1=80?= =?UTF-8?q?=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=20=D0=BD=D0=BE=D0=B2=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D0=B5=D0=B9=20=D1=81=20=D0=B3=D0=BB=D0=B0=D0=B2=D0=BD?= =?UTF-8?q?=D0=BE=D0=B9=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D1=8B?= =?UTF-8?q?=20=D0=B8=20=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D1=8B=20=D0=BE=D0=B2=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B?= =?UTF-8?q?=D0=B5=20=D0=BF=D0=B8=D0=BB=D1=8E=D0=BB=D0=B8=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=BA=D0=B0=D1=82=D0=B5=D0=B3=D0=BE=D1=80=D0=B8=D0=B9?= =?UTF-8?q?=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reset_database.sql | 73 +++++++++++++++++++ .../web/templates/web/home_modern.html | 37 ---------- .../web/templates/web/projects_list.html | 64 +++++++++++----- 3 files changed, 120 insertions(+), 54 deletions(-) create mode 100644 reset_database.sql diff --git a/reset_database.sql b/reset_database.sql new file mode 100644 index 0000000..2047fe5 --- /dev/null +++ b/reset_database.sql @@ -0,0 +1,73 @@ +-- Скрипт для полной очистки базы данных smartsoltech_db +-- ВНИМАНИЕ: Этот скрипт удалит ВСЕ данные из базы данных! + +-- Отключаем проверку внешних ключей +SET session_replication_role = replica; + +-- Удаляем все таблицы Django приложений +DROP TABLE IF EXISTS django_migrations CASCADE; +DROP TABLE IF EXISTS django_content_type CASCADE; +DROP TABLE IF EXISTS auth_permission CASCADE; +DROP TABLE IF EXISTS auth_group CASCADE; +DROP TABLE IF EXISTS auth_group_permissions CASCADE; +DROP TABLE IF EXISTS auth_user CASCADE; +DROP TABLE IF EXISTS auth_user_groups CASCADE; +DROP TABLE IF EXISTS auth_user_user_permissions CASCADE; +DROP TABLE IF EXISTS django_admin_log CASCADE; +DROP TABLE IF EXISTS django_session CASCADE; + +-- Удаляем таблицы приложения web +DROP TABLE IF EXISTS web_herobanner CASCADE; +DROP TABLE IF EXISTS web_category CASCADE; +DROP TABLE IF EXISTS web_service CASCADE; +DROP TABLE IF EXISTS web_client CASCADE; +DROP TABLE IF EXISTS web_order CASCADE; +DROP TABLE IF EXISTS web_project CASCADE; +DROP TABLE IF EXISTS web_project_categories CASCADE; +DROP TABLE IF EXISTS web_projectmedia CASCADE; +DROP TABLE IF EXISTS web_portfolioitem CASCADE; +DROP TABLE IF EXISTS web_portfolioitem_categories CASCADE; +DROP TABLE IF EXISTS web_portfoliocategory CASCADE; +DROP TABLE IF EXISTS web_portfoliomedia CASCADE; +DROP TABLE IF EXISTS web_review CASCADE; +DROP TABLE IF EXISTS web_blogpost CASCADE; +DROP TABLE IF EXISTS web_servicerequest CASCADE; +DROP TABLE IF EXISTS web_contactinfo CASCADE; +DROP TABLE IF EXISTS web_team CASCADE; +DROP TABLE IF EXISTS web_career CASCADE; +DROP TABLE IF EXISTS web_newspost CASCADE; + +-- Удаляем таблицы приложения comunication +DROP TABLE IF EXISTS comunication_usercommunication CASCADE; +DROP TABLE IF EXISTS comunication_emailsettings CASCADE; +DROP TABLE IF EXISTS comunication_telegramsettings CASCADE; + +-- Удаляем все последовательности (sequences) +DROP SEQUENCE IF EXISTS web_herobanner_id_seq CASCADE; +DROP SEQUENCE IF EXISTS web_category_id_seq CASCADE; +DROP SEQUENCE IF EXISTS web_service_id_seq CASCADE; +DROP SEQUENCE IF EXISTS web_client_id_seq CASCADE; +DROP SEQUENCE IF EXISTS web_order_id_seq CASCADE; +DROP SEQUENCE IF EXISTS web_project_id_seq CASCADE; +DROP SEQUENCE IF EXISTS web_project_categories_id_seq CASCADE; +DROP SEQUENCE IF EXISTS web_projectmedia_id_seq CASCADE; +DROP SEQUENCE IF EXISTS web_portfolioitem_id_seq CASCADE; +DROP SEQUENCE IF EXISTS web_portfolioitem_categories_id_seq CASCADE; +DROP SEQUENCE IF EXISTS web_portfoliocategory_id_seq CASCADE; +DROP SEQUENCE IF EXISTS web_portfoliomedia_id_seq CASCADE; +DROP SEQUENCE IF EXISTS web_review_id_seq CASCADE; +DROP SEQUENCE IF EXISTS web_blogpost_id_seq CASCADE; +DROP SEQUENCE IF EXISTS web_servicerequest_id_seq CASCADE; +DROP SEQUENCE IF EXISTS web_contactinfo_id_seq CASCADE; +DROP SEQUENCE IF EXISTS web_team_id_seq CASCADE; +DROP SEQUENCE IF EXISTS web_career_id_seq CASCADE; +DROP SEQUENCE IF EXISTS web_newspost_id_seq CASCADE; +DROP SEQUENCE IF EXISTS comunication_usercommunication_id_seq CASCADE; +DROP SEQUENCE IF EXISTS comunication_emailsettings_id_seq CASCADE; +DROP SEQUENCE IF EXISTS comunication_telegramsettings_id_seq CASCADE; + +-- Включаем обратно проверку внешних ключей +SET session_replication_role = DEFAULT; + +-- Выводим сообщение о завершении +SELECT 'База данных успешно очищена!' as status; \ No newline at end of file diff --git a/smartsoltech/web/templates/web/home_modern.html b/smartsoltech/web/templates/web/home_modern.html index a521233..d765e40 100644 --- a/smartsoltech/web/templates/web/home_modern.html +++ b/smartsoltech/web/templates/web/home_modern.html @@ -456,43 +456,6 @@ - -
-
-
- -

- Последние новости -

-
- -
-
-
-
- 24.11.2025 -
Новый сайт
-
-

- Поздравляем всех наших клиентов с этой знаменательной датой! - Мы переписали свой сайт! теперь у нас современный дизайн и улучшенная функциональность... -

- - Узнать больше - -
-
-
- - -
-
-
diff --git a/smartsoltech/web/templates/web/projects_list.html b/smartsoltech/web/templates/web/projects_list.html index 74a1e55..5c00343 100644 --- a/smartsoltech/web/templates/web/projects_list.html +++ b/smartsoltech/web/templates/web/projects_list.html @@ -13,38 +13,58 @@ margin-bottom: 3rem; } +/* Category Filter - Овальные пилюли */ .category-filter { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 0.75rem; margin-bottom: 3rem; - text-align: center; + padding: 0 1rem; } -.category-btn { - display: inline-block; - padding: 0.75rem 1.5rem; - margin: 0.5rem 0.25rem; - border-radius: 25px; +.category-pill { + display: inline-flex; + align-items: center; + padding: 0.75rem 1.25rem; background: white; border: 2px solid #e2e8f0; - color: #4a5568; + border-radius: 50px; /* Овальная форма */ + color: #64748b; text-decoration: none; - transition: all 0.3s ease; font-weight: 500; + font-size: 0.9rem; white-space: nowrap; - box-shadow: 0 2px 8px rgba(0,0,0,0.05); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); } -.category-btn:hover { - border-color: #667eea; +.category-pill:hover { color: #667eea; + border-color: #667eea; + background: rgba(102, 126, 234, 0.05); transform: translateY(-2px); - box-shadow: 0 4px 12px rgba(102, 126, 234, 0.2); + box-shadow: 0 4px 12px rgba(102, 126, 234, 0.15); + text-decoration: none; } -.category-btn.active { +.category-pill.active { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; border-color: transparent; - box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4); + box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3); + transform: translateY(-1px); +} + +.category-pill.active:hover { + background: linear-gradient(135deg, #5a6fd8 0%, #6b4190 100%); + box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4); + color: white; +} + +.category-pill i { + font-size: 0.85rem; + margin-right: 0.5rem; } .projects-grid { @@ -349,6 +369,16 @@ font-size: 1rem; } + .category-filter { + gap: 0.5rem; + padding: 0 0.5rem; + } + + .category-pill { + font-size: 0.85rem; + padding: 0.6rem 1rem; + } + .projects-grid { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; @@ -474,12 +504,12 @@
{% if categories %}
- + Все проекты {% for category in categories %} + class="category-pill {% if selected_category == category.id|stringformat:'s' %}active{% endif %}"> {{ category.name }} {% endfor %} @@ -521,7 +551,7 @@

{{ project.name }}

{% if project.short_description %} -

{{ project.short_description|truncatewords:25 }}

+

{{ project.short_description|striptags|truncatewords:25 }}

{% endif %}