mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-10 12:16:49 +00:00
style(admin): the group form has the user form's layout and a members search
The group form put every user as a checkbox in one unsorted list, the members among them, with no way to find one: past a few dozen users a wall of names. Its name field ran the width of the page. It now has the user form's sections (Group, Permissions, Members), each with what it is for beside its fields. Members come first, then everyone else, each by username with their full name; a search box filters them by username, name or e-mail (table_filter.js). A form's search, marked data-forget, starts empty: the list pages remember theirs per page title, which here is the same for every group. Hidden users stay in the form, so saving while filtered keeps them. The button says Create group or Save changes.
This commit is contained in:
parent
6523fd0955
commit
61979be731
9 changed files with 223 additions and 124 deletions
|
|
@ -53,6 +53,23 @@ class AdminTestCase(TestCase):
|
|||
with self.assertRaises(ObjectDoesNotExist):
|
||||
Group.objects.get(id=group_id)
|
||||
|
||||
def test_group_form_lists_its_members_first(self):
|
||||
for name in ("zed", "bob", "amy"):
|
||||
User.objects.create_user(name)
|
||||
User.objects.filter(username="amy").update(first_name="Amy", last_name="Adams")
|
||||
group = Group.objects.create(name="Ops")
|
||||
group.user_set.add(User.objects.get(username="zed"))
|
||||
|
||||
page = html.fromstring(self.client.get(reverse("admin:group_update", args=[group.id])).content)
|
||||
boxes = page.xpath("//div[contains(@class, 'searchable')]/label")
|
||||
names = [box.text_content().split()[0] for box in boxes]
|
||||
self.assertEqual(names, ["zed", "admin", "amy", "bob"])
|
||||
self.assertIn("Amy Adams", boxes[2].get("data-search"))
|
||||
self.assertEqual(page.xpath("//input[@id='filter']/@data-forget"), [""])
|
||||
self.assertEqual(page.xpath("//form[@id='create-update']//button[@type='submit']/text()"), ["Save changes"])
|
||||
page = html.fromstring(self.client.get(reverse("admin:group_create")).content)
|
||||
self.assertEqual(page.xpath("//form[@id='create-update']//button[@type='submit']/text()"), ["Create group"])
|
||||
|
||||
def test_user_list(self):
|
||||
response = self.client.get(reverse("admin:user_list"))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue