mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-12-24 07:53:47 +00:00
serialization des rappel de fin de connexion
This commit is contained in:
parent
c3cb847ccf
commit
57d6a12aa4
4 changed files with 42 additions and 0 deletions
|
@ -804,6 +804,26 @@ class DNSZonesSerializer(serializers.ModelSerializer):
|
||||||
'mx_records', 'txt_records', 'srv_records', 'a_records',
|
'mx_records', 'txt_records', 'srv_records', 'a_records',
|
||||||
'aaaa_records', 'cname_records')
|
'aaaa_records', 'cname_records')
|
||||||
|
|
||||||
|
#REMINDER
|
||||||
|
|
||||||
|
|
||||||
|
class ReminderUsersSerializer(UserSerializer):
|
||||||
|
"""Serialize the data about a mailing member.
|
||||||
|
"""
|
||||||
|
class Meta(UserSerializer.Meta):
|
||||||
|
fields = ('get_full_name', 'email')
|
||||||
|
|
||||||
|
|
||||||
|
class ReminderSerializer(serializers.ModelSerializer):
|
||||||
|
"""
|
||||||
|
Serialize the data about a reminder
|
||||||
|
"""
|
||||||
|
users_to_remind = ReminderUsersSerializer(many=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = preferences.Reminder
|
||||||
|
fields = ('days','message','users_to_remind')
|
||||||
|
|
||||||
|
|
||||||
# MAILING
|
# MAILING
|
||||||
|
|
||||||
|
|
|
@ -100,6 +100,8 @@ router.register_viewset(r'services/regen', views.ServiceRegenViewSet, base_name=
|
||||||
router.register_view(r'dhcp/hostmacip', views.HostMacIpView),
|
router.register_view(r'dhcp/hostmacip', views.HostMacIpView),
|
||||||
# Switches config
|
# Switches config
|
||||||
router.register_view(r'switchs/ports-config', views.SwitchPortView),
|
router.register_view(r'switchs/ports-config', views.SwitchPortView),
|
||||||
|
# Reminder
|
||||||
|
router.register_view(r'reminder/get-users', views.ReminderView),
|
||||||
# DNS
|
# DNS
|
||||||
router.register_view(r'dns/zones', views.DNSZonesView),
|
router.register_view(r'dns/zones', views.DNSZonesView),
|
||||||
# MAILING
|
# MAILING
|
||||||
|
|
|
@ -504,6 +504,15 @@ class SwitchPortView(generics.ListAPIView):
|
||||||
queryset = topologie.Switch.objects.all().prefetch_related('ports__custom_profile')
|
queryset = topologie.Switch.objects.all().prefetch_related('ports__custom_profile')
|
||||||
serializer_class = serializers.SwitchPortSerializer
|
serializer_class = serializers.SwitchPortSerializer
|
||||||
|
|
||||||
|
# Rappel fin adhésion
|
||||||
|
|
||||||
|
class ReminderView(generics.ListAPIView):
|
||||||
|
"""Exposes the associations between hostname, mac address and IPv4 in
|
||||||
|
order to build the DHCP lease files.
|
||||||
|
"""
|
||||||
|
queryset = preferences.Reminder.objects.all()
|
||||||
|
serializer_class = serializers.ReminderSerializer
|
||||||
|
|
||||||
|
|
||||||
# DHCP
|
# DHCP
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,7 @@ Reglages généraux, machines, utilisateurs, mail, general pour l'application.
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django.utils.functional import cached_property
|
from django.utils.functional import cached_property
|
||||||
|
from django.utils import timezone
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.db.models.signals import post_save
|
from django.db.models.signals import post_save
|
||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
|
@ -36,8 +37,11 @@ import cotisations.models
|
||||||
import machines.models
|
import machines.models
|
||||||
from re2o.mixins import AclMixin
|
from re2o.mixins import AclMixin
|
||||||
|
|
||||||
|
|
||||||
from .aes_field import AESEncryptedField
|
from .aes_field import AESEncryptedField
|
||||||
|
|
||||||
|
from datetime import timedelta
|
||||||
|
|
||||||
|
|
||||||
class PreferencesModel(models.Model):
|
class PreferencesModel(models.Model):
|
||||||
""" Base object for the Preferences objects
|
""" Base object for the Preferences objects
|
||||||
|
@ -283,6 +287,13 @@ class Reminder(AclMixin, models.Model):
|
||||||
("view_reminder", "Peut voir un objet reminder"),
|
("view_reminder", "Peut voir un objet reminder"),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def users_to_remind(self):
|
||||||
|
from re2o.utils import all_has_access
|
||||||
|
date = timezone.now().replace(minute=0,hour=0)
|
||||||
|
futur_date = date + timedelta(days=self.days)
|
||||||
|
users = all_has_access(futur_date).exclude(pk__in = all_has_access(futur_date + timedelta(days=1)))
|
||||||
|
return users
|
||||||
|
|
||||||
|
|
||||||
class GeneralOption(AclMixin, PreferencesModel):
|
class GeneralOption(AclMixin, PreferencesModel):
|
||||||
"""Options générales : nombre de resultats par page, nom du site,
|
"""Options générales : nombre de resultats par page, nom du site,
|
||||||
|
|
Loading…
Reference in a new issue