diff --git a/sapl/comissoes/forms.py b/sapl/comissoes/forms.py index 93b3b78f5..26b33600e 100644 --- a/sapl/comissoes/forms.py +++ b/sapl/comissoes/forms.py @@ -12,9 +12,9 @@ from django.forms import ModelForm from django.utils.translation import ugettext_lazy as _ from sapl.base.models import Autor, TipoAutor -from sapl.comissoes.models import (CargoComissao, Comissao, - Composicao, DocumentoAcessorio, - Participacao, Periodo, Reuniao) +from sapl.comissoes.models import (Comissao, Composicao, + DocumentoAcessorio, Participacao, + Periodo, Reuniao) from sapl.crispy_layout_mixin import (form_actions, SaplFormHelper, to_row) from sapl.materia.models import MateriaEmTramitacao, PautaReuniao @@ -79,71 +79,6 @@ class ComposicaoForm(forms.ModelForm): return cleaned_data -def choices_posicao(): - posicoes = list(range(1, len(CargoComissao.objects.all())+1)) - choices = [(posicao, str(posicao)+"º") for posicao in posicoes] - choices.insert(0, (0, "Não definida")) - return choices - - -class CargosComissaoOrdenacaoForm(forms.Form): - - cargo = forms.ModelChoiceField( - label='Cargo', - required=True, - empty_label='Selecione um cargo', - queryset=CargoComissao.objects.all().order_by('id_ordenacao') - ) - posicao = forms.ChoiceField( - label='Posição', - required=True - ) - - def __init__(self, *args, **kwargs): - super(CargosComissaoOrdenacaoForm, self).__init__(**kwargs) - - self.fields['posicao'].choices = choices_posicao() - - row1 = to_row( - [('cargo', 12)] - ) - row2 = to_row( - [('posicao', 12)] - ) - - self.helper = SaplFormHelper() - self.helper.layout = Layout( - Fieldset(_(''), row1, row2, - form_actions(label="Atualizar")) - ) - - def clean(self): - super(CargosComissaoOrdenacaoForm, self).clean - - if not self.is_valid(): - return self.cleaned_data - - def save(self): - cleaned_data = self.cleaned_data - - cargo = cleaned_data['cargo'] - posicao = cleaned_data['posicao'] - - if posicao == '0': - cargo.id_ordenacao = None - else: - if CargoComissao.objects.filter(id_ordenacao=posicao).exists(): - outro_cargo = CargoComissao.objects.get(id_ordenacao=posicao) - outro_cargo.id_ordenacao = cargo.id_ordenacao - outro_cargo.save() - - cargo.id_ordenacao = posicao - else: - cargo.id_ordenacao = posicao - - cargo.save() - - class PeriodoForm(forms.ModelForm): logger = logging.getLogger(__name__) diff --git a/sapl/comissoes/migrations/0023_auto_20191210_1532.py b/sapl/comissoes/migrations/0023_auto_20191211_1752.py similarity index 75% rename from sapl/comissoes/migrations/0023_auto_20191210_1532.py rename to sapl/comissoes/migrations/0023_auto_20191211_1752.py index 59e842ca9..c96bd9a12 100644 --- a/sapl/comissoes/migrations/0023_auto_20191210_1532.py +++ b/sapl/comissoes/migrations/0023_auto_20191211_1752.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.11.20 on 2019-12-10 18:32 +# Generated by Django 1.11.20 on 2019-12-11 20:52 from __future__ import unicode_literals from django.db import migrations, models @@ -23,6 +23,11 @@ class Migration(migrations.Migration): migrations.AddField( model_name='cargocomissao', name='id_ordenacao', - field=models.PositiveIntegerField(blank=True, null=True, verbose_name='Id de Ordenacao'), + field=models.PositiveIntegerField(blank=True, null=True, verbose_name='Posição na Ordenação'), + ), + migrations.AlterField( + model_name='cargocomissao', + name='nome', + field=models.CharField(max_length=50, verbose_name='Nome do Cargo'), ), ] diff --git a/sapl/comissoes/models.py b/sapl/comissoes/models.py index 44b4c3446..8efac2ee6 100644 --- a/sapl/comissoes/models.py +++ b/sapl/comissoes/models.py @@ -122,9 +122,9 @@ class Periodo(models.Model): # PeriodoCompComissao @reversion.register() class CargoComissao(models.Model): id_ordenacao = models.PositiveIntegerField( - blank=True, null=True, verbose_name=_('Id de Ordenacao'), + blank=True, null=True, verbose_name=_('Posição na Ordenação'), ) - nome = models.CharField(max_length=50, verbose_name=_('Cargo')) + nome = models.CharField(max_length=50, verbose_name=_('Nome do Cargo')) unico = models.BooleanField( choices=YES_NO_CHOICES, verbose_name=_('Único'), default=True ) diff --git a/sapl/comissoes/urls.py b/sapl/comissoes/urls.py index 62bfc44c9..932feaf22 100644 --- a/sapl/comissoes/urls.py +++ b/sapl/comissoes/urls.py @@ -1,6 +1,6 @@ from django.conf.urls import include, url -from sapl.comissoes.views import (AdicionaPautaView, CargosComissaoOrdenacaoView, CargoCrud, - ComissaoCrud, ComposicaoCrud, DocumentoAcessorioCrud, +from sapl.comissoes.views import (AdicionaPautaView, CargoComissaoCrud, ComissaoCrud, + ComposicaoCrud, DocumentoAcessorioCrud, MateriasTramitacaoListView, ParticipacaoCrud, get_participacoes_comissao, PeriodoComposicaoCrud, RemovePautaView, ReuniaoCrud, TipoComissaoCrud) @@ -22,9 +22,7 @@ urlpatterns = [ url(r'^comissao/(?P\d+)/pauta/add', AdicionaPautaView.as_view(), name='pauta_add'), url(r'^comissao/(?P\d+)/pauta/remove', RemovePautaView.as_view(), name='pauta_remove'), - url(r'^sistema/comissao/cargo/', include(CargoCrud.get_urls())), - url(r'^sistema/comissao/cargos-ordenacao', - CargosComissaoOrdenacaoView.as_view(), name='cargos_comissao_ordenacao'), + url(r'^sistema/comissao/cargo/', include(CargoComissaoCrud.get_urls())), url(r'^sistema/comissao/periodo-composicao/', include(PeriodoComposicaoCrud.get_urls())), url(r'^sistema/comissao/tipo/', include(TipoComissaoCrud.get_urls())), diff --git a/sapl/comissoes/views.py b/sapl/comissoes/views.py index 0befb19ac..458a9a25f 100644 --- a/sapl/comissoes/views.py +++ b/sapl/comissoes/views.py @@ -16,11 +16,11 @@ from django_filters.views import FilterView from sapl.base.models import AppConfig as AppsAppConfig from sapl.comissoes.apps import AppConfig -from sapl.comissoes.forms import (CargosComissaoOrdenacaoForm, ComissaoForm, - ComposicaoForm, +from sapl.comissoes.forms import (ComissaoForm, ComposicaoForm, DocumentoAcessorioCreateForm, DocumentoAcessorioEditForm, - ParticipacaoCreateForm, ParticipacaoEditForm, + ParticipacaoCreateForm, + ParticipacaoEditForm, PautaReuniaoFilterSet, PautaReuniaoForm, PeriodoForm, ReuniaoForm) from sapl.crud.base import (Crud, CrudAux, MasterDetailCrud, @@ -47,7 +47,10 @@ def pegar_url_reuniao(pk): url = reverse('sapl.comissoes:reuniao_detail', kwargs={'pk': r_pk}) return url -CargoCrud = CrudAux.build(CargoComissao, 'cargo_comissao') +CargoComissaoCrud = CrudAux.build( + CargoComissao, 'cargo_comissao', + list_field_names=['nome', 'id_ordenacao', 'unico'] +) TipoComissaoCrud = CrudAux.build( TipoComissao, 'tipo_comissao', list_field_names=[ @@ -98,40 +101,6 @@ class ParticipacaoCrud(MasterDetailCrud): composicao_pk) -class CargosComissaoOrdenacaoView(PermissionRequiredMixin, FormView): - template_name = 'comissoes/cargos_ordenacao.html' - form_class = CargosComissaoOrdenacaoForm - permission_required = ('base.list_appconfig',) - - def get_context_data(self, **kwargs): - context = super(CargosComissaoOrdenacaoView, self).get_context_data(**kwargs) - - cargos = CargoComissao.objects.all() - posicoes = list(range(1, len(cargos)+1)) - - tabela_ordenacao = [] - for posicao in posicoes: - if cargos.filter(id_ordenacao=posicao): - cargo = cargos.get(id_ordenacao=posicao) - tabela_ordenacao.append((posicao, cargo)) - else: - tabela_ordenacao.append((posicao, "")) - - cargos_desordenados = cargos.filter(id_ordenacao=None) - for cargo_desordenado in cargos_desordenados: - tabela_ordenacao.append(("Não definida", cargo_desordenado)) - - context['cargos'] = tabela_ordenacao - return context - - def get_success_url(self): - return reverse('sapl.comissoes:cargos_comissao_ordenacao') - - def form_valid(self, form): - form.save() - return HttpResponseRedirect(self.get_success_url()) - - class ComposicaoCrud(MasterDetailCrud): model = Composicao parent_field = 'comissao' diff --git a/sapl/templates/comissoes/cargos_ordenacao.html b/sapl/templates/comissoes/cargos_ordenacao.html deleted file mode 100644 index 017a0201c..000000000 --- a/sapl/templates/comissoes/cargos_ordenacao.html +++ /dev/null @@ -1,42 +0,0 @@ -{% extends "crud/form.html" %} -{% load i18n %} -{% load crispy_forms_tags %} - -{% block title %} -

