Удален раздел новостей с главной страницы и реализованы овальные пилюли для категорий проектов
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
73
reset_database.sql
Normal file
73
reset_database.sql
Normal file
@@ -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;
|
||||
@@ -456,43 +456,6 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- News Section -->
|
||||
<section class="section-padding bg-light" id="news">
|
||||
<div class="container-modern">
|
||||
<div class="text-center mb-5">
|
||||
|
||||
<h2 class="display-6 fw-bold mb-3">
|
||||
Последние <span class="text-gradient">новости</span>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="row g-4">
|
||||
<div class="col-lg-12">
|
||||
<div class="news-card bg-white rounded-4 p-4 shadow">
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<span class="badge bg-primary rounded-pill px-3 py-1 me-3">24.11.2025</span>
|
||||
<h5 class="mb-0">Новый сайт</h5>
|
||||
</div>
|
||||
<p class="text-muted mb-3">
|
||||
Поздравляем всех наших клиентов с этой знаменательной датой!
|
||||
Мы переписали свой сайт! теперь у нас современный дизайн и улучшенная функциональность...
|
||||
</p>
|
||||
<a href="{% url 'news' %}" class="text-primary fw-semibold">
|
||||
Узнать больше <i class="fas fa-arrow-right ms-1"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="text-center mt-4">
|
||||
<a href="{% url 'news' %}" class="btn btn-primary-modern btn-lg">
|
||||
<i class="fas fa-newspaper me-2"></i>
|
||||
Все новости
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Career Section -->
|
||||
<section class="section-padding" id="career">
|
||||
<div class="container-modern">
|
||||
|
||||
@@ -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 @@
|
||||
<div class="container">
|
||||
{% if categories %}
|
||||
<div class="category-filter">
|
||||
<a href="{% url 'projects_list' %}" class="category-btn {% if not selected_category %}active{% endif %}">
|
||||
<a href="{% url 'projects_list' %}" class="category-pill {% if not selected_category %}active{% endif %}">
|
||||
<i class="fas fa-th me-2"></i>Все проекты
|
||||
</a>
|
||||
{% for category in categories %}
|
||||
<a href="{% url 'projects_list' %}?category={{ category.id }}"
|
||||
class="category-btn {% if selected_category == category.id|stringformat:'s' %}active{% endif %}">
|
||||
class="category-pill {% if selected_category == category.id|stringformat:'s' %}active{% endif %}">
|
||||
<i class="{{ category.icon }} me-2"></i>{{ category.name }}
|
||||
</a>
|
||||
{% endfor %}
|
||||
@@ -521,7 +551,7 @@
|
||||
<h3 class="project-title">{{ project.name }}</h3>
|
||||
|
||||
{% if project.short_description %}
|
||||
<p class="project-description">{{ project.short_description|truncatewords:25 }}</p>
|
||||
<p class="project-description">{{ project.short_description|striptags|truncatewords:25 }}</p>
|
||||
{% endif %}
|
||||
|
||||
<!-- Статистика проекта -->
|
||||
|
||||
Reference in New Issue
Block a user