Use template tags instead of partial HTML

This commit is contained in:
2024-08-18 05:41:50 +02:00
parent 3ff3fe157a
commit 534de60f9f
9 changed files with 277 additions and 155 deletions

View File

@ -1,29 +1,30 @@
{% extends "base.html" %}
{% load static %}
{% load static campaign_tags game_tags %}
{% block content %}
<div class="container mt-4">
<div class="row">
<div class="col-lg-3">{{ toc|safe }}</div>
<div class="col-lg-9">
{% include "partials/info_box.html" %}
{% include "partials/news.html" %}
<h2>
Reward campaigns -
<div class="d-inline text-muted">{{ reward_campaigns.count }} campaigns</div>
</h2>
{% for campaign in reward_campaigns %}
{% include "partials/reward_campaign_card.html" %}
{% endfor %}
<h2>
Drop campaigns -
<div class="d-inline text-muted ">{{ games.count }} games</div>
</h2>
{% for game in games %}
{% if game.drop_campaigns.count > 0 %}
{% include "partials/game_card.html" %}
{% endif %}
{% endfor %}
</div>
<div class="container mt-4">
<div class="row">
<div class="col-lg-3">{{ toc|safe }}</div>
<div class="col-lg-9">
{% include "partials/info_box.html" %}
{% include "partials/news.html" %}
<h2>
Reward campaign -
<div class="d-inline text-muted">
{{ reward_campaigns.count }}
campaign{{ reward_campaigns.count|pluralize }}
</div>
</h2>
{% for campaign in reward_campaigns %}
{% render_campaign campaign %}
{% endfor %}
<h2>
Drop campaigns -
<div class="d-inline text-muted ">{{ games.count }} game{{ games.count|pluralize }}</div>
</h2>
{% for game in games %}
{% render_game_card game %}
{% endfor %}
</div>
</div>
</div>
{% endblock content %}

View File

@ -1,52 +0,0 @@
<div class="card mb-4 shadow-sm" id="#{{ game.twitch_id }}">
<div class="row g-0">
<div class="col-md-2">
<img src="{{ game.box_art_url }}"
alt="{{ game.name }} box art"
class="img-fluid rounded-start"
height="283"
width="212"
loading="lazy">
</div>
<div class="col-md-10">
<div class="card-body">
<h2 class="card-title h5">
<a href="https://www.twitch.tv/directory/category/{{ game.slug }}"
class="text-decoration-none">{{ game.name }}</a>
</h2>
<div class="mt-auto">
<!-- Insert nice buttons -->
</div>
{% for campaign in game.drop_campaigns.all %}
<div class="mt-3">
{% if campaign.details_url == campaign.account_link_url %}
<a href="{{ campaign.details_url }}" class="text-decoration-none">Details</a>
{% else %}
<a href="{{ campaign.details_url }}" class="text-decoration-none">Details</a>
|
<a href="{{ campaign.account_link_url }}" class="text-decoration-none">Link Account</a>
{% endif %}
<p class="mb-2 text-muted">
Ends in: <abbr title="{{ campaign.starts_at|date:'l d F H:i' }} - {{ campaign.ends_at|date:'l d F H:i e' }}">{{ campaign.ends_at|timeuntil }}</abbr>
</p>
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3">
{% for drop in campaign.drops.all %}
{% for benefit in drop.benefits.all %}
<div class="col d-flex align-items-center position-relative">
<img src="{{ benefit.image_url }}"
alt="{{ benefit.name }} drop image"
class="img-fluid rounded me-3"
height="50"
width="50"
loading="lazy">
{{ benefit.name }}
</div>
{% endfor %}
{% endfor %}
</div>
</div>
{% endfor %}
</div>
</div>
</div>
</div>

View File

@ -1,52 +0,0 @@
<div class="card mb-4 shadow-sm" id="campaign-{{ campaign.id }}">
<div class="row g-0">
<div class="col-md-2">
<img src="{{ campaign.image_url }}"
alt="{{ campaign.name }}"
class="img-fluid rounded-start"
height="283"
width="212"
loading="lazy">
</div>
<div class="col-md-10">
<div class="card-body">
<h2 class="card-title h5" id="#reward-{{ campaign.id }}">
<a href="#campaign-{{ campaign.id }}" class="plain-text-item">{{ campaign.name }}</a>
</h2>
<p class="card-text text-muted">{{ campaign.summary }}</p>
<p class="mb-2 text-muted">
Ends in: <abbr title="{{ campaign.starts_at|date:'l d F H:i' }} - {{ campaign.ends_at|date:'l d F H:i e' }}">{{ campaign.ends_at|timeuntil }}</abbr>
</p>
<a href="{{ campaign.external_url }}"
class="btn btn-primary"
target="_blank">Learn More</a>
{% if campaign.instructions %}
<div class="mt-3">
<h3 class="h6">Instructions</h3>
<p>{{ campaign.instructions }}</p>
</div>
{% endif %}
{% if campaign.rewards.exists %}
<div class="mt-3">
<h3 class="h6">Rewards</h3>
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-2">
{% for reward in campaign.rewards.all %}
<div class="col d-flex align-items-center position-relative">
<img src="{{ reward.thumbnail_image_url }}"
alt="{{ reward.name }} reward image"
class="img-fluid rounded me-3"
height="50"
width="50"
loading="lazy">
<div>
<strong>{{ reward.name }}</strong>
</div>
</div>
{% endfor %}
</div>
</div>
{% endif %}
</div>
</div>
</div>
</div>