mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-08 11:16:47 +00:00
fix(instances): the grouped instance list without computes has a table body
The grouped list opens one tbody per compute, so with no compute the
sortable table had none, and sortable.js threw on page load ("Cannot read
properties of undefined (reading 'rows')"). An empty tbody is rendered
in that case.
This commit is contained in:
parent
6f44461c28
commit
ea7030d2a1
2 changed files with 11 additions and 0 deletions
|
|
@ -88,6 +88,8 @@
|
|||
{% endfor %}
|
||||
{% endif %}
|
||||
</tbody>
|
||||
{% empty %}
|
||||
<tbody></tbody>{# sortable.js needs a table body #}
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
||||
|
|
|
|||
|
|
@ -2,11 +2,13 @@
|
|||
|
||||
from unittest.mock import PropertyMock, patch
|
||||
|
||||
from appsettings.models import AppSettings
|
||||
from computes.models import Compute
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.test import TestCase
|
||||
from django.urls import reverse
|
||||
from instances.models import Instance
|
||||
from lxml import html
|
||||
|
||||
|
||||
class InstancesIndexTests(TestCase):
|
||||
|
|
@ -42,3 +44,10 @@ class InstancesIndexTests(TestCase):
|
|||
self.assertEqual(response.status_code, 200)
|
||||
self.assertNotContains(response, "test4")
|
||||
self.assertEqual(list(response.context["computes"][0].instance_set.all()), [])
|
||||
|
||||
def test_the_grouped_list_without_computes_has_a_table_body(self):
|
||||
# sortable.js reads the first tbody's rows: without one it throws and leaves the table unsortable
|
||||
AppSettings.objects.filter(key="VIEW_INSTANCES_LIST_STYLE").update(value="grouped")
|
||||
self.client.force_login(get_user_model().objects.create_superuser("grouped-admin", "g@example.com", "pw"))
|
||||
page = html.fromstring(self.client.get(reverse("instances:index")).content)
|
||||
self.assertEqual(len(page.xpath("//table[@data-sortable]/tbody")), 1)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue