56 lines
No EOL
2.5 KiB
HTML
56 lines
No EOL
2.5 KiB
HTML
{% extends 'services/base.html' %}
|
|
|
|
{% block content %}
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<div class="d-flex align-items-start mb-4">
|
|
{% if provider.logo %}
|
|
<img src="{{ provider.logo.url }}" alt="{{ provider.name }} logo" class="me-4"
|
|
style="max-height: 120px; max-width: 240px; object-fit: contain;">
|
|
{% endif %}
|
|
<div>
|
|
<h2 class="card-title mb-3">{{ provider.name }}</h2>
|
|
<div class="rich-text-content">
|
|
{{ provider.description|safe }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<h3 class="mb-4">Available Services</h3>
|
|
<div class="row row-cols-1 row-cols-md-2 g-4">
|
|
{% for service in services %}
|
|
<div class="col">
|
|
<div class="card h-100">
|
|
<div class="card-body">
|
|
<div class="d-flex align-items-center mb-3">
|
|
{% if service.logo %}
|
|
<img src="{{ service.logo.url }}" alt="{{ service.name }} logo"
|
|
class="me-3" style="max-height: 50px; max-width: 100px; object-fit: contain;">
|
|
{% endif %}
|
|
<div>
|
|
<h5 class="card-title mb-0">{{ service.name }}</h5>
|
|
</div>
|
|
</div>
|
|
<div class="card-text description-preview mb-3">
|
|
{{ service.description|safe|truncatewords_html:30 }}
|
|
</div>
|
|
<div class="mb-2">
|
|
{% for category in service.categories.all %}
|
|
<span class="badge bg-secondary me-1">{{ category.full_path }}</span>
|
|
{% endfor %}
|
|
</div>
|
|
<a href="{% url 'services:service_detail' service.slug %}" class="btn btn-primary">View Details</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% empty %}
|
|
<div class="col-12">
|
|
<div class="alert alert-info">
|
|
No services available from this provider yet.
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %} |