Ordenação dos Cargos

-{% endblock %} - -{% block base_content %} -
-
-

Atualizar Ordenação


- {% crispy form %} -
-
-

Ordenação Atual


- - - - - - - - - {% for posicao, cargo in cargos %} - - - {% if cargo %} - - {% else %} - - {% endif %} - - {% endfor %} - -
PosiçãoCargo
{{ posicao }} - {{ cargo }} - -
-
-
-
-{% endblock %} \ No newline at end of file diff --git a/sapl/templates/comissoes/layouts.yaml b/sapl/templates/comissoes/layouts.yaml index b06fb9ae9..f09a7a0b8 100644 --- a/sapl/templates/comissoes/layouts.yaml +++ b/sapl/templates/comissoes/layouts.yaml @@ -1,7 +1,8 @@ {% load i18n %} + CargoComissao: {% trans 'Cargo de Comissão' %}: - - nome:10 unico + - nome:6 unico id_ordenacao Periodo: {% trans 'Período de composição de Comissão' %}: diff --git a/sapl/templates/menu_tabelas_auxiliares.yaml b/sapl/templates/menu_tabelas_auxiliares.yaml index b077f09ba..9a9c40d8d 100644 --- a/sapl/templates/menu_tabelas_auxiliares.yaml +++ b/sapl/templates/menu_tabelas_auxiliares.yaml @@ -59,9 +59,6 @@ - title: {% trans 'Cargo de Comissão' %} url: sapl.comissoes:cargocomissao_list css_class: btn btn-link - - title: {% trans 'Ordenação dos Cargos' %} - url: sapl.comissoes:cargos_comissao_ordenacao - css_class: btn btn-link - title: {% trans 'Período de Composição' %} url: sapl.comissoes:periodo_list css_class: btn btn-link