Browse Source

teste

pull/2128/head
Talitha 7 years ago
parent
commit
ab0e79d011
  1. 9
      sapl/base/templatetags/common_tags.py
  2. 23
      sapl/norma/forms.py
  3. 31
      sapl/norma/migrations/0012_anexonormajuridica.py
  4. 31
      sapl/norma/models.py
  5. 2
      sapl/norma/views.py
  6. 2
      sapl/templates/norma/layouts.yaml
  7. 16
      sapl/templates/norma/normajuridica_detail.html
  8. 5
      sapl/templates/norma/normajuridica_form.html

9
sapl/base/templatetags/common_tags.py

@ -44,6 +44,15 @@ def split(value, arg):
return value.split(arg) return value.split(arg)
@register.filter
def to_str(arg):
return str(arg)
@register.filter
def get_last_item_from_list(list,arg):
return list[arg]
@register.filter @register.filter
def sort_by_keys(value, key): def sort_by_keys(value, key):
transformed = [] transformed = []

23
sapl/norma/forms.py

@ -14,7 +14,7 @@ from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa
from sapl.settings import MAX_DOC_UPLOAD_SIZE from sapl.settings import MAX_DOC_UPLOAD_SIZE
from sapl.utils import RANGE_ANOS, RangeWidgetOverride from sapl.utils import RANGE_ANOS, RangeWidgetOverride
from .models import (AssuntoNorma, NormaJuridica, NormaRelacionada, from .models import (AnexoNormaJuridica, AssuntoNorma, NormaJuridica, NormaRelacionada,
TipoNormaJuridica) TipoNormaJuridica)
@ -97,7 +97,15 @@ class NormaJuridicaForm(ModelForm):
choices=ANO_CHOICES, choices=ANO_CHOICES,
widget=forms.Select(attrs={'autocomplete': 'off'}) widget=forms.Select(attrs={'autocomplete': 'off'})
) )
# anexos_adicionados = forms.ListField(
# label='Anexos adcionados',
# required=False,
# widget=forms.TextInput(attrs={'readonly': 'readonly'})
# )
anexo_arquivo = forms.FileField(
label='Anexo Norma Jurídica',
required=False
)
class Meta: class Meta:
model = NormaJuridica model = NormaJuridica
fields = ['tipo', fields = ['tipo',
@ -117,9 +125,11 @@ class NormaJuridicaForm(ModelForm):
'indexacao', 'indexacao',
'observacao', 'observacao',
'texto_integral', 'texto_integral',
'anexo_arquivo',
'assuntos'] 'assuntos']
widgets = {'assuntos': widgets.CheckboxSelectMultiple} widgets = {'assuntos': widgets.CheckboxSelectMultiple}
def clean(self): def clean(self):
cleaned_data = super(NormaJuridicaForm, self).clean() cleaned_data = super(NormaJuridicaForm, self).clean()
@ -171,10 +181,19 @@ class NormaJuridicaForm(ModelForm):
return texto_integral return texto_integral
def save(self, commit=False): def save(self, commit=False):
norma = self.instance norma = self.instance
norma.timestamp = timezone.now() norma.timestamp = timezone.now()
norma.materia = self.cleaned_data['materia'] norma.materia = self.cleaned_data['materia']
norma = super(NormaJuridicaForm, self).save(commit=True) norma = super(NormaJuridicaForm, self).save(commit=True)
if self.cleaned_data['anexo_arquivo']:
anexo = AnexoNormaJuridica()
anexo.anexo_arquivo = self.cleaned_data['anexo_arquivo']
anexo.norma = norma
anexo.ano = timezone.now().year
anexo.save()
return norma return norma

31
sapl/norma/migrations/0012_anexonormajuridica.py

@ -0,0 +1,31 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.13 on 2018-08-06 19:48
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
import sapl.norma.models
import sapl.utils
class Migration(migrations.Migration):
dependencies = [
('norma', '0011_auto_20180220_1859'),
]
operations = [
migrations.CreateModel(
name='AnexoNormaJuridica',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('anexo_arquivo', models.FileField(blank=True, null=True, upload_to=sapl.norma.models.norma_upload_path, validators=[sapl.utils.restringe_tipos_de_arquivo_txt], verbose_name='Arquivo Anexo')),
('ano', models.PositiveSmallIntegerField(choices=[(2018, 2018), (2017, 2017), (2016, 2016), (2015, 2015), (2014, 2014), (2013, 2013), (2012, 2012), (2011, 2011), (2010, 2010), (2009, 2009), (2008, 2008), (2007, 2007), (2006, 2006), (2005, 2005), (2004, 2004), (2003, 2003), (2002, 2002), (2001, 2001), (2000, 2000), (1999, 1999), (1998, 1998), (1997, 1997), (1996, 1996), (1995, 1995), (1994, 1994), (1993, 1993), (1992, 1992), (1991, 1991), (1990, 1990), (1989, 1989), (1988, 1988), (1987, 1987), (1986, 1986), (1985, 1985), (1984, 1984), (1983, 1983), (1982, 1982), (1981, 1981), (1980, 1980), (1979, 1979), (1978, 1978), (1977, 1977), (1976, 1976), (1975, 1975), (1974, 1974), (1973, 1973), (1972, 1972), (1971, 1971), (1970, 1970), (1969, 1969), (1968, 1968), (1967, 1967), (1966, 1966), (1965, 1965), (1964, 1964), (1963, 1963), (1962, 1962), (1961, 1961), (1960, 1960), (1959, 1959), (1958, 1958), (1957, 1957), (1956, 1956), (1955, 1955), (1954, 1954), (1953, 1953), (1952, 1952), (1951, 1951), (1950, 1950), (1949, 1949), (1948, 1948), (1947, 1947), (1946, 1946), (1945, 1945), (1944, 1944), (1943, 1943), (1942, 1942), (1941, 1941), (1940, 1940), (1939, 1939), (1938, 1938), (1937, 1937), (1936, 1936), (1935, 1935), (1934, 1934), (1933, 1933), (1932, 1932), (1931, 1931), (1930, 1930), (1929, 1929), (1928, 1928), (1927, 1927), (1926, 1926), (1925, 1925), (1924, 1924), (1923, 1923), (1922, 1922), (1921, 1921), (1920, 1920), (1919, 1919), (1918, 1918), (1917, 1917), (1916, 1916), (1915, 1915), (1914, 1914), (1913, 1913), (1912, 1912), (1911, 1911), (1910, 1910), (1909, 1909), (1908, 1908), (1907, 1907), (1906, 1906), (1905, 1905), (1904, 1904), (1903, 1903), (1902, 1902), (1901, 1901), (1900, 1900), (1899, 1899), (1898, 1898), (1897, 1897), (1896, 1896), (1895, 1895), (1894, 1894), (1893, 1893), (1892, 1892), (1891, 1891), (1890, 1890)], verbose_name='Ano')),
('norma', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='norma', to='norma.NormaJuridica', verbose_name='Norma Juridica')),
],
options={
'verbose_name_plural': 'Anexos da Norma Juridica',
'verbose_name': 'Anexo da Norma Juridica',
},
),
]

