sábado, 3 de outubro de 2009

Brincando com o Django

2 comentários:
Esta semana estive brincando com o Django. Corrigindo: há algum tempo estou brincando com ele, pois estamos implementando o sistema administrativo da FEBRACE lá no LSI-NATE.

Enfim, o fato é que usamos Django para implementar o sistema de submissão de projetos, avaliação e outras partes internas de gerenciamento. Por motivos de políticas de acesso, em diversos momentos precisamos de campos exibidos com uma permissão de "somente leitura" dentro do sistema Admin.

Pesquisando um bocado por aí, conclui que deveria criar um campo específico para este fim e usar nos formulários conforme precisássemos. Aí vai a minha ideia:
  • Criar um arquivo "fields.py" (no meu caso, ele já existia)
  • Inserir o trecho de código a seguir
  • Usar os campos "ReadOnly" em formulários como qualquer outro Field do Django
from django.utils.encoding import force_unicode
from django.utils.safestring import mark_safe
class ReadOnlyWidget(forms.Widget):
    def render(self, name, value, attrs=None):
        if value is None: value = ''
        if value != '':
            # usa necessariamente Unicode
            value = force_unicode(value)
        return mark_safe(u'' % value)

class ReadOnlyField(forms.Field):
    widget = ReadOnlyWidget()

class ReadOnlyChoiceField(forms.ModelChoiceField):
    widget = forms.Select(attrs={'disabled':'true'})

O ReadOnlyField pode ser usado para campos "normais"; os que estabelecem relacionamento do tipo ForeignKey, devem usar o ReadOnlyChoiceField. O primeiro exibe o valor armazenado usando a tag HTML "label" e o segundo exibe um "select" desabilitado.

Faça bom proveito e deixe seus comentários!

quinta-feira, 1 de outubro de 2009

Cotas et alli [2]

Nenhum comentário:
Acho bastante curioso como se questiona a validade do sistema de cotas para afrodescendentes em Universidades e em propagandas, principalmente.

Pelo que lembro, já temos cotas para mulheres na ocupação de cargos políticos e também para portadores de deficiência. Não se questiona a competência ou a falta dela para a exercer as atividades, o ponto é justamente o preconceito que impede a ocupação igualitária de cargos.

Afinal, mulheres são menos competentes por serem mulheres ou somos machistas e não damos as devidas oportunidades? Portadores de deficiência estão menos capacitados a terem uma vida plenamente ativa ou somos preconceituosos e damos menos oportunidades a eles? Afrodescendentes estão "por baixo" por merecerem ou somos uma sociedade racista e as oportunidades não são as mesmas?

Li um texto muito interessante que fala da importância da igualdade numa sociedade considerada mais justa: "Da relação direta entre ter de limpar seu banheiro você mesmo e poder abrir sem medo um Mac Book no ônibus". Recomendo a leitura para entender o motivo de todos serem tratados com respeito; sem demagogia.