diff --git a/proposals/templates/proposals/talk_decide.html b/proposals/templates/proposals/talk_decide.html
new file mode 100644
index 0000000..f086f12
--- /dev/null
+++ b/proposals/templates/proposals/talk_decide.html
@@ -0,0 +1,26 @@
+{% extends 'base.html' %}
+
+{% load i18n %}
+
+{% block talktab %} class="active"{% endblock %}
+
+{% block content %}
+
+
Are you sure to {% if accept %}accept{% else %}decline{% endif %} this proposals?
+
+Information about the proposals
+Title: {{ talk.title }}
+Kind: {{ talk.get_event_display }}
+
+Information for the proposer
+
+
+{% endblock %}
diff --git a/proposals/templates/proposals/talk_detail.html b/proposals/templates/proposals/talk_detail.html
index d60d6bf..7351414 100644
--- a/proposals/templates/proposals/talk_detail.html
+++ b/proposals/templates/proposals/talk_detail.html
@@ -64,7 +64,13 @@
{% trans "Sum:" %} {{ talk.score }}
{% trans "Status:" %}
-{{ talk.accepted|yesno:"✔,✘,?" }}
+
+{{ talk.accepted|yesno:"Accepted,Declined,Pending decision" }}
+
+{% if talk.accepted == None %}
+Accept
+Decline
+{% endif %}
{% trans "Messages:" %}
{% for message in talk.conversation.messages.all %}
diff --git a/proposals/urls.py b/proposals/urls.py
index 119df04..36c9890 100644
--- a/proposals/urls.py
+++ b/proposals/urls.py
@@ -12,6 +12,8 @@ urlpatterns = [
url(r'^talk/vote/(?P[-\w]+)/(?P[-0-2]+)$', views.vote, name='vote'),
url(r'^talk/details/(?P[-\w]+)$', views.TalkDetail.as_view(), name='show-talk'),
url(r'^talk/by-topic/(?P[-\w]+)$', views.talk_list_by_topic, name='list-talks-by-topic'),
+ url(r'^talk/accept/(?P[-\w]+)/$', views.talk_decide, {'accepted': True}, name='accept-talk'),
+ url(r'^talk/decline/(?P[-\w]+)/$', views.talk_decide, {'accepted': False}, name='decline-talk'),
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[-\w]+)/edit/$', views.TopicUpdate.as_view(), name='edit-topic'),
diff --git a/proposals/views.py b/proposals/views.py
index b1d89d2..2a5f321 100644
--- a/proposals/views.py
+++ b/proposals/views.py
@@ -156,6 +156,22 @@ def vote(request, talk, score):
return redirect(talk.get_absolute_url())
+@login_required
+def talk_decide(request, talk, accepted):
+ talk = get_object_or_404(Talk, site=get_current_site(request), slug=talk)
+ if not talk.is_moderable_by(request.user):
+ raise PermissionDenied()
+ if request.method == 'POST':
+ talk.accepted = accepted
+ talk.save()
+ messages.success(request, _('Decision taken in account'))
+ return redirect('show-talk', slug=talk.slug)
+ return render(request, 'proposals/talk_decide.html', {
+ 'talk': talk,
+ 'accept': accepted,
+ })
+
+
@login_required
def user_details(request, username):
speaker = get_object_or_404(User, username=username)