WuttaWeb 0.4.0__tar.gz → 0.6.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/CHANGELOG.md +33 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/PKG-INFO +4 -2
- wuttaweb-0.6.0/docs/api/wuttaweb/forms.schema.rst +6 -0
- wuttaweb-0.6.0/docs/api/wuttaweb/forms.widgets.rst +6 -0
- wuttaweb-0.6.0/docs/api/wuttaweb/grids.base.rst +6 -0
- wuttaweb-0.6.0/docs/api/wuttaweb/grids.rst +6 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/api/wuttaweb/index.rst +7 -0
- wuttaweb-0.6.0/docs/api/wuttaweb/views.people.rst +6 -0
- wuttaweb-0.6.0/docs/api/wuttaweb/views.roles.rst +6 -0
- wuttaweb-0.6.0/docs/api/wuttaweb/views.users.rst +6 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/pyproject.toml +4 -2
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/app.py +11 -2
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/forms/__init__.py +2 -1
- wuttaweb-0.6.0/src/wuttaweb/forms/base.py +972 -0
- wuttaweb-0.6.0/src/wuttaweb/forms/schema.py +259 -0
- wuttaweb-0.6.0/src/wuttaweb/forms/widgets.py +82 -0
- wuttaweb-0.6.0/src/wuttaweb/grids/__init__.py +31 -0
- wuttaweb-0.6.0/src/wuttaweb/grids/base.py +514 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/helpers.py +10 -2
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/menus.py +47 -1
- wuttaweb-0.6.0/src/wuttaweb/static/img/favicon.ico +0 -0
- wuttaweb-0.6.0/src/wuttaweb/static/img/logo.png +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/subscribers.py +1 -1
- wuttaweb-0.6.0/src/wuttaweb/templates/appinfo/configure.mako +177 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/templates/appinfo/index.mako +5 -2
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/templates/base.mako +60 -10
- wuttaweb-0.6.0/src/wuttaweb/templates/configure.mako +181 -0
- wuttaweb-0.6.0/src/wuttaweb/templates/deform/checkbox.pt +11 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/templates/deform/checked_password.pt +2 -1
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/templates/deform/password.pt +2 -1
- wuttaweb-0.6.0/src/wuttaweb/templates/deform/select.pt +50 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/templates/deform/textinput.pt +2 -1
- wuttaweb-0.6.0/src/wuttaweb/templates/forms/vue_template.mako +68 -0
- wuttaweb-0.6.0/src/wuttaweb/templates/grids/vue_template.mako +53 -0
- wuttaweb-0.6.0/src/wuttaweb/templates/master/configure.mako +9 -0
- wuttaweb-0.6.0/src/wuttaweb/templates/master/create.mako +7 -0
- wuttaweb-0.6.0/src/wuttaweb/templates/master/delete.mako +18 -0
- wuttaweb-0.6.0/src/wuttaweb/templates/master/edit.mako +9 -0
- wuttaweb-0.6.0/src/wuttaweb/templates/master/form.mako +5 -0
- wuttaweb-0.6.0/src/wuttaweb/templates/master/index.mako +32 -0
- wuttaweb-0.6.0/src/wuttaweb/templates/master/view.mako +9 -0
- wuttaweb-0.6.0/src/wuttaweb/templates/wutta-components.mako +71 -0
- wuttaweb-0.6.0/src/wuttaweb/util.py +474 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/views/auth.py +2 -3
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/views/base.py +23 -3
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/views/essential.py +7 -0
- wuttaweb-0.6.0/src/wuttaweb/views/master.py +1599 -0
- wuttaweb-0.6.0/src/wuttaweb/views/people.py +95 -0
- wuttaweb-0.6.0/src/wuttaweb/views/roles.py +100 -0
- wuttaweb-0.6.0/src/wuttaweb/views/settings.py +174 -0
- wuttaweb-0.6.0/src/wuttaweb/views/users.py +117 -0
- wuttaweb-0.6.0/tests/forms/test_base.py +478 -0
- wuttaweb-0.6.0/tests/forms/test_schema.py +199 -0
- wuttaweb-0.6.0/tests/forms/test_widgets.py +32 -0
- wuttaweb-0.6.0/tests/grids/test_base.py +203 -0
- wuttaweb-0.6.0/tests/libcache/bb_fontawesome_svg_core.js +0 -0
- wuttaweb-0.6.0/tests/libcache/bb_free_solid_svg_icons.js +0 -0
- wuttaweb-0.6.0/tests/libcache/bb_oruga.js +0 -0
- wuttaweb-0.6.0/tests/libcache/bb_oruga_bulma.css +0 -0
- wuttaweb-0.6.0/tests/libcache/bb_oruga_bulma.js +0 -0
- wuttaweb-0.6.0/tests/libcache/bb_vue.js +0 -0
- wuttaweb-0.6.0/tests/libcache/bb_vue_fontawesome.js +0 -0
- wuttaweb-0.6.0/tests/libcache/buefy.css +0 -0
- wuttaweb-0.6.0/tests/libcache/buefy.js +0 -0
- wuttaweb-0.6.0/tests/libcache/fontawesome.js +0 -0
- wuttaweb-0.6.0/tests/libcache/vue.js +0 -0
- wuttaweb-0.6.0/tests/libcache/vue_resource.js +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/tests/test_app.py +11 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/tests/test_subscribers.py +1 -1
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/tests/test_util.py +237 -2
- wuttaweb-0.4.0/tests/views/utils.py → wuttaweb-0.6.0/tests/util.py +39 -12
- wuttaweb-0.6.0/tests/views/__init__.py +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/tests/views/test_base.py +5 -0
- wuttaweb-0.6.0/tests/views/test_master.py +765 -0
- wuttaweb-0.6.0/tests/views/test_people.py +39 -0
- wuttaweb-0.6.0/tests/views/test_roles.py +57 -0
- wuttaweb-0.6.0/tests/views/test_settings.py +56 -0
- wuttaweb-0.6.0/tests/views/test_users.py +57 -0
- wuttaweb-0.4.0/src/wuttaweb/forms/base.py +0 -476
- wuttaweb-0.4.0/src/wuttaweb/static/img/favicon.ico +0 -0
- wuttaweb-0.4.0/src/wuttaweb/static/img/logo.png +0 -0
- wuttaweb-0.4.0/src/wuttaweb/templates/forms/vue_template.mako +0 -58
- wuttaweb-0.4.0/src/wuttaweb/templates/master/index.mako +0 -13
- wuttaweb-0.4.0/src/wuttaweb/util.py +0 -259
- wuttaweb-0.4.0/src/wuttaweb/views/master.py +0 -443
- wuttaweb-0.4.0/src/wuttaweb/views/settings.py +0 -47
- wuttaweb-0.4.0/tests/forms/test_base.py +0 -273
- wuttaweb-0.4.0/tests/utils.py +0 -11
- wuttaweb-0.4.0/tests/views/test_master.py +0 -282
- wuttaweb-0.4.0/tests/views/test_settings.py +0 -13
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/.gitignore +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/COPYING.txt +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/README.md +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/Makefile +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/_static/.keepme +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/api/index.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/api/wuttaweb/app.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/api/wuttaweb/auth.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/api/wuttaweb/db.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/api/wuttaweb/forms.base.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/api/wuttaweb/forms.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/api/wuttaweb/handler.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/api/wuttaweb/helpers.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/api/wuttaweb/menus.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/api/wuttaweb/static.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/api/wuttaweb/subscribers.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/api/wuttaweb/util.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/api/wuttaweb/views.auth.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/api/wuttaweb/views.base.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/api/wuttaweb/views.common.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/api/wuttaweb/views.essential.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/api/wuttaweb/views.master.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/api/wuttaweb/views.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/api/wuttaweb/views.settings.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/conf.py +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/glossary.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/index.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/make.bat +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/docs/narr/index.rst +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/__init__.py +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/_version.py +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/auth.py +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/db.py +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/handler.py +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/static/__init__.py +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/static/img/testing.png +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/templates/auth/change_password.mako +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/templates/auth/login.mako +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/templates/base_meta.mako +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/templates/form.mako +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/templates/home.mako +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/templates/page.mako +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/views/__init__.py +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/src/wuttaweb/views/common.py +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/tasks.py +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/tests/__init__.py +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/tests/forms/__init__.py +0 -0
- {wuttaweb-0.4.0/tests/views → wuttaweb-0.6.0/tests/grids}/__init__.py +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/tests/test_auth.py +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/tests/test_handler.py +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/tests/test_helpers.py +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/tests/test_menus.py +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/tests/test_static.py +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/tests/views/test___init__.py +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/tests/views/test_auth.py +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/tests/views/test_common.py +0 -0
- {wuttaweb-0.4.0 → wuttaweb-0.6.0}/tox.ini +0 -0
|
@@ -5,6 +5,39 @@ All notable changes to wuttaweb will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
|
6
6
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## v0.6.0 (2024-08-13)
|
|
9
|
+
|
|
10
|
+
### Feat
|
|
11
|
+
|
|
12
|
+
- add basic Roles view
|
|
13
|
+
- add Users view; improve CRUD master for SQLAlchemy models
|
|
14
|
+
- add People view; improve CRUD master for SQLAlchemy models
|
|
15
|
+
- add basic support for SQLAlchemy model in master view
|
|
16
|
+
- add basic Create support for CRUD master view
|
|
17
|
+
- add basic Delete support for CRUD master view
|
|
18
|
+
- add basic Edit support for CRUD master view
|
|
19
|
+
- add auto-link (to "View") behavior for grid columns
|
|
20
|
+
- add basic support for "view" part of CRUD
|
|
21
|
+
- add basic `Grid` class, and /settings master view
|
|
22
|
+
|
|
23
|
+
### Fix
|
|
24
|
+
|
|
25
|
+
- rename MasterView method to `configure_grid()`
|
|
26
|
+
- replace default logo, favicon images
|
|
27
|
+
- tweak labels for Web Libraries config
|
|
28
|
+
|
|
29
|
+
## v0.5.0 (2024-08-06)
|
|
30
|
+
|
|
31
|
+
### Feat
|
|
32
|
+
|
|
33
|
+
- add basic support for fanstatic / libcache
|
|
34
|
+
- expose Web Libraries in app info config page
|
|
35
|
+
- add basic configure view for appinfo
|
|
36
|
+
|
|
37
|
+
### Fix
|
|
38
|
+
|
|
39
|
+
- bump min version for wuttjamaican
|
|
40
|
+
|
|
8
41
|
## v0.4.0 (2024-08-05)
|
|
9
42
|
|
|
10
43
|
### Feat
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: WuttaWeb
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.6.0
|
|
4
4
|
Summary: Web App for Wutta Framework
|
|
5
5
|
Project-URL: Homepage, https://wuttaproject.org/
|
|
6
6
|
Project-URL: Repository, https://forgejo.wuttaproject.org/wutta/wuttaweb
|
|
@@ -24,14 +24,16 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
24
24
|
Classifier: Topic :: Internet :: WWW/HTTP
|
|
25
25
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
26
26
|
Requires-Python: >=3.8
|
|
27
|
+
Requires-Dist: colanderalchemy
|
|
27
28
|
Requires-Dist: pyramid-beaker
|
|
28
29
|
Requires-Dist: pyramid-deform
|
|
30
|
+
Requires-Dist: pyramid-fanstatic
|
|
29
31
|
Requires-Dist: pyramid-mako
|
|
30
32
|
Requires-Dist: pyramid-tm
|
|
31
33
|
Requires-Dist: pyramid>=2
|
|
32
34
|
Requires-Dist: waitress
|
|
33
35
|
Requires-Dist: webhelpers2
|
|
34
|
-
Requires-Dist: wuttjamaican[db]>=0.
|
|
36
|
+
Requires-Dist: wuttjamaican[db]>=0.11.0
|
|
35
37
|
Requires-Dist: zope-sqlalchemy>=1.5
|
|
36
38
|
Provides-Extra: docs
|
|
37
39
|
Requires-Dist: furo; extra == 'docs'
|
|
@@ -12,6 +12,10 @@
|
|
|
12
12
|
db
|
|
13
13
|
forms
|
|
14
14
|
forms.base
|
|
15
|
+
forms.schema
|
|
16
|
+
forms.widgets
|
|
17
|
+
grids
|
|
18
|
+
grids.base
|
|
15
19
|
handler
|
|
16
20
|
helpers
|
|
17
21
|
menus
|
|
@@ -24,4 +28,7 @@
|
|
|
24
28
|
views.common
|
|
25
29
|
views.essential
|
|
26
30
|
views.master
|
|
31
|
+
views.people
|
|
32
|
+
views.roles
|
|
27
33
|
views.settings
|
|
34
|
+
views.users
|
|
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "WuttaWeb"
|
|
9
|
-
version = "0.
|
|
9
|
+
version = "0.6.0"
|
|
10
10
|
description = "Web App for Wutta Framework"
|
|
11
11
|
readme = "README.md"
|
|
12
12
|
authors = [{name = "Lance Edgar", email = "lance@edbob.org"}]
|
|
@@ -30,14 +30,16 @@ classifiers = [
|
|
|
30
30
|
]
|
|
31
31
|
requires-python = ">= 3.8"
|
|
32
32
|
dependencies = [
|
|
33
|
+
"ColanderAlchemy",
|
|
33
34
|
"pyramid>=2",
|
|
34
35
|
"pyramid_beaker",
|
|
35
36
|
"pyramid_deform",
|
|
37
|
+
"pyramid_fanstatic",
|
|
36
38
|
"pyramid_mako",
|
|
37
39
|
"pyramid_tm",
|
|
38
40
|
"waitress",
|
|
39
41
|
"WebHelpers2",
|
|
40
|
-
"WuttJamaican[db]>=0.
|
|
42
|
+
"WuttJamaican[db]>=0.11.0",
|
|
41
43
|
"zope.sqlalchemy>=1.5",
|
|
42
44
|
]
|
|
43
45
|
|
|
@@ -110,7 +110,12 @@ def make_pyramid_config(settings):
|
|
|
110
110
|
|
|
111
111
|
The config is initialized with certain features deemed useful for
|
|
112
112
|
all apps.
|
|
113
|
+
|
|
114
|
+
:returns: Instance of
|
|
115
|
+
:class:`pyramid:pyramid.config.Configurator`.
|
|
113
116
|
"""
|
|
117
|
+
settings.setdefault('fanstatic.versioning', 'true')
|
|
118
|
+
settings.setdefault('mako.directories', ['wuttaweb:templates'])
|
|
114
119
|
settings.setdefault('pyramid_deform.template_search_path',
|
|
115
120
|
'wuttaweb:templates/deform')
|
|
116
121
|
|
|
@@ -119,8 +124,14 @@ def make_pyramid_config(settings):
|
|
|
119
124
|
# configure user authorization / authentication
|
|
120
125
|
pyramid_config.set_security_policy(WuttaSecurityPolicy())
|
|
121
126
|
|
|
127
|
+
# require CSRF token for POST
|
|
128
|
+
pyramid_config.set_default_csrf_options(require_csrf=True,
|
|
129
|
+
token='_csrf',
|
|
130
|
+
header='X-CSRF-TOKEN')
|
|
131
|
+
|
|
122
132
|
pyramid_config.include('pyramid_beaker')
|
|
123
133
|
pyramid_config.include('pyramid_deform')
|
|
134
|
+
pyramid_config.include('pyramid_fanstatic')
|
|
124
135
|
pyramid_config.include('pyramid_mako')
|
|
125
136
|
pyramid_config.include('pyramid_tm')
|
|
126
137
|
|
|
@@ -143,8 +154,6 @@ def main(global_config, **settings):
|
|
|
143
154
|
will need to define their own ``main()`` function, and use that
|
|
144
155
|
instead.
|
|
145
156
|
"""
|
|
146
|
-
settings.setdefault('mako.directories', ['wuttaweb:templates'])
|
|
147
|
-
|
|
148
157
|
wutta_config = make_wutta_config(settings)
|
|
149
158
|
pyramid_config = make_pyramid_config(settings)
|
|
150
159
|
|