From ad06b828b146696945623844c30ecbb67369f8b6 Mon Sep 17 00:00:00 2001 From: Emmanuel Cazenave Date: Tue, 19 Apr 2022 18:22:35 +0200 Subject: [PATCH] environment: show legacy urls (#63621) --- .../environment/templates/environment/home.html | 14 ++++++++++++++ hobo/environment/views.py | 12 +++++++++++- tests/test_environment.py | 17 ++++++++++++++++- 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/hobo/environment/templates/environment/home.html b/hobo/environment/templates/environment/home.html index e14e699..a92bd4c 100644 --- a/hobo/environment/templates/environment/home.html +++ b/hobo/environment/templates/environment/home.html @@ -60,6 +60,20 @@ {% trans 'Add new variable' %} + {% if service.legacy_urls %} +

+ {% blocktrans count counter=service.legacy_urls|length %} + Legacy URL + {% plural%} + Legacy URLS + {% endblocktrans %} +

+ + {% endif%} {% endfor %} diff --git a/hobo/environment/views.py b/hobo/environment/views.py index 3217dca..78be0bc 100644 --- a/hobo/environment/views.py +++ b/hobo/environment/views.py @@ -14,6 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +import datetime import json import string @@ -44,7 +45,16 @@ class HomeView(TemplateView): def get_context_data(self, **kwargs): context = super(HomeView, self).get_context_data(**kwargs) context['available_services'] = [AvailableService(x) for x in AVAILABLE_SERVICES if x.is_enabled()] - context['installed_services'] = [x for x in utils.get_installed_services() if not x.secondary] + installed_services = [x for x in utils.get_installed_services() if not x.secondary] + for service in installed_services: + for legacy_url in service.legacy_urls: + try: + legacy_url['datetime'] = datetime.datetime.strptime( + legacy_url['timestamp'], '%Y-%m-%d %H:%M:%S' + ) + except ValueError: + pass + context['installed_services'] = installed_services return context diff --git a/tests/test_environment.py b/tests/test_environment.py index cdbda58..b2d7aee 100644 --- a/tests/test_environment.py +++ b/tests/test_environment.py @@ -158,7 +158,7 @@ def test_service_creation_url_validation(app, admin_user, monkeypatch): def test_home_view(app, admin_user): app = login(app) - Combo.objects.create( + combo = Combo.objects.create( base_url='https://combo.agglo.love', template_name='...portal-user...', slug='portal' ) response = app.get('/sites').follow() @@ -168,6 +168,21 @@ def test_home_view(app, admin_user): assert str(service._meta.verbose_name) in response.text assert response.html.find('span', {'class': 'slug'}).a.text == 'https://combo.agglo.love/' + # add legacy urls + combo.change_base_url('https://combo1.agglo.love') + combo.save() + response = app.get('/sites').follow() + assert response.html.find('span', {'class': 'slug'}).a.text == 'https://combo1.agglo.love/' + h4 = response.html.find_all('h4')[-1] + assert h4.text.strip() == 'Legacy URL' + + combo.change_base_url('https://combo2.agglo.love') + combo.save() + response = app.get('/sites').follow() + assert response.html.find('span', {'class': 'slug'}).a.text == 'https://combo2.agglo.love/' + h4 = response.html.find_all('h4')[-1] + assert h4.text.strip() == 'Legacy URLS' + def test_variables_view(app, admin_user): app = login(app)