mirror of https://github.com/interlegis/sigi.git
Lude Ribeiro
3 years ago
16 changed files with 245 additions and 45 deletions
@ -0,0 +1,32 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
|
||||
|
from django import forms |
||||
|
from django.utils.translation import ugettext as _ |
||||
|
from sigi.apps.eventos.models import ModeloDeclaracao, Evento |
||||
|
|
||||
|
class EventoAdminForm(forms.ModelForm): |
||||
|
class Meta: |
||||
|
model = Evento |
||||
|
fields = ('tipo_evento', 'nome', 'descricao', 'virtual', 'solicitante', |
||||
|
'data_inicio', 'data_termino', 'carga_horaria', |
||||
|
'casa_anfitria', 'municipio', 'local', 'publico_alvo', |
||||
|
'total_participantes', 'status', 'data_cancelamento', |
||||
|
'motivo_cancelamento', ) |
||||
|
|
||||
|
def clean(self): |
||||
|
cleaned_data = super(EventoAdminForm, self).clean() |
||||
|
data_inicio = cleaned_data.get("data_inicio") |
||||
|
data_termino = cleaned_data.get("data_termino") |
||||
|
|
||||
|
if data_inicio > data_termino: |
||||
|
raise forms.ValidationError( |
||||
|
_(u"Data término deve ser posterior à data inicio"), |
||||
|
code="invalid_period" |
||||
|
) |
||||
|
|
||||
|
class SelecionaModeloForm(forms.Form): |
||||
|
modelo = forms.ModelChoiceField( |
||||
|
queryset=ModeloDeclaracao.objects.all(), |
||||
|
required=True, |
||||
|
label=_(u"Modelo de declaração"), |
||||
|
) |
@ -0,0 +1,30 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import models, migrations |
||||
|
import tinymce.models |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('eventos', '0012_auto_20211117_0657'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.CreateModel( |
||||
|
name='ModeloDeclaracao', |
||||
|
fields=[ |
||||
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), |
||||
|
('nome', models.CharField(max_length=100, verbose_name='Nome do modelo')), |
||||
|
('formato', models.CharField(default=b'A4 portrait', max_length=30, verbose_name='Formato da p\xe1gina', choices=[(b'A4 portrait', 'A4 retrato'), (b'A4 landscape', 'A4 paisagem'), (b'letter portrait', 'Carta retrato'), (b'letter landscape', 'Carta paisagem')])), |
||||
|
('margem', models.PositiveIntegerField(default=4, help_text='Margem da p\xe1gina em cent\xedmetros', verbose_name='Margem')), |
||||
|
('texto', tinymce.models.HTMLField(help_text='Use as seguintes marca\xe7\xf5es:<ul><li>{{ casa }} para o nome da Casa Legislativa / \xf3rg\xe3o</li><li>{{ nome }} para o nome do visitante</li><li>{{ data }} para a data de emiss\xe3o da declara\xe7\xe3o</li><li>{{ evento.data_inicio }} para a data/hora do in\xedcio da visita</li><li>{{ evento.data_termino }} para a data/hora do t\xe9rmino da visita</li><li>{{ evento.nome }} para o nome do evento</li><li>{{ evento.descricao }} para a descri\xe7\xe3o do evento</li></ul>', verbose_name='Texto da declara\xe7\xe3o')), |
||||
|
], |
||||
|
options={ |
||||
|
'verbose_name': 'modelo de declara\xe7\xe3o', |
||||
|
'verbose_name_plural': 'modelos de declara\xe7\xe3o', |
||||
|
}, |
||||
|
bases=(models.Model,), |
||||
|
), |
||||
|
] |
@ -0,0 +1,10 @@ |
|||||
|
{% extends "base_change_form.html" %} |
||||
|
{% load i18n %} |
||||
|
|
||||
|
{% block object-tools-items %} |
||||
|
<li><a href="declaracao/"> |
||||
|
<span class="glyphicon glyphicon-print"></span> |
||||
|
{% trans 'Declaração' %} |
||||
|
</a></li> |
||||
|
{{ block.super }} |
||||
|
{% endblock %} |
@ -0,0 +1,24 @@ |
|||||
|
{% extends 'base_report.html' %} |
||||
|
{% load i18n %} |
||||
|
|
||||
|
{% block pagesize %}{{ pagesize }}{% endblock pagesize %} |
||||
|
{% block pagemargin %}4cm {{ pagemargin }}cm {{ pagemargin }}cm 2cm{% endblock pagemargin %} |
||||
|
|
||||
|
{% block report %} |
||||
|
{% for convite in evento.convite_set.all %} |
||||
|
{% with convite.casa.nome as casa %} |
||||
|
{% for nome in convite.nomes_participantes.splitlines %} |
||||
|
{% block text_body %}{% endblock %} |
||||
|
<pdf:nextpage /> |
||||
|
{% endfor %} |
||||
|
{% endwith %} |
||||
|
{% endfor %} |
||||
|
{% endblock %} |
||||
|
|
||||
|
{%block page_foot%} |
||||
|
<table> |
||||
|
<tr> |
||||
|
<td class="footer-left">{% trans 'Emissão:' %} {% now "d/m/Y H:i:s" %}</td> |
||||
|
</tr> |
||||
|
</table> |
||||
|
{% endblock %} |
@ -0,0 +1,25 @@ |
|||||
|
{% extends "admin/base_site.html" %} |
||||
|
{% load i18n bootstrap3 %} |
||||
|
|
||||
|
{% block content_title %} |
||||
|
<h1 class="pull-left">{% trans 'Emitir declaração de comparecimento' %}</h1> |
||||
|
{% endblock %} |
||||
|
|
||||
|
{% block content %} |
||||
|
{% if error %} |
||||
|
<div class="alert alert-danger" role="alert"> |
||||
|
{{ error }} |
||||
|
</div> |
||||
|
{% endif %} |
||||
|
<div id="content-main"> |
||||
|
<form action="" method="post">{% csrf_token %} |
||||
|
{% csrf_token %} |
||||
|
<div class="form-group"> |
||||
|
{% bootstrap_form form %} |
||||
|
</div> |
||||
|
<input type="submit" value="Imprimir" class="btn btn-primary"/> |
||||
|
<a class="btn btn-danger" role="button" href="{% url 'admin:eventos_evento_change' evento_id %}">{% trans "Voltar" %}</a> |
||||
|
</form> |
||||
|
</div> |
||||
|
{% endblock %} |
||||
|
|
Loading…
Reference in new issue