Browse Source

Agrega mensagens de form válido/inválido no crud

pull/255/head
Marcio Mazza 9 years ago
parent
commit
706ccf1f1e
  1. 29
      crud/base.py
  2. 10
      norma/forms.py
  3. 22
      norma/views.py

29
crud/base.py

@ -8,6 +8,19 @@ from django.views.generic import (CreateView, DeleteView, DetailView, ListView,
from crispy_layout_mixin import CrispyLayoutFormMixin, get_field_display from crispy_layout_mixin import CrispyLayoutFormMixin, get_field_display
def _form_invalid_message(msg):
return '%s %s' % (_('Formulário inválido.'), msg)
FORM_MESSAGES = {'create': (_('Registro criado com sucesso!'),
_('O registro não foi criado.')),
'update': (_('Registro alterado com sucesso!'),
_('Suas alterações não foram salvas.')),
'delete': (_('Registro excluído com sucesso!'),
_('O registro não foi excluído.'))}
FORM_MESSAGES = {k: (a, _form_invalid_message(b))
for k, (a, b) in FORM_MESSAGES.items()}
def from_to(start, end): def from_to(start, end):
return list(range(start, end + 1)) return list(range(start, end + 1))
@ -115,15 +128,9 @@ class ListMixin():
return context return context
def make_form_invalid_message(msg):
return '%s %s' % (_('Formulário inválido.'), msg)
class CreateMixin(FormMessagesMixin): class CreateMixin(FormMessagesMixin):
form_valid_message = _('Registro criado com sucesso!') form_valid_message, form_invalid_message = FORM_MESSAGES['create']
form_invalid_message = make_form_invalid_message(
_('O registro não foi criado.'))
@property @property
def cancel_url(self): def cancel_url(self):
@ -144,9 +151,7 @@ class DetailMixin():
class UpdateMixin(FormMessagesMixin): class UpdateMixin(FormMessagesMixin):
form_valid_message = _('Registro alterado com sucesso!') form_valid_message, form_invalid_message = FORM_MESSAGES['update']
form_invalid_message = make_form_invalid_message(
_('Suas alterações não foram salvas.'))
@property @property
def cancel_url(self): def cancel_url(self):
@ -158,9 +163,7 @@ class UpdateMixin(FormMessagesMixin):
class DeleteMixin(FormMessagesMixin): class DeleteMixin(FormMessagesMixin):
form_valid_message = _('Registro excluído com sucesso!') form_valid_message, form_invalid_message = FORM_MESSAGES['delete']
form_invalid_message = make_form_invalid_message(
_('O registro não foi excluído.'))
@property @property
def cancel_url(self): def cancel_url(self):

10
norma/forms.py

@ -39,14 +39,14 @@ class NormaJuridicaPesquisaForm(ModelForm):
format='%d/%m/%Y', format='%d/%m/%Y',
attrs={'class': 'dateinput'})) attrs={'class': 'dateinput'}))
publicação_inicial = forms.DateField(label=u'Publicação Inicial', publicacao_inicial = forms.DateField(label=u'Publicação Inicial',
input_formats=['%d/%m/%Y'], input_formats=['%d/%m/%Y'],
required=False, required=False,
widget=forms.DateInput( widget=forms.DateInput(
format='%d/%m/%Y', format='%d/%m/%Y',
attrs={'class': 'dateinput'})) attrs={'class': 'dateinput'}))
publicação_final = forms.DateField(label=u'Publicação Final', publicacao_final = forms.DateField(label=u'Publicação Final',
input_formats=['%d/%m/%Y'], input_formats=['%d/%m/%Y'],
required=False, required=False,
widget=forms.DateInput( widget=forms.DateInput(
@ -60,8 +60,8 @@ class NormaJuridicaPesquisaForm(ModelForm):
'ano', 'ano',
'periodo_inicial', 'periodo_inicial',
'periodo_final', 'periodo_final',
'publicação_inicial', 'publicacao_inicial',
'publicação_final'] 'publicacao_final']
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
@ -75,7 +75,7 @@ class NormaJuridicaPesquisaForm(ModelForm):
[('periodo_inicial', 6), ('periodo_final', 6)]) [('periodo_inicial', 6), ('periodo_final', 6)])
row4 = crispy_layout_mixin.to_row( row4 = crispy_layout_mixin.to_row(
[('publicação_inicial', 6), ('publicação_final', 6)]) [('publicacao_inicial', 6), ('publicacao_final', 6)])
self.helper = FormHelper() self.helper = FormHelper()
self.helper.layout = Layout( self.helper.layout = Layout(

22
norma/views.py

@ -45,9 +45,9 @@ class NormaPesquisaView(GenericView):
if form.data['periodo_inicial'] and form.data['periodo_final']: if form.data['periodo_inicial'] and form.data['periodo_final']:
kwargs['periodo_inicial'] = form.data['periodo_inicial'] kwargs['periodo_inicial'] = form.data['periodo_inicial']
kwargs['periodo_final'] = form.data['periodo_final'] kwargs['periodo_final'] = form.data['periodo_final']
if form.data['publicação_inicial'] and form.data['publicação_final']: if form.data['publicacao_inicial'] and form.data['publicacao_final']:
kwargs['publicação_inicial'] = form.data['publicação_inicial'] kwargs['publicacao_inicial'] = form.data['publicacao_inicial']
kwargs['publicação_final'] = form.data['publicação_final'] kwargs['publicacao_final'] = form.data['publicacao_final']
request.session['kwargs'] = kwargs request.session['kwargs'] = kwargs
return redirect('list_pesquisa_norma') return redirect('list_pesquisa_norma')
@ -69,16 +69,16 @@ class PesquisaNormaListView(ListView):
periodo_final = datetime.strptime( periodo_final = datetime.strptime(
kwargs['periodo_final'], kwargs['periodo_final'],
'%d/%m/%Y').strftime('%Y-%m-%d') '%d/%m/%Y').strftime('%Y-%m-%d')
publicação_inicial = datetime.strptime( publicacao_inicial = datetime.strptime(
kwargs['publicação_inicial'], kwargs['publicacao_inicial'],
'%d/%m/%Y').strftime('%Y-%m-%d') '%d/%m/%Y').strftime('%Y-%m-%d')
publicação_final = datetime.strptime( publicacao_final = datetime.strptime(
kwargs['publicação_final'], kwargs['publicacao_final'],
'%d/%m/%Y').strftime('%Y-%m-%d') '%d/%m/%Y').strftime('%Y-%m-%d')
normas = normas.filter( normas = normas.filter(
data__range=(periodo_inicial, periodo_final), data__range=(periodo_inicial, periodo_final),
data_publicacao__range=(publicação_inicial, publicação_final)) data_publicacao__range=(publicacao_inicial, publicacao_final))
if 'periodo_inicial' in kwargs: if 'periodo_inicial' in kwargs:
inicial = datetime.strptime(kwargs['periodo_inicial'], inicial = datetime.strptime(kwargs['periodo_inicial'],
@ -88,10 +88,10 @@ class PesquisaNormaListView(ListView):
normas = normas.filter(data__range=(inicial, final)) normas = normas.filter(data__range=(inicial, final))
if 'publicação_inicial' in kwargs: if 'publicacao_inicial' in kwargs:
inicial = datetime.strptime(kwargs['publicação_inicial'], inicial = datetime.strptime(kwargs['publicacao_inicial'],
'%d/%m/%Y').strftime('%Y-%m-%d') '%d/%m/%Y').strftime('%Y-%m-%d')
final = datetime.strptime(kwargs['publicação_final'], final = datetime.strptime(kwargs['publicacao_final'],
'%d/%m/%Y').strftime('%Y-%m-%d') '%d/%m/%Y').strftime('%Y-%m-%d')
normas = normas.filter(data_publicacao__range=(inicial, final)) normas = normas.filter(data_publicacao__range=(inicial, final))

Loading…
Cancel
Save