mirror of https://github.com/interlegis/sapl.git
Browse Source
* votacao em bloco * votacao em bloco - em andamento * feita a tela de votacao em bloco * feita a tela de votacao em bloco * votacao em bloco- em andamento * inicio da nova tela da votacao em bloco - em andamento * inicio da nova tela da votacao em bloco - em andamento * Tela de votacao em bloco simbolica. Em progresso. * tela votacao em bloco exibindo as informacoes corretas * Check all incluso para seleção de ordens desejadas. * inicio da tela de votacao para votacao em bloco ordem dia * Alteracoes na votacao em bloco * adicionado salvamento da votacao * correcoes na votacao e no checkbox de marcar todos * adicionada votacao em bloco nominal no expediente * inicio da votacao nominal em bloco * Tela votacao em bloco. * votacao nominal em bloco * pequenas mudancas * inicio da correcao de alguns bugs, como formulario invalido * correcao de erro quando nao ha presentes * correcoes de erros * cancelar votacao simbolica * correcoes diversas e insercao dos menus * Menu adicionado * votacao em bloco * ajusta menu e lança erro se root_pk ou object estiver faltando no contexto * ajusta contexto para votação em bloco no expedientepull/2179/head
Cesar Augusto de Carvalho
6 years ago
committed by
Edward
15 changed files with 3009 additions and 108 deletions
@ -0,0 +1,503 @@ |
|||||
|
.container-home { |
||||
|
position: relative; |
||||
|
padding: 2em 1.5em 1.5em 1.5em; |
||||
|
max-width: 1000px; |
||||
|
margin: 0 auto; } |
||||
|
.container-home a:hover { |
||||
|
color: #444; |
||||
|
-webkit-transition: 0.3s ease-in; |
||||
|
-moz-transition: 0.3s ease-in; |
||||
|
-o-transition: 0.3s ease-in; } |
||||
|
.container-home #homeIndex { |
||||
|
text-align: center; } |
||||
|
.container-home .homeBanner span { |
||||
|
color: white; |
||||
|
font-size: 32px; |
||||
|
font-weight: 600; |
||||
|
display: inline-block; |
||||
|
vertical-align: middle; |
||||
|
padding: 2px 45px 4px; |
||||
|
border: 2px solid; } |
||||
|
.container-home .homeBanner::after { |
||||
|
display: inline-block; |
||||
|
vertical-align: middle; |
||||
|
height: 100%; } |
||||
|
.container-home .homeBlock { |
||||
|
display: inline-block; |
||||
|
position: relative; |
||||
|
background-color: #F3F3F3; |
||||
|
width: 190px; |
||||
|
height: 260px; |
||||
|
margin: 3px; |
||||
|
text-align: center; |
||||
|
font-size: 0; |
||||
|
overflow: hidden; } |
||||
|
.container-home .homeBlock > a { |
||||
|
display: block; |
||||
|
position: absolute; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
top: 0; |
||||
|
left: 0; } |
||||
|
.container-home .homeBlock::after { |
||||
|
content: ''; |
||||
|
display: inline-block; |
||||
|
vertical-align: middle; |
||||
|
height: 100%; |
||||
|
overflow: visible; |
||||
|
clear: none; |
||||
|
visibility: initial; } |
||||
|
.container-home .homeContent { |
||||
|
position: relative; |
||||
|
padding: 10px; |
||||
|
text-align: justify; |
||||
|
font-size: 14px; |
||||
|
color: #FFF; |
||||
|
opacity: 0; |
||||
|
transition: opacity 0.5s ease; |
||||
|
display: inline-block; |
||||
|
vertical-align: middle; } |
||||
|
.container-home .homeContent p { |
||||
|
display: block; |
||||
|
line-height: 13px; |
||||
|
font-size: 80%; |
||||
|
color: white; } |
||||
|
.container-home .homeIcon { |
||||
|
position: relative; |
||||
|
display: inline-block; |
||||
|
width: 105px; |
||||
|
height: 105px; |
||||
|
border-radius: 50%; |
||||
|
background: #364347; |
||||
|
z-index: 1; } |
||||
|
.container-home .homeIcon::before { |
||||
|
content: ''; |
||||
|
position: absolute; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
border-radius: 50%; |
||||
|
background: #364347; |
||||
|
top: 0; |
||||
|
left: 0; |
||||
|
transform: scale(0.95); |
||||
|
transition: transform 0.6s ease; } |
||||
|
.container-home .homeIcon img { |
||||
|
position: absolute; |
||||
|
margin: auto; |
||||
|
top: 0; |
||||
|
bottom: 0; |
||||
|
right: 0; |
||||
|
left: 0; |
||||
|
transition: opacity 0.4s 0.4s ease; } |
||||
|
.container-home .homeFront { |
||||
|
position: absolute; |
||||
|
top: 46%; |
||||
|
width: 100%; |
||||
|
font-size: 0; |
||||
|
transform: translateY(-60%); } |
||||
|
.container-home .homeFront h2 { |
||||
|
position: absolute; |
||||
|
margin-top: 18px; |
||||
|
font-size: 22px; |
||||
|
font-weight: 700; |
||||
|
color: #595959 !important; |
||||
|
width: 100%; |
||||
|
padding: 0 6%; |
||||
|
z-index: 0; } |
||||
|
.container-home .homeTitle { |
||||
|
display: block; |
||||
|
height: 32px; |
||||
|
text-align: center; |
||||
|
width: 100%; |
||||
|
opacity: 0; |
||||
|
transition: opacity 0.4s ease; } |
||||
|
.container-home .homeTitle::before { |
||||
|
content: ''; |
||||
|
display: inline-block; |
||||
|
vertical-align: middle; |
||||
|
height: 100%; } |
||||
|
.container-home .homeTitle h2 { |
||||
|
display: inline-block; |
||||
|
vertical-align: middle; |
||||
|
max-width: 110px; |
||||
|
font-size: 14px; |
||||
|
color: white !important; |
||||
|
line-height: 1em; } |
||||
|
.container-home .homeTitle img { |
||||
|
display: inline-block; |
||||
|
vertical-align: middle; |
||||
|
height: 30px; |
||||
|
margin-right: 5px; } |
||||
|
.container-home .homeBlock:hover .homeIcon::before { |
||||
|
transform: scale(3.6) translateY(7px); } |
||||
|
.container-home .homeBlock:hover .homeContent { |
||||
|
opacity: 1; |
||||
|
transition-delay: 0.2s; } |
||||
|
.container-home .homeBlock:hover .homeIcon img { |
||||
|
opacity: 0; |
||||
|
transition-duration: 0.2s; |
||||
|
transition-delay: 0s; } |
||||
|
.container-home .homeBlock:hover .homeTitle { |
||||
|
opacity: 1; } |
||||
|
|
||||
|
html { |
||||
|
position: relative; |
||||
|
min-height: 100%; } |
||||
|
|
||||
|
body { |
||||
|
margin-bottom: 160px; } |
||||
|
|
||||
|
h1, h2, h3, h4, h5, h6, form, dl, dt, dd, p, div, img, a { |
||||
|
margin: 0; |
||||
|
padding: 0; } |
||||
|
|
||||
|
h1, .h1 { |
||||
|
font-size: 30px; } |
||||
|
|
||||
|
h2, .h2 { |
||||
|
font-size: 24px; } |
||||
|
|
||||
|
h3, .h3 { |
||||
|
font-size: 20px; } |
||||
|
|
||||
|
h4, .h4 { |
||||
|
font-size: 16px; } |
||||
|
|
||||
|
h5, .h5 { |
||||
|
font-size: 14px; } |
||||
|
|
||||
|
h6, .h6 { |
||||
|
font-size: 12px; } |
||||
|
|
||||
|
p { |
||||
|
margin: 0.5em 0; } |
||||
|
p .control-label { |
||||
|
font-weight: bold; } |
||||
|
|
||||
|
label { |
||||
|
margin-bottom: 0; |
||||
|
line-height: 1; } |
||||
|
|
||||
|
fieldset fieldset { |
||||
|
font-size: 95%; } |
||||
|
fieldset fieldset legend { |
||||
|
font-size: 18px; } |
||||
|
|
||||
|
.page-header { |
||||
|
margin: 20px 0px 10px; } |
||||
|
|
||||
|
.caret.top { |
||||
|
transform: rotate(180deg); } |
||||
|
|
||||
|
.btn:hover, .btn:focus { |
||||
|
color: inherit; } |
||||
|
|
||||
|
.btn-default.btn-excluir { |
||||
|
color: #d9534f; } |
||||
|
.btn-default.btn-excluir:hover { |
||||
|
color: #fff; |
||||
|
border-color: #de6764; |
||||
|
background-color: #de6764; } |
||||
|
|
||||
|
.btn-cancel-iframe { |
||||
|
position: relative; |
||||
|
text-align: right; |
||||
|
opacity: 0.5; } |
||||
|
.btn-cancel-iframe:hover { |
||||
|
opacity: 1; } |
||||
|
.btn-cancel-iframe a { |
||||
|
padding: 10px; |
||||
|
display: inline-block; } |
||||
|
|
||||
|
.legend { |
||||
|
display: block; |
||||
|
width: 100%; |
||||
|
padding: 0; |
||||
|
margin-bottom: 20px; |
||||
|
font-size: 21px; |
||||
|
line-height: inherit; |
||||
|
color: #333333; |
||||
|
border: 0; |
||||
|
border-bottom: 1px solid #e5e5e5; |
||||
|
clear: both; } |
||||
|
|
||||
|
.grid-gutter-width-right { |
||||
|
margin-right: 15px; } |
||||
|
|
||||
|
.controls-file { |
||||
|
padding: 10px; |
||||
|
border: 1px solid #d6e1e5; |
||||
|
border-radius: 4px; } |
||||
|
.controls-file label.checkbox-inline { |
||||
|
margin: 0px; |
||||
|
display: block; } |
||||
|
|
||||
|
.help-block-danger { |
||||
|
margin: 15px; |
||||
|
padding: 15px; |
||||
|
border: 2px dashed #f00; } |
||||
|
|
||||
|
.control-label { |
||||
|
margin: 0; } |
||||
|
|
||||
|
.form-control-static { |
||||
|
padding-top: 0; |
||||
|
min-height: auto; } |
||||
|
.form-control-static img { |
||||
|
max-width: 100%; } |
||||
|
|
||||
|
.pagination { |
||||
|
padding-top: 25px; } |
||||
|
|
||||
|
.modal .alert { |
||||
|
margin-bottom: 0; } |
||||
|
|
||||
|
.avatar-parlamentar { |
||||
|
height: 128px; |
||||
|
width: 128px; |
||||
|
margin: 0 auto; |
||||
|
display: table; } |
||||
|
|
||||
|
.masthead { |
||||
|
padding: 10px; } |
||||
|
.masthead .nav { |
||||
|
clear: both; } |
||||
|
.masthead .navbar-brand { |
||||
|
padding: 0px; |
||||
|
color: inherit; |
||||
|
font-size: 24px; } |
||||
|
.masthead .navbar-brand img.img-responsive { |
||||
|
height: 95px; |
||||
|
margin-right: 15px; |
||||
|
display: inline-block; } |
||||
|
.masthead .navbar-brand small { |
||||
|
color: #93A4AA; |
||||
|
font-size: 75%; |
||||
|
line-height: 25px; } |
||||
|
.masthead .navbar-brand .vcenter { |
||||
|
display: inline-block; |
||||
|
vertical-align: middle; |
||||
|
float: none; |
||||
|
padding: 10px; } |
||||
|
|
||||
|
nav.navbar { |
||||
|
margin-bottom: 0; |
||||
|
border-radius: 0; |
||||
|
font-size: 15px; } |
||||
|
|
||||
|
nav .navbar-nav > li > a { |
||||
|
padding-top: 0px; |
||||
|
padding-bottom: 0px; |
||||
|
line-height: 75px; } |
||||
|
nav .navbar-nav > li > a:hover { |
||||
|
background-color: #23527c; } |
||||
|
|
||||
|
nav .navbar-nav > li:nth-child(2) > .dropdown-menu { |
||||
|
right: auto; } |
||||
|
|
||||
|
nav .navbar-nav:last-child > li:last-child a { |
||||
|
padding-right: 0px; } |
||||
|
|
||||
|
.controls-radio-checkbox { |
||||
|
padding: 0px; |
||||
|
border: 1px solid #d6e1e5; |
||||
|
border-radius: 4px; |
||||
|
min-height: 20px; } |
||||
|
.controls-radio-checkbox .checkbox, .controls-radio-checkbox .radio, .controls-radio-checkbox .checkbox-inline, .controls-radio-checkbox .radio-inline { |
||||
|
padding: 8px 8px 8px 36px; |
||||
|
margin: 0; |
||||
|
line-height: 1.6; |
||||
|
display: block; } |
||||
|
.controls-radio-checkbox .checkbox:hover, .controls-radio-checkbox .radio:hover, .controls-radio-checkbox .checkbox-inline:hover, .controls-radio-checkbox .radio-inline:hover { |
||||
|
background-color: #d6e1e5; } |
||||
|
.controls-radio-checkbox .checkbox .icons, .controls-radio-checkbox .radio .icons, .controls-radio-checkbox .checkbox-inline .icons, .controls-radio-checkbox .radio-inline .icons { |
||||
|
top: auto; |
||||
|
left: 8px; } |
||||
|
.controls-radio-checkbox .checkbox-inline, .controls-radio-checkbox .radio-inline { |
||||
|
display: inline-block; } |
||||
|
.controls-radio-checkbox .help-block { |
||||
|
margin: 15px; |
||||
|
padding: 15px; |
||||
|
border: 2px dashed #d6e1e5; } |
||||
|
|
||||
|
.controls-radio-checkbox__old { |
||||
|
padding: 0px; |
||||
|
border: 1px solid #d6e1e5; |
||||
|
border-radius: 4px; |
||||
|
min-height: 20px; } |
||||
|
.controls-radio-checkbox__old label { |
||||
|
padding: 0; |
||||
|
line-height: 2.7; |
||||
|
padding-left: 36px; } |
||||
|
.controls-radio-checkbox__old label .icons { |
||||
|
top: 8px; |
||||
|
left: 8px; } |
||||
|
.controls-radio-checkbox__old label.checkbox-inline, .controls-radio-checkbox__old label.radio-inline { |
||||
|
padding-right: 8px; } |
||||
|
.controls-radio-checkbox__old label.checkbox-inline .icons, .controls-radio-checkbox__old label.radio-inline .icons { |
||||
|
top: 8px; |
||||
|
left: 8px; } |
||||
|
.controls-radio-checkbox__old .checkbox, .controls-radio-checkbox__old .radio, .controls-radio-checkbox__old .checkbox-inline, .controls-radio-checkbox__old .radio-inline { |
||||
|
margin: 0; } |
||||
|
.controls-radio-checkbox__old .checkbox:hover, .controls-radio-checkbox__old .radio:hover, .controls-radio-checkbox__old .checkbox-inline:hover, .controls-radio-checkbox__old .radio-inline:hover { |
||||
|
background-color: #d6e1e5; } |
||||
|
|
||||
|
.manual, .manual ul { |
||||
|
padding-left: 1.5em; |
||||
|
list-style-type: none; |
||||
|
margin-top: 0; |
||||
|
font-size: 100%; } |
||||
|
|
||||
|
.manual li { |
||||
|
display: list-item; |
||||
|
line-height: 1.5em; |
||||
|
padding-right: 0; } |
||||
|
.manual li a { |
||||
|
background-color: transparent; |
||||
|
border: none; |
||||
|
border-radius: none; |
||||
|
padding: 0; } |
||||
|
|
||||
|
.container-tabaux .sidebar-tabaux { |
||||
|
background: #fafafa; |
||||
|
margin-top: -70px; |
||||
|
padding: 10px; |
||||
|
border: 1px solid #eee; } |
||||
|
.container-tabaux .sidebar-tabaux .navbar-right { |
||||
|
margin: 0; } |
||||
|
.container-tabaux .sidebar-tabaux .nav-pills > li + li { |
||||
|
margin-left: 0px; } |
||||
|
.container-tabaux .sidebar-tabaux li { |
||||
|
width: 100%; } |
||||
|
.container-tabaux .sidebar-tabaux span { |
||||
|
display: none; } |
||||
|
.container-tabaux .sidebar-tabaux .dropdown-menu { |
||||
|
padding: 0px; |
||||
|
right: 10px; |
||||
|
margin-top: -5px; |
||||
|
overflow: hidden; } |
||||
|
.container-tabaux .sidebar-tabaux .dropdown-menu a { |
||||
|
border: 0px; } |
||||
|
|
||||
|
.container-tabaux ul { |
||||
|
list-style: none; |
||||
|
padding: 0; } |
||||
|
|
||||
|
.container-tabaux .list { |
||||
|
font-family: "SourceSansProSemiBold", Helvetica, Arial, sans-serif; |
||||
|
font-size: 0px; |
||||
|
display: table; |
||||
|
width: 100%; |
||||
|
margin: 0; } |
||||
|
.container-tabaux .list ul { |
||||
|
display: table; |
||||
|
width: 100%; |
||||
|
margin: 0; } |
||||
|
.container-tabaux .list li { |
||||
|
width: calc(50%); |
||||
|
display: inline-block; |
||||
|
position: relative; } |
||||
|
.container-tabaux .list > li { |
||||
|
width: 100%; |
||||
|
border-bottom: 1px solid #eee; |
||||
|
padding-bottom: 20px; |
||||
|
margin-bottom: 20px; } |
||||
|
.container-tabaux .list .head_title { |
||||
|
color: #364347; |
||||
|
font-size: 2.4rem; |
||||
|
text-transform: none; } |
||||
|
.container-tabaux .list a span { |
||||
|
display: none; } |
||||
|
|
||||
|
#styleparlamentar { |
||||
|
border: 0px solid #d6e1e5; |
||||
|
border-top-color: #d6e1e5; |
||||
|
border-right-color: #d6e1e5; |
||||
|
border-bottom-color: #d6e1e5; |
||||
|
border-left-color: #d6e1e5; |
||||
|
border-image-source: initial; |
||||
|
border-image-slice: initial; |
||||
|
border-image-repeat: initial; |
||||
|
font-size: 16px; |
||||
|
line-height: 1.467; |
||||
|
padding: 7px 12px; |
||||
|
height: 40px; |
||||
|
-webkit-appearance: none; |
||||
|
border-radius: 4px; |
||||
|
-webkit-box-shadow: none; |
||||
|
box-shadow: none; |
||||
|
margin-left: 1.0em; } |
||||
|
|
||||
|
.footer { |
||||
|
background: #364347; |
||||
|
color: white; |
||||
|
text-align: center; |
||||
|
position: absolute; |
||||
|
width: 100%; |
||||
|
bottom: 0px; } |
||||
|
.footer p { |
||||
|
color: white; |
||||
|
margin-top: 10px; } |
||||
|
.footer .container { |
||||
|
padding-top: 25px; } |
||||
|
|
||||
|
@media (max-width: 1199px) { |
||||
|
nav .container { |
||||
|
width: auto !important; } |
||||
|
.navbar-nav > li > a { |
||||
|
padding-left: 10.71429px; |
||||
|
padding-right: 10.71429px; } } |
||||
|
|
||||
|
@media (max-width: 1091px) { |
||||
|
.container { |
||||
|
width: auto; } |
||||
|
.navbar-nav > li > a { |
||||
|
padding-left: 7.5px; |
||||
|
padding-right: 7.5px; } |
||||
|
.masthead .navbar-brand { |
||||
|
font-size: 22px; } |
||||
|
.masthead .navbar-brand img.img-responsive { |
||||
|
height: 60px; |
||||
|
margin-right: 7.5px; } } |
||||
|
|
||||
|
@media (max-width: 991px) { |
||||
|
body { |
||||
|
margin: 0; } |
||||
|
.footer { |
||||
|
position: relative; } |
||||
|
.caret { |
||||
|
margin-left: 1px; } |
||||
|
.navbar-nav > li > a { |
||||
|
padding-left: 4px; |
||||
|
padding-right: 4px; } } |
||||
|
|
||||
|
@media (max-width: 767px) { |
||||
|
nav .navbar-nav > li > a { |
||||
|
line-height: 2.5; } |
||||
|
nav .navbar-right { |
||||
|
position: absolute; |
||||
|
top: 0; |
||||
|
margin: 10px; } |
||||
|
nav .navbar-right > li { |
||||
|
vertical-align: top; |
||||
|
display: inline-block; } |
||||
|
nav .navbar-right > li a { |
||||
|
padding-left: 10px; |
||||
|
padding-right: 10px; } |
||||
|
nav .navbar-right .pesquisa.open ul { |
||||
|
position: absolute; } |
||||
|
nav .navbar-right .navbar-form { |
||||
|
margin: 8px 0; } |
||||
|
.table { |
||||
|
width: auto; |
||||
|
white-space: normal; |
||||
|
display: block; |
||||
|
overflow-x: auto; } } |
||||
|
|
||||
|
@media (min-width: 1092px) and (max-width: 1199px) { |
||||
|
.container { |
||||
|
width: 1070px; } } |
||||
|
|
||||
|
@media print { |
||||
|
a[href]:after { |
||||
|
content: none !important; } } |
File diff suppressed because it is too large
@ -0,0 +1,173 @@ |
|||||
|
{% extends "crud/detail.html" %} |
||||
|
{% load i18n crispy_forms_tags %} |
||||
|
|
||||
|
{% block base_content %} |
||||
|
|
||||
|
<form method="POST" enctype="application/x-www-form-urlencoded" id="form" action="{% url 'sapl.sessao:votacaoblocosimb' pk %}"> |
||||
|
{% csrf_token %} |
||||
|
<br><br> |
||||
|
<table class="table table-striped table-bordered"> |
||||
|
<thead class="thead-default"> |
||||
|
<tr> |
||||
|
<td><h3>{% trans "Tipo de Votação" %}</h3></td> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tr> |
||||
|
<td class="col-md-12"> |
||||
|
<fieldset id="tipo_votacao" name="tipo"> |
||||
|
<input type="radio" name="tipo_votacao" id="tipo_votacao_1" value="1" onchange="alteraTipoVotacao()" checked="checked"> <label for="tipo">Simbólica</label> |
||||
|
</br> |
||||
|
<input type="radio" name="tipo_votacao" id="tipo_votacao_2" value="2" onchange="alteraTipoVotacao()" > <label for="tipo">Nominal</label> |
||||
|
</br> |
||||
|
</fieldset> |
||||
|
</td> |
||||
|
</tr> |
||||
|
</table> |
||||
|
|
||||
|
<br> |
||||
|
<h3 id='frase_selecione'>Selecione o(s) expediente(s) desejado(s).</h3> |
||||
|
<table id='tab_ordens' class="table table-striped table-bordered"> |
||||
|
<thead class="thead-default"> |
||||
|
<tr> |
||||
|
<td><h3>{% trans "Expediente" %}</h3></td> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
|
||||
|
<div class="checkbox" id="check_all"> |
||||
|
<label for="id_check_all"> |
||||
|
<input type="checkbox" id="id_check_all" onchange="checkAll(this)" /> Marcar/Desmarcar Todos |
||||
|
</label> |
||||
|
</div> |
||||
|
|
||||
|
{% for o in expedientes %} |
||||
|
<tr class="{% if o.tipo_votacao == 1 %}Simbolica{% else %}Nominal{% endif %}" {% if o.tipo_votacao == 2 %} style="display:none;" {% endif %}> |
||||
|
<td> |
||||
|
<input type="checkbox" name="marcadas_{{o.tipo_votacao}}" id="{{o.id}}" value="{{o.id}}" {% if check %} checked {% endif %}> |
||||
|
<strong><a href="{% url 'sapl.materia:materialegislativa_detail' o.id %}">{{o.materia.tipo.sigla}} {{o.materia.numero}}/{{o.materia.ano}} - {{o.materia.tipo}}</strong></a></br> |
||||
|
{% if o.materia.numeracao_set.last %} |
||||
|
<strong>Processo:</strong> {{o.materia.numeracao_set.last}}</br> |
||||
|
{% endif %} |
||||
|
<strong>Autor:</strong> |
||||
|
{% for a in o.materia.autoria_set.all %} |
||||
|
{% if not forloop.first %} |
||||
|
, {{a.autor|default_if_none:""}} |
||||
|
{% else %} |
||||
|
{{a.autor|default_if_none:""}} |
||||
|
{% endif %} |
||||
|
{% endfor %} |
||||
|
</br> |
||||
|
{% if o.materia.numero_protocolo %} |
||||
|
<strong>Protocolo:</strong> {{o.materia.numero_protocolo}}</br> |
||||
|
{% endif %} |
||||
|
{% if o.materia.tramitacao_set.last %} |
||||
|
{% if o.materia.tramitacao_set.last.turno %} |
||||
|
<strong>Turno:</strong> |
||||
|
{% for t in turno_choices %} |
||||
|
{% if t.0 == o.materia.tramitacao_set.last.turno %} |
||||
|
{{ t.1 }} |
||||
|
{% endif %} |
||||
|
{% endfor %}</br> |
||||
|
{% endif %} |
||||
|
{% endif %} |
||||
|
<strong>Ementa:</strong> {{ o.ementa|safe }}</br> |
||||
|
<p></p> |
||||
|
</td> |
||||
|
</tr> |
||||
|
{% endfor %} |
||||
|
</table> |
||||
|
<input type="submit" value="Registrar votação" class="btn btn-primary" id="but_reg"> |
||||
|
<input type="hidden" id="origem" name="origem" value="expediente"> |
||||
|
</form> |
||||
|
|
||||
|
<table class="table table-striped table-bordered" style="display:none" id="nenhum_exp"> |
||||
|
<tr> |
||||
|
<td> |
||||
|
<h3>Nenhuma matéria do expediente aberta.</h3> |
||||
|
</td> |
||||
|
</tr> |
||||
|
</table> |
||||
|
|
||||
|
{% endblock base_content %} |
||||
|
|
||||
|
{% block extra_js %} |
||||
|
<script> |
||||
|
$(document).ready(function(){ |
||||
|
checa_tipo_votacao(); |
||||
|
$('#tipo_votacao_1').prop('checked', true) |
||||
|
}); |
||||
|
|
||||
|
$(window).on('beforeunload', function () { |
||||
|
$("input[type=submit], input[type=button]").prop("disabled", "disabled"); |
||||
|
}); |
||||
|
|
||||
|
</script> |
||||
|
|
||||
|
<script language="JavaScript"> |
||||
|
function checkAll(elem) { |
||||
|
let checkboxes = document.getElementsByName('marcadas_1'); |
||||
|
if (elem.checked) { |
||||
|
for (let i = 0; i < checkboxes.length; i++) { |
||||
|
if (checkboxes[i].type == 'checkbox') { |
||||
|
checkboxes[i].checked = true; |
||||
|
} |
||||
|
} |
||||
|
} else { |
||||
|
for (let i = 0; i < checkboxes.length; i++) { |
||||
|
if (checkboxes[i].type == 'checkbox') { |
||||
|
checkboxes[i].checked = false; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
checkboxes = document.getElementsByName('marcadas_2'); |
||||
|
if (elem.checked) { |
||||
|
for (let i = 0; i < checkboxes.length; i++) { |
||||
|
if (checkboxes[i].type == 'checkbox') { |
||||
|
checkboxes[i].checked = true; |
||||
|
} |
||||
|
} |
||||
|
} else { |
||||
|
for (let i = 0; i < checkboxes.length; i++) { |
||||
|
if (checkboxes[i].type == 'checkbox') { |
||||
|
checkboxes[i].checked = false; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
function alteraTipoVotacao() { |
||||
|
$(".Simbolica").toggle(); |
||||
|
$(".Nominal").toggle(); |
||||
|
|
||||
|
checa_tipo_votacao(); |
||||
|
} |
||||
|
|
||||
|
function checa_tipo_votacao(){ |
||||
|
tipo_votacao = document.querySelector('input[name="tipo_votacao"]:checked').value; |
||||
|
numero_ordens = document.getElementsByName('marcadas_'+tipo_votacao).length; |
||||
|
|
||||
|
if(numero_ordens == 0){ |
||||
|
document.getElementById('frase_selecione').style.display = 'none'; |
||||
|
document.getElementById('tab_ordens').style.display = 'none'; |
||||
|
document.getElementById('check_all').style.display = 'none'; |
||||
|
document.getElementById('but_reg').style.display = 'none'; |
||||
|
document.getElementById('nenhum_exp').style.display = ''; |
||||
|
} |
||||
|
else{ |
||||
|
document.getElementById('frase_selecione').style.display = ''; |
||||
|
document.getElementById('tab_ordens').style.display = ''; |
||||
|
document.getElementById('check_all').style.display = ''; |
||||
|
document.getElementById('but_reg').style.display = ''; |
||||
|
document.getElementById('nenhum_exp').style.display = 'none'; |
||||
|
} |
||||
|
|
||||
|
if(tipo_votacao == "1"){ |
||||
|
$('#form').attr("action", "{% url 'sapl.sessao:votacaoblocosimb' pk %}") |
||||
|
} |
||||
|
else{ |
||||
|
$('#form').attr("action", "{% url 'sapl.sessao:votacaobloconom' pk %}") |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
{% endblock extra_js%} |
@ -0,0 +1,174 @@ |
|||||
|
{% extends "crud/detail.html" %} |
||||
|
{% load i18n crispy_forms_tags %} |
||||
|
|
||||
|
{% block base_content %} |
||||
|
|
||||
|
<form method="POST" enctype="application/x-www-form-urlencoded" id="form" action="{% url 'sapl.sessao:votacaoblocosimb' pk %}"> |
||||
|
{% csrf_token %} |
||||
|
<br><br> |
||||
|
<table class="table table-striped table-bordered"> |
||||
|
<thead class="thead-default"> |
||||
|
<tr> |
||||
|
<td><h3>{% trans "Tipo de Votação" %}</h3></td> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tr> |
||||
|
<td class="col-md-12"> |
||||
|
<fieldset id="tipo_votacao" name="tipo"> |
||||
|
<input type="radio" name="tipo_votacao" id="tipo_votacao_1" value="1" onchange="alteraTipoVotacao()" checked="checked"> <label for="tipo">Simbólica</label> |
||||
|
</br> |
||||
|
<input type="radio" name="tipo_votacao" id="tipo_votacao_2" value="2" onchange="alteraTipoVotacao()" > <label for="tipo">Nominal</label> |
||||
|
</br> |
||||
|
</fieldset> |
||||
|
</td> |
||||
|
</tr> |
||||
|
</table> |
||||
|
|
||||
|
<br> |
||||
|
<h3 id='frase_selecione'>Selecione a(s) ordem(s) do dia desejada(s).</h3> |
||||
|
<table id='tab_ordens' class="table table-striped table-bordered"> |
||||
|
<thead class="thead-default"> |
||||
|
<tr> |
||||
|
<td><h3>{% trans "Ordem do dia" %}</h3></td> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
|
||||
|
<div class="checkbox" id="check_all"> |
||||
|
<label for="id_check_all"> |
||||
|
<input type="checkbox" id="id_check_all" onchange="checkAll(this)" /> Marcar/Desmarcar Todos |
||||
|
</label> |
||||
|
</div> |
||||
|
|
||||
|
{% for o in ordem_dia %} |
||||
|
<tr class="{% if o.tipo_votacao == 1 %}Simbolica{% else %}Nominal{% endif %}" {% if o.tipo_votacao == 2 %} style="display:none;" {% endif %}> |
||||
|
<td> |
||||
|
<input type="checkbox" name="marcadas_{{o.tipo_votacao}}" id="{{o.id}}" value="{{o.id}}" {% if check %} checked {% endif %}> |
||||
|
<strong><a href="{% url 'sapl.materia:materialegislativa_detail' o.id %}">{{o.materia.tipo.sigla}} {{o.materia.numero}}/{{o.materia.ano}} - {{o.materia.tipo}}</strong></a></br> |
||||
|
{% if o.materia.numeracao_set.last %} |
||||
|
<strong>Processo:</strong> {{o.materia.numeracao_set.last}}</br> |
||||
|
{% endif %} |
||||
|
<strong>Autor:</strong> |
||||
|
{% for a in o.materia.autoria_set.all %} |
||||
|
{% if not forloop.first %} |
||||
|
, {{a.autor|default_if_none:""}} |
||||
|
{% else %} |
||||
|
{{a.autor|default_if_none:""}} |
||||
|
{% endif %} |
||||
|
{% endfor %} |
||||
|
</br> |
||||
|
{% if o.materia.numero_protocolo %} |
||||
|
<strong>Protocolo:</strong> {{o.materia.numero_protocolo}}</br> |
||||
|
{% endif %} |
||||
|
{% if o.materia.tramitacao_set.last %} |
||||
|
{% if o.materia.tramitacao_set.last.turno %} |
||||
|
<strong>Turno:</strong> |
||||
|
{% for t in turno_choices %} |
||||
|
{% if t.0 == o.materia.tramitacao_set.last.turno %} |
||||
|
{{ t.1 }} |
||||
|
{% endif %} |
||||
|
{% endfor %}</br> |
||||
|
{% endif %} |
||||
|
{% endif %} |
||||
|
<strong>Ementa:</strong> {{ o.ementa|safe }}</br> |
||||
|
<p></p> |
||||
|
</td> |
||||
|
</tr> |
||||
|
{% endfor %} |
||||
|
</table> |
||||
|
<input type="submit" value="Registrar votação" class="btn btn-primary" id="but_reg"> |
||||
|
<input type="hidden" id="origem" name="origem" value="ordem"> |
||||
|
</form> |
||||
|
|
||||
|
<table class="table table-striped table-bordered" style="display:none" id="nenhuma_ordem"> |
||||
|
<tr> |
||||
|
<td> |
||||
|
<h3>Nenhuma ordem do dia aberta.</h3> |
||||
|
</td> |
||||
|
</tr> |
||||
|
</table> |
||||
|
|
||||
|
{% endblock base_content %} |
||||
|
|
||||
|
{% block extra_js %} |
||||
|
<script> |
||||
|
$(document).ready(function(){ |
||||
|
checa_tipo_votacao(); |
||||
|
$('#tipo_votacao_1').prop('checked', true) |
||||
|
}); |
||||
|
|
||||
|
$(window).on('beforeunload', function () { |
||||
|
$("input[type=submit], input[type=button]").prop("disabled", "disabled"); |
||||
|
}); |
||||
|
|
||||
|
</script> |
||||
|
|
||||
|
<script language="JavaScript"> |
||||
|
function checkAll(elem) { |
||||
|
let checkboxes = document.getElementsByName('marcadas_1'); |
||||
|
if (elem.checked) { |
||||
|
for (let i = 0; i < checkboxes.length; i++) { |
||||
|
if (checkboxes[i].type == 'checkbox') { |
||||
|
checkboxes[i].checked = true; |
||||
|
} |
||||
|
} |
||||
|
} else { |
||||
|
for (let i = 0; i < checkboxes.length; i++) { |
||||
|
if (checkboxes[i].type == 'checkbox') { |
||||
|
checkboxes[i].checked = false; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
checkboxes = document.getElementsByName('marcadas_2'); |
||||
|
if (elem.checked) { |
||||
|
for (let i = 0; i < checkboxes.length; i++) { |
||||
|
if (checkboxes[i].type == 'checkbox') { |
||||
|
checkboxes[i].checked = true; |
||||
|
} |
||||
|
} |
||||
|
} else { |
||||
|
for (let i = 0; i < checkboxes.length; i++) { |
||||
|
if (checkboxes[i].type == 'checkbox') { |
||||
|
checkboxes[i].checked = false; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
function alteraTipoVotacao() { |
||||
|
$(".Simbolica").toggle(); |
||||
|
$(".Nominal").toggle(); |
||||
|
|
||||
|
checa_tipo_votacao(); |
||||
|
} |
||||
|
|
||||
|
function checa_tipo_votacao(){ |
||||
|
tipo_votacao = document.querySelector('input[name="tipo_votacao"]:checked').value; |
||||
|
numero_ordens = document.getElementsByName('marcadas_'+tipo_votacao).length; |
||||
|
|
||||
|
if(numero_ordens == 0){ |
||||
|
document.getElementById('frase_selecione').style.display = 'none'; |
||||
|
document.getElementById('tab_ordens').style.display = 'none'; |
||||
|
document.getElementById('check_all').style.display = 'none'; |
||||
|
document.getElementById('but_reg').style.display = 'none'; |
||||
|
document.getElementById('nenhuma_ordem').style.display = ''; |
||||
|
} |
||||
|
else{ |
||||
|
document.getElementById('frase_selecione').style.display = ''; |
||||
|
document.getElementById('tab_ordens').style.display = ''; |
||||
|
document.getElementById('check_all').style.display = ''; |
||||
|
document.getElementById('but_reg').style.display = ''; |
||||
|
document.getElementById('nenhuma_ordem').style.display = 'none'; |
||||
|
} |
||||
|
|
||||
|
if(tipo_votacao == "1"){ |
||||
|
$('#form').attr("action", "{% url 'sapl.sessao:votacaoblocosimb' pk %}") |
||||
|
} |
||||
|
else{ |
||||
|
$('#form').attr("action", "{% url 'sapl.sessao:votacaobloconom' pk %}") |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</script> |
||||
|
{% endblock extra_js%} |
@ -0,0 +1,149 @@ |
|||||
|
{% extends "crud/detail.html" %} |
||||
|
{% load i18n crispy_forms_tags%} |
||||
|
|
||||
|
{% block detail_content %} |
||||
|
<form method="post"> |
||||
|
{% csrf_token %} |
||||
|
|
||||
|
<fieldset> |
||||
|
<legend>Votação Nominal</legend> |
||||
|
{% if ordens %} |
||||
|
{% for o in ordens %} |
||||
|
<input type="hidden" id="ordens" name="ordens" value="{{o.id}}"> |
||||
|
<div> |
||||
|
Matéria: {{o.materia}} |
||||
|
<br /> |
||||
|
Ementa: {{o.materia.ementa|safe}} |
||||
|
</div> |
||||
|
<br /> |
||||
|
{% endfor %} |
||||
|
{% else %} |
||||
|
{% for e in expedientes %} |
||||
|
<input type="hidden" id="expedientes" name="expedientes" value="{{e.id}}"> |
||||
|
<div> |
||||
|
Matéria: {{e.materia}} |
||||
|
<br /> |
||||
|
Ementa: {{e.materia.ementa|safe}} |
||||
|
</div> |
||||
|
<br /> |
||||
|
{% endfor %} |
||||
|
{% endif %} |
||||
|
{% if total_presentes == 0 %} |
||||
|
<div class="alert alert-info alert-dismissible fade in" role="alert"> |
||||
|
<div>Não existe nenhum parlamentar presente para que a votação ocorra.</div> |
||||
|
</div> |
||||
|
<a href="{% url 'sapl.sessao:sessaoplenaria_detail' pk %}" class="btn btn-warning">Voltar</a> |
||||
|
{% else %} |
||||
|
|
||||
|
<fieldset class="form-group"> |
||||
|
|
||||
|
{% if parlamentares %} |
||||
|
<legend>Votos</legend> |
||||
|
<div class="row"> |
||||
|
{% for parlamentar in parlamentares %} |
||||
|
<div class="col-md-4" id="styleparlamentar">{{parlamentar.0.nome_parlamentar}}</div> |
||||
|
<div class="col-md-5"> |
||||
|
{% if parlamentar.1 %} <input type="hidden" name="voto_parlamentar" value="{{parlamentar.1}}:{{parlamentar.0.id}}" /> {% endif %} |
||||
|
<select id="voto_parlamentar" name="voto_parlamentar" class="form-control" {% if parlamentar.1 %} disabled {% endif %}> |
||||
|
<option value="Não Votou:{{parlamentar.0.id}}">Não Votou</option> |
||||
|
<option value="Sim:{{parlamentar.0.id}}" {% if parlamentar.1 == 'Sim' %} selected {% endif %}>Sim</option> |
||||
|
<option value="Não:{{parlamentar.0.id}}" {% if parlamentar.1 == 'Não' %} selected {% endif %}>Não</option> |
||||
|
<option value="Abstenção:{{parlamentar.0.id}}" {% if parlamentar.1 == 'Abstenção' %} selected {% endif %}>Abstenção</option> |
||||
|
</select> |
||||
|
</div> |
||||
|
{% endfor %} |
||||
|
</div> |
||||
|
{% endif %} |
||||
|
<br> |
||||
|
<legend>Situação da Votação:</legend> |
||||
|
|
||||
|
<div id="soma_votos"></div> |
||||
|
<input type="hidden" id="votos_sim" name="votos_sim" value=""> |
||||
|
<input type="hidden" id="votos_nao" name="votos_nao" value=""> |
||||
|
<input type="hidden" id="abstencoes" name="abstencoes" value=""> |
||||
|
<input type="hidden" id="nao_votou" name="nao_votou" value=""> |
||||
|
|
||||
|
</fieldset> |
||||
|
|
||||
|
<div class="row"> |
||||
|
<div class="col-md-12"> |
||||
|
Resultado da Votação |
||||
|
<select id="resultado_votacao" name="resultado_votacao" class="form-control"> |
||||
|
{% for tipo in resultado_votacao %} |
||||
|
<option value="{{tipo.id}}">{{tipo.nome}}</option> |
||||
|
{% endfor %} |
||||
|
</select> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<br /> |
||||
|
<div class="row"> |
||||
|
<div class="col-md-12"> |
||||
|
Observações<br/> |
||||
|
<textarea id="observacao" name="observacao" style="width:100%;" rows="7"></textarea> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<input type="hidden" id="origem" name="origem" value="{{origem}}"> |
||||
|
|
||||
|
<br /><br /> |
||||
|
<input type="submit" id="salvar-votacao" name="salvar-votacao" value="Fechar Votação" class="btn btn-primary" /> |
||||
|
<input type="submit" id="cancelar-votacao" name="cancelar-votacao" value="Cancelar Votação" class="btn btn-warning" /> |
||||
|
{% endif %} |
||||
|
</fieldset> |
||||
|
</form> |
||||
|
{% endblock detail_content %} |
||||
|
|
||||
|
{% block extra_js %} |
||||
|
<script> |
||||
|
function voltar() { |
||||
|
window.history.back(); |
||||
|
} |
||||
|
|
||||
|
function conta_votos() { |
||||
|
var votos_sim = 0; |
||||
|
var votos_nao = 0; |
||||
|
var votos_abstencao = 0; |
||||
|
var nao_votou = 0; |
||||
|
$('[name=voto_parlamentar]').each(function() { |
||||
|
if (($(this).is(':hidden')) == false) { |
||||
|
switch ($(this).val().substring(0,4)) { |
||||
|
case "Sim:": |
||||
|
votos_sim = votos_sim + 1; |
||||
|
break; |
||||
|
case "Não:": |
||||
|
votos_nao = votos_nao + 1; |
||||
|
break; |
||||
|
case "Abst": |
||||
|
votos_abstencao = votos_abstencao + 1; |
||||
|
break; |
||||
|
case "Não ": |
||||
|
nao_votou = nao_votou + 1; |
||||
|
break; |
||||
|
}; |
||||
|
}; |
||||
|
}); |
||||
|
$("#votos_sim").attr('value', votos_sim); |
||||
|
$("#votos_nao").attr('value', votos_nao); |
||||
|
$("#abstencoes").attr('value', votos_abstencao); |
||||
|
$("#nao_votou").attr('value', nao_votou); |
||||
|
|
||||
|
$("#soma_votos").empty(); |
||||
|
$("#soma_votos").append("<div class='row'><div class='col-md-12'>Sim: " + votos_sim + "</div></div>"); |
||||
|
$("#soma_votos").append("<div class='row'><div class='col-md-12'>Não: " + votos_nao + "</div></div>"); |
||||
|
$("#soma_votos").append("<div class='row'><div class='col-md-12'>Abstenções: " + votos_abstencao + "</div></div>"); |
||||
|
$("#soma_votos").append("<div class='row'><div class='col-md-12'>Ainda não votaram: " + nao_votou + "</div></div>"); |
||||
|
var t = setTimeout(function(){ |
||||
|
conta_votos() |
||||
|
}, 500); |
||||
|
} |
||||
|
conta_votos(); |
||||
|
|
||||
|
window.onload = conta_votos(); |
||||
|
|
||||
|
$(window).on('beforeunload', function () { |
||||
|
$("input[type=submit], input[type=button]").prop("disabled", "disabled"); |
||||
|
}); |
||||
|
|
||||
|
</script> |
||||
|
{% endblock extra_js%} |
@ -0,0 +1,80 @@ |
|||||
|
{% extends "crud/detail.html" %} |
||||
|
{% load i18n crispy_forms_tags%} |
||||
|
|
||||
|
{% block detail_content %} |
||||
|
<form id="form-votacao" method="post"> |
||||
|
{% csrf_token %} |
||||
|
|
||||
|
<fieldset class="form-group"> |
||||
|
<legend>Votação Simbólica</legend> |
||||
|
|
||||
|
<div> |
||||
|
{% if ordens %} |
||||
|
{% for o in ordens %} |
||||
|
<input type="hidden" id="ordens" name="ordens" value="{{o.id}}"> |
||||
|
<b>Matéria:</b> {{o.materia|safe}} |
||||
|
<br /> |
||||
|
<b>Ementa:</b> {{o.materia.ementa|safe}} |
||||
|
<br /> <br /> |
||||
|
{% endfor %} |
||||
|
{% else %} |
||||
|
{% for e in expedientes %} |
||||
|
<input type="hidden" id="expedientes" name="expedientes" value="{{e.id}}"> |
||||
|
<b>Matéria:</b> {{e.materia|safe}} |
||||
|
<br /> |
||||
|
<b>Ementa:</b> {{e.materia.ementa|safe}} |
||||
|
<br /> <br /> |
||||
|
{% endfor %} |
||||
|
{% endif %} |
||||
|
<b>Total presentes:</b> {{total_presentes}} (com presidente) |
||||
|
<input type="hidden" id="total_presentes" name="total_presentes" value="{{total_presentes}}"> |
||||
|
</div> |
||||
|
<br /> |
||||
|
{% if total_presentes == 0 %} |
||||
|
<div class="alert alert-info alert-dismissible fade in" role="alert"> |
||||
|
<div>Não existe nenhum parlamentar presente para que a votação ocorra.</div> |
||||
|
</div> |
||||
|
<a href="{% url 'sapl.sessao:sessaoplenaria_detail' pk %}" class="btn btn-warning">Voltar</a> |
||||
|
{% else %} |
||||
|
|
||||
|
<div class="row"> |
||||
|
<div class="col-md-4">Sim: <input type="text" id="votos_sim" name="votos_sim" value="" class="form-control"/></div> |
||||
|
<div class="col-md-4">Não: <input type="text" id="votos_nao" name="votos_nao" value="" class="form-control"/></div> |
||||
|
<div class="col-md-4">Abstenções: <input type="text" id="abstencoes" name="abstencoes" value="" class="form-control"/></div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="row"> |
||||
|
<div class="col-md-6"> |
||||
|
A totalização inclui o voto do Presidente? |
||||
|
<select id="voto_presidente" name="voto_presidente" class="form-control"> |
||||
|
<option value="1">Sim</option> |
||||
|
<option value="0" selected>Não</option> |
||||
|
</select> |
||||
|
</div> |
||||
|
|
||||
|
<div class="col-md-6"> |
||||
|
Resultado da Votação |
||||
|
<select id="resultado_votacao" name="resultado_votacao" class="form-control"> |
||||
|
{% for tipo in resultado_votacao %} |
||||
|
<option value="{{tipo.id}}">{{tipo.nome}}</option> |
||||
|
{% endfor %} |
||||
|
</select> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="row"> |
||||
|
<div class="col-md-12"> |
||||
|
Observações |
||||
|
<textarea id="observacao" name="observacao" cols="10" rows="10" class="form-control"></textarea> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<input type="hidden" id="origem" name="origem" value="{{origem}}"> |
||||
|
|
||||
|
<br /><br /> |
||||
|
<input type="submit" id="salvar-votacao" name="salvar-votacao" value="Salvar" class="btn btn-primary" /> |
||||
|
<input type="submit" id="cancelar-votacao" name="cancelar-votacao" value="Cancelar Votação" class="btn btn-warning" /> |
||||
|
{% endif %} |
||||
|
</fieldset> |
||||
|
</form> |
||||
|
{% endblock detail_content %} |
Loading…
Reference in new issue