From 4f0eb96cd1ca5c93bf4d5890ba5fb66786dfd0f8 Mon Sep 17 00:00:00 2001 From: Tor-Einar Skog <tor-einar.skog@nibio.no> Date: Wed, 23 Dec 2020 08:34:47 +0100 Subject: [PATCH] Adding the SYSTEM_TIME_EXACT setting for locking VIPSWeb to a fixed date, for demo purposes --- VIPSWeb/local_settings_sample.py | 7 ++++++- VIPSWeb/static/js/util.js | 4 ++++ VIPSWeb/templates/base.html | 2 +- VIPSWeb/templates/settings.js | 2 ++ VIPSWeb/templatetags/template_helper.py | 5 ++++- 5 files changed, 17 insertions(+), 3 deletions(-) diff --git a/VIPSWeb/local_settings_sample.py b/VIPSWeb/local_settings_sample.py index 7430b81f..62e92696 100755 --- a/VIPSWeb/local_settings_sample.py +++ b/VIPSWeb/local_settings_sample.py @@ -69,7 +69,12 @@ TIME_ZONE = 'Europe/Oslo' # This can be used for testing purposes. Is valid locally for # this web page, not the VIPSLogic application. -SYSTEM_TIME_OFFSET_MONTHS = 0; +SYSTEM_TIME_OFFSET_MONTHS = 0 + +# This is for testing purposes. It overrides SYSTEM_TIME_OFFSET_MONTHS +# It's valid locally for this web page, not the VIPSLogic application +# Ideally, they should be synchronized +SYSTEM_TIME_EXACT = None DATABASES = { 'default': { diff --git a/VIPSWeb/static/js/util.js b/VIPSWeb/static/js/util.js index 760530f2..fa65784e 100755 --- a/VIPSWeb/static/js/util.js +++ b/VIPSWeb/static/js/util.js @@ -46,6 +46,10 @@ function buildPathParamString(paramName, values) * @returns the current system time as a Moment.js object */ function getSystemTime(){ + if(settings.systemTimeExact != null) + { + return systemTime = moment(settings.systemTimeExact); + } return systemTime = moment().add(settings.systemTimeOffsetMonths,"months"); } diff --git a/VIPSWeb/templates/base.html b/VIPSWeb/templates/base.html index da90bf70..20ce4ecd 100755 --- a/VIPSWeb/templates/base.html +++ b/VIPSWeb/templates/base.html @@ -62,7 +62,7 @@ <span class="icon-bar"></span> </button> <a class="navbar-brand" href="/"><img src="{% static "images/logo_vips_newest.png" %}" alt="VIPS logo"/></a><span id="siteTitle" class="navbar-brand">{{settings.SITE_NAME|safe}}</span> - {% if settings.SYSTEM_TIME_OFFSET_MONTHS != 0 %} + {% if settings.SYSTEM_TIME_OFFSET_MONTHS != 0 or settings.SYSTEM_TIME_EXACT != None %} <span class="navbar-brand" style="margin-left: 0px; padding-left: 0px; padding-top: 15px; font-size: 0.8em">[{% get_system_time "%Y-%m-%d" %}]</span> {% endif %} </div> diff --git a/VIPSWeb/templates/settings.js b/VIPSWeb/templates/settings.js index 611638dd..2b34cf74 100755 --- a/VIPSWeb/templates/settings.js +++ b/VIPSWeb/templates/settings.js @@ -31,6 +31,8 @@ var settings = { systemTimeOffsetMonths: {{settings.SYSTEM_TIME_OFFSET_MONTHS}}, + systemTimeExact: {% if settings.SYSTEM_TIME_EXACT == None or settings.SYSTEM_TIME_EXACT|cut:" " == "" %}null{%else%}"{{settings.SYSTEM_TIME_EXACT}}"{%endif%}, + frontpageMessageTagIds: {{settings.FRONTPAGE_MESSAGE_TAG_IDS}}, userUuid: {% if request.session.vips_logic_user == None %}null{% else %}"{{request.session.user_uuid}}"{% endif %}, diff --git a/VIPSWeb/templatetags/template_helper.py b/VIPSWeb/templatetags/template_helper.py index 71575629..87200f63 100755 --- a/VIPSWeb/templatetags/template_helper.py +++ b/VIPSWeb/templatetags/template_helper.py @@ -145,7 +145,10 @@ def get_text_i18n(text_dict): @register.simple_tag def get_system_time(format_string): - time = datetime.now() + relativedelta(months = settings.SYSTEM_TIME_OFFSET_MONTHS) + if(settings.SYSTEM_TIME_EXACT != None and settings.SYSTEM_TIME_EXACT.strip() != ""): + time = datetime.strptime(settings.SYSTEM_TIME_EXACT,"%Y-%m-%d") + else: + time = datetime.now() + relativedelta(months = settings.SYSTEM_TIME_OFFSET_MONTHS) return time.strftime(format_string) @register.filter -- GitLab