# -*- coding: utf-8 -*- from __future__ import unicode_literals import re import socket from django.utils import timezone from django.views import generic class RootView(generic.TemplateView): template_name = 'base/root.html' _default_color_hex = '47825b' def _get_color_hex(self, hostname=None): color_hex = self._default_color_hex if hostname: buf = hostname buf = re.sub('[-.]', '', buf) buf = buf[:6].lower() if re.match('[0-9a-f]{6}', buf): color_hex = buf return color_hex def get_context_data(self, **kwargs): if 'hostname' not in kwargs: kwargs['hostname'] = socket.gethostname() if 'color_hex' not in kwargs: kwargs['color_hex'] = self._get_color_hex(kwargs['hostname']) if 'time' not in kwargs: kwargs['time'] = timezone.now() return super(RootView, self).get_context_data(**kwargs)