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 _ from django.utils.translation import ugettext_lazy as _
def get_sessao_media_path(instance, subpath, filename): 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): def get_casa_media_path(instance, filename):
import ipdb; ipdb.set_trace()
return get_sessao_media_path(instance, 'Logotipo', filename) return get_sessao_media_path(instance, 'Logotipo', filename)
class CasaLegislativa(models.Model): class CasaLegislativa(models.Model):
@ -22,7 +21,7 @@ class CasaLegislativa(models.Model):
uf = models.CharField(max_length=100, verbose_name=_('UF')) uf = models.CharField(max_length=100, verbose_name=_('UF'))
telefone = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('Telefone')) 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')) fax = models.CharField(max_length=100, blank=True, null=True, verbose_name=_('Fax'))
logotipo = models.FileField( logotipo = models.ImageField(
blank=True, blank=True,
null=True, null=True,
upload_to=get_casa_media_path, upload_to=get_casa_media_path,

17
base/views.py

@ -1,6 +1,6 @@
import sapl import sapl
from crispy_forms.helper import FormHelper 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 import forms
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
@ -11,6 +11,8 @@ from vanilla import GenericView
from .models import CasaLegislativa from .models import CasaLegislativa
from sapl import settings
class HelpView(TemplateView): class HelpView(TemplateView):
# XXX treat non existing template as a 404!!!! # XXX treat non existing template as a 404!!!!
@ -135,6 +137,10 @@ class CasaLegislativaTabelaAuxForm(ModelForm):
row3, row3,
row4, row4,
row5, row5,
HTML("""{% if form.logotipo.value %}
<img class="img-responsive"
src="{{ MEDIA_URL }}{{ form.logotipo.value }}">
{% endif %}""", ),
row6, row6,
row7, row7,
row8, row8,
@ -162,7 +168,7 @@ class CasaLegislativaTableAuxView(FormMixin, GenericView):
return self.render_to_response({'form': form}) return self.render_to_response({'form': form})
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
form = CasaLegislativaTabelaAuxForm(request.POST or request.FILES) form = CasaLegislativaTabelaAuxForm(request.POST, request.FILES)
if form.is_valid(): if form.is_valid():
try: try:
@ -171,13 +177,8 @@ class CasaLegislativaTableAuxView(FormMixin, GenericView):
casa_save = form.save(commit=False) casa_save = form.save(commit=False)
else: else:
casa_save = CasaLegislativaTabelaAuxForm( casa_save = CasaLegislativaTabelaAuxForm(
request.POST, instance=casa) request.POST, request.FILES, instance=casa).save(commit=False)
if 'logotipo' in request.FILES:
casa_save.logotipo = request.FILES['logotipo']
casa_save.save() casa_save.save()
return self.form_valid(form) return self.form_valid(form)
else: else:
return self.render_to_response({'form': form}) 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.debug',
'django.template.context_processors.request', 'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth', 'django.contrib.auth.context_processors.auth',
"django.core.context_processors.media",
"django.core.context_processors.static",
'django.contrib.messages.context_processors.messages', 'django.contrib.messages.context_processors.messages',
'sapl.context_processors.parliament_info', 'sapl.context_processors.parliament_info',
], ],
@ -94,6 +96,7 @@ TEMPLATES = [
}, },
] ]
WSGI_APPLICATION = 'sapl.wsgi.application' WSGI_APPLICATION = 'sapl.wsgi.application'
# Database # Database
@ -139,6 +142,7 @@ STATICFILES_FINDERS = (
) )
MEDIA_ROOT = BASE_DIR.child("media") MEDIA_ROOT = BASE_DIR.child("media")
MEDIA_URL = '/media/'
DAB_FIELD_RENDERER = \ DAB_FIELD_RENDERER = \
'django_admin_bootstrapped.renderers.BootstrapFieldRenderer' '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, VotacaoView, sessao_crud, tipo_expediente_crud,
tipo_resultado_votacao_crud, tipo_sessao_crud) tipo_resultado_votacao_crud, tipo_sessao_crud)
from sapl import settings
urlpatterns_sessao = sessao_crud.urlpatterns + [ urlpatterns_sessao = sessao_crud.urlpatterns + [
url(r'^(?P<pk>\d+)/expediente$', url(r'^(?P<pk>\d+)/expediente$',
ExpedienteView.as_view(), name='expediente'), ExpedienteView.as_view(), name='expediente'),
@ -87,13 +89,15 @@ urlpatterns_sessao = sessao_crud.urlpatterns + [
PautaSessaoListView.as_view(), name='list_pauta_sessao'), PautaSessaoListView.as_view(), name='list_pauta_sessao'),
url(r'^(?P<pk>\d+)/pauta-sessao-detail$', url(r'^(?P<pk>\d+)/pauta-sessao-detail$',
PautaSessaoDetailView.as_view(), name='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 sessao_urls = urlpatterns_sessao, sessao_crud.namespace, sessao_crud.namespace
urlpatterns = [ urlpatterns = [
url(r'^sessao/', include(urlpatterns_sessao, url(r'^sessao/', include(urlpatterns_sessao,
sessao_crud.namespace, sessao_crud.namespace)), 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/', include(tipo_sessao_crud.urls)),
url(r'^sistema/sessao-plenaria/tipo-resultado-votacao/', url(r'^sistema/sessao-plenaria/tipo-resultado-votacao/',
include(tipo_resultado_votacao_crud.urls)), include(tipo_resultado_votacao_crud.urls)),

Loading…
Cancel
Save