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

+
+ {% csrf_token %} +
+ + +
+ + {% trans "Cancel" %} +
+ +{% 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)