Raffle improvements

Add flag to enable/disable raffle display on dashboard.
Add link from raffle winner to attendee profile.
Add URL for single raffle and base raffle path.
This commit is contained in:
Joel Addison 2020-01-23 14:52:28 +10:00
parent ffac4753fc
commit 20083bcb16
5 changed files with 38 additions and 29 deletions

View file

@ -3,8 +3,9 @@ from pinaxcon.raffle import views
urlpatterns = [
url(r'^tickets/', views.raffle_view),
url(r"^$", views.raffle_view, name="raffle-home"),
url(r'^tickets/', views.raffle_view, name="raffle-tickets"),
url(r'^draw/(?P<raffle_id>[0-9]+)/$', views.draw_raffle_ticket, name="raffle-draw"),
url(r'^draw/redraw/([0-9]+)/$', views.raffle_redraw, name="raffle-redraw"),
url(r'^draw/', views.draw_raffle_ticket, name="raffle-draw"),
]
]

View file

@ -29,7 +29,12 @@ def draw_raffle_ticket(request, raffle_id=None):
Raffle.objects.get(id=raffle_id).draw(user=request.user)
return HttpResponseRedirect(reverse('raffle-draw'))
raffles = Raffle.objects.prefetch_related('draws', 'prizes')
if raffle_id is not None:
raffle = Raffle.objects.prefetch_related('draws', 'prizes').get(
id=raffle_id)
raffles = (raffle,)
else:
raffles = Raffle.objects.prefetch_related('draws', 'prizes')
return render(request, 'raffle_draw.html', {'raffles': raffles})
@ -42,4 +47,3 @@ def raffle_redraw(request, redraw_ticket_id):
prize.remove_winner(user=request.user)
prize.raffle.draw(user=request.user)
return HttpResponseRedirect(reverse('raffle-draw'))

View file

@ -1,22 +1,31 @@
{% extends "registrasion/base.html" %}
{% extends "site_base.html" %}
{% load registrasion_tags %}
{% load lca2018_tags %}
{% load staticfiles %}
{% block header_title %}{% conference_name %}{% endblock %}
{% block head_title %}Raffle Tickets{% endblock %}
{% block page_title %}Raffle Tickets{% endblock %}
{% block proposals_body %}
<h1 class="mb-5">Raffle Tickets</h1>
<p>You can buy more raffle tickets from the <a href="/dashboard">dashboard</a>.</p>
{% block content %}
<p>
All of the raffles you are entered into and the tickets you have for each of them.
If available, you will be able to purchase additional raffle tickets from the <a href="{% url "dashboard" %}">Dashboard</a>.
</p>
<h2>Your Raffle Tickets</h2>
{% for raffle in raffles %}
{% if raffle.tickets %}
<h2 class="mt-5">{{ raffle }}</h2>
<h3 class="mt-3">{{ raffle }}</h3>
<ul>
{% for id, numbers in raffle.tickets %}
<h4 class="mt-3"><strong>Ticket {{ id }}</strong></h4>
<p>{% for number in numbers %}{{ number }}{% if not forloop.last %}, {% endif %}{% endfor %}</p>
<li>
<strong>Ticket {{ id }}</strong>
<p>{% for number in numbers %}{{ number }}{% if not forloop.last %}, {% endif %}{% endfor %}</p>
</li>
{% endfor %}
</ul>
{% endif %}
{% empty %}
<p>You do not have tickets in any raffles.</p>
{% endfor %}
{% endblock %}

View file

@ -1,17 +1,16 @@
{% extends "registrasion/base.html" %}
{% extends "site_base.html" %}
{% load registrasion_tags %}
{% load lca2018_tags %}
{% load staticfiles %}
{% block header_title %}{% conference_name %}{% endblock %}
{% block proposals_body %}
<h1 class="mb-5">Raffle Winners</h1>
{% block head_title %}Raffle Winners{% endblock %}
{% block page_title %}Raffle Winners{% endblock %}
{% block content %}
{% for raffle in raffles %}
{% if raffle.hidden %}
{% else %}
<h2 class="mt-5">{{ raffle }}</h2>
<h2 class="mt-3"><a href="{% url "raffle-draw" raffle.id %}">{{ raffle }}</a></h2>
<dl class="row my-4">
{% for prize in raffle.prizes.all %}
@ -21,7 +20,7 @@
{% with prize.winning_ticket as winner %}
{# this should be attendee name #}
{% with winner.lineitem.invoice.user.attendee.attendeeprofilebase as profile %}
<p><strong>Winning ticket {{ winner.ticket }}, {{ profile.attendee_name }}</strong><br />
<p><strong>Winning ticket {{ winner.ticket }}, <a href="{% url "attendee" winner.lineitem.invoice.user.id %}">{{ profile.attendee_name }}</a></strong><br />
Drawn by {{ winner.draw.drawn_by }}, {{ winner.draw.drawn_time}}
</p>
{% endwith %}
@ -47,9 +46,7 @@
{% if raffle.is_open %}
<form method="POST" action="{% url 'raffle-draw' raffle_id=raffle.id %}">
{% csrf_token %}
<p class="text-center">
<button type="submit" class="btn btn-success">Draw tickets</button>
</p>
<button type="submit" class="btn btn-success">Draw tickets</button>
<div class="clearfix"></div>
</form>
{% endif %}
@ -57,4 +54,4 @@
{% endif %}
{% endfor %}
{% endblock %}
{% endblock %}

View file

@ -131,15 +131,13 @@
</div>
{% endif %}
{% if false %}
{% flag "raffle_dashboard" %}
<div class="col-md-6 mb-3">
<h4>Raffle Tickets</h4>
<p><a href="/raffle/tickets/">View all my raffle tickets</a></p>
{# REMOVE HARDCODED CATEGORY NUMBER!!!! #}
<p><a href="/tickets/category/8">Buy raffle tickets</a></p>
<p><a href="{% url "raffle-tickets" %}">View raffle tickets</a></p>
</div>
{% endif %}
{% endflag %}
{% available_credit as credit %}
{% if credit %}