tracks list

This commit is contained in:
Élie Bouttier 2016-09-28 22:47:53 +02:00
parent e8db55693a
commit 9182043f84
4 changed files with 44 additions and 0 deletions

View File

@ -46,6 +46,7 @@
<li{% block participatetab %}{% endblock %}><a href="{% url 'participate' %}">{% trans "Participate" %}</a></li>
<li{% block topictab %}{% endblock %}><a href="{% url 'list-topics' %}">{% trans "Topics" %}</a></li>
{% if request|staff %}
<li{% block tracktab %}{% endblock %}><a href="{% url 'list-tracks' %}">{% trans "Tracks" %}</a></li>
<li{% block talktab %}{% endblock %}><a href="{% url 'list-talks' %}">{% trans "Talks" %}</a></li>
<li{% block speakertab %}{% endblock %}><a href="{% url 'list-speakers' %}">{% trans "Speakers" %}</a></li>
{% endif %}

View File

@ -0,0 +1,33 @@
{% extends 'base.html' %}
{% load bootstrap3 accounts_tags i18n %}
{% block tracktab %} class="active"{% endblock %}
{% block content %}
<h1>{% trans "Tracks" %}</h1>
{% if request|orga %}
<p><a href="#" class="btn btn-success">{% trans "Add a track (not implemented)" %}</a><p>
{% endif %}
<div class="row">
{% for track in track_list %}
<div class="col-xs-6 col-sm-4">
<h2>{{ track }}</h2>
<p>{{ track.description }}</p>
{% if request|staff %}
<a href="{{ track.get_absolute_url }}">{{ track.talk_set.count }} {% trans "talk" %}{{ track.talk_set.count|pluralize }}</a>
|
<a href="#">{% bootstrap_icon "pencil" %} (not implemented)</a>
{% endif %}
</div>
{% cycle '' '<div class="clearfix visible-xs"></div>' %}
{% cycle '' '' '<div class="clearfix hidden-xs"></div>' %}
{% empty %}
<div class="col-xs-12"><em>{% trans "No tracks." %}</em></div>
{% endfor %}
</div>
{% endblock %}

View File

@ -18,6 +18,7 @@ urlpatterns = [
url(r'^topic/$', views.TopicList.as_view(), name='list-topics'),
url(r'^topic/add/$', views.TopicCreate.as_view(), name='add-topic'),
url(r'^topic/(?P<slug>[-\w]+)/edit/$', views.TopicUpdate.as_view(), name='edit-topic'),
url(r'^track/$', views.TrackList.as_view(), name='list-tracks'),
url(r'^speakers/$', views.speaker_list, name='list-speakers'),
url(r'^speaker/(?P<username>[\w.@+-]+)$', views.user_details, name='show-speaker'),
]

View File

@ -231,6 +231,15 @@ class TopicUpdate(OrgaRequiredMixin, TopicMixin, TopicFormMixin, UpdateView):
pass
class TrackMixin(object):
def get_queryset(self):
return Track.objects.filter(site=get_current_site(self.request)).all()
class TrackList(LoginRequiredMixin, TrackMixin, ListView):
pass
@login_required
def vote(request, talk, score):
talk = get_object_or_404(Talk, site=get_current_site(request), slug=talk)