mirror of https://github.com/interlegis/sapl.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
3.3 KiB
115 lines
3.3 KiB
from crispy_forms.helper import FormHelper
|
|
from crispy_forms.layout import HTML, Fieldset, Layout
|
|
from django import forms
|
|
from django.core.exceptions import ValidationError
|
|
from django.forms import ModelForm
|
|
from django.utils.translation import ugettext_lazy as _
|
|
from floppyforms import ClearableFileInput
|
|
|
|
import crispy_layout_mixin
|
|
from crispy_layout_mixin import form_actions
|
|
from sapl.settings import MAX_IMAGE_UPLOAD_SIZE
|
|
|
|
from .models import CasaLegislativa
|
|
|
|
|
|
class ImageThumbnailFileInput(ClearableFileInput):
|
|
template_name = 'floppyforms/image_thumbnail.html'
|
|
|
|
|
|
class CasaLegislativaTabelaAuxForm(ModelForm):
|
|
|
|
class Meta:
|
|
|
|
model = CasaLegislativa
|
|
fields = ['codigo',
|
|
'nome',
|
|
'sigla',
|
|
'endereco',
|
|
'cep',
|
|
'municipio',
|
|
'uf',
|
|
'telefone',
|
|
'fax',
|
|
'logotipo',
|
|
'endereco_web',
|
|
'email',
|
|
'informacao_geral']
|
|
|
|
widgets = {
|
|
'uf': forms.Select(attrs={'class': 'selector'}),
|
|
'cep': forms.TextInput(attrs={'class': 'cep'}),
|
|
'telefone': forms.TextInput(attrs={'class': 'telefone'}),
|
|
'fax': forms.TextInput(attrs={'class': 'telefone'}),
|
|
'logotipo': ImageThumbnailFileInput,
|
|
'informacao_geral': forms.Textarea(
|
|
attrs={'id': 'texto-rico'})
|
|
}
|
|
|
|
def clean_logotipo(self):
|
|
logotipo = self.cleaned_data.get('logotipo', False)
|
|
if logotipo:
|
|
if logotipo.size > MAX_IMAGE_UPLOAD_SIZE:
|
|
raise ValidationError("Imagem muito grande. ( > 2mb )")
|
|
return logotipo
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
|
row1 = crispy_layout_mixin.to_row(
|
|
[('codigo', 2),
|
|
('nome', 5),
|
|
('sigla', 5)])
|
|
|
|
row2 = crispy_layout_mixin.to_row(
|
|
[('endereco', 8),
|
|
('cep', 4)])
|
|
|
|
row3 = crispy_layout_mixin.to_row(
|
|
[('municipio', 10),
|
|
('uf', 2)])
|
|
|
|
row4 = crispy_layout_mixin.to_row(
|
|
[('telefone', 6),
|
|
('fax', 6)])
|
|
|
|
row5 = crispy_layout_mixin.to_row(
|
|
[('logotipo', 12)])
|
|
|
|
row6 = crispy_layout_mixin.to_row(
|
|
[('endereco_web', 12)])
|
|
|
|
row7 = crispy_layout_mixin.to_row(
|
|
[('email', 12)])
|
|
|
|
row8 = crispy_layout_mixin.to_row(
|
|
[('informacao_geral', 12)])
|
|
|
|
self.helper = FormHelper()
|
|
self.helper.layout = Layout(
|
|
Fieldset(
|
|
_('Dados Básicos'),
|
|
row1,
|
|
row2,
|
|
row3,
|
|
row4,
|
|
row5,
|
|
HTML("""
|
|
<div class="col-md-12">
|
|
{% if not form.fotografia.errors and form.fotografia.value %}
|
|
<img class="img-responsive" width="225" height="300"
|
|
src="{{ MEDIA_URL }}{{ form.logotipo.value }}">
|
|
<br />
|
|
<input type="submit"
|
|
name="remover"
|
|
id="remover"
|
|
class="btn btn-warning"
|
|
value="Remover Logo"/>
|
|
{% endif %}
|
|
</div>"""),
|
|
row6,
|
|
row7,
|
|
row8,
|
|
form_actions()
|
|
)
|
|
)
|
|
super(CasaLegislativaTabelaAuxForm, self).__init__(*args, **kwargs)
|
|
|