31
sapl/norma/models.py

@ -141,6 +141,12 @@ class NormaJuridica(models.Model):
norma_relacionada=self.id) norma_relacionada=self.id)
return (principais, relacionadas) return (principais, relacionadas)
def get_anexos_norma_juridica(self):
anexos = AnexoNormaJuridica.objects.filter(
norma=self.id)
return anexos
def __str__(self): def __str__(self):
return _('%(tipo)s%(numero)s de %(data)s') % { return _('%(tipo)s%(numero)s de %(data)s') % {
'tipo': self.tipo, 'tipo': self.tipo,
@ -252,3 +258,28 @@ class NormaRelacionada(models.Model):
' - Relacionada: %(norma_relacionada)s') % { ' - Relacionada: %(norma_relacionada)s') % {
'norma_principal': self.norma_principal, 'norma_principal': self.norma_principal,
'norma_relacionada': self.norma_relacionada} 'norma_relacionada': self.norma_relacionada}
@reversion.register()
class AnexoNormaJuridica(models.Model):
norma = models.ForeignKey(
NormaJuridica,
related_name='norma',
on_delete=models.PROTECT,
verbose_name=_('Norma Juridica'))
anexo_arquivo = models.FileField(
blank=True,
null=True,
upload_to=norma_upload_path,
verbose_name=_('Arquivo Anexo'),
validators=[restringe_tipos_de_arquivo_txt])
ano = models.PositiveSmallIntegerField(verbose_name=_('Ano'),
choices=RANGE_ANOS)
class Meta:
verbose_name = _('Anexo da Norma Juridica')
verbose_name_plural = _('Anexos da Norma Juridica')
def __str__(self):
return _('Anexo: %(anexo)s da norma %(norma)s') % {
'anexo': self.anexo_arquivo, 'norma': self.norma}

2
sapl/norma/views.py

@ -21,7 +21,7 @@ from sapl.utils import show_results_filter_set
from .forms import (NormaFilterSet, NormaJuridicaForm, from .forms import (NormaFilterSet, NormaJuridicaForm,
NormaPesquisaSimplesForm, NormaRelacionadaForm) NormaPesquisaSimplesForm, NormaRelacionadaForm)
from .models import (AssuntoNorma, NormaJuridica, NormaRelacionada, from .models import (AnexoNormaJuridica, AssuntoNorma, NormaJuridica, NormaRelacionada,
TipoNormaJuridica, TipoVinculoNormaJuridica) TipoNormaJuridica, TipoVinculoNormaJuridica)
# LegislacaoCitadaCrud = Crud.build(LegislacaoCitada, '') # LegislacaoCitadaCrud = Crud.build(LegislacaoCitada, '')

2
sapl/templates/norma/layouts.yaml

@ -35,6 +35,8 @@ NormaJuridicaCreate:
- indexacao - indexacao
- observacao - observacao
- assuntos - assuntos
{% trans 'Anexos da Norma Jurídica' %}:
- anexo_arquivo
LegislacaoCitada: LegislacaoCitada:
{% trans 'Legislação Citada' %}: {% trans 'Legislação Citada' %}:

16
sapl/templates/norma/normajuridica_detail.html

@ -58,6 +58,22 @@
</div> </div>
{% endfor %} {% endfor %}
{% endif %} {% endif %}
</div>
</div>
<hr />
<div class="row-fluid">
<div class="col-sm-12">
&nbsp;<p class="control-label">Anexos Norma Jurídica</p>
{% if object.get_anexos_norma_juridica|length > 0 %}
{% for p in object.get_anexos_norma_juridica %}
<div class="form-control-static">
<a href="/media/{{p.anexo_arquivo}}">
{{ p.anexo_arquivo | to_str | split:"/" | get_last_item_from_list:-1 }}
</a>
</div>
{% endfor %}
{% endif %}
</div> </div>
</div> </div>
{% endblock detail_content %} {% endblock detail_content %}

5
sapl/templates/norma/normajuridica_form.html

@ -5,6 +5,11 @@
{% block extra_js %} {% block extra_js %}
{% block content %}
<div>
Testando essa bagaça</div>
{% endblock %}
<script language="Javascript"> <script language="Javascript">
function recuperar_materia() { function recuperar_materia() {
var tipo_materia = $("#id_tipo_materia").val() var tipo_materia = $("#id_tipo_materia").val()

Loading…
Cancel
Save