mirror of https://github.com/interlegis/sapl.git
Edward
9 years ago
committed by
GitHub
69 changed files with 2151 additions and 1073 deletions
@ -0,0 +1,37 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.9.5 on 2016-06-28 15:51 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.conf import settings |
|||
from django.db import migrations, models |
|||
import django.db.models.deletion |
|||
import sapl.materia.models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('auth', '0007_alter_validators_add_error_messages'), |
|||
migrations.swappable_dependency(settings.AUTH_USER_MODEL), |
|||
('materia', '0038_auto_20160612_1506'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AddField( |
|||
model_name='autor', |
|||
name='email', |
|||
field=models.EmailField(default=' ', max_length=254, verbose_name='Email'), |
|||
preserve_default=False, |
|||
), |
|||
migrations.AddField( |
|||
model_name='autor', |
|||
name='grupo_usuario', |
|||
field=models.ForeignKey(default=sapl.materia.models.grupo_autor, on_delete=django.db.models.deletion.CASCADE, to='auth.Group'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='autor', |
|||
name='user', |
|||
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), |
|||
preserve_default=False, |
|||
), |
|||
] |
@ -0,0 +1,24 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.9.7 on 2016-08-23 19:58 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('materia', '0044_merge'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.RemoveField( |
|||
model_name='autor', |
|||
name='grupo_usuario', |
|||
), |
|||
migrations.AlterField( |
|||
model_name='autor', |
|||
name='username', |
|||
field=models.CharField(blank=True, max_length=50, verbose_name='Nome de Usuário'), |
|||
), |
|||
] |
@ -0,0 +1,22 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.9.5 on 2016-06-24 14:24 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
import django.db.models.deletion |
|||
import sapl.parlamentares.models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('parlamentares', '0021_merge'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='sessaolegislativa', |
|||
name='legislatura', |
|||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='parlamentares.Legislatura', verbose_name=sapl.parlamentares.models.Legislatura), |
|||
), |
|||
] |
@ -0,0 +1,21 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.9.5 on 2016-07-02 18:19 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
import django.db.models.deletion |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('parlamentares', '0021_merge'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='sessaolegislativa', |
|||
name='legislatura', |
|||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='parlamentares.Legislatura', verbose_name='Legislatura'), |
|||
), |
|||
] |
@ -0,0 +1,21 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.9.5 on 2016-06-28 15:47 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
import django.db.models.deletion |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('parlamentares', '0022_auto_20160624_1124'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='sessaolegislativa', |
|||
name='legislatura', |
|||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='parlamentares.Legislatura', verbose_name='Legislatura'), |
|||
), |
|||
] |
@ -0,0 +1,16 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.9.7 on 2016-08-18 21:39 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('parlamentares', '0022_auto_20160702_1519'), |
|||
('parlamentares', '0023_auto_20160628_1247'), |
|||
] |
|||
|
|||
operations = [ |
|||
] |
@ -1,147 +1,163 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.9.5 on 2016-06-24 14:31 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
import django.db.models.deletion |
|||
import sapl.protocoloadm.models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
initial = True |
|||
|
|||
dependencies = [ |
|||
('materia', '0001_initial'), |
|||
('materia', '0038_auto_20160612_1506'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.CreateModel( |
|||
name='DocumentoAcessorioAdministrativo', |
|||
fields=[ |
|||
('id', models.AutoField(primary_key=True, verbose_name='ID', auto_created=True, serialize=False)), |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('nome', models.CharField(max_length=30, verbose_name='Nome')), |
|||
('arquivo', models.CharField(max_length=100, verbose_name='Arquivo')), |
|||
('arquivo', models.FileField(blank=True, null=True, upload_to=sapl.protocoloadm.models.texto_upload_path, verbose_name='Arquivo')), |
|||
('data', models.DateField(blank=True, null=True, verbose_name='Data')), |
|||
('autor', models.CharField(blank=True, max_length=50, null=True, verbose_name='Autor')), |
|||
('assunto', models.TextField(blank=True, null=True, verbose_name='Assunto')), |
|||
('indexacao', models.TextField(blank=True, null=True)), |
|||
('autor', models.CharField(blank=True, max_length=50, verbose_name='Autor')), |
|||
('assunto', models.TextField(blank=True, verbose_name='Assunto')), |
|||
('indexacao', models.TextField(blank=True)), |
|||
], |
|||
options={ |
|||
'verbose_name_plural': 'Documentos Acessórios', |
|||
'verbose_name': 'Documento Acessório', |
|||
'verbose_name_plural': 'Documentos Acessórios', |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='DocumentoAdministrativo', |
|||
fields=[ |
|||
('id', models.AutoField(primary_key=True, verbose_name='ID', auto_created=True, serialize=False)), |
|||
('numero', models.IntegerField(verbose_name='Número')), |
|||
('ano', models.SmallIntegerField(verbose_name='Ano')), |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('numero', models.PositiveIntegerField(verbose_name='Número')), |
|||
('ano', models.PositiveSmallIntegerField(choices=[(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')), |
|||
('data', models.DateField(verbose_name='Data')), |
|||
('numero_protocolo', models.IntegerField(blank=True, null=True, verbose_name='Núm. Protocolo')), |
|||
('interessado', models.CharField(blank=True, max_length=50, null=True, verbose_name='Interessado')), |
|||
('dias_prazo', models.IntegerField(blank=True, null=True, verbose_name='Dias Prazo')), |
|||
('numero_protocolo', models.PositiveIntegerField(blank=True, null=True, verbose_name='Núm. Protocolo')), |
|||
('interessado', models.CharField(blank=True, max_length=50, verbose_name='Interessado')), |
|||
('dias_prazo', models.PositiveIntegerField(blank=True, null=True, verbose_name='Dias Prazo')), |
|||
('data_fim_prazo', models.DateField(blank=True, null=True, verbose_name='Data Fim Prazo')), |
|||
('tramitacao', models.BooleanField(verbose_name='Em Tramitação?')), |
|||
('tramitacao', models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], verbose_name='Em Tramitação?')), |
|||
('assunto', models.TextField(verbose_name='Assunto')), |
|||
('observacao', models.TextField(blank=True, null=True, verbose_name='Observação')), |
|||
('autor', models.ForeignKey(blank=True, null=True, to='materia.Autor')), |
|||
('observacao', models.TextField(blank=True, verbose_name='Observação')), |
|||
('texto_integral', models.FileField(blank=True, null=True, upload_to=sapl.protocoloadm.models.texto_upload_path, verbose_name='Texto Integral')), |
|||
('autor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='materia.Autor')), |
|||
], |
|||
options={ |
|||
'verbose_name_plural': 'Documentos Administrativos', |
|||
'verbose_name': 'Documento Administrativo', |
|||
'verbose_name_plural': 'Documentos Administrativos', |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='Protocolo', |
|||
fields=[ |
|||
('id', models.AutoField(primary_key=True, verbose_name='ID', auto_created=True, serialize=False)), |
|||
('numero', models.IntegerField(blank=True, null=True, verbose_name='Número do Protocolo')), |
|||
('ano', models.SmallIntegerField()), |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('numero', models.PositiveIntegerField(verbose_name='Número de Protocolo')), |
|||
('ano', models.PositiveSmallIntegerField(choices=[(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 do Protocolo')), |
|||
('data', models.DateField()), |
|||
('hora', models.TimeField()), |
|||
('timestamp', models.DateTimeField()), |
|||
('tipo_protocolo', models.IntegerField(verbose_name='Tipo de Protocolo')), |
|||
('tipo_processo', models.IntegerField()), |
|||
('interessado', models.CharField(blank=True, max_length=60, null=True, verbose_name='Interessado')), |
|||
('assunto_ementa', models.TextField(blank=True, null=True)), |
|||
('numero_paginas', models.IntegerField(blank=True, null=True, verbose_name='Número de Páginas')), |
|||
('observacao', models.TextField(blank=True, null=True, verbose_name='Observação')), |
|||
('tipo_protocolo', models.PositiveIntegerField(verbose_name='Tipo de Protocolo')), |
|||
('tipo_processo', models.PositiveIntegerField()), |
|||
('interessado', models.CharField(blank=True, max_length=60, verbose_name='Interessado')), |
|||
('assunto_ementa', models.TextField(blank=True)), |
|||
('numero_paginas', models.PositiveIntegerField(blank=True, null=True, verbose_name='Número de Páginas')), |
|||
('observacao', models.TextField(blank=True, verbose_name='Observação')), |
|||
('anulado', models.BooleanField()), |
|||
('user_anulacao', models.CharField(blank=True, max_length=20, null=True)), |
|||
('ip_anulacao', models.CharField(blank=True, max_length=15, null=True)), |
|||
('justificativa_anulacao', models.CharField(blank=True, max_length=60, null=True)), |
|||
('user_anulacao', models.CharField(blank=True, max_length=20)), |
|||
('ip_anulacao', models.CharField(blank=True, max_length=15)), |
|||
('justificativa_anulacao', models.CharField(blank=True, max_length=60, verbose_name='Motivo')), |
|||
('timestamp_anulacao', models.DateTimeField(blank=True, null=True)), |
|||
('autor', models.ForeignKey(blank=True, null=True, to='materia.Autor')), |
|||
('autor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='materia.Autor')), |
|||
], |
|||
options={ |
|||
'verbose_name_plural': 'Protocolos', |
|||
'verbose_name': 'Protocolo', |
|||
'verbose_name_plural': 'Protocolos', |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='StatusTramitacaoAdministrativo', |
|||
fields=[ |
|||
('id', models.AutoField(primary_key=True, verbose_name='ID', auto_created=True, serialize=False)), |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('sigla', models.CharField(max_length=10, verbose_name='Sigla')), |
|||
('descricao', models.CharField(max_length=60, verbose_name='Descrição')), |
|||
('indicador', models.CharField(choices=[('F', 'Fim'), ('R', 'Retorno')], max_length=1, verbose_name='Indicador da Tramitação')), |
|||
], |
|||
options={ |
|||
'verbose_name_plural': 'Status de Tramitação', |
|||
'verbose_name': 'Status de Tramitação', |
|||
'verbose_name_plural': 'Status de Tramitação', |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='TipoDocumentoAdministrativo', |
|||
fields=[ |
|||
('id', models.AutoField(primary_key=True, verbose_name='ID', auto_created=True, serialize=False)), |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('sigla', models.CharField(max_length=5, verbose_name='Sigla')), |
|||
('descricao', models.CharField(max_length=50, verbose_name='Descrição')), |
|||
], |
|||
options={ |
|||
'verbose_name_plural': 'Tipos de Documento Administrativo', |
|||
'verbose_name': 'Tipo de Documento Administrativo', |
|||
'verbose_name_plural': 'Tipos de Documento Administrativo', |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='TipoInstituicao', |
|||
fields=[ |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('descricao', models.CharField(max_length=50, verbose_name='Descrição')), |
|||
], |
|||
options={ |
|||
'verbose_name': 'Tipo de Instituição', |
|||
'verbose_name_plural': 'Tipos de Instituições', |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='TramitacaoAdministrativo', |
|||
fields=[ |
|||
('id', models.AutoField(primary_key=True, verbose_name='ID', auto_created=True, serialize=False)), |
|||
('data_tramitacao', models.DateField(blank=True, null=True, verbose_name='Data Tramitação')), |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('data_tramitacao', models.DateField(verbose_name='Data Tramitação')), |
|||
('data_encaminhamento', models.DateField(blank=True, null=True, verbose_name='Data Encaminhamento')), |
|||
('ultima', models.BooleanField()), |
|||
('texto', models.TextField(blank=True, null=True, verbose_name='Texto da Ação')), |
|||
('texto', models.TextField(blank=True, verbose_name='Texto da Ação')), |
|||
('data_fim_prazo', models.DateField(blank=True, null=True, verbose_name='Data Fim do Prazo')), |
|||
('documento', models.ForeignKey(to='protocoloadm.DocumentoAdministrativo')), |
|||
('status', models.ForeignKey(blank=True, null=True, to='protocoloadm.StatusTramitacaoAdministrativo', verbose_name='Status')), |
|||
('unidade_tramitacao_destino', models.ForeignKey(blank=True, null=True, to='materia.UnidadeTramitacao', verbose_name='Unidade Destino', related_name='+')), |
|||
('unidade_tramitacao_local', models.ForeignKey(blank=True, null=True, to='materia.UnidadeTramitacao', verbose_name='Unidade Local', related_name='+')), |
|||
('documento', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='protocoloadm.DocumentoAdministrativo')), |
|||
('status', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='protocoloadm.StatusTramitacaoAdministrativo', verbose_name='Status')), |
|||
('unidade_tramitacao_destino', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='adm_tramitacoes_destino', to='materia.UnidadeTramitacao', verbose_name='Unidade Destino')), |
|||
('unidade_tramitacao_local', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='adm_tramitacoes_origem', to='materia.UnidadeTramitacao', verbose_name='Unidade Local')), |
|||
], |
|||
options={ |
|||
'verbose_name_plural': 'Tramitações de Documento Administrativo', |
|||
'verbose_name': 'Tramitação de Documento Administrativo', |
|||
'verbose_name_plural': 'Tramitações de Documento Administrativo', |
|||
}, |
|||
), |
|||
migrations.AddField( |
|||
model_name='protocolo', |
|||
name='tipo_documento', |
|||
field=models.ForeignKey(blank=True, null=True, to='protocoloadm.TipoDocumentoAdministrativo', verbose_name='Tipo de documento'), |
|||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='protocoloadm.TipoDocumentoAdministrativo', verbose_name='Tipo de documento'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='protocolo', |
|||
name='tipo_materia', |
|||
field=models.ForeignKey(blank=True, null=True, to='materia.TipoMateriaLegislativa', verbose_name='Tipo Matéria'), |
|||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='materia.TipoMateriaLegislativa', verbose_name='Tipo Matéria'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='documentoadministrativo', |
|||
name='tipo', |
|||
field=models.ForeignKey(to='protocoloadm.TipoDocumentoAdministrativo', verbose_name='Tipo Documento'), |
|||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='protocoloadm.TipoDocumentoAdministrativo', verbose_name='Tipo Documento'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='documentoacessorioadministrativo', |
|||
name='documento', |
|||
field=models.ForeignKey(to='protocoloadm.DocumentoAdministrativo'), |
|||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='protocoloadm.DocumentoAdministrativo'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='documentoacessorioadministrativo', |
|||
name='tipo', |
|||
field=models.ForeignKey(to='protocoloadm.TipoDocumentoAdministrativo', verbose_name='Tipo'), |
|||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='protocoloadm.TipoDocumentoAdministrativo', verbose_name='Tipo'), |
|||
), |
|||
] |
|||
|
@ -1,59 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('protocoloadm', '0001_initial'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='documentoadministrativo', |
|||
name='ano', |
|||
field=models.PositiveSmallIntegerField(verbose_name='Ano'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='documentoadministrativo', |
|||
name='dias_prazo', |
|||
field=models.PositiveIntegerField(blank=True, verbose_name='Dias Prazo', null=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='documentoadministrativo', |
|||
name='numero', |
|||
field=models.PositiveIntegerField(verbose_name='Número'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='documentoadministrativo', |
|||
name='numero_protocolo', |
|||
field=models.PositiveIntegerField(blank=True, verbose_name='Núm. Protocolo', null=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='protocolo', |
|||
name='ano', |
|||
field=models.PositiveSmallIntegerField(), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='protocolo', |
|||
name='numero', |
|||
field=models.PositiveIntegerField(blank=True, verbose_name='Número do Protocolo', null=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='protocolo', |
|||
name='numero_paginas', |
|||
field=models.PositiveIntegerField(blank=True, verbose_name='Número de Páginas', null=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='protocolo', |
|||
name='tipo_processo', |
|||
field=models.PositiveIntegerField(), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='protocolo', |
|||
name='tipo_protocolo', |
|||
field=models.PositiveIntegerField(verbose_name='Tipo de Protocolo'), |
|||
), |
|||
] |
@ -1,22 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
import sapl.protocoloadm.models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('protocoloadm', '0002_auto_20150729_1717'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AddField( |
|||
model_name='documentoacessorioadministrativo', |
|||
name='texto_integral', |
|||
field=models.FileField(verbose_name='Texto Integral', blank=True, |
|||
null=True, upload_to=sapl.protocoloadm.models.texto_upload_path), |
|||
), |
|||
] |
@ -1,27 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
import sapl.protocoloadm.models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('protocoloadm', |
|||
'0003_documentoacessorioadministrativo_texto_integral'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.RemoveField( |
|||
model_name='documentoacessorioadministrativo', |
|||
name='texto_integral', |
|||
), |
|||
migrations.AddField( |
|||
model_name='documentoadministrativo', |
|||
name='texto_integral', |
|||
field=models.FileField( |
|||
blank=True, null=True, upload_to=sapl.protocoloadm.models.texto_upload_path, verbose_name='Texto Integral'), |
|||
), |
|||
] |
@ -1,22 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
import sapl.protocoloadm.models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('protocoloadm', '0004_auto_20151007_1035'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='documentoacessorioadministrativo', |
|||
name='arquivo', |
|||
field=models.FileField( |
|||
blank=True, null=True, upload_to=sapl.protocoloadm.models.texto_upload_path, verbose_name='Arquivo'), |
|||
), |
|||
] |
@ -1,74 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import models, migrations |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('protocoloadm', '0005_auto_20151008_0744'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='documentoacessorioadministrativo', |
|||
name='assunto', |
|||
field=models.TextField(verbose_name='Assunto', blank=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='documentoacessorioadministrativo', |
|||
name='autor', |
|||
field=models.CharField(verbose_name='Autor', max_length=50, blank=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='documentoacessorioadministrativo', |
|||
name='indexacao', |
|||
field=models.TextField(blank=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='documentoadministrativo', |
|||
name='interessado', |
|||
field=models.CharField(verbose_name='Interessado', max_length=50, blank=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='documentoadministrativo', |
|||
name='observacao', |
|||
field=models.TextField(verbose_name='Observação', blank=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='protocolo', |
|||
name='assunto_ementa', |
|||
field=models.TextField(blank=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='protocolo', |
|||
name='interessado', |
|||
field=models.CharField(verbose_name='Interessado', max_length=60, blank=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='protocolo', |
|||
name='ip_anulacao', |
|||
field=models.CharField(max_length=15, blank=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='protocolo', |
|||
name='justificativa_anulacao', |
|||
field=models.CharField(max_length=60, blank=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='protocolo', |
|||
name='observacao', |
|||
field=models.TextField(verbose_name='Observação', blank=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='protocolo', |
|||
name='user_anulacao', |
|||
field=models.CharField(max_length=20, blank=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='tramitacaoadministrativo', |
|||
name='texto', |
|||
field=models.TextField(verbose_name='Texto da Ação', blank=True), |
|||
), |
|||
] |
@ -1,19 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('protocoloadm', '0006_auto_20160216_1015'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='documentoadministrativo', |
|||
name='tramitacao', |
|||
field=models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], verbose_name='Em Tramitação?'), |
|||
), |
|||
] |
@ -1,20 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.9 on 2016-03-08 17:36 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('protocoloadm', '0007_auto_20160218_1429'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='protocolo', |
|||
name='ano', |
|||
field=models.PositiveSmallIntegerField(verbose_name='Ano do Protocolo'), |
|||
), |
|||
] |
@ -1,20 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.9 on 2016-03-09 16:23 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('protocoloadm', '0008_auto_20160308_1436'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='protocolo', |
|||
name='numero', |
|||
field=models.PositiveIntegerField(verbose_name='Número de Protocolo'), |
|||
), |
|||
] |
@ -1,25 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.9 on 2016-03-09 17:07 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('protocoloadm', '0009_auto_20160309_1323'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='documentoadministrativo', |
|||
name='ano', |
|||
field=models.PositiveSmallIntegerField(choices=[(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'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='protocolo', |
|||
name='ano', |
|||
field=models.PositiveSmallIntegerField(choices=[(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 do Protocolo'), |
|||
), |
|||
] |
@ -1,20 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.9 on 2016-03-18 18:04 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('protocoloadm', '0010_auto_20160309_1407'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='protocolo', |
|||
name='justificativa_anulacao', |
|||
field=models.CharField(blank=True, max_length=60, verbose_name='Motivo'), |
|||
), |
|||
] |
@ -1,26 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.9.5 on 2016-05-03 12:26 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
import django.db.models.deletion |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('protocoloadm', '0011_auto_20160318_1504'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='tramitacaoadministrativo', |
|||
name='unidade_tramitacao_destino', |
|||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='adm_tramitacoes_destino', to='materia.UnidadeTramitacao', verbose_name='Unidade Destino'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='tramitacaoadministrativo', |
|||
name='unidade_tramitacao_local', |
|||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='adm_tramitacoes_origem', to='materia.UnidadeTramitacao', verbose_name='Unidade Local'), |
|||
), |
|||
] |
@ -1,26 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.9.5 on 2016-05-17 18:07 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('protocoloadm', '0011_auto_20160318_1504'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.CreateModel( |
|||
name='TipoInstituicao', |
|||
fields=[ |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('descricao', models.CharField(max_length=50, verbose_name='Descrição')), |
|||
], |
|||
options={ |
|||
'verbose_name': 'Tipo de Instituição', |
|||
'verbose_name_plural': 'Tipos de Instituições', |
|||
}, |
|||
), |
|||
] |
@ -0,0 +1,7 @@ |
|||
{% extends "crud/detail.html" %} |
|||
{% load i18n %} |
|||
|
|||
{% block detail_content %} |
|||
Sua conta foi confirmada via e-mail. Clique <a href="{% url 'base:login' %}">aqui</a> para fazer seu login. |
|||
|
|||
{% endblock %} |
@ -0,0 +1,73 @@ |
|||
{% extends "base.html" %} |
|||
{% load i18n %} |
|||
{% load common_tags %} |
|||
|
|||
{% block base_content %} |
|||
|
|||
<div class="clearfix"> |
|||
{% block actions %} |
|||
{% endblock actions %} |
|||
</div> |
|||
|
|||
{% block detail_content %} |
|||
<p class="legend"></p> |
|||
|
|||
<div class="row-fluid"> |
|||
{% if parlamentar.fotografia %} |
|||
<div class="col-sm-3"> |
|||
<div id="div_fotografia" class="form-group"> |
|||
<div class="controls"> |
|||
<img class="img-responsive" src="{{ object.fotografia.url }}"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
{% endif %} |
|||
|
|||
<div class="col-sm-8"> |
|||
<div id="div_nome" class="form-group"> |
|||
<p><b>Nome Completo: </b>   {{object.nome_completo}}</p> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="col-sm-8"> |
|||
<div id="div_data_nascimento" class="form-group"> |
|||
<p><b>Partido: </b>   {{object.filiacao_set.first.partido|default_if_none:"Não informado"}}</p> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="col-sm-8"> |
|||
<div id="div_data_nascimento" class="form-group"> |
|||
<p><b>Data de Nascimento: </b>   {{object.data_nascimento|default_if_none:"Não informado"}}</p> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="col-sm-8"> |
|||
<div id="div_data_nascimento" class="form-group"> |
|||
<p><b>Telefone: </b>   {{object.telefone|default_if_none:"Não informado"}}</p> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="col-sm-8"> |
|||
<div id="div_data_nascimento" class="form-group"> |
|||
<p><b>E-mail: </b>   {{object.email|default_if_none:"Não informado"}}</p> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="col-sm-8"> |
|||
<div id="div_data_nascimento" class="form-group"> |
|||
<p><b>Número do Gabinete: </b>   {{object.numero_gab_parlamentar|default_if_none:"Não informado"}}</p> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="col-sm-8"> |
|||
<div id="div_data_nascimento" class="form-group"> |
|||
<p><b>Fax: </b>   {{object.numero_gab_parlamentar|default_if_none:"Não informado"}}</p> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
</div> |
|||
|
|||
{% endblock detail_content %} |
|||
|
|||
{% endblock base_content %} |
@ -0,0 +1,9 @@ |
|||
{% extends "crud/detail.html" %} |
|||
{% load i18n %} |
|||
{% block actions %} |
|||
<div class="actions btn-group pull-right" role="group"> |
|||
<a href="{% url 'protocoloadm:tramitacaoadministrativo_list' object.pk %}" class="btn btn-default">{% trans 'Tramitações' %}</a> |
|||
<a href="{{ view.update_url }}" class="btn btn-default">{% trans 'Editar' %}</a> |
|||
<a href="{{ view.delete_url }}" class="btn btn-default">{% trans 'Excluir' %}</a> |
|||
</div> |
|||
{% endblock actions %} |
@ -1,9 +0,0 @@ |
|||
{% extends "protocoloadm/protocoloadm_detail.html" %} |
|||
{% load i18n %} |
|||
{% load crispy_forms_tags %} |
|||
|
|||
{% block detail_content %} |
|||
<legend>Pesquisa Avançada</legend> |
|||
{% crispy form %} |
|||
</fieldset> |
|||
{% endblock detail_content %} |
@ -1,40 +0,0 @@ |
|||
{% extends "protocoloadm/protocoloadm_detail.html" %} |
|||
{% load i18n %} |
|||
{% load crispy_forms_tags %} |
|||
|
|||
{% block detail_content %} |
|||
|
|||
<fieldset> |
|||
Tipo: {{documento.tipo.sigla}} Número: {{documento.numero}} Ano: {{documento.ano}}</br> |
|||
Assunto: {{documento.assunto}} |
|||
</fieldset> |
|||
|
|||
<fieldset> |
|||
<h2>Tramitação</h2> |
|||
{% if tramitacoes %} |
|||
<table> |
|||
<tr> |
|||
<td>Data Ação</td> |
|||
<td>Origem</td> |
|||
<td>Destino</td> |
|||
<td>Status</td> |
|||
<td>Excluir</td> |
|||
</tr> |
|||
{% for t in tramitacoes %} |
|||
<tr> |
|||
<td><a href="{% url 'sapl.protocoloadm:tramitacao_edit' t.id %}">{{t.data_encaminhamento|date:"d/m/Y"}}</a></td> |
|||
<td>{{t.unidade_tramitacao_local}}</td> |
|||
<td>{{t.unidade_tramitacao_destino}}</td> |
|||
<td>{{t.status.sigla}}</td> |
|||
<td><a href="{% url 'sapl.protocoloadm:tramitacao_delete' documento.id t.id %}">Excluir</ad></td> |
|||
</tr> |
|||
|
|||
{% endfor %} |
|||
</table> |
|||
{% else %} |
|||
<strong>Nenhuma tramitação cadastrada para este documento.</strong> |
|||
{% endif %} |
|||
</br> |
|||
<a href="{% url 'sapl.protocoloadm:tramitacao_incluir' documento.id %}" class="button primary">Incluir Tramitação</a> |
|||
</fieldset> |
|||
{% endblock detail_content %} |
@ -1,15 +0,0 @@ |
|||
{% extends "protocoloadm/protocoloadm_detail.html" %} |
|||
{% load i18n %} |
|||
{% load crispy_forms_tags %} |
|||
|
|||
{% block detail_content %} |
|||
|
|||
<fieldset> |
|||
Tipo: {{documento.tipo.sigla}} Número: {{documento.numero}} Ano: {{documento.ano}}</br> |
|||
Assunto: {{documento.assunto}} |
|||
</fieldset> |
|||
|
|||
<h2>Tramitação Edit</h2> |
|||
{% crispy form %} |
|||
{% endblock detail_content %} |
|||
|
@ -1,14 +0,0 @@ |
|||
{% extends "protocoloadm/protocoloadm_detail.html" %} |
|||
{% load i18n %} |
|||
{% load crispy_forms_tags %} |
|||
|
|||
{% block detail_content %} |
|||
|
|||
<fieldset> |
|||
Tipo: {{documento.tipo.sigla}} Número: {{documento.numero}} Ano: {{documento.ano}}</br> |
|||
Assunto: {{documento.assunto}} |
|||
</fieldset> |
|||
|
|||
<h2>Tramitação</h2> |
|||
{% crispy form %} |
|||
{% endblock detail_content %} |
@ -0,0 +1,9 @@ |
|||
{% extends "crud/detail.html" %} |
|||
{% load i18n %} |
|||
{% block actions %} |
|||
<div class="actions btn-group pull-right" role="group"> |
|||
<a href="{% url 'protocoloadm:documentoadministrativo_detail' root_pk %}" class="btn btn-default">{% trans 'Início' %}</a> |
|||
<a href="{{ view.update_url }}" class="btn btn-default">{% trans 'Editar' %}</a> |
|||
<a href="{{ view.delete_url }}" class="btn btn-default">{% trans 'Excluir' %}</a> |
|||
</div> |
|||
{% endblock actions %} |
@ -1,84 +0,0 @@ |
|||
{% extends "crud/detail.html" %} |
|||
{% load i18n %} |
|||
|
|||
{% block detail_content %} |
|||
|
|||
{% if form.errors %} |
|||
<div class="alert-box alert"> |
|||
<ul> |
|||
{% for field in form %} |
|||
{% if field.errors %} |
|||
{% if field.label == 'votacao_aberta' %} |
|||
<li>Já existe uma matéria com a votação aberta!<br /> |
|||
Para abrir outra, termine ou feche a votação existente!</li> |
|||
{% endif %} |
|||
{% endif %} |
|||
{% endfor %} |
|||
</ul> |
|||
</div> |
|||
{% endif %} |
|||
|
|||
Matérias da Ordem do Dia |
|||
<table class="table table-striped table-bordered"> |
|||
<thead class="thead-default"> |
|||
<tr> |
|||
<th>Matéria</th> |
|||
<th>Ementa</th> |
|||
<th>Resultado da Votação</th> |
|||
</tr> |
|||
</thead> |
|||
{% for m in materias_ordem %} |
|||
<tr> |
|||
<td> |
|||
{{m.numero}} - <a href="{% url 'sapl.sessao:materiaordemdia_edit' m.pk m.oid %}">{{m.titulo}}</a> |
|||
|
|||
</br> |
|||
<strong>Autor{{m.autor|length|pluralize:"es"}}</strong>: {{m.autor|join:', '}} |
|||
</td> |
|||
|
|||
<td>{{m.ementa|safe}}</td> |
|||
|
|||
<td> |
|||
{% if m.resultado %} |
|||
{% if m.tipo_votacao == 1 %} |
|||
<b><a href="{% url 'sapl.sessao:votacaosimbolicaedit' m.pk m.oid m.ordem_id %}">{{m.resultado}}</a></b> |
|||
{% elif m.tipo_votacao == 2 %} |
|||
<b><a href="{% url 'sapl.sessao:votacaonominaledit' m.pk m.oid m.ordem_id %}">{{m.resultado}}</a></b> |
|||
{% elif m.tipo_votacao == 3%} |
|||
<b><a href="{% url 'sapl.sessao:votacaosecretaedit' m.pk m.oid m.ordem_id %}">{{m.resultado}}</a></b> |
|||
{% endif %} |
|||
{% else %} |
|||
Matéria não votada <br /> |
|||
{% if m.votacao_aberta %} |
|||
{% if m.tipo_votacao == 1 %} |
|||
<b><a href="{% url 'sapl.sessao:votacaosimbolica' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b> |
|||
{% elif m.tipo_votacao == 2 %} |
|||
<b><a href="{% url 'sapl.sessao:votacaonominal' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b> |
|||
{% elif m.tipo_votacao == 3%} |
|||
<b><a href="{% url 'sapl.sessao:votacaosecreta' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b> |
|||
{% endif %} |
|||
{% else %} |
|||
<form method="POST" action="{% url 'sapl.sessao:materiaordemdia_list' object.pk %}"> |
|||
{% csrf_token %} |
|||
<input type="hidden" id="ordem_id" name="ordem_id" value="{{ m.ordem_id }}"> |
|||
<input type="submit" id="abrir-votacao" name="abrir-votacao" value="Abrir Votação" class="btn btn-primary"> |
|||
</form> |
|||
{% endif %} |
|||
{% endif %} |
|||
</td> |
|||
</tr> |
|||
{% endfor %} |
|||
</table> |
|||
</br> |
|||
|
|||
<form method="POST" action="{% url 'sapl.sessao:materiaordemdia_list' object.pk %}"> |
|||
{% csrf_token %} |
|||
<input type="hidden" name="error_message" id="error_message" /> |
|||
<a href="{% url 'sapl.sessao:materiaordemdia_create' object.pk %}" class="btn btn-primary">{% trans 'Adicionar Matérias' %}</a> |
|||
|
|||
<input type="submit" id="materia_reorder" name="materia_reorder" value="Reordenar Matérias da Ordem do Dia" class="btn btn-primary" /> |
|||
|
|||
<a href="{% url 'sapl.sessao:adicionar_varias_materias_ordem_dia' object.pk %}" value="Incluir Várias Matérias" class="btn btn-primary">{% trans 'Adicionar Várias Matérias' %}</a> |
|||
</form> |
|||
|
|||
{% endblock detail_content %} |
@ -0,0 +1,114 @@ |
|||
from django.apps import apps |
|||
from django.contrib.auth.models import Group, Permission, User |
|||
from django.contrib.contenttypes.models import ContentType |
|||
|
|||
|
|||
def cria_ou_reseta_grupo(nome): |
|||
grupo = Group.objects.get_or_create(name=nome)[0] |
|||
for p in list(grupo.permissions.all()): |
|||
grupo.permissions.remove(p) |
|||
return grupo |
|||
|
|||
|
|||
def cria_usuario(nome, grupo): |
|||
nome_usuario = nome |
|||
usuario = User.objects.get_or_create(username=nome_usuario)[0] |
|||
usuario.set_password('interlegis') |
|||
usuario.save() |
|||
grupo.user_set.add(usuario) |
|||
|
|||
|
|||
def cria_grupos_permissoes(): |
|||
|
|||
nomes_apps = ['base', 'parlamentares', 'comissoes', |
|||
'materia', 'norma', 'sessao', 'painel'] |
|||
|
|||
permissoes = {app: list(Permission.objects.filter( |
|||
content_type__in=ContentType.objects.filter(app_label=app))) |
|||
for app in nomes_apps} |
|||
|
|||
# permissoes específicas para protocolo e documento administrativo |
|||
cts = ContentType.objects.filter(app_label='protocoloadm') |
|||
|
|||
# documento administrativo |
|||
permissoes['documento_administrativo'] = list( |
|||
Permission.objects.filter(content_type__in=cts)) |
|||
nome_grupo = 'Operador Administrativo' |
|||
grupo = cria_ou_reseta_grupo(nome_grupo) |
|||
for p in permissoes['documento_administrativo']: |
|||
grupo.permissions.add(p) |
|||
|
|||
nome_usuario = 'operador_administrativo' |
|||
cria_usuario(nome_usuario, grupo) |
|||
|
|||
# prolocolo administrativo |
|||
cts = cts.exclude(model__icontains='tramitacao').exclude( |
|||
model__icontains='documentoadministrativo') |
|||
permissoes['protocoloadm'] = list( |
|||
Permission.objects.filter(content_type__in=cts)) |
|||
nome_grupo = 'Operador de Protocolo Administrativo' |
|||
grupo = cria_ou_reseta_grupo(nome_grupo) |
|||
for p in permissoes['protocoloadm']: |
|||
grupo.permissions.add(p) |
|||
|
|||
nome_usuario = 'operador_protocoloadm' |
|||
cria_usuario(nome_usuario, grupo) |
|||
|
|||
# permissoes do base |
|||
cts = ContentType.objects.filter(app_label='base') |
|||
permissoes['base'] = list( |
|||
Permission.objects.filter(content_type__in=cts)) |
|||
|
|||
for nome_app in nomes_apps: |
|||
|
|||
if nome_app not in {'base', 'parlamentares'}: |
|||
# Elimina casos especificos |
|||
|
|||
# Cria Grupo |
|||
nome_grupo = 'Operador de %s' % apps.get_app_config( |
|||
nome_app).verbose_name |
|||
grupo = cria_ou_reseta_grupo(nome_grupo) |
|||
|
|||
# Elimina o acesso a proposicoes pelo Operador de Matérias |
|||
if nome_app == 'materia': |
|||
cts = ContentType.objects.filter( |
|||
app_label='materia').exclude(model='proposicao') |
|||
permissoes['materia'] = list( |
|||
Permission.objects.filter(content_type__in=cts)) |
|||
|
|||
# Configura as permissoes |
|||
for p in permissoes[nome_app]: |
|||
grupo.permissions.add(p) |
|||
|
|||
# Cria o Usuario |
|||
nome_usuario = 'operador_%s' % nome_app |
|||
usuario = User.objects.get_or_create(username=nome_usuario)[0] |
|||
usuario.set_password('interlegis') |
|||
usuario.save() |
|||
grupo.user_set.add(usuario) |
|||
|
|||
# Operador Geral |
|||
grupo_geral = cria_ou_reseta_grupo('Operador Geral') |
|||
for lista in permissoes.values(): |
|||
for p in lista: |
|||
grupo_geral.permissions.add(p) |
|||
|
|||
nome_usuario = 'operador_geral' |
|||
cria_usuario(nome_usuario, grupo_geral) |
|||
|
|||
# Autor |
|||
perms_autor = [] |
|||
perms_autor.append(Permission.objects.get(name='Can add Proposição')) |
|||
perms_autor.append(Permission.objects.get(name='Can change Proposição')) |
|||
perms_autor.append(Permission.objects.get(name='Can delete Proposição')) |
|||
|
|||
# Configura Permissoes Autor |
|||
grupo = cria_ou_reseta_grupo('Autor') |
|||
for p in perms_autor: |
|||
grupo.permissions.add(p) |
|||
|
|||
nome_usuario = 'operador_autor' |
|||
cria_usuario(nome_usuario, grupo_geral) |
|||
|
|||
if __name__ == '__main__': |
|||
cria_grupos_permissoes() |
@ -0,0 +1,47 @@ |
|||
import pytest |
|||
from django.apps import apps |
|||
from django.contrib.auth.models import Group, Permission |
|||
from django.contrib.contenttypes.models import ContentType |
|||
|
|||
from inicializa_grupos_autorizacoes import cria_grupos_permissoes |
|||
|
|||
pytestmark = pytest.mark.django_db |
|||
|
|||
apps_com_permissao_padrao = [ |
|||
'comissoes', 'norma', 'sessao', 'painel'] |
|||
|
|||
|
|||
@pytest.mark.parametrize('app_label', apps_com_permissao_padrao) |
|||
def test_grupo_padrao_tem_permissoes_sobre_todo_o_app(app_label): |
|||
|
|||
app = apps.get_app_config(app_label) |
|||
|
|||
# código testado |
|||
cria_grupos_permissoes() |
|||
|
|||
def gerar_permissoes(app): |
|||
for model in app.get_models(): |
|||
for op in ['add', 'change', 'delete']: |
|||
yield model, 'Can %s %s' % (op, model._meta.verbose_name) |
|||
grupo = Group.objects.get(name='Operador de %s' % app.verbose_name) |
|||
esperado = set(gerar_permissoes(app)) |
|||
|
|||
real = set((p.content_type.model_class(), p.name) |
|||
for p in grupo.permissions.all()) |
|||
assert real == esperado |
|||
|
|||
|
|||
@pytest.mark.parametrize('app_label', apps_com_permissao_padrao) |
|||
def test_permissoes_extras_sao_apagadas(app_label): |
|||
|
|||
app = apps.get_app_config(app_label) |
|||
grupo = Group.objects.create(name='Operador de %s' % app.verbose_name) |
|||
|
|||
permissao_errada = Permission.objects.create( |
|||
name='STUB', content_type=ContentType.objects.first()) |
|||
grupo.permissions.add(permissao_errada) |
|||
|
|||
# código testado |
|||
cria_grupos_permissoes() |
|||
|
|||
assert not grupo.permissions.filter(id=permissao_errada.id).exists() |
Loading…
Reference in new issue