Skip to content

Commit

Permalink
adiciona abstração na obtenção do model User
Browse files Browse the repository at this point in the history
  • Loading branch information
LeandroJatai committed Jun 8, 2016
1 parent 75cc37b commit 6fd0057
Show file tree
Hide file tree
Showing 8 changed files with 41 additions and 8 deletions.
8 changes: 8 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -235,13 +235,20 @@ Boas Práticas
* Mantenha todo o código de acordo com o padrão da PEP8 (sem exceções).

* Antes de todo ``git push``:

- Execute ``git pull --rebase`` (quase sempre).
- Em casos excepcionais, faça somente ``git pull`` para criar um merge.

* Antes de ``git commit``, sempre:

- Execute ``./manage.py check``
- Execute todos os testes com ``py.test`` na pasta raiz do projeto

* Em caso de Implementação de modelo que envolva a classe from django.contrib.auth.models.User, não a use diretamente, use para isso a função get_user_model() de sapl.utils. Exemplo:

- no lugar de ``owner = models.ForeignKey(User, ... )``
- use ``owner = models.ForeignKey(get_user_model(), ... )``

Atenção:

O usuário do banco de dados ``sapl`` deve ter a permissão ``create database`` no postgres para que os testes tenham sucesso
Expand All @@ -253,6 +260,7 @@ Atenção:
Nós sugerimos que você abra uma nova issue para discutir novas funcionalidades. Elas podem ser escritas tanto em Português, quanto em Inglês.



Testes
------

Expand Down
1 change: 1 addition & 0 deletions base/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from django.contrib.auth.forms import AuthenticationForm
from django.core.exceptions import ValidationError
from django.forms import ModelForm

import sapl
from sapl.settings import MAX_IMAGE_UPLOAD_SIZE

Expand Down
4 changes: 2 additions & 2 deletions compilacao/models.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from django.contrib.auth.models import User
from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType
from django.db import models
Expand All @@ -9,6 +8,7 @@

from compilacao.utils import int_to_letter, int_to_roman
from sapl import utils
from sapl.utils import get_user_model


class TimestampedMixin(models.Model):
Expand Down Expand Up @@ -1293,7 +1293,7 @@ class Nota(TimestampedMixin):
verbose_name=_('Dispositivo da Nota'),
related_name='dispositivo_nota_set')

owner = models.ForeignKey(User, verbose_name=_('Dono da Nota'))
owner = models.ForeignKey(get_user_model(), verbose_name=_('Dono da Nota'))
publicidade = models.PositiveSmallIntegerField(
choices=NOTAS_PUBLICIDADE_CHOICES,
verbose_name=_('Nível de Publicidade'))
Expand Down
3 changes: 1 addition & 2 deletions compilacao/views.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import sys
from collections import OrderedDict
from datetime import datetime, timedelta
import sys

from braces.views import FormMessagesMixin
from django import forms
Expand Down Expand Up @@ -37,7 +37,6 @@
from compilacao.utils import DISPOSITIVO_SELECT_RELATED
from crud.base import Crud, CrudListView, make_pagination


TipoNotaCrud = Crud.build(TipoNota, 'tipo_nota')
TipoVideCrud = Crud.build(TipoVide, 'tipo_vide')
TipoPublicacaoCrud = Crud.build(TipoPublicacao, 'tipo_publicacao')
Expand Down
6 changes: 3 additions & 3 deletions materia/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -488,7 +488,7 @@ def get(self, request, *args, **kwargs):
# Então a ordem da URL está diferente
data = self.filterset.data
if (data and data.get('tipo') is not None):
url = "&"+str(self.request.environ['QUERY_STRING'])
url = "&" + str(self.request.environ['QUERY_STRING'])
if url.startswith("&page"):
ponto_comeco = url.find('tipo=') - 1
url = url[ponto_comeco:]
Expand Down Expand Up @@ -599,7 +599,7 @@ def criar_email_confirmacao(request, casa_legislativa, materia, hash_txt=''):
casa_legislativa.municipio + '-' +
casa_legislativa.uf)

base_url = get_base_url(request)
base_url = sapl.utils.get_base_url(request)
materia_url = reverse('materia:acompanhar_materia',
kwargs={'pk': materia.id})
confirmacao_url = reverse('materia:acompanhar_confirmar',
Expand Down Expand Up @@ -636,7 +636,7 @@ def criar_email_tramitacao(request, casa_legislativa, materia, hash_txt=''):
casa_legislativa.municipio + '-' +
casa_legislativa.uf)

base_url = get_base_url(request)
base_url = sapl.utils.get_base_url(request)
url_materia = reverse('materia:acompanhar_materia',
kwargs={'pk': materia.id})
url_excluir = reverse('materia:acompanhar_excluir',
Expand Down
16 changes: 16 additions & 0 deletions norma/migrations/0014_merge.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.5 on 2016-06-08 16:14
from __future__ import unicode_literals

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
('norma', '0013_auto_20160510_1404'),
('norma', '0013_auto_20160503_0926'),
]

operations = [
]
4 changes: 4 additions & 0 deletions sapl/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,10 @@
)
}

# troque no caso de reimplementação da classe User conforme
# https://docs.djangoproject.com/en/1.9/topics/auth/customizing/#substituting-a-custom-user-model
AUTH_USER_MODEL = 'auth.User'

EMAIL_USE_TLS = config('EMAIL_USE_TLS', cast=bool)
EMAIL_HOST = config('EMAIL_HOST', cast=str)
EMAIL_HOST_USER = config('EMAIL_HOST_USER', cast=str)
Expand Down
7 changes: 6 additions & 1 deletion sapl/utils.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
from datetime import date
from functools import wraps

import magic
from django.apps import apps
from django.conf import settings
from django.contrib import admin
from django.core.exceptions import ValidationError
from django.utils.translation import ugettext_lazy as _
from floppyforms import ClearableFileInput
import magic


autor_label = '''
Expand Down Expand Up @@ -54,6 +55,10 @@ def xstr(s):
return '' if s is None else str(s)


def get_user_model():
return getattr(settings, 'AUTH_USER_MODEL', 'auth.User')


def get_client_ip(request):
x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
if x_forwarded_for:
Expand Down

0 comments on commit 6fd0057

Please sign in to comment.