Browse Source

Adicionar user e ip em MatériaLegislativa

pull/2797/head
João 7 years ago
parent
commit
8274e01026
  1. 4
      sapl/materia/forms.py
  2. 28
      sapl/materia/migrations/0050_auto_20190521_1148.py
  3. 14
      sapl/materia/models.py
  4. 49
      sapl/materia/views.py
  5. 1
      sapl/templates/materia/layouts.yaml

4
sapl/materia/forms.py

@ -194,6 +194,10 @@ class MateriaLegislativaForm(FileFieldCheckMixin, ModelForm):
model = MateriaLegislativa model = MateriaLegislativa
exclude = ['texto_articulado', 'autores', 'proposicao', exclude = ['texto_articulado', 'autores', 'proposicao',
'anexadas', 'data_ultima_atualizacao'] 'anexadas', 'data_ultima_atualizacao']
widgets = {
'user': forms.HiddenInput(),
'ip': forms.HiddenInput()
}
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(MateriaLegislativaForm, self).__init__(*args, **kwargs) super(MateriaLegislativaForm, self).__init__(*args, **kwargs)

28
sapl/materia/migrations/0050_auto_20190521_1148.py

@ -0,0 +1,28 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-05-21 14:48
from __future__ import unicode_literals
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('materia', '0049_pautareuniao'),
]
operations = [
migrations.AddField(
model_name='materialegislativa',
name='ip',
field=models.CharField(blank=True, default='', max_length=30, verbose_name='IP'),
),
migrations.AddField(
model_name='materialegislativa',
name='user',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL, verbose_name='Usuário'),
),
]

14
sapl/materia/models.py

@ -279,6 +279,20 @@ class MateriaLegislativa(models.Model):
auto_now=True, auto_now=True,
verbose_name=_('Data')) verbose_name=_('Data'))
user = models.ForeignKey(
get_settings_auth_user_model(),
verbose_name=_('Usuário'),
on_delete=models.PROTECT,
null=True,
blank=True
)
ip = models.CharField(
verbose_name=_('IP'),
max_length=30,
blank=True,
default=''
)
class Meta: class Meta:
verbose_name = _('Matéria Legislativa') verbose_name = _('Matéria Legislativa')
verbose_name_plural = _('Matérias Legislativas') verbose_name_plural = _('Matérias Legislativas')

49
sapl/materia/views.py

@ -1603,6 +1603,16 @@ class MateriaLegislativaCrud(Crud):
form_class = MateriaLegislativaForm form_class = MateriaLegislativaForm
def form_valid(self, form):
self.object = form.save()
username = self.request.user.username
self.object.user = self.request.user
self.object.ip = get_client_ip(self.request)
self.object.save()
return super().form_valid(form)
@property @property
def cancel_url(self): def cancel_url(self):
return self.search_url return self.search_url
@ -1612,8 +1622,43 @@ class MateriaLegislativaCrud(Crud):
form_class = MateriaLegislativaForm form_class = MateriaLegislativaForm
def form_valid(self, form): def form_valid(self, form):
objeto_antigo = MateriaLegislativa.objects.get(pk=self.kwargs['pk'])
self.object = form.save() self.object = form.save()
username = self.request.user.username objeto_novo = self.object
if not(
objeto_antigo.tipo != objeto_novo.tipo or \
objeto_antigo.ano != objeto_novo.ano or \
objeto_antigo.numero != objeto_novo.numero or \
objeto_antigo.data_apresentacao != objeto_novo.data_apresentacao or \
objeto_antigo.numero_protocolo != objeto_novo.numero_protocolo or \
objeto_antigo.tipo_apresentacao != objeto_novo.tipo_apresentacao or \
objeto_antigo.texto_original != objeto_novo.texto_original or \
objeto_antigo.apelido != objeto_novo.apelido or \
objeto_antigo.dias_prazo != objeto_novo.dias_prazo or \
objeto_antigo.polemica != objeto_novo.polemica or \
objeto_antigo.objeto != objeto_novo.objeto or \
objeto_antigo.regime_tramitacao != objeto_novo.regime_tramitacao or \
objeto_antigo.em_tramitacao != objeto_novo.em_tramitacao or \
objeto_antigo.data_fim_prazo != objeto_novo.data_fim_prazo or \
objeto_antigo.data_publicacao != objeto_novo.data_publicacao or \
objeto_antigo.complementar != objeto_novo.complementar or \
objeto_antigo.tipo_origem_externa != objeto_novo.tipo_origem_externa or \
objeto_antigo.numero_origem_externa != objeto_novo.numero_origem_externa or \
objeto_antigo.ano_origem_externa != objeto_novo.ano_origem_externa or \
objeto_antigo.local_origem_externa != objeto_novo.local_origem_externa or \
objeto_antigo.data_origem_externa != objeto_novo.data_origem_externa or \
objeto_antigo.ementa != objeto_novo.ementa or \
objeto_antigo.indexacao != objeto_novo.indexacao or \
objeto_antigo.observacao != objeto_novo.observacao
):
self.object.user = objeto_antigo.user
self.object.ip = objeto_antigo.ip
else:
self.object.user = self.request.user
self.object.ip = get_client_ip(self.request)
self.object.save()
if Anexada.objects.filter(materia_principal=self.kwargs['pk']).exists(): if Anexada.objects.filter(materia_principal=self.kwargs['pk']).exists():
materia = MateriaLegislativa.objects.get(pk=self.kwargs['pk']) materia = MateriaLegislativa.objects.get(pk=self.kwargs['pk'])
@ -1622,7 +1667,7 @@ class MateriaLegislativaCrud(Crud):
for anexada in anexadas: for anexada in anexadas:
anexada.em_tramitacao = True if form.instance.em_tramitacao else False anexada.em_tramitacao = True if form.instance.em_tramitacao else False
anexada.save() anexada.save()
return super().form_valid(form) return super().form_valid(form)
@property @property

1
sapl/templates/materia/layouts.yaml

@ -156,3 +156,4 @@ MateriaLegislativaDetail:
- ementa - ementa
- indexacao - indexacao
- observacao - observacao
- user ip

Loading…
Cancel
Save