Browse Source

Fix logotipo upload

pull/98/head
Edward Ribeiro 9 years ago
parent
commit
b0a801931e
  1. 25
      base/migrations/0007_auto_20160107_1837.py
  2. 5
      base/models.py
  3. 17
      base/views.py
  4. 4
      sapl/settings.py
  5. 6
      sessao/urls.py

25
base/migrations/0007_auto_20160107_1837.py

@ -0,0 +1,25 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
import base.models
class Migration(migrations.Migration):
dependencies = [
('base', '0006_auto_20160107_1257'),
]
operations = [
migrations.AlterField(
model_name='casalegislativa',
name='informacao_geral',
field=models.CharField(blank=True, max_length=100, verbose_name='Informação Geral', null=True),
),
migrations.AlterField(
model_name='casalegislativa',
name='logotipo',
field=models.ImageField(blank=True, upload_to=base.models.get_casa_media_path, verbose_name='Logotipo', null=True),
),
]

5
base/models.py

@ -2,11 +2,10 @@ from django.db import models
from django.utils.translation import ugettext_lazy as _
def get_sessao_media_path(instance, subpath, filename):
return './casa/%s/%s/%s' % (instance.numero, subpath, filename)
return './casa/%s/%s/%s' % (instance.codigo, subpath, filename)
def get_casa_media_path(instance, filename):
import ipdb; ipdb.set_trace()
return get_sessao_media_path(instance, 'Logotipo', filename)
class CasaLegislativa(models.Model):
@ -22,7 +21,7 @@ class CasaLegislativa(models.Model):
uf = models.CharField(max_length=100, verbose_name=_('UF'))
telefone = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('Telefone'))
fax = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('Fax'))
logotipo = models.FileField(
logotipo = models.ImageField(
blank=True,
null=True,
upload_to=get_casa_media_path,

17
base/views.py

@ -1,6 +1,6 @@
import sapl
from crispy_forms.helper import FormHelper
from crispy_forms.layout import ButtonHolder, Fieldset, Layout, Submit
from crispy_forms.layout import ButtonHolder, HTML, Fieldset, Layout, Submit
from django import forms
from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse
@ -11,6 +11,8 @@ from vanilla import GenericView
from .models import CasaLegislativa
from sapl import settings
class HelpView(TemplateView):
# XXX treat non existing template as a 404!!!!
@ -135,6 +137,10 @@ class CasaLegislativaTabelaAuxForm(ModelForm):
row3,
row4,
row5,
HTML("""{% if form.logotipo.value %}
<img class="img-responsive"
src="{{ MEDIA_URL }}{{ form.logotipo.value }}">
{% endif %}""", ),
row6,
row7,
row8,
@ -162,7 +168,7 @@ class CasaLegislativaTableAuxView(FormMixin, GenericView):
return self.render_to_response({'form': form})
def post(self, request, *args, **kwargs):
form = CasaLegislativaTabelaAuxForm(request.POST or request.FILES)
form = CasaLegislativaTabelaAuxForm(request.POST, request.FILES)
if form.is_valid():
try:
@ -171,13 +177,8 @@ class CasaLegislativaTableAuxView(FormMixin, GenericView):
casa_save = form.save(commit=False)
else:
casa_save = CasaLegislativaTabelaAuxForm(
request.POST, instance=casa)
if 'logotipo' in request.FILES:
casa_save.logotipo = request.FILES['logotipo']
request.POST, request.FILES, instance=casa).save(commit=False)
casa_save.save()
return self.form_valid(form)
else:
return self.render_to_response({'form': form})

4
sapl/settings.py

@ -86,6 +86,8 @@ TEMPLATES = [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
"django.core.context_processors.media",
"django.core.context_processors.static",
'django.contrib.messages.context_processors.messages',
'sapl.context_processors.parliament_info',
],
@ -94,6 +96,7 @@ TEMPLATES = [
},
]
WSGI_APPLICATION = 'sapl.wsgi.application'
# Database
@ -139,6 +142,7 @@ STATICFILES_FINDERS = (
)
MEDIA_ROOT = BASE_DIR.child("media")
MEDIA_URL = '/media/'
DAB_FIELD_RENDERER = \
'django_admin_bootstrapped.renderers.BootstrapFieldRenderer'

6
sessao/urls.py

@ -17,6 +17,8 @@ from sessao.views import (EditExpedienteOrdemDiaView, EditMateriaOrdemDiaView,
VotacaoView, sessao_crud, tipo_expediente_crud,
tipo_resultado_votacao_crud, tipo_sessao_crud)
from sapl import settings
urlpatterns_sessao = sessao_crud.urlpatterns + [
url(r'^(?P<pk>\d+)/expediente$',
ExpedienteView.as_view(), name='expediente'),
@ -87,13 +89,15 @@ urlpatterns_sessao = sessao_crud.urlpatterns + [
PautaSessaoListView.as_view(), name='list_pauta_sessao'),
url(r'^(?P<pk>\d+)/pauta-sessao-detail$',
PautaSessaoDetailView.as_view(), name='pauta_sessao_detail'),
url(r'^cadastro$', SessaoCadastroView.as_view(), name='sessao_cadastro')
url(r'^cadastro$', SessaoCadastroView.as_view(), name='sessao_cadastro'),
]
sessao_urls = urlpatterns_sessao, sessao_crud.namespace, sessao_crud.namespace
urlpatterns = [
url(r'^sessao/', include(urlpatterns_sessao,
sessao_crud.namespace, sessao_crud.namespace)),
url(r'^media/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT}),
url(r'^sistema/sessao-plenaria/tipo/', include(tipo_sessao_crud.urls)),
url(r'^sistema/sessao-plenaria/tipo-resultado-votacao/',
include(tipo_resultado_votacao_crud.urls)),

Loading…
Cancel
Save