Update contact section: add cards with DB fields for email, phone, telegram

This commit is contained in:
2025-11-24 15:01:17 +09:00
parent 53ec830ec8
commit 4502862c74
2 changed files with 95 additions and 41 deletions

View File

@@ -303,8 +303,13 @@ class AboutPage(models.Model):
value_4_text = models.TextField(default='Гарантируем качество и безопасность...', verbose_name='Текст ценности 4')
# Contact Section
contact_title = models.CharField(max_length=200, default='Готовы начать проект?', verbose_name='Заголовок контактов')
contact_description = models.TextField(default='Свяжитесь с нами сегодня...', verbose_name='Описание контактов')
contact_badge = models.CharField(max_length=100, default='📞 Контакты', verbose_name='Contact Badge')
contact_title = models.CharField(max_length=200, default='Начнем сотрудничество?', verbose_name='Заголовок контактов')
contact_description = models.TextField(default='Свяжитесь с нами для обсуждения вашего проекта', verbose_name='Описание контактов')
contact_email = models.EmailField(default='info@smartsoltech.kr', verbose_name='Email для контактов')
contact_phone = models.CharField(max_length=50, default='+82-10-XXXX-XXXX', verbose_name='Телефон для контактов')
contact_telegram = models.CharField(max_length=100, default='@smartsoltech', verbose_name='Telegram для контактов')
contact_address = models.TextField(default='Seoul, South Korea', blank=True, verbose_name='Адрес')
# Meta
is_active = models.BooleanField(default=True, verbose_name='Активна')

View File

@@ -303,57 +303,88 @@
</section>
<!-- Contact Section -->
<section class="section-padding bg-gradient text-white" id="contact">
<section class="section-padding bg-light" id="contact">
<div class="container-modern">
<div class="text-center mb-5">
{% if about.contact_badge %}
<span class="badge bg-primary mb-3">{{ about.contact_badge }}</span>
{% endif %}
<h2 class="display-6 fw-bold mb-4">
Начнем сотрудничество?
{{ about.contact_title|default:"Начнем сотрудничество?" }}
</h2>
<p class="lead opacity-90 mb-5">
Свяжитесь с нами для обсуждения вашего проекта
<p class="lead text-muted mb-5">
{{ about.contact_description|default:"Свяжитесь с нами для обсуждения вашего проекта" }}
</p>
</div>
<div class="row justify-content-center">
<div class="col-lg-8">
<div class="row g-4">
<div class="col-md-4 text-center">
<div class="contact-item">
<i class="fas fa-envelope fa-2x mb-3 opacity-75"></i>
<h5>Email</h5>
<a href="mailto:info@smartsoltech.kr" class="text-white text-decoration-none opacity-75">
info@smartsoltech.kr
</a>
<div class="row justify-content-center g-4">
<!-- Email Card -->
<div class="col-lg-3 col-md-6">
<div class="card h-100 border-0 shadow-sm hover-lift">
<div class="card-body text-center p-4">
<div class="icon-box bg-primary bg-opacity-10 rounded-circle d-inline-flex align-items-center justify-content-center mb-3" style="width: 60px; height: 60px;">
<i class="fas fa-envelope fa-2x text-primary"></i>
</div>
</div>
<div class="col-md-4 text-center">
<div class="contact-item">
<i class="fas fa-phone fa-2x mb-3 opacity-75"></i>
<h5>Телефон</h5>
<a href="tel:+82-10-XXXX-XXXX" class="text-white text-decoration-none opacity-75">
+82-10-XXXX-XXXX
</a>
</div>
</div>
<div class="col-md-4 text-center">
<div class="contact-item">
<i class="fab fa-telegram-plane fa-2x mb-3 opacity-75"></i>
<h5>Telegram</h5>
<a href="https://t.me/smartsoltech" class="text-white text-decoration-none opacity-75">
@smartsoltech
<h5 class="card-title fw-bold mb-3">Email</h5>
<a href="mailto:{{ about.contact_email }}" class="text-decoration-none">
<p class="card-text text-muted mb-0">{{ about.contact_email }}</p>
</a>
</div>
</div>
</div>
<div class="text-center mt-5">
<a href="{% url 'services' %}" class="btn btn-light btn-lg text-primary">
<i class="fas fa-rocket me-2"></i>
Начать проект
<!-- Phone Card -->
<div class="col-lg-3 col-md-6">
<div class="card h-100 border-0 shadow-sm hover-lift">
<div class="card-body text-center p-4">
<div class="icon-box bg-success bg-opacity-10 rounded-circle d-inline-flex align-items-center justify-content-center mb-3" style="width: 60px; height: 60px;">
<i class="fas fa-phone fa-2x text-success"></i>
</div>
<h5 class="card-title fw-bold mb-3">Телефон</h5>
<a href="tel:{{ about.contact_phone }}" class="text-decoration-none">
<p class="card-text text-muted mb-0">{{ about.contact_phone }}</p>
</a>
</div>
</div>
</div>
<!-- Telegram Card -->
<div class="col-lg-3 col-md-6">
<div class="card h-100 border-0 shadow-sm hover-lift">
<div class="card-body text-center p-4">
<div class="icon-box bg-info bg-opacity-10 rounded-circle d-inline-flex align-items-center justify-content-center mb-3" style="width: 60px; height: 60px;">
<i class="fab fa-telegram-plane fa-2x text-info"></i>
</div>
<h5 class="card-title fw-bold mb-3">Telegram</h5>
<a href="https://t.me/{{ about.contact_telegram|cut:'@' }}" target="_blank" class="text-decoration-none">
<p class="card-text text-muted mb-0">{{ about.contact_telegram }}</p>
</a>
</div>
</div>
</div>
<!-- Address Card (optional) -->
{% if about.contact_address %}
<div class="col-lg-3 col-md-6">
<div class="card h-100 border-0 shadow-sm hover-lift">
<div class="card-body text-center p-4">
<div class="icon-box bg-warning bg-opacity-10 rounded-circle d-inline-flex align-items-center justify-content-center mb-3" style="width: 60px; height: 60px;">
<i class="fas fa-map-marker-alt fa-2x text-warning"></i>
</div>
<h5 class="card-title fw-bold mb-3">Адрес</h5>
<p class="card-text text-muted mb-0">{{ about.contact_address }}</p>
</div>
</div>
</div>
{% endif %}
</div>
<div class="text-center mt-5">
<a href="{% url 'services' %}" class="btn btn-primary btn-lg px-5 py-3 shadow">
<i class="fas fa-rocket me-2"></i>
Начать проект
</a>
</div>
</div>
</section>
{% endblock %}
@@ -418,6 +449,24 @@ document.addEventListener('DOMContentLoaded', function() {
transition: width 1.5s ease-in-out;
}
/* Contact Cards */
.hover-lift {
transition: all 0.3s ease;
}
.hover-lift:hover {
transform: translateY(-10px);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15) !important;
}
.icon-box {
transition: all 0.3s ease;
}
.hover-lift:hover .icon-box {
transform: scale(1.1);
}
.contact-item {
padding: 2rem 1rem;
}