From 507af338a390f38eb6d3bcac241e92c6ef0fd1e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Rodrigues?= Date: Wed, 1 Apr 2020 20:51:17 -0300 Subject: [PATCH] Adiciona form (create, update) --- sapl/sdr/forms.py | 27 ++++++-- sapl/sdr/models.py | 2 +- sapl/sdr/views.py | 47 ++++++++----- .../sdr/deliberacaoremota_detail.html | 68 +++++++++++++++++++ sapl/templates/sdr/layouts.yaml | 12 +++- 5 files changed, 130 insertions(+), 26 deletions(-) diff --git a/sapl/sdr/forms.py b/sapl/sdr/forms.py index b5dd472c6..9d334cec9 100644 --- a/sapl/sdr/forms.py +++ b/sapl/sdr/forms.py @@ -3,30 +3,47 @@ import logging from django import forms from django.forms import ModelForm from django.utils.translation import ugettext_lazy as _ - +from django.utils import timezone from sapl.sdr.models import DeliberacaoRemota +from sapl.sessao.models import SessaoPlenaria -class DeliberacaoRemotaCreateForm(ModelForm): +class DeliberacaoRemotaForm(ModelForm): logger = logging.getLogger(__name__) + sessao_plenaria = forms.ModelChoiceField( + label=_('Sessão Plenária'), + required=False, + empty_label='Selecione', + queryset=SessaoPlenaria.objects.filter( + finalizada=False + ).order_by("-data_inicio", "-hora_inicio") + ) + class Meta: model = DeliberacaoRemota - exclude = [] + exclude = ['chat_id'] widgets = { 'created_by': forms.HiddenInput(), - 'descricao': forms.Textarea(attrs={'id': 'texto-rico'}) } def clean(self): cleaned_data = super().clean() - import ipdb; ipdb.set_trace() + if not self.is_valid(): return self.cleaned_data + if not self.instance.finalizada: + if cleaned_data['finalizada']: + cleaned_data['termino'] = timezone.now() + else: + if not cleaned_data['finalizada']: + cleaned_data['termino'] = None + return cleaned_data + # class DeliberacaoRemotaForm(ModelForm): # # logger = logging.getLogger(__name__) diff --git a/sapl/sdr/models.py b/sapl/sdr/models.py index 70b13a927..571aef37e 100644 --- a/sapl/sdr/models.py +++ b/sapl/sdr/models.py @@ -44,4 +44,4 @@ class DeliberacaoRemota(models.Model): ordering = ['chat_id', 'descricao'] def __str__(self): - return "".format(self.chat_id) + return _('%(titulo)s') % {'titulo': self.titulo} diff --git a/sapl/sdr/views.py b/sapl/sdr/views.py index 9ea8c78dc..d218b4e95 100644 --- a/sapl/sdr/views.py +++ b/sapl/sdr/views.py @@ -10,7 +10,7 @@ from sapl.base.models import Autor from sapl.crud.base import Crud from sapl.parlamentares.models import Parlamentar from sapl.rules import RP_LIST, RP_DETAIL -from sapl.sdr.forms import DeliberacaoRemotaCreateForm +from sapl.sdr.forms import DeliberacaoRemotaForm from sapl.sdr.models import DeliberacaoRemota, gen_session_id from sapl.sessao.models import SessaoPlenaria @@ -23,22 +23,35 @@ class DeliberacaoRemotaCrud(Crud): ordered_list = False list_field_names = [ 'titulo', - 'chat_id', - 'finalizada', - 'sessao_plenaria'] - - # class CreateView(Crud.CreateView): - # form_class = DeliberacaoRemotaCreateForm - # - # layout_key = 'DeliberacaoRemotaCreate' - # - # def get_initial(self): - # import ipdb; ipdb.set_trace() - # initial = super().get_initial() - # initial['created_by'] = self.request.user - # return initial - # - # def get_context_data(self): + 'sessao_plenaria', + 'finalizada' + ] + + class CreateView(Crud.CreateView): + form_class = DeliberacaoRemotaForm + layout_key = 'DeliberacaoRemotaCreate' + + def get_initial(self): + initial = super().get_initial() + initial['created_by'] = self.request.user + return initial + + class UpdateView(Crud.UpdateView): + form_class = DeliberacaoRemotaForm + layout_key = 'DeliberacaoRemotaEdit' + + class DetailView(Crud.DetailView): + layout_key = 'DeliberacaoRemota' + template_name = 'sdr/deliberacaoremota_detail.html' + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + context['user'] = self.request.user + + deliberacao = DeliberacaoRemota.objects.get(pk=self.kwargs['pk']) + context['deliberacao'] = deliberacao + + return context class ChatView(PermissionRequiredMixin, TemplateView): diff --git a/sapl/templates/sdr/deliberacaoremota_detail.html b/sapl/templates/sdr/deliberacaoremota_detail.html index 4ba7caf37..185cd738a 100644 --- a/sapl/templates/sdr/deliberacaoremota_detail.html +++ b/sapl/templates/sdr/deliberacaoremota_detail.html @@ -4,5 +4,73 @@ {% block detail_content %} {{block.super}} +
+
+
+

Data e Hora de Início

+
+
+
+ {{ deliberacao.inicio }} +
+
+
+
+
+
+
+

Data e Hora de Término

+
+
+
+ {% if deliberacao.termino %} + {{ deliberacao.termino }} + {% else %} + Não finalizada + {% endif %} +
+
+
+
+
+
+
+

Finalizada?

+
+
+
+ {% if deliberacao.finalizada %} + Sim + {% else %} + Não + {% endif %} +
+
+
+
+
+
+ {% if user.is_superuser %} + {% if deliberacao.created_by %} +
+
+
+
+

Criado por

+ +
+
+
+ {% endif %} + {% endif %} +
Link da sessão de vídeo {% endblock detail_content %} \ No newline at end of file diff --git a/sapl/templates/sdr/layouts.yaml b/sapl/templates/sdr/layouts.yaml index 7536fb709..61750d0d7 100644 --- a/sapl/templates/sdr/layouts.yaml +++ b/sapl/templates/sdr/layouts.yaml @@ -2,11 +2,17 @@ DeliberacaoRemota: {% trans 'Deliberação Remota' %}: - - titulo finalizada + - titulo sessao_plenaria - descricao DeliberacaoRemotaCreate: {% trans 'Deliberação Remota' %}: - - created_by - - titulo finalizada + - created_by:10 + - titulo sessao_plenaria + - descricao + +DeliberacaoRemotaEdit: + {% trans 'Deliberação Remota' %}: + - created_by:10 finalizada + - titulo sessao_plenaria - descricao \ No newline at end of file