Repository: interlegis/sapl

Issue:
Distinguir campos de texto rico
Todas as text areas do SAPL utilizam texto rico conforme a imagem abaixo. É realmente necessário? Não seria o caso de retirar o texto rico antes de inserir no banco? Todas as text areas precisam de texto rico? Inserir código HTML no banco não poderia dar problema em relatórios PDF que utilizam o trml2pdf, por exemplo?

![captura de tela de 2016-03-07 09-35-45](https://cloud.githubusercontent.com/assets/7716450/13569736/84a09f40-e448-11e5-98a6-c4953cd3ac50.png)



Discussion:
Este ticket relaciona-se ao #239 

Nem todas as textareas devem ser de texto rico. Devemos nos basear em duas coisas para decidir o que é texto rico:
- As telas do sapl 2.5: o campo usa editor rico originalmente?
- O conteúdo do campo na base legada: se tiver html no dado, deve ser texto rico

É fundamental pesquisar se é possível colocar essa informação (se o campo é de texto rico) no Model. Existe um campo específico para isso? Associamos um widget diferente?

Coisas para olhar:
http://stackoverflow.com/questions/20095936/add-rich-text-format-functionality-to-django-textfield
https://code.djangoproject.com/wiki/RichTextField

Pelo que me lembro, só os expedientes em sessão plenária tem texto rico!
acredito que uma implementação interessante é possuir uma função como em https://github.com/interlegis/sapl/blob/master/static/js/compilacao.js#L1

ela seria é chamada sempre que preciso... em locais específicos ou chamadas JavaSrcript que, como no caso da compilação, é muito usado.

| Pelo que me lembro, só os expedientes em sessão plenária tem texto rico!

É. Faz sentido ser só lá mesmo.

Hoje uso texto rico em biografia de parlamentar também, mas atualmente sem o tinymce, faço em um textarea simples mesmo com o html cru. Fica a sugestão para esse campo ser texto rico também!


Resolving patch:
diff --git a/base/forms.py b/base/forms.py
--- a/base/forms.py
+++ b/base/forms.py
@@ -34,6 +34,8 @@ class Meta:
             'cep': forms.TextInput(attrs={'class': 'cep'}),
             'telefone': forms.TextInput(attrs={'class': 'telefone'}),
             'fax': forms.TextInput(attrs={'class': 'telefone'}),
+            'informacao_geral': forms.Textarea(
+                attrs={'id': 'casa-informacoes'})
         }
 
     def __init__(self, *args, **kwargs):
diff --git a/parlamentares/forms.py b/parlamentares/forms.py
--- a/parlamentares/forms.py
+++ b/parlamentares/forms.py
@@ -68,7 +68,8 @@ class Meta:
             'telefone_residencia': forms.TextInput(attrs={
               'class': 'telefone'}),
             'fax_residencia': forms.TextInput(attrs={'class': 'telefone'}),
-            'fotografia': forms.FileInput
+            'fotografia': forms.FileInput,
+            'biografia': forms.Textarea(attrs={'id': 'biografia-parlamentar'})
         }
 
     def __init__(self, *args, **kwargs):
diff --git a/parlamentares/views.py b/parlamentares/views.py
--- a/parlamentares/views.py
+++ b/parlamentares/views.py
@@ -1,9 +1,7 @@
 import os
-from re import sub
 
 from django.contrib import messages
 from django.core.urlresolvers import reverse
-from django.utils.html import strip_tags
 from django.utils.translation import ugettext_lazy as _
 from django.views.generic.edit import FormMixin
 from vanilla import GenericView
@@ -129,9 +127,7 @@ def post(self, request, *args, **kwargs):
             parlamentar = form.save(commit=False)
             if 'fotografia' in request.FILES:
                 parlamentar.fotografia = request.FILES['fotografia']
-            parlamentar.biografia = sub('&nbsp;',
-                                        ' ',
-                                        strip_tags(form.data['biografia']))
+            parlamentar.biografia = form.data['biografia']
             parlamentar.save()
 
             mandato = Mandato()
@@ -167,9 +163,7 @@ def post(self, request, *args, **kwargs):
                 parlamentar = form.save(commit=False)
                 if 'fotografia' in request.FILES:
                     parlamentar.fotografia = request.FILES['fotografia']
-                parlamentar.biografia = sub('&nbsp;',
-                                            ' ',
-                                            strip_tags(form.data['biografia']))
+                parlamentar.biografia = form.data['biografia']
                 parlamentar.save()
             elif 'excluir' in request.POST:
                 Mandato.objects.get(parlamentar=parlamentar).delete()


Test patch: