Add support for Reward campaigns
This commit is contained in:
@ -7,6 +7,11 @@
|
||||
<div class="col-lg-9">
|
||||
{% include "partials/info_box.html" %}
|
||||
{% include "partials/news.html" %}
|
||||
<h2>Reward Campaigns</h2>
|
||||
{% for campaign in reward_campaigns %}
|
||||
{% include "partials/reward_campaign_card.html" %}
|
||||
{% endfor %}
|
||||
<h2>Organizations</h2>
|
||||
{% for org in orgs %}
|
||||
<h2 id="org-{{ org|slugify }}">
|
||||
<a href="#org-{{ org|slugify }}">{{ org }}</a>
|
||||
|
@ -14,7 +14,7 @@
|
||||
<a class="nav-link" href="https://github.com/sponsors/TheLovinator1">Donate</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="nav-link" href='{% url "core:webhooks" %}'>Webhooks</a>
|
||||
<a class="nav-link" href='{% url "core:reward_campaigns" %}'>Reward campaigns</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
@ -7,9 +7,6 @@
|
||||
<p>
|
||||
This site allows users to subscribe to Twitch drops notifications. You can choose to be alerted when new drops are found on Twitch or when the drops become available for farming.
|
||||
</p>
|
||||
<p>
|
||||
You can add a Discord Webhook <a href="{% url 'core:webhooks' %}">here</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
56
core/templates/partials/reward_campaign_card.html
Normal file
56
core/templates/partials/reward_campaign_card.html
Normal file
@ -0,0 +1,56 @@
|
||||
<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.image1_x_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">{{ campaign.name }}</h2>
|
||||
<p class="card-text text-muted">{{ campaign.summary }}</p>
|
||||
<p>
|
||||
Starts at: <abbr title="{{ campaign.starts_at|date:'l d F H:i e' }}">{{ campaign.starts_at }}</abbr>
|
||||
<br>
|
||||
Ends at: <abbr title="{{ 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.image1_x_url }}"
|
||||
alt="{{ reward.name }} reward image"
|
||||
class="img-fluid rounded me-3"
|
||||
height="50"
|
||||
width="50"
|
||||
loading="lazy">
|
||||
<div>
|
||||
<strong>{{ reward.name }}</strong>
|
||||
<br>
|
||||
<a href="{{ reward.redemption_url }}"
|
||||
class="btn btn-sm btn-link"
|
||||
target="_blank">Redeem</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
14
core/templates/reward_campaigns.html
Normal file
14
core/templates/reward_campaigns.html
Normal file
@ -0,0 +1,14 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
{% block content %}
|
||||
<div class="container mt-4">
|
||||
<div class="row">
|
||||
<h2>Reward Campaigns</h2>
|
||||
<div>
|
||||
{% for campaign in reward_campaigns %}
|
||||
{% include "partials/reward_campaign_card.html" %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
@ -24,35 +24,5 @@
|
||||
</form>
|
||||
</div>
|
||||
<h2 class="mt-5">Webhooks</h2>
|
||||
{% if webhooks %}
|
||||
<ul class="list-group mt-3">
|
||||
{% for webhook in webhooks %}
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<img src="{{ webhook.avatar }}?size=32"
|
||||
alt="{{ webhook.name }}"
|
||||
class="rounded-circle"
|
||||
height="32"
|
||||
width="32">
|
||||
<a href="{{ webhook.url }}" target="_blank">{{ webhook.name }}</a>
|
||||
{% if webhook.status == 'Success' %}
|
||||
<span class="badge bg-success">Working</span>
|
||||
{% else %}
|
||||
<span class="badge bg-danger">Failed</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
<form method="post" action="" class="mb-0">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="webhook_id" value="{{ webhook.id }}">
|
||||
<input type="hidden" name="webhook_name" value="{{ webhook.name }}">
|
||||
<input type="hidden" name="webhook_url" value="{{ webhook.webhook_url }}">
|
||||
<button type="submit" class="btn btn-sm btn-danger">Delete</button>
|
||||
</form>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% else %}
|
||||
<p class="text-muted">No webhooks added yet.</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock content %}
|
||||
|
Reference in New Issue
Block a user