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
+Data e Hora de Término
+Finalizada?
+Criado por
+