Browse Source

add last global time refresh

pull/2214/head
Leandro Roberto 7 years ago
parent
commit
43326a96b4
  1. 4
      sapl/api/urls.py
  2. 14
      sapl/api/views.py
  3. 10
      sapl/rules/apps.py

4
sapl/api/urls.py

@ -5,7 +5,7 @@ from rest_framework.routers import DefaultRouter
import sapl.api.base.urls
import sapl.api.materia.urls
import sapl.api.sessao.urls
from sapl.api.views import ModelChoiceView
from sapl.api.views import ModelChoiceView, TimeRefreshDatabaseView
from .apps import AppConfig
@ -22,6 +22,8 @@ urlpatterns_router = router.urls
urlpatterns_api = [
url(r'^model/(?P<content_type>\d+)/(?P<pk>\d*)$',
ModelChoiceView.as_view(), name='model_list'),
url(r'time_refresh$',
TimeRefreshDatabaseView.as_view(), name="time_refresh")
]
if settings.DEBUG:

14
sapl/api/views.py

@ -1,8 +1,12 @@
from django.apps import apps
from django.contrib.contenttypes.models import ContentType
from rest_framework.generics import ListAPIView
from rest_framework.permissions import (IsAuthenticated)
from rest_framework.permissions import (IsAuthenticated, AllowAny)
from rest_framework.response import Response
from rest_framework.views import APIView
from sapl.api.serializers import ModelChoiceSerializer
from sapl.rules.apps import AppConfig
class ModelChoiceView(ListAPIView):
@ -24,3 +28,11 @@ class ModelChoiceView(ListAPIView):
def get_queryset(self):
return self.model.objects.all()
class TimeRefreshDatabaseView(APIView):
permission_classes = (AllowAny,)
def get(self, request, *args, **kwargs):
return Response({'last_global_refresh_time': apps.get_app_config('rules').time_refresh})

10
sapl/rules/apps.py

@ -6,7 +6,10 @@ from django.contrib.auth import get_user_model
from django.contrib.auth.management import _get_all_permissions
from django.core import exceptions
from django.db import models, router
from django.db.models.signals import post_save, post_delete
from django.db.utils import DEFAULT_DB_ALIAS
from django.dispatch.dispatcher import receiver
from django.utils import timezone
from django.utils.translation import string_concat
from django.utils.translation import ugettext_lazy as _
import reversion
@ -21,6 +24,7 @@ class AppConfig(django.apps.AppConfig):
name = 'sapl.rules'
label = 'rules'
verbose_name = _('Regras de Acesso')
time_refresh = timezone.now()
def create_proxy_permissions(
@ -254,3 +258,9 @@ models.signals.post_migrate.connect(
models.signals.pre_delete.connect(
receiver=revision_pre_delete_signal,
dispatch_uid="pre_delete_signal")
@receiver([post_save, post_delete])
def refresh_time_update_base(sender, instance, **kwargs):
rule_app = apps.get_app_config('rules')
rule_app.time_refresh = timezone.now()

Loading…
Cancel
Save