context_processors.py 2.21 KB
Newer Older
lhark's avatar
lhark committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
# Re2o est un logiciel d'administration développé initiallement au rezometz. Il
# se veut agnostique au réseau considéré, de manière à être installable en
# quelques clics.
#
# Copyright © 2017  Gabriel Détraz
# Copyright © 2017  Goulven Kermarec
# Copyright © 2017  Augustin Lemesle
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
chirac's avatar
chirac committed
22 23
"""Fonction de context, variables renvoyées à toutes les vues"""

24
from __future__ import unicode_literals
25 26 27

import datetime

28
from django.contrib import messages
29

30
from preferences.models import GeneralOption, OptionalMachine
chirac's avatar
chirac committed
31

chirac's avatar
chirac committed
32

chirac's avatar
chirac committed
33
def context_user(request):
chirac's avatar
chirac committed
34 35
    """Fonction de context lorsqu'un user est logué (ou non),
    renvoie les infos sur l'user, la liste de ses droits, ses machines"""
chirac's avatar
chirac committed
36
    user = request.user
37
    global_message = GeneralOption.get_cached_value('general_message')
38 39
    if global_message:
        messages.warning(request, global_message)
chirac's avatar
chirac committed
40
    if user.is_authenticated():
41
        interfaces = user.user_interfaces()
chirac's avatar
chirac committed
42 43
    else:
        interfaces = None
chirac's avatar
chirac committed
44 45
    return {
        'request_user': user,
chirac's avatar
chirac committed
46
        'interfaces': interfaces,
47 48 49
        # Must takes a different name because djang.auth.contrib.views.login()
        # overrides 'site_name' context variable.
        'name_website': GeneralOption.get_cached_value('site_name'),
50
        'ipv6_enabled': OptionalMachine.get_cached_value('ipv6'),
chirac's avatar
chirac committed
51
    }
52 53 54 55 56 57 58 59 60


def date_now(request):
    """Add the current date in the context for quick informations and
    comparisons"""
    return {
        'now_aware': datetime.datetime.now(datetime.timezone.utc),
        'now_naive': datetime.datetime.now()
    }