mirror of https://github.com/interlegis/sigi.git
Sesostris Vieira
3 years ago
28 changed files with 1569 additions and 114 deletions
File diff suppressed because one or more lines are too long
@ -0,0 +1,12 @@ |
|||||
|
from django.urls import path |
||||
|
from sigi.apps.ocorrencias import views |
||||
|
|
||||
|
urlpatterns = [ |
||||
|
path("painel/", views.painel_ocorrencias, name="painel-ocorrencias"), |
||||
|
path("convenio/painel/", views.painel_convenio, name="painel-convenio"), |
||||
|
path( |
||||
|
"convenio/painel/<int:ocorrencia_id>/", |
||||
|
views.painel_convenio, |
||||
|
name="painel-convenio", |
||||
|
), |
||||
|
] |
@ -0,0 +1,60 @@ |
|||||
|
# Generated by Django 4.0.5 on 2022-07-07 21:51 |
||||
|
|
||||
|
import django.core.serializers.json |
||||
|
from django.db import migrations, models |
||||
|
import django.db.models.deletion |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('convenios', '0031_alter_projeto_modelo_minuta_and_more'), |
||||
|
('ocorrencias', '0008_remove_categoria_setor_responsavel'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterModelOptions( |
||||
|
name='comentario', |
||||
|
options={'ordering': ['-data_criacao'], 'verbose_name': 'comentário', 'verbose_name_plural': 'comentários'}, |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='categoria', |
||||
|
name='projeto', |
||||
|
field=models.ForeignKey(blank=True, limit_choices_to=models.Q(models.Q(('texto_oficio', ''), _negated=True), models.Q(('modelo_minuta', ''), _negated=True)), null=True, on_delete=django.db.models.deletion.PROTECT, to='convenios.projeto', verbose_name='projeto'), |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='categoria', |
||||
|
name='tipo', |
||||
|
field=models.CharField(choices=[('C', 'Solicitação de convênio (ACT)'), ('O', 'Outras')], default='O', max_length=1, verbose_name='Tipo de solicitação'), |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='comentario', |
||||
|
name='interno', |
||||
|
field=models.BooleanField(default=False, verbose_name='Comentário interno'), |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='ocorrencia', |
||||
|
name='casa_brasao', |
||||
|
field=models.ImageField(blank=True, null=True, upload_to='ocorrencias/img/', verbose_name='brasão da casa'), |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='ocorrencia', |
||||
|
name='casa_foto', |
||||
|
field=models.ImageField(blank=True, editable=False, null=True, upload_to='ocorrencias/img/', verbose_name='foto da Casa'), |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='ocorrencia', |
||||
|
name='infos', |
||||
|
field=models.JSONField(blank=True, editable=False, encoder=django.core.serializers.json.DjangoJSONEncoder, null=True, verbose_name='dados estruturados'), |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='ocorrencia', |
||||
|
name='processo_sigad', |
||||
|
field=models.CharField(blank=True, max_length=20, verbose_name='Nº processo SIGAD'), |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='tipocontato', |
||||
|
name='ind_site', |
||||
|
field=models.BooleanField(default=False, verbose_name='Contato pelo SIGI'), |
||||
|
), |
||||
|
] |
@ -0,0 +1,69 @@ |
|||||
|
#content { |
||||
|
display: block; |
||||
|
} |
||||
|
|
||||
|
#container.indent { |
||||
|
padding-left: unset; |
||||
|
} |
||||
|
|
||||
|
.main-content { |
||||
|
margin-top: 24px; |
||||
|
} |
||||
|
|
||||
|
.card .card-content p { |
||||
|
margin: 0 0 1em 0; |
||||
|
} |
||||
|
|
||||
|
.search-result { |
||||
|
padding: 3em; |
||||
|
} |
||||
|
|
||||
|
.search-result-item { |
||||
|
display: list-item; |
||||
|
list-style-type: none; |
||||
|
padding: 3px 3px 3px 20px; |
||||
|
font-weight: bold; |
||||
|
} |
||||
|
|
||||
|
.tab-panel { |
||||
|
background-color: #fff; |
||||
|
height: 100%; |
||||
|
} |
||||
|
|
||||
|
.tab-content { |
||||
|
padding: 10px 24px; |
||||
|
height: 100%; |
||||
|
overflow-y: auto; |
||||
|
scrollbar-width: thin; |
||||
|
} |
||||
|
|
||||
|
.tab-content::-webkit-scrollbar { |
||||
|
width: 3px; |
||||
|
background-color: #fff; |
||||
|
} |
||||
|
|
||||
|
.tab-content::-webkit-scrollbar-track { |
||||
|
-webkit-box-shadow: inset 0 0 2px #fff; |
||||
|
background-color: #fff; |
||||
|
border-radius: 10px; |
||||
|
} |
||||
|
|
||||
|
.tab-content::-webkit-scrollbar-thumb { |
||||
|
border-radius: 10px; |
||||
|
-webkit-box-shadow: inset 0 0 2px var(--main-hover-color); |
||||
|
background-color: var(--main-hover-color); |
||||
|
} |
||||
|
|
||||
|
span.title { |
||||
|
color: var(--main-bg-color); |
||||
|
border-color: var(--main-bg-color); |
||||
|
display: block; |
||||
|
line-height: 32px; |
||||
|
margin-bottom: 8px; |
||||
|
font-size: 24px; |
||||
|
font-weight: 300; |
||||
|
} |
||||
|
|
||||
|
.dropdown-content.select-dropdown { |
||||
|
top: 0px !important; |
||||
|
} |
@ -0,0 +1,53 @@ |
|||||
|
{% extends "ocorrencias/convenio/base_convenio.html" %} |
||||
|
{% load static i18n %} |
||||
|
|
||||
|
{% block content %} |
||||
|
<div class="main-content"> |
||||
|
<div class="row"> |
||||
|
<div class="col s12"> |
||||
|
<div class="card"> |
||||
|
<div class="card-content"> |
||||
|
<span class="card-title">{% trans "Solicitar convênio" %}</span> |
||||
|
{% blocktrans %} |
||||
|
<p>Para que uma Casa Legislativa possa utilizar, gratuitamente, os |
||||
|
serviços do Interlegis / Senado Federal, é necessário formalizar |
||||
|
um convênio, na forma de um Acordo de Cooperação Técnica (ACT), |
||||
|
na forma da lei <a href="http://www.planalto.gov.br/ccivil_03/_ato2019-2022/2021/lei/L14133.htm">Lei Nº 14.133/2021</a> |
||||
|
e da lei <a href="http://www.planalto.gov.br/ccivil_03/leis/l8666cons.htm">Lei Nº 8.666/1993</a>. |
||||
|
</p> |
||||
|
<p>Para solicitar o ACT, serão necessárias as seguintes informações:</p> |
||||
|
<ul class="browser-default"> |
||||
|
<li>Dados cadastrais da Casa Legislativa, como CNPJ, endereço, e-mail, telefone.</li> |
||||
|
<li>Dados cadastrais do Presidente, como nome, CPF, identidade, e-mail, telefone, redes sociais.</li> |
||||
|
<li>Designação de um servidor como Contato Interlegis.</li> |
||||
|
</ul> |
||||
|
{% endblocktrans %} |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="row"> |
||||
|
<div class="col s12"> |
||||
|
<div class="card"> |
||||
|
<div class="card-content"> |
||||
|
<span class="card-title">{% trans "Identifique sua Casa Legislativa" %}</span> |
||||
|
<p>{% trans "Informe o nome do município ou Estado da sua Casa Legislativa" %}:</p> |
||||
|
<div class="input-field"> |
||||
|
<i class="material-icons prefix">search</i> |
||||
|
<input type="text" class="search-text" placeholder="{% trans "Procurar" %}" aria-label="{% trans "Procurar" %}" data-source="{% url 'openmapsearch' %}" data-param="q"> |
||||
|
<div class="search-result hide" data-item-click="seleciona_casa"></div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
{% endblock %} |
||||
|
|
||||
|
{% block footer %} |
||||
|
{{ block.super }} |
||||
|
<script> |
||||
|
function seleciona_casa(data) { |
||||
|
$(location).attr("href", `{% url 'ocorrencias-seleciona-casa' %}?casa_id=${data.id}`); |
||||
|
} |
||||
|
</script> |
||||
|
{% endblock %} |
@ -0,0 +1,48 @@ |
|||||
|
{% extends "admin/index.html" %} |
||||
|
{% load static i18n %} |
||||
|
|
||||
|
{% block extrastyle %} |
||||
|
{{ block.super }} |
||||
|
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.0/themes/smoothness/jquery-ui.css" /> |
||||
|
<link rel="stylesheet" href="{% static "admin/css/changelists.css" %}" type="text/css" /> |
||||
|
<link rel="stylesheet" href="{% static 'ocorrencias/css/ocorrencia.css' %}" type="text/css" /> |
||||
|
{% endblock %} |
||||
|
|
||||
|
{% block extrahead %} |
||||
|
{{ block.super }} |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
||||
|
<meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8" /> |
||||
|
<meta name="robots" content="NONE,NOARCHIVE" /> |
||||
|
<script type="text/javascript"> |
||||
|
//<![CDATA[ |
||||
|
window.__admin_media_prefix__ = "{% filter escapejs %}{% static "admin / " %}{% endfilter %}"; |
||||
|
//]]> |
||||
|
</script> |
||||
|
<script src="https://code.jquery.com/jquery-3.6.0.min.js" |
||||
|
integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script> |
||||
|
<script src="https://code.jquery.com/ui/1.13.1/jquery-ui.min.js" integrity="sha256-eTyxS0rkjpLEo16uXTS0uVCS4815lc40K2iVpWDvdSY=" crossorigin="anonymous"></script> |
||||
|
<script type="text/javascript" src="{% static "admin/js/core.js" %}"></script> |
||||
|
{% endblock %} |
||||
|
|
||||
|
{% block usertools %} |
||||
|
<div id="user-tools"> |
||||
|
<a href="/">{% trans "Início" %}</a> |
||||
|
<a href="{% url 'admin:index' %}">{% trans "Entrar" %}</a> |
||||
|
</div> |
||||
|
{% endblock %} |
||||
|
|
||||
|
{% block side_nav %} |
||||
|
{% endblock %} |
||||
|
|
||||
|
{% block content %} |
||||
|
<div id="content"> |
||||
|
<!-- content_page --> |
||||
|
</div> |
||||
|
{% endblock %} |
||||
|
|
||||
|
{% block sidebar %}{% endblock %} |
||||
|
|
||||
|
{% block footer %} |
||||
|
{{ block.super }} |
||||
|
<script type="text/javascript" src="{% static 'js/search.js' %}"></script> |
||||
|
{% endblock %} |
@ -0,0 +1,216 @@ |
|||||
|
{% extends "ocorrencias/convenio/base_convenio.html" %} |
||||
|
{% load static i18n %} |
||||
|
|
||||
|
{% block content %} |
||||
|
<div class="main-content"> |
||||
|
<div class="row"> |
||||
|
<div class="col s12"> |
||||
|
<span class="title">{{ ocorrencia.assunto }}</span> |
||||
|
<p>{% blocktrans with name=ocorrencia.casa_legislativa.nome %}A solicitação da {{ name }} está na nossa base de dados {% endblocktrans %}</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="row"> |
||||
|
<div class="col s12"> |
||||
|
<ul class="tabs"> |
||||
|
{% if 'casa_legislativa' not in infos.aplicados %}<li class="tab col"><a href="#casa"{% if 'casa_legislativa' not in infos %} class="active"{% endif %}>{% trans "Casa legislativa" %}</a></li>{% endif %} |
||||
|
{% if 'presidente' not in infos.aplicados %}<li class="tab col"><a href="#presidente"{% if 'presidente' not in infos %} class="active"{% endif %}>{% trans "Presidente" %}</a></li>{% endif %} |
||||
|
{% if 'contato' not in infos.aplicados %}<li class="tab col"><a href="#contato"{% if 'contato' not in infos %} class="active"{% endif %}>{% trans "Contato Interlegis" %}</a></li>{% endif %} |
||||
|
<li class="tab col"><a href="#documentos"{% if 'documento' not in infos %} class="active"{% endif %}>{% trans "Documentos" %}</a></li> |
||||
|
<li class="tab col"><a href="#resumo"{% if 'documento' in infos %} class="active"{% endif %}>{% trans "Resumo" %}</a></li> |
||||
|
</ul> |
||||
|
</div> |
||||
|
{% if 'casa_legislativa' not in infos.aplicados %} |
||||
|
<div id="casa" class="col s12"> |
||||
|
<div class="tab-panel"> |
||||
|
<div class="tab-content"> |
||||
|
<form action="" method="post" name="casa_legislativa" enctype="multipart/form-data"> |
||||
|
{% csrf_token %} |
||||
|
<div class="card"> |
||||
|
<div class="card-content"> |
||||
|
<span class="card-title"> |
||||
|
{% trans "Atualizar as informações cadastrais da Casa" %} |
||||
|
</span> |
||||
|
{{ casa_form }} |
||||
|
<div class="card-action"> |
||||
|
<button class="btn waves-effect waves-light" type="submit" name="salva_casa"> |
||||
|
{% trans "Save" %} |
||||
|
<i class="material-icons right">send</i> |
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
{% endif %} |
||||
|
{% if 'presidente' not in infos.aplicados %} |
||||
|
<div id="presidente" class="col s12"> |
||||
|
<div class="tab-panel"> |
||||
|
<div class="tab-content"> |
||||
|
<form action="" method="post" name="presidente"> |
||||
|
{% csrf_token %} |
||||
|
<div class="card"> |
||||
|
<div class="card-content"> |
||||
|
<span class="card-title"> |
||||
|
{% trans "Selecionar e atualizar o presidente" %} |
||||
|
</span> |
||||
|
{{ presidente_form }} |
||||
|
<div class="card-action"> |
||||
|
<button class="btn waves-effect waves-light" type="submit" name="salva_presidente"> |
||||
|
{% trans "Save" %} |
||||
|
<i class="material-icons right">send</i> |
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
{% endif %} |
||||
|
{% if 'contato' not in infos.aplicados %} |
||||
|
<div id="contato" class="col s12 tabpanel"> |
||||
|
<div class="tab-panel"> |
||||
|
<div class="tab-content"> |
||||
|
<form action="" method="post" name="presidente"> |
||||
|
{% csrf_token %} |
||||
|
<div class="card"> |
||||
|
<div class="card-content"> |
||||
|
<span class="card-title">{% trans "Contato Interlegis" %}</span> |
||||
|
<p>Designe um servidor da Casa Legislativa para ser o contato técnico junto ao Interlegis.</p> |
||||
|
<p>Este servidor será o responsável por acompanhar a formalização do ACT, prestar informações e esclarecimentos, e solicitar a instalação de produtos e serviços ao Interlegis.</p> |
||||
|
{{ contato_form }} |
||||
|
<div class="card-action"> |
||||
|
<button class="btn waves-effect waves-light" type="submit" name="salva_contato"> |
||||
|
{% trans "Save" %} |
||||
|
<i class="material-icons right">send</i> |
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
{% endif %} |
||||
|
<div id="documentos" class="col s12 tabpanel"> |
||||
|
<div class="tab-panel"> |
||||
|
<div class="tab-content"> |
||||
|
<form action="" method="post" name="presidente" enctype="multipart/form-data"> |
||||
|
{% csrf_token %} |
||||
|
<div class="card"> |
||||
|
<div class="card-content"> |
||||
|
<span class="card-title">{% trans "Documentos de formalização" %}</span> |
||||
|
<p>Os documentos para formalização do convênio foram gerados e estão disponíveis abaixo.</p> |
||||
|
<p>Você precisa realizar os seguintes passos para que possamos dar prosseguimento ao processo:</p> |
||||
|
<ul> |
||||
|
<li>Baixe (dowload) o ofício de solicitação do convênio.</li> |
||||
|
<li>Providencie que o ofício de solicitação seja assinado pelo Presidente da Casa. Se for possível, assine o PDF com uma assinatura digital. Se o Presidente não possui uma assinatura digital válida, pode-se imprimir o documento, assinar com caneta azul, e escanear o documento assinado.</li> |
||||
|
<li>Suba (upload) o ofício assinado no campo Arquivo, abaixo, em formato PDF</li> |
||||
|
<li>O documento Minuta de ACT é a minuta do convênio que tramitará no Senado e está disponível para consulta e avaliação da consultoria jurídica da sua Casa Legislativa. Após assinatura do ACt pela diretoria do Senado, a cópia definitiva será enviada à sua Casa para colher também a assinatura do Presidente.</p> |
||||
|
</ul> |
||||
|
<p>Assim que recebermos o ofício devidamente assinado, iniciaremos o procedimento burocrático para formalização do convênio. Você poderá acompanhar a evolução deste processo nesta tela, na aba RESUMO</p> |
||||
|
<table class="striped"> |
||||
|
<thead> |
||||
|
<caption>Arquivos do processo</caption> |
||||
|
<tr> |
||||
|
<th>Descrição</th><th>Arquivo</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
{% for anexo in ocorrencia.anexo_set.all %} |
||||
|
<tr> |
||||
|
<td>{{ anexo.descricao }}</td> |
||||
|
<td><a href="{{ anexo.arquivo.url }}">{{ anexo.arquivo.name }}</a></td> |
||||
|
</tr> |
||||
|
{% endfor %} |
||||
|
</tbody> |
||||
|
</table> |
||||
|
{{ documento_form }} |
||||
|
<div class="card-action"> |
||||
|
<button class="btn waves-effect waves-light" type="submit" name="salva_documento"> |
||||
|
{% trans "Save" %} |
||||
|
<i class="material-icons right">send</i> |
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div id="resumo" class="col s12 tabpanel"> |
||||
|
<div class="tab-panel"> |
||||
|
<div class="tab-content"> |
||||
|
<form action="" method="post" name="comentario"> |
||||
|
{% csrf_token %} |
||||
|
<div class="card"> |
||||
|
<div class="card-content"> |
||||
|
<table> |
||||
|
<tr> |
||||
|
<th>{% trans "Casa legislativa" %}</th><td>{{ ocorrencia.casa_legislativa.nome }}</td> |
||||
|
<th>{% trans "Descrição" %}</th><td>{{ ocorrencia.descricao }}</td> |
||||
|
<th>{% trans "Solicitado em" %}</th><td>{{ ocorrencia.data_criacao|date:"DATE_FORMAT" }}</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<th>{% trans "Situação" %}</th><td>{{ ocorrencia.get_status_display }}</td> |
||||
|
<th>{% trans "Prioridade" %}</th><td>{{ ocorrencia.get_prioridade_display }}</td> |
||||
|
<th>{% trans "Última atualização" %}</th><td>{{ ocorrencia.data_modificacao|date:"DATE_FORMAT" }}</td> |
||||
|
</tr> |
||||
|
</table> |
||||
|
<table> |
||||
|
<thead> |
||||
|
<caption><span class="card-title">{% trans "Progresso do processo" %}</span></caption> |
||||
|
<tr><th>{% trans "Data" %}</th><th>{% trans "Descrição" %}</th><th>{% trans "Novo status" %}</th><th>{% trans "Registrado por" %}</th></tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
{% for comentario in ocorrencia.comentarios.all %} |
||||
|
{% if not comentario.interno %} |
||||
|
<tr> |
||||
|
<td>{{ comentario.data_criacao|date:"SHORT_DATE_FORMAT" }}</td> |
||||
|
<td>{{ comentario.descricao }}</td> |
||||
|
<td>{{ comentario.get_novo_status_display|default:"-" }}</td> |
||||
|
<td>{{ comentario.usuario }}</td> |
||||
|
</tr> |
||||
|
{% endif %} |
||||
|
{% empty %} |
||||
|
<tr><td colspan="4">{% trans "Aguardando andamento no Senado" %}</td></tr> |
||||
|
{% endfor %} |
||||
|
</tbody> |
||||
|
</table> |
||||
|
{{ comentario_form }} |
||||
|
<div class="card-action"> |
||||
|
<button class="btn waves-effect waves-light" type="submit" name="salva_comentario"> |
||||
|
{% trans "Comentar" %} |
||||
|
<i class="material-icons left">comment</i> |
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
{% endblock %} |
||||
|
|
||||
|
{% block footer %} |
||||
|
{{ block.super }} |
||||
|
<script> |
||||
|
$(document).ready(function() { |
||||
|
M.Tabs.init($('.tabs'), {swipeable: true}); |
||||
|
$("select#id_presidente-parlamentar").on("change", function() { |
||||
|
$.get("{% url 'parlamentar-data' %}", `id=${this.value}`, function(data) { |
||||
|
for(var campo of Object.keys(data[0].fields)) { |
||||
|
$(`#id_presidente-${campo}`).val(data[0].fields[campo]); |
||||
|
} |
||||
|
}) |
||||
|
}) |
||||
|
}); |
||||
|
function seleciona_casa(data) { |
||||
|
$(location).attr("href", `{% url 'ocorrencias-seleciona-casa' %}?casa_id=${data.id}`); |
||||
|
} |
||||
|
</script> |
||||
|
{% endblock %} |
@ -0,0 +1,40 @@ |
|||||
|
{% extends "admin/base_block.html" %} |
||||
|
{% load i18n %} |
||||
|
|
||||
|
{% block content %} |
||||
|
<h4>{% trans "Solicitações de convenio" %}</h4> |
||||
|
<table class="striped"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th>{% trans "Data abertura" %}</th> |
||||
|
<th>{% trans "Casa solicitante" %}</th> |
||||
|
<th>{% trans "Assunto" %}</th> |
||||
|
<th>{% trans "Comentários" %} |
||||
|
<th>{% trans "Situação" %}</th> |
||||
|
<th>{% trans "Detalhes" %}</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
{% for ocorrencia in ocorrencias %} |
||||
|
<tr> |
||||
|
<td>{{ ocorrencia.data_criacao|date:"SHORT_DATE_FORMAT" }}</td> |
||||
|
<td>{{ ocorrencia.casa_legislativa }}</td> |
||||
|
<td>{{ ocorrencia.assunto }}</td> |
||||
|
<td><span class="badge">{{ ocorrencia.comentarios.count }}</span></td> |
||||
|
<td> |
||||
|
<ul> |
||||
|
{% for key, value in ocorrencia.get_infos_details.items %} |
||||
|
<li> |
||||
|
<i class="material-icons {% if value.0 %}green-text{% else %}red-text{% endif %}">{% if value.0 %}done{% else %}clear{% endif %}</i> |
||||
|
{{ value.1 }} |
||||
|
</li> |
||||
|
{% endfor %} |
||||
|
</ul> |
||||
|
</td> |
||||
|
<td> |
||||
|
<a href="{% url 'painel-convenio' ocorrencia.id %}"><i class="material-icons">details</i></a> |
||||
|
</td> |
||||
|
{% endfor %} |
||||
|
</tbody> |
||||
|
</table> |
||||
|
{% endblock %} |
@ -0,0 +1,245 @@ |
|||||
|
{% extends "admin/base_block.html" %} |
||||
|
{% load i18n model_fields %} |
||||
|
|
||||
|
{% block content %} |
||||
|
<div class="row"> |
||||
|
<div class="col s12"> |
||||
|
<form action="" method="post" name="ocorrencia"> |
||||
|
{% csrf_token %} |
||||
|
<div class="card"> |
||||
|
<div class="card-content"> |
||||
|
<span class="card-title">{% trans "Resumo da ocorrência" %}</span> |
||||
|
<table> |
||||
|
<tbody> |
||||
|
{% for campo in campos_ocorrencia %} |
||||
|
<tr> |
||||
|
<th>{{ ocorrencia|verbose_name:campo|capfirst }}</th> |
||||
|
<td>{{ ocorrencia|field_value:campo|default:"-" }}</td> |
||||
|
</tr> |
||||
|
{% endfor %} |
||||
|
</tbody> |
||||
|
</table> |
||||
|
{{ ocorrencia_form }} |
||||
|
</div> |
||||
|
<div class="card-action"> |
||||
|
<button class="btn waves-effect waves-light" type="submit" name="salva_ocorrencia"> |
||||
|
{% trans "Salvar" %} |
||||
|
<i class="material-icons left">save</i> |
||||
|
</button> |
||||
|
<a class="btn waves-effect waves-light white-text" href="{% url 'painel-convenio' %}">{% trans "Voltar ao painel" %}</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
{% if infos.aplicados %} |
||||
|
{% if 'casa_legislativa' in infos.aplicados and 'presidente' in infos.aplicados and 'contato' in infos.aplicados %} |
||||
|
<p class=""> {% trans "Todas as alterações foram aplicadas" %}</p> |
||||
|
{% else %} |
||||
|
<ul> |
||||
|
{% if 'casa_legislativa' in infos.aplicados %} |
||||
|
<li>As alterações nos dados da Casa Legislativa foram aplicadas</li> |
||||
|
{% endif %} |
||||
|
{% if 'presidente' in infos.aplicados %} |
||||
|
<li>As alterações nos dados do Presidente foram aplicadas</li> |
||||
|
{% endif %} |
||||
|
{% if 'contato' in infos.aplicados %} |
||||
|
<li>As alterações nos dados do Contato Interlegis foram aplicadas</li> |
||||
|
{% endif %} |
||||
|
</ul> |
||||
|
{% endif %} |
||||
|
{% endif %} |
||||
|
|
||||
|
{% if 'casa_legislativa' not in infos.aplicados %} |
||||
|
<div class="row"> |
||||
|
<div class="col s12"> |
||||
|
<div class="card"> |
||||
|
<div class="card-content"> |
||||
|
<span class="card-title">{% trans "Casa legislativa" %}</span> |
||||
|
<table class="striped"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th>{% trans "Campo" %}</th> |
||||
|
<th>{% trans "Valor original" %}</th> |
||||
|
<th>{% trans "Valor alterado" %}</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
{% for key, value in infos.casa_legislativa.items %} |
||||
|
<tr> |
||||
|
<th>{{ casa|verbose_name:key|capfirst }}</th> |
||||
|
<td>{{ casa|field_value:key|default:"-" }}</td> |
||||
|
<td>{{ value|default:"-" }}</td> |
||||
|
</tr> |
||||
|
{% endfor %} |
||||
|
<tr> |
||||
|
<th>Foto</th> |
||||
|
<td>{% if casa.foto %}<img src="{{ casa.foto.url }}" width=120 height=120/>{% else %}{% trans "Sem imagem" %}{% endif %}</td> |
||||
|
<td>{% if ocorrencia.casa_foto %}<img src="{{ ocorrencia.casa_foto.url }}" width=120 height=120/>{% else %}{% trans "Sem alteração" %}{% endif %} |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<th>Brasão</th> |
||||
|
<td>{% if casa.brasao %}<img src="{{ casa.brasao.url }}" width=120 height=120/>{% else %}{% trans "Sem imagem" %}{% endif %}</td> |
||||
|
<td>{% if ocorrencia.casa_brasao %}<img src="{{ ocorrencia.casa_brasao.url }}" width=120 height=120/>{% else %}{% trans "Sem alteração" %}{% endif %} |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</table> |
||||
|
</div> |
||||
|
<div class="card-action"> |
||||
|
<a class="btn waves-effect waves-light white-text" href="?apply=casa">{% trans "Aplicar mudanças na Casa Legislativa" %}</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
{% endif %} |
||||
|
|
||||
|
{% if 'presidente' not in infos.aplicados %} |
||||
|
<div class="row"> |
||||
|
<div class="col s12"> |
||||
|
<div class="card"> |
||||
|
<div class="card-content"> |
||||
|
<span class="card-title">{% trans "Presidente" %}</span> |
||||
|
{% if casa.presidente %} |
||||
|
<p>{% trans "Presidente anterior" %}: {{ casa.presidente.nome_completo }}</p> |
||||
|
{% else %} |
||||
|
<p>{% trans "A Casa não tinha Presidente definido anteriormente" %}</p> |
||||
|
{% endif %} |
||||
|
<p>{% trans "Presidente selecionado" %}: {{ novo_presidente.nome_completo }}</p> |
||||
|
<table class="striped"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th>{% trans "Campo" %}</th> |
||||
|
<th>{% trans "Valor original" %}</th> |
||||
|
<th>{% trans "Valor alterado" %}</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
{% for key, value in infos.presidente.items %} |
||||
|
<tr> |
||||
|
<th>{{ novo_presidente|verbose_name:key|capfirst }}</th> |
||||
|
<td>{{ novo_presidente|field_value:key|default:"-" }}</td> |
||||
|
<td>{{ value|default:"-" }}</td> |
||||
|
</tr> |
||||
|
{% endfor %} |
||||
|
</tbody> |
||||
|
</table> |
||||
|
</div> |
||||
|
<div class="card-action"> |
||||
|
<a class="btn waves-effect waves-light white-text" href="?apply=presidente">{% trans "Aplicar mudanças no Parlamentar" %}</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
{% endif %} |
||||
|
|
||||
|
{% if 'contato' not in infos.aplicados %} |
||||
|
<div class="row"> |
||||
|
<div class="col s12"> |
||||
|
<div class="card"> |
||||
|
<div class="card-content"> |
||||
|
<span class="card-title">{% trans "Contato Interlegis" %}</span> |
||||
|
<table class="striped"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th>{% trans "Campo" %}</th> |
||||
|
<th>{% trans "Valor original" %}</th> |
||||
|
<th>{% trans "Valor alterado" %}</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
{% for key, value in infos.contato.items %} |
||||
|
<tr> |
||||
|
<th>{{ contato|verbose_name:key|capfirst }}</th> |
||||
|
<td>{{ contato|field_value:key|default:"-" }}</td> |
||||
|
<td>{{ value|default:"-" }}</td> |
||||
|
</tr> |
||||
|
{% endfor %} |
||||
|
</tbody> |
||||
|
</table> |
||||
|
</div> |
||||
|
<div class="card-action"> |
||||
|
<a class="btn waves-effect waves-light white-text" href="?apply=contato">{% trans "Aplicar mudanças no Contato Interlegis" %}</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
{% endif %} |
||||
|
|
||||
|
<div class="row"> |
||||
|
<div class="col s12"> |
||||
|
<div class="card"> |
||||
|
<div class="card-content"> |
||||
|
<span class="card-title">{% trans "Anexos (documentos)" %}</span> |
||||
|
<table class="striped"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th>{% trans "Data de inclusão" %}</th> |
||||
|
<th>{% trans "Descrição" %}</th> |
||||
|
<th>{% trans "Arquivo" %}</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
{% for anexo in ocorrencia.anexo_set.all %} |
||||
|
<tr> |
||||
|
<th>{{ anexo.data_pub|date:"SHORT_DATE_FORMAT" }}</th> |
||||
|
<td>{{ anexo.descricao|default:"-" }}</td> |
||||
|
<td><a href="{{ anexo.arquivo.url }}">{{ anexo.arquivo.name }}</a></td> |
||||
|
</tr> |
||||
|
{% endfor %} |
||||
|
</tbody> |
||||
|
</table> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="row"> |
||||
|
<div class="col s12"> |
||||
|
<div class="card"> |
||||
|
<div class="card-content"> |
||||
|
<span class="card-title">{% trans "Comentários" %}</span> |
||||
|
<table class="striped"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th>{% trans "Data" %}</th> |
||||
|
<th>{% trans "Descrição" %}</th> |
||||
|
<th>{% trans "Servidor" %}</th> |
||||
|
<th>{% trans "Novo status" %}</th> |
||||
|
<th>{% trans "Visibilidade" %}</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
{% for comentario in ocorrencia.comentarios.all %} |
||||
|
<tr> |
||||
|
<th>{{ comentario.data_criacao|date:"SHORT_DATETIME_FORMAT" }}</th> |
||||
|
<td>{{ comentario.descricao|default:"-" }}</td> |
||||
|
<td>{{ comentario.usuario.nome_completo|default:"-" }}</td> |
||||
|
<td>{{ comentario.get_novo_status_display|default:"-" }}</td> |
||||
|
<td> |
||||
|
{% if comentario.interno %} |
||||
|
<i class="material-icons green-text">visibility_off</i> Interno |
||||
|
{% else %} |
||||
|
<i class="material-icons red-text">visibility</i> Público |
||||
|
{% endif %} |
||||
|
</td> |
||||
|
</tr> |
||||
|
{% endfor %} |
||||
|
</tbody> |
||||
|
</table> |
||||
|
</div> |
||||
|
<div class="card-action"> |
||||
|
<form action="" method="post" name="comentario"> |
||||
|
{% csrf_token %} |
||||
|
{{ comentario_form }} |
||||
|
<button class="btn waves-effect waves-light" type="submit" name="salva_comentario"> |
||||
|
{% trans "Comentar" %} |
||||
|
<i class="material-icons left">comment</i> |
||||
|
</button> |
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
{% endblock %} |
@ -0,0 +1,53 @@ |
|||||
|
{% extends "ocorrencias/convenio/base_convenio.html" %} |
||||
|
{% load static i18n %} |
||||
|
|
||||
|
{% block content %} |
||||
|
<div class="main-content"> |
||||
|
<div class="row"> |
||||
|
<div class="col s12"> |
||||
|
<div class="card"> |
||||
|
<div class="card-content"> |
||||
|
<span class="card-title">{% trans "Solicitar convênio" %}</span> |
||||
|
{% blocktrans %} |
||||
|
<p>Para que uma Casa Legislativa possa utilizar, gratuitamente, os |
||||
|
serviços do Interlegis / Senado Federal, é necessário formalizar |
||||
|
um convênio, na forma de um Acordo de Cooperação Técnica (ACT), |
||||
|
na forma da lei <a href="http://www.planalto.gov.br/ccivil_03/_ato2019-2022/2021/lei/L14133.htm">Lei Nº 14.133/2021</a> |
||||
|
e da lei <a href="http://www.planalto.gov.br/ccivil_03/leis/l8666cons.htm">Lei Nº 8.666/1993</a>. |
||||
|
</p> |
||||
|
<p>Para solicitar o ACT, serão necessárias as seguintes informações:</p> |
||||
|
<ul class="browser-default"> |
||||
|
<li>Dados cadastrais da Casa Legislativa, como CNPJ, endereço, e-mail, telefone.</li> |
||||
|
<li>Dados cadastrais do Presidente, como nome, CPF, identidade, e-mail, telefone, redes sociais.</li> |
||||
|
<li>Designação de um servidor como Contato Interlegis.</li> |
||||
|
</ul> |
||||
|
{% endblocktrans %} |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="row"> |
||||
|
<div class="col s12"> |
||||
|
<div class="card"> |
||||
|
<div class="card-content"> |
||||
|
<span class="card-title">{% trans "Identifique sua Casa Legislativa" %}</span> |
||||
|
<p>{% trans "Informe o nome do município ou Estado da sua Casa Legislativa" %}:</p> |
||||
|
<div class="input-field"> |
||||
|
<i class="material-icons prefix">search</i> |
||||
|
<input type="text" class="search-text" placeholder="{% trans "Procurar" %}" aria-label="{% trans "Procurar" %}" data-source="{% url 'openmapsearch' %}" data-param="q"> |
||||
|
<div class="search-result hide" data-item-click="seleciona_casa"></div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
{% endblock %} |
||||
|
|
||||
|
{% block footer %} |
||||
|
{{ block.super }} |
||||
|
<script> |
||||
|
function seleciona_casa(data) { |
||||
|
$(location).attr("href", `{% url 'ocorrencias-seleciona-casa' %}?casa_id=${data.id}`); |
||||
|
} |
||||
|
</script> |
||||
|
{% endblock %} |
@ -0,0 +1,18 @@ |
|||||
|
# Generated by Django 4.0.5 on 2022-06-30 21:44 |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('servidores', '0009_servidor_cargo'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AddField( |
||||
|
model_name='servidor', |
||||
|
name='sigi', |
||||
|
field=models.BooleanField(default=False, editable=False, verbose_name='Servidor SIGI'), |
||||
|
), |
||||
|
] |
@ -0,0 +1,3 @@ |
|||||
|
#content { |
||||
|
display: block; |
||||
|
} |
@ -0,0 +1,7 @@ |
|||||
|
{% extends "admin/base_site.html" %} |
||||
|
{% load static %} |
||||
|
|
||||
|
{% block extrastyle %} |
||||
|
{{ block.super }} |
||||
|
<link rel="stylesheet" type="text/css" href="{% static 'css/base_block.css' %}"> |
||||
|
{% endblock %} |
Loading…
Reference in new issue