environment: add slug & legacy url on home (#64924)
gitea/hobo/pipeline/head This commit looks good
Details
gitea/hobo/pipeline/head This commit looks good
Details
This commit is contained in:
parent
f7529918e1
commit
69325cd127
|
@ -37,7 +37,7 @@ urlpatterns = [
|
|||
views.operational_check_view,
|
||||
name='operational-check',
|
||||
),
|
||||
path('select_create_service', views.ServiceSelectCreateView.as_view(), name='environment-create-service'),
|
||||
path('select_create_service', views.ServiceSelectCreateView.as_view(), name='select-create-service'),
|
||||
re_path(r'^new-(?P<service>\w+)$', views.ServiceCreateView.as_view(), name='create-service'),
|
||||
re_path(
|
||||
r'^save-(?P<service>\w+)/(?P<slug>[\w-]+)$', views.ServiceUpdateView.as_view(), name='save-service'
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<span class="actions">
|
||||
<a class="extra-actions-menu-opener"></a>
|
||||
<ul class="extra-actions-menu">
|
||||
<li><a rel="popup" href="{% url 'environment-create-service' %}">{% trans 'Add new service' %}</a></li>
|
||||
<li><a rel="popup" href="{% url 'select-create-service' %}">{% trans 'Add new service' %}</a></li>
|
||||
<li><a rel="popup" href="{% url 'environment-import' %}">{% trans 'Import' %}</a></li>
|
||||
<li><a href="{% url 'environment-export' %}">{% trans 'Export' %}</a></li>
|
||||
</ul>
|
||||
|
@ -21,7 +21,7 @@
|
|||
<div class="service-link" data-service-slug="{{ service.slug }}">
|
||||
<a href="{{ service.base_url }}" data-service-slug="{{ service.slug }}">
|
||||
<div class="service" data-service-slug="{{ service.slug }}">
|
||||
<h3 class="service-title">{{ service.title }} <span class="service-url">{{ service.base_url }}</span></h3>
|
||||
<h3 class="service-title">{{ service.title }} <span class="slug">[{{service.slug}}, <span class="service-url">{{ service.base_url }}</span>]</span></h3>
|
||||
<p class="service-status-items">
|
||||
<span class="checking">{% trans "checking..." %}</span>
|
||||
{% if not service.is_operational and service.wants_frequent_checks %}
|
||||
|
@ -34,6 +34,20 @@
|
|||
</p>
|
||||
</div>
|
||||
</a>
|
||||
{% if service.legacy_urls %}
|
||||
<h4>
|
||||
{% blocktrans trimmed count counter=service.legacy_urls|length %}
|
||||
Legacy URL
|
||||
{% plural %}
|
||||
Legacy URLS
|
||||
{% endblocktrans %}
|
||||
</h4>
|
||||
<ul>
|
||||
{% for legacy_url in service.legacy_urls %}
|
||||
<li>{{ legacy_url.base_url }} {% if legacy_url.datetime %}({% trans 'until' %} {{ legacy_url.datetime }}){% endif %}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
<div class="menu-opener">
|
||||
<span class="actions">
|
||||
<a class="extra-actions-menu-opener"></a>
|
||||
|
@ -132,7 +146,6 @@
|
|||
<a class="button button-paragraph" href="{% url 'sms-home' %}">{% trans 'SMS' %}</a>
|
||||
<a class="button button-paragraph" href="{% url 'matomo-home' %}">{% trans 'User tracking' %}</a>
|
||||
<a class="button button-paragraph" href="{% url 'seo-home' %}">{% trans 'Indexing' %}</a>
|
||||
<a class="button button-paragraph" href="{% url 'environment-home' %}">{% trans 'Services' %}</a>
|
||||
<a class="button button-paragraph" href="{% url 'environment-variables' %}">{% trans 'Variables' %}</a>
|
||||
<a class="button button-paragraph" href="{% url 'debug-home' %}">{% trans 'Debugging' %}</a>
|
||||
{% if show_maintenance_menu %}<a class="button button-paragraph" href="{% url 'maintenance-home' %}">{% trans 'Maintenance' %}</a>{% endif %}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import datetime
|
||||
import json
|
||||
|
||||
from django.conf import settings
|
||||
|
@ -33,6 +34,14 @@ class Home(TemplateView):
|
|||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
context['services'] = [x for x in get_installed_services() if not x.secondary]
|
||||
for service in context['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['has_authentic'] = bool(Authentic.objects.filter(secondary=False))
|
||||
context['has_global_title'] = Variable.objects.filter(name='global_title').exists()
|
||||
context['has_default_from_email'] = Variable.objects.filter(name='default_from_email').exists()
|
||||
|
|
|
@ -196,12 +196,9 @@ def test_service_creation_url_validation(app, admin_user, monkeypatch, service_n
|
|||
assert service_cls.objects.exists()
|
||||
|
||||
|
||||
def test_home_view(app, admin_user, settings):
|
||||
def test_service_creation_selection(app, admin_user, settings):
|
||||
app = login(app)
|
||||
combo = Combo.objects.create(
|
||||
base_url='https://combo.agglo.love', template_name='...portal-user...', slug='portal'
|
||||
)
|
||||
response = app.get('/sites').follow()
|
||||
response = app.get(reverse('select-create-service'))
|
||||
assert 'Add new service:' in response.text
|
||||
for service in AVAILABLE_SERVICES:
|
||||
if service.is_enabled():
|
||||
|
@ -215,7 +212,6 @@ def test_home_view(app, admin_user, settings):
|
|||
'passerelle',
|
||||
'wcs',
|
||||
}
|
||||
assert response.html.find('span', {'class': 'slug'}).a.text == 'https://combo.agglo.love/'
|
||||
|
||||
# check HOBO_SERVICES_ENABLED works
|
||||
settings.HOBO_SERVICES_ENABLED = ['lingo']
|
||||
|
@ -231,18 +227,33 @@ def test_home_view(app, admin_user, settings):
|
|||
'lingo',
|
||||
}
|
||||
|
||||
|
||||
def test_home_view(app, admin_user):
|
||||
app = login(app)
|
||||
combo = Combo.objects.create(
|
||||
base_url='https://combo.agglo.love', template_name='...portal-user...', slug='portal'
|
||||
)
|
||||
response = app.get(reverse('home'))
|
||||
assert response.html.find('div', {'class': 'service-link'}).a.attrs['href'] == 'https://combo.agglo.love/'
|
||||
assert response.html.find('span', {'class': 'service-url'}).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/'
|
||||
response = app.get(reverse('home'))
|
||||
assert (
|
||||
response.html.find('div', {'class': 'service-link'}).a.attrs['href'] == 'https://combo1.agglo.love/'
|
||||
)
|
||||
assert response.html.find('span', {'class': 'service-url'}).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/'
|
||||
response = app.get(reverse('home'))
|
||||
assert (
|
||||
response.html.find('div', {'class': 'service-link'}).a.attrs['href'] == 'https://combo2.agglo.love/'
|
||||
)
|
||||
assert response.html.find('span', {'class': 'service-url'}).text == 'https://combo2.agglo.love/'
|
||||
h4 = response.html.find_all('h4')[-1]
|
||||
assert h4.text.strip() == 'Legacy URLS'
|
||||
|
||||
|
|
Loading…
Reference in New Issue