2424from django .template import loader
2525from django .urls import reverse
2626from django .utils import formats , timezone
27- from django .utils .encoding import force_text
2827from django .utils .translation import ugettext_lazy as _
2928from django .views .generic import CreateView , ListView , TemplateView , UpdateView
3029from django .views .generic .base import RedirectView
3130from django .views .generic .edit import FormView
3231from django_filters .views import FilterView
3332import weasyprint
3433
34+ from ratelimit .decorators import ratelimit
35+ from django .utils .decorators import method_decorator
36+
3537import sapl
3638from sapl .base .email_utils import do_envia_email_confirmacao
3739from sapl .base .models import Autor , CasaLegislativa , AppConfig as BaseAppConfig
@@ -1459,6 +1461,7 @@ def get_initial(self):
14591461
14601462 return initial
14611463
1464+ @method_decorator (ratelimit (key = 'ip' , rate = '10/m' , block = True ), name = 'dispatch' )
14621465 class ListView (MasterDetailCrud .ListView ):
14631466
14641467 def get_queryset (self ):
@@ -1531,6 +1534,7 @@ def delete(self, request, *args, **kwargs):
15311534
15321535 return HttpResponseRedirect (url )
15331536
1537+ @method_decorator (ratelimit (key = 'ip' , rate = '10/m' , block = True ), name = 'dispatch' )
15341538 class DetailView (MasterDetailCrud .DetailView ):
15351539
15361540 template_name = "materia/tramitacao_detail.html"
@@ -1908,6 +1912,7 @@ class DeleteView(Crud.DeleteView):
19081912 def get_success_url (self ):
19091913 return self .search_url
19101914
1915+ @method_decorator (ratelimit (key = 'ip' , rate = '10/m' , block = True ), name = 'dispatch' )
19111916 class DetailView (Crud .DetailView ):
19121917
19131918 layout_key = 'MateriaLegislativaDetail'
@@ -1920,6 +1925,7 @@ def get_context_data(self, **kwargs):
19201925 pk = self .kwargs ['pk' ])
19211926 return context
19221927
1928+ @method_decorator (ratelimit (key = 'ip' , rate = '10/m' , block = True ), name = 'dispatch' )
19231929 class ListView (Crud .ListView , RedirectView ):
19241930
19251931 def get_redirect_url (self , * args , ** kwargs ):
@@ -2040,6 +2046,7 @@ def get(self, request, *args, **kwargs):
20402046 return HttpResponseRedirect (self .get_success_url ())
20412047
20422048
2049+ @method_decorator (ratelimit (key = 'ip' , rate = '10/m' , block = True ), name = 'dispatch' )
20432050class MateriaLegislativaPesquisaView (MultiFormatOutputMixin , FilterView ):
20442051 model = MateriaLegislativa
20452052 filterset_class = MateriaLegislativaFilterSet
0 commit comments