From 48a473e540fb57819bcc4613c6a513af1c0027f6 Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Tue, 3 Dec 2024 21:21:34 -0600 Subject: [PATCH 1/4] build: update project metadata --- pyproject.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 37ccf1c..a70ab86 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ name = "WuttaWeb" version = "0.15.0" description = "Web App for Wutta Framework" readme = "README.md" -authors = [{name = "Lance Edgar", email = "lance@edbob.org"}] +authors = [{name = "Lance Edgar", email = "lance@wuttaproject.org"}] license = {text = "GNU GPL v3+"} classifiers = [ "Development Status :: 4 - Beta", @@ -68,6 +68,7 @@ wuttaweb = "wuttaweb.conf:WuttaWebConfigExtension" [project.urls] Homepage = "https://wuttaproject.org/" Repository = "https://forgejo.wuttaproject.org/wutta/wuttaweb" +Issues = "https://forgejo.wuttaproject.org/wutta/wuttaweb/issues" Changelog = "https://forgejo.wuttaproject.org/wutta/wuttaweb/src/branch/master/CHANGELOG.md" From 352afc1e22d5bd9867493f4992f1f51839d6e659 Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Tue, 3 Dec 2024 21:29:05 -0600 Subject: [PATCH 2/4] fix: fix handling of `Upgrade.uuid` now that it is a proper uuid7 instance, not just a string --- src/wuttaweb/views/upgrades.py | 2 +- tests/views/test_upgrades.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/wuttaweb/views/upgrades.py b/src/wuttaweb/views/upgrades.py index 03570f3..3a913d0 100644 --- a/src/wuttaweb/views/upgrades.py +++ b/src/wuttaweb/views/upgrades.py @@ -217,7 +217,7 @@ class UpgradeView(MasterView): def get_upgrade_filepath(self, upgrade, filename=None, create=True): """ """ - uuid = upgrade.uuid + uuid = str(upgrade.uuid) path = self.app.get_appdir('data', 'upgrades', uuid[:2], uuid[2:], create=create) if filename: diff --git a/tests/views/test_upgrades.py b/tests/views/test_upgrades.py index 6c89d5b..1a1d626 100644 --- a/tests/views/test_upgrades.py +++ b/tests/views/test_upgrades.py @@ -127,7 +127,7 @@ class TestUpgradeView(WebTestCase): self.session.commit() view = self.make_view() - uuid = upgrade.uuid + uuid = str(upgrade.uuid) # no filename path = view.download_path(upgrade, None) @@ -153,7 +153,7 @@ class TestUpgradeView(WebTestCase): self.session.commit() view = self.make_view() - uuid = upgrade.uuid + uuid = str(upgrade.uuid) # no filename path = view.get_upgrade_filepath(upgrade) From 5c06353fa369e58dbd55ff52c612a7ddf256c342 Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Tue, 3 Dec 2024 21:32:46 -0600 Subject: [PATCH 3/4] fix: add option for People entry in the Admin menu --- src/wuttaweb/menus.py | 72 ++++++++++++++++++++++++++----------------- tests/test_menus.py | 13 ++++++-- 2 files changed, 55 insertions(+), 30 deletions(-) diff --git a/src/wuttaweb/menus.py b/src/wuttaweb/menus.py index c1c47dc..8e824be 100644 --- a/src/wuttaweb/menus.py +++ b/src/wuttaweb/menus.py @@ -142,38 +142,54 @@ class MenuHandler(GenericHandler): The return value for this method should be a *single* dict, which will ultimately be one element of the final list of dicts as described in :class:`MenuHandler`. + + :param include_people: You can pass this flag to indicate the + admin menu should contain an entry for the "People" view. """ + items = [] + + if kwargs.get('include_people'): + items.extend([ + { + 'title': "All People", + 'route': 'people', + 'perm': 'people.list', + }, + ]) + + items.extend([ + { + 'title': "Users", + 'route': 'users', + 'perm': 'users.list', + }, + { + 'title': "Roles", + 'route': 'roles', + 'perm': 'roles.list', + }, + {'type': 'sep'}, + { + 'title': "App Info", + 'route': 'appinfo', + 'perm': 'appinfo.list', + }, + { + 'title': "Raw Settings", + 'route': 'settings', + 'perm': 'settings.list', + }, + { + 'title': "Upgrades", + 'route': 'upgrades', + 'perm': 'upgrades.list', + }, + ]) + return { 'title': "Admin", 'type': 'menu', - 'items': [ - { - 'title': "Users", - 'route': 'users', - 'perm': 'users.list', - }, - { - 'title': "Roles", - 'route': 'roles', - 'perm': 'roles.list', - }, - {'type': 'sep'}, - { - 'title': "App Info", - 'route': 'appinfo', - 'perm': 'appinfo.list', - }, - { - 'title': "Raw Settings", - 'route': 'settings', - 'perm': 'settings.list', - }, - { - 'title': "Upgrades", - 'route': 'upgrades', - 'perm': 'upgrades.list', - }, - ], + 'items': items, } ############################## diff --git a/tests/test_menus.py b/tests/test_menus.py index c3244bc..84c4ee5 100644 --- a/tests/test_menus.py +++ b/tests/test_menus.py @@ -14,8 +14,17 @@ class TestMenuHandler(WebTestCase): self.handler = mod.MenuHandler(self.config) def test_make_admin_menu(self): - menus = self.handler.make_admin_menu(self.request) - self.assertIsInstance(menus, dict) + + # no people entry by default + menu = self.handler.make_admin_menu(self.request) + self.assertIsInstance(menu, dict) + routes = [item.get('route') for item in menu['items']] + self.assertNotIn('people', routes) + + # but we can request it + menu = self.handler.make_admin_menu(self.request, include_people=True) + routes = [item.get('route') for item in menu['items']] + self.assertIn('people', routes) def test_make_menus(self): menus = self.handler.make_menus(self.request) From 805ce5966f2ebad4f15e493f02edec0e5fcafd68 Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Thu, 5 Dec 2024 08:07:43 -0600 Subject: [PATCH 4/4] =?UTF-8?q?bump:=20version=200.15.0=20=E2=86=92=200.16?= =?UTF-8?q?.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 13 +++++++++++++ pyproject.toml | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a10f311..bd1df83 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,19 @@ All notable changes to wuttaweb will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## v0.16.0 (2024-12-05) + +### Feat + +- add `get_template_context()` method for master view + +### Fix + +- add option for People entry in the Admin menu +- fix handling of `Upgrade.uuid` +- improve support for random objects with grid, master view +- hide CRUD header buttons if master view does not allow + ## v0.15.0 (2024-11-24) ### Feat diff --git a/pyproject.toml b/pyproject.toml index a70ab86..acf9851 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ build-backend = "hatchling.build" [project] name = "WuttaWeb" -version = "0.15.0" +version = "0.16.0" description = "Web App for Wutta Framework" readme = "README.md" authors = [{name = "Lance Edgar", email = "lance@wuttaproject.org"}] @@ -42,7 +42,7 @@ dependencies = [ "pyramid_tm", "waitress", "WebHelpers2", - "WuttJamaican[db]>=0.15.0", + "WuttJamaican[db]>=0.16.1", "zope.sqlalchemy>=1.5", ]