new page 'participate'

This commit is contained in:
Élie Bouttier 2016-09-17 16:43:11 +02:00
parent 290e019fb4
commit 1d8d03b2f5
7 changed files with 97 additions and 39 deletions

Binary file not shown.

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-09-16 16:10+0000\n"
"POT-Creation-Date: 2016-09-17 14:35+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -184,7 +184,7 @@ msgid "Delete These"
msgstr ""
#: accounts/templates/registration/login.html:11
#: ponyconf/templates/base.html:79
#: ponyconf/templates/base.html:80
msgid "Login"
msgstr "Se connecter"
@ -261,42 +261,47 @@ msgstr "Français"
msgid "Home"
msgstr "Accueil"
#: ponyconf/templates/base.html:47 proposals/templates/proposals/talks.html:9
#: proposals/templates/proposals/user_details.html:22
msgid "Talks"
msgstr "Exposés"
#: ponyconf/templates/base.html:47
#: proposals/templates/proposals/participate.html:9
msgid "Participate"
msgstr "Participer"
#: ponyconf/templates/base.html:48 proposals/models.py:70
#: proposals/templates/proposals/topic_list.html:9
msgid "Topics"
msgstr "Thèmes"
#: ponyconf/templates/base.html:50 proposals/models.py:65
#: ponyconf/templates/base.html:50 proposals/templates/proposals/talks.html:9
#: proposals/templates/proposals/user_details.html:22
msgid "Talks"
msgstr "Exposés"
#: ponyconf/templates/base.html:51 proposals/models.py:65
#: proposals/templates/proposals/speaker_list.html:9
msgid "Speakers"
msgstr "Orateurs"
#: ponyconf/templates/base.html:59
#: ponyconf/templates/base.html:60
msgid "Administration"
msgstr "Administration"
#: ponyconf/templates/base.html:66
#: ponyconf/templates/base.html:67
msgid "Conference"
msgstr "Conférence"
#: ponyconf/templates/base.html:68
#: ponyconf/templates/base.html:69
msgid "Participants"
msgstr "Participants"
#: ponyconf/templates/base.html:69
#: ponyconf/templates/base.html:70
msgid "Correspondence"
msgstr "Correspondance"
#: ponyconf/templates/base.html:78
#: ponyconf/templates/base.html:79
msgid "Register"
msgstr "Sinscrire"
#: ponyconf/templates/base.html:104
#: ponyconf/templates/base.html:105
msgid "Powered by"
msgstr "Propulsé par"
@ -352,9 +357,18 @@ msgstr ""
msgid "other"
msgstr "autre"
#: proposals/templates/proposals/_talk_list.html:4
msgid "total:"
msgstr "total :"
#: proposals/templates/proposals/_talk_list.html:8
msgid "by"
msgstr "par"
#: proposals/templates/proposals/_talk_list.html:11
#: proposals/templates/proposals/_talk_list.html:17
msgid "and"
msgstr "et"
#: proposals/templates/proposals/_talk_list.html:14
msgid "in"
msgstr "portant sur"
#: proposals/templates/proposals/_talk_list.html:23
msgid "No talks"
@ -368,6 +382,20 @@ msgstr "Paramètres de la conférence"
msgid "Home page"
msgstr "Page daccueil"
#: proposals/templates/proposals/participate.html:12
msgid "My talks:"
msgstr "Mes exposés :"
#: proposals/templates/proposals/participate.html:17
msgid "Proposed talks for others speakers:"
msgstr "Exposés proposés pour un tier :"
#: proposals/templates/proposals/participate.html:22
#: proposals/templates/proposals/talk_edit.html:9
#: proposals/templates/proposals/talks.html:11
msgid "Propose a talk"
msgstr "Proposer un exposé"
#: proposals/templates/proposals/speaker_list.html:15
#: proposals/templates/proposals/topic_list.html:23
msgid "talk"
@ -493,11 +521,6 @@ msgstr "Messages :"
msgid "These messages are for organization team only."
msgstr "Ces messages sont à destination de la team dorganisation seulement."
#: proposals/templates/proposals/talk_edit.html:9
#: proposals/templates/proposals/talks.html:11
msgid "Propose a talk"
msgstr "Proposer un exposé"
#: proposals/templates/proposals/talks.html:14
msgid "My participing talks"
msgstr "Exposés auxquels je participe"
@ -566,27 +589,27 @@ msgstr "Accepte dêtre enregistré en vidéo :"
msgid "Video licence:"
msgstr "Licence vidéo :"
#: proposals/views.py:65
#: proposals/views.py:73
#, python-format
msgid "Talks related to %s:"
msgstr "Exposés portant sur la thématique %s :"
#: proposals/views.py:84
#: proposals/views.py:92
msgid "Talk modified successfully!"
msgstr "Exposé modifié avec succès !"
#: proposals/views.py:90
#: proposals/views.py:98
msgid "Talk proposed successfully!"
msgstr "Exposé proposé avec succès !"
#: proposals/views.py:158
#: proposals/views.py:166
msgid "Vote successfully created"
msgstr "A voté !"
#: proposals/views.py:158
#: proposals/views.py:166
msgid "Vote successfully updated"
msgstr "Vote mis à jour"
#: proposals/views.py:184
#: proposals/views.py:192
msgid "Decision taken in account"
msgstr "Décision enregistrée"

View File

@ -43,9 +43,10 @@
<ul class="nav navbar-nav">
<li{% block hometab %}{% endblock %}><a href="{% url 'home' %}">{% trans "Home" %}</a></li>
{% if request.user.is_authenticated %}
<li{% block talktab %}{% endblock %}><a href="{% url 'list-talks' %}">{% trans "Talks" %}</a></li>
<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 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 %}
{% endif %}

View File

@ -1,20 +1,20 @@
{% load i18n %}
{% regroup talk_list by event as event_list %}
{% for event in event_list %}
<h3>{{ event.list.0.event }} ({% trans "total:" %} {{ event.list|length }})</h3>
<h3>{{ event.list.0.event }}</h3>
<ul>{% for talk in event.list %}
<li>
{{ talk.get_link }}
<i>by</i>
<i>{% trans "by" %}</i>
{% for speaker in talk.speakers.all %}
<a href="{% url 'show-speaker' speaker.username %}">{{ speaker }}</a>
{% if forloop.revcounter == 2 %} and {% elif not forloop.last %}, {% endif %}
{% if forloop.revcounter == 2 %} {% trans "and" %} {% elif not forloop.last %}, {% endif %}
{% endfor %}
{% if talk.topics.exists %}
<i>in</i>
<i>{% trans "in" %}</i>
{% for topic in talk.topics.all %}
<a href="{% url 'list-talks-by-topic' topic.slug %}">{{ topic }}</a>
{% if forloop.revcounter == 2 %} and {% elif not forloop.last %}, {% endif %}
{% if forloop.revcounter == 2 %} {% trans "and" %} {% elif not forloop.last %}, {% endif %}
{% endfor %}
{% endif %}
</li>

View File

@ -0,0 +1,24 @@
{% extends 'base.html' %}
{% load i18n %}
{% block participatetab %} class="active"{% endblock %}
{% block content %}
<h1>{% trans "Participate" %}</h1>
{% if my_talks %}
<h2>{% trans "My talks:" %}</h2>
{% include "proposals/_talk_list.html" with talk_list=my_talks %}
{% endif %}
{% if proposed_talks %}
<h2>{% trans "Proposed talks for others speakers:" %}</h2>
{% include "proposals/_talk_list.html" with talk_list=proposed_talks %}
{% endif %}
<br />
<a class="btn btn-success" href="{% url 'add-talk' %}">{% trans "Propose a talk" %}</a>
{% endblock %}

View File

@ -6,6 +6,7 @@ urlpatterns = [
url(r'^markdown/$', views.markdown_preview, name='markdown'),
url(r'^$', views.home, name='home'),
url(r'^conference/$', views.conference, name='conference'),
url(r'^participate/$', views.participate, name='participate'),
url(r'^talk/$', views.talk_list, name='list-talks'),
url(r'^talk/add/$', views.talk_edit, name='add-talk'),
url(r'^talk/edit/(?P<talk>[-\w]+)$', views.talk_edit, name='edit-talk'),

View File

@ -14,7 +14,7 @@ from django.http import HttpResponse
from accounts.models import Participation
from accounts.mixins import OrgaRequiredMixin, StaffRequiredMixin
from accounts.decorators import orga_required
from accounts.decorators import orga_required, staff_required
from conversations.models import ConversationWithParticipant, ConversationAboutTalk, Message
@ -48,13 +48,22 @@ def conference(request):
'form': form,
})
@login_required
def participate(request):
talks = Talk.objects.filter(site=get_current_site(request))#.filter(Q(speakers=request.user) | Q(proposer=request.user)).distinct()
my_talks = talks.filter(speakers=request.user)
proposed_talks = talks.exclude(speakers=request.user).filter(proposer=request.user)
return render(request, 'proposals/participate.html', {
'my_talks': my_talks,
'proposed_talks': proposed_talks,
})
@staff_required
def talk_list(request):
talks = Talk.objects.filter(site=get_current_site(request))
return render(request, 'proposals/talks.html', {
'my_talks': talks.filter(Q(speakers=request.user) | Q(proposer=request.user)).distinct(),
'other_talks': allowed_talks(talks.exclude(Q(speakers=request.user) | Q(proposer=request.user)), request)
talks = allowed_talks(Talk.objects.filter(site=get_current_site(request)), request)
return render(request, 'proposals/talk_list.html', {
'title': _('Talks') + ' (%d)' % len(talks),
'talk_list': talks,
})