diff --git a/sessao/urls.py b/sessao/urls.py index 3bb77bed4..ce5f391c4 100644 --- a/sessao/urls.py +++ b/sessao/urls.py @@ -1,9 +1,9 @@ from django.conf.urls import include, url - -from sessao.views import (ExpedienteView, OradorExpedienteView, PainelView, - PresencaOrdemDiaView, PresencaView, orador_delete, - sessao_crud, tipo_expediente_crud, - tipo_resultado_votacao_crud, tipo_sessao_crud) +from sessao.views import (ExpedienteView, OradorExpedienteDelete, + OradorExpedienteView, PainelView, + PresencaOrdemDiaView, PresencaView, sessao_crud, + tipo_expediente_crud, tipo_resultado_votacao_crud, + tipo_sessao_crud) urlpatterns_sessao = sessao_crud.urlpatterns + [ url(r'^(?P\d+)/expediente$', @@ -18,7 +18,7 @@ urlpatterns_sessao = sessao_crud.urlpatterns + [ url(r'^(?P\d+)/oradorexpediente$', OradorExpedienteView.as_view(), name='oradorexpediente'), url(r'^(?P\d+)/oradorexpediente/excluir/(?P\d+)$', - orador_delete, name='oradorexcluir'), + OradorExpedienteDelete.as_view(), name='oradorexcluir'), ] sessao_urls = urlpatterns_sessao, sessao_crud.namespace, sessao_crud.namespace diff --git a/sessao/views.py b/sessao/views.py index e2b656207..025f3687f 100644 --- a/sessao/views.py +++ b/sessao/views.py @@ -1,8 +1,5 @@ from django import forms -from django.core.urlresolvers import reverse_lazy -from django.shortcuts import redirect from django.utils.translation import ugettext_lazy as _ -from django.views.generic.detail import DetailView from django.views.generic.edit import FormMixin from extra_views import InlineFormSetView @@ -224,28 +221,31 @@ class OradorForm(forms.Form): url_discurso = forms.CharField(required=False, max_length=100) -def orador_delete(request, pk, oid): +class OradorDeleteForm(forms.Form): + pass - orador = OradorExpediente.objects.get( - sessao_plenaria_id=pk, parlamentar_id=oid) - orador.delete() - # return HttpResponseRedirect( - # reverse_lazy('oradorexpediente', kwargs={'pk': int(pk)})) - # return redirect(request, reverse('sessao:oradorexpediente', - # kwargs={'pk': pk}), context) - - return redirect('/sessao/' + pk + '/oradorexpediente') +class OradorExpedienteDelete(FormMixin, sessao_crud.CrudDetailView): + template_name = 'sessao/delete_orador.html' + form_class = OradorDeleteForm + def post(self, request, *args, **kwargs): + self.object = self.get_object() + current_url = request.get_full_path() + words = current_url.split('/') + form = OradorDeleteForm(request.POST) -class OradorExpedienteDelete(DetailView): - model = OradorExpediente - success_url = reverse_lazy('sessao:oradorexpediente') + if form.is_valid(): + orador = OradorExpediente.objects.get( + sessao_plenaria_id=self.object.id, + parlamentar_id=words[-1]) + orador.delete() + return self.form_valid(form) + else: + return self.form_invalid(form) - def get(self, request, *args, **kwargs): - self.object = self.get_object() - context = self.get_context_data(object=self.object) - return self.render_to_response(context) + def get_success_url(self): + return self.detail_url class OradorExpedienteView(FormMixin, sessao_crud.CrudDetailView): diff --git a/templates/sessao/delete_orador.html b/templates/sessao/delete_orador.html new file mode 100644 index 000000000..f91af9767 --- /dev/null +++ b/templates/sessao/delete_orador.html @@ -0,0 +1,21 @@ +{% extends "base.html" %} +{% load i18n %} + +{% block base_content %} +
{% csrf_token %} +
+ +

+ {% blocktrans %} + Tem certeza que deseja apagar o orador? + {% endblocktrans %} +

+ + + +
+
+{% endblock %} diff --git a/templates/sessao/oradorExpediente.html b/templates/sessao/oradorExpediente.html index 872f0af00..b206847dc 100644 --- a/templates/sessao/oradorExpediente.html +++ b/templates/sessao/oradorExpediente.html @@ -4,52 +4,53 @@ {% block detail_content %} -

Oradores do Expediente

-

- -
    -
  • Ordem de pronunciamento
  • -
  • Parlamentar
  • -
  • URL Discurso
  • -
  • Excluir
  • -
- -
- {% csrf_token %} - {% for numero_ordem, url_discurso, parlamentar in view.get_oradores %} -
    -
  • {{numero_ordem}}
  • -
  • {{parlamentar.nome_parlamentar }}
  • -
  • {% if not url_discurso %}Orador sem discurso cadastrado{% else %}{{url_discurso}}{% endif %}
  • -
  • Excluir
  • -
- {% endfor %} - -
- - -
- -
- {% csrf_token %} - -
    +
    + Oradores do Expediente +
    • Ordem de pronunciamento
    • Parlamentar
    • URL Discurso
    • +
    • Excluir
    - -
      -
    • - - -
    • -
    - - +
    + {% csrf_token %} + {% for numero_ordem, url_discurso, parlamentar in view.get_oradores %} +
      +
    • +
    • {{parlamentar.nome_parlamentar }}
    • +
    • {% if not url_discurso %}Orador sem discurso cadastrado{% else %}{{url_discurso}}{% endif %}
    • +
    • Excluir
    • +
    + {% endfor %} + +
    + +
    +
    + +
    + Adicionar Orador +
    + {% csrf_token %} + +
      +
    • Ordem de pronunciamento
    • +
    • Parlamentar
    • +
    • URL Discurso
    • +
    + +
      +
    • + +
    • +
    • +
    + +
    +
    {% endblock detail_content %}