From 50373bb119d1987bb1abad31baba7ccffad835d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roland=20R=C3=BCdenauer?= Date: Wed, 1 Oct 2025 00:56:25 +0200 Subject: [PATCH 1/2] Use itemtype constants in blog.py --- src/moin/constants/itemtypes.py | 2 +- src/moin/items/_tests/test_Blog.py | 2 +- src/moin/items/blog.py | 5 +---- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/moin/constants/itemtypes.py b/src/moin/constants/itemtypes.py index 15cdba2a2..110625b3b 100644 --- a/src/moin/constants/itemtypes.py +++ b/src/moin/constants/itemtypes.py @@ -10,4 +10,4 @@ ITEMTYPE_DEFAULT = "default" # == wiki-like ITEMTYPE_TICKET = "ticket" ITEMTYPE_BLOG = "blog" -ITEMTYPE_BLOGENTRY = "blogentry" +ITEMTYPE_BLOG_ENTRY = "blogentry" diff --git a/src/moin/items/_tests/test_Blog.py b/src/moin/items/_tests/test_Blog.py index a055fcc5b..4bf71a361 100644 --- a/src/moin/items/_tests/test_Blog.py +++ b/src/moin/items/_tests/test_Blog.py @@ -12,9 +12,9 @@ from moin._tests import update_item from moin.items import Item +from moin.constants.itemtypes import ITEMTYPE_BLOG, ITEMTYPE_BLOG_ENTRY from moin.constants.keys import CONTENTTYPE, ITEMTYPE, PTIME, ACL, TAGS from moin.constants.misc import ANON -from moin.items.blog import ITEMTYPE_BLOG, ITEMTYPE_BLOG_ENTRY from moin.items.blog import Blog, BlogEntry from moin.themes import utctimestamp diff --git a/src/moin/items/blog.py b/src/moin/items/blog.py index e6fe99657..03ec18e38 100644 --- a/src/moin/items/blog.py +++ b/src/moin/items/blog.py @@ -19,15 +19,12 @@ from moin.themes import render_template from moin.forms import Text, Tags, DateTime from moin.storage.middleware.protecting import AccessDenied +from moin.constants.itemtypes import ITEMTYPE_BLOG, ITEMTYPE_BLOG_ENTRY from moin.constants.keys import NAME_EXACT, ITEMTYPE, MTIME, PTIME, TAGS from moin.items import Item, Default, register, BaseMetaForm from moin.utils.interwiki import split_fqname -ITEMTYPE_BLOG = "blog" -ITEMTYPE_BLOG_ENTRY = "blogentry" - - class BlogMetaForm(BaseMetaForm): supertags = Tags.using(label=L_("Supertags (Categories)")).with_properties( placeholder=L_("Ordered comma separated list of tags") From 5d23b035f38c5a038fee402a9407fc7adeeaeaad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roland=20R=C3=BCdenauer?= Date: Fri, 25 Apr 2025 10:26:42 +0200 Subject: [PATCH 2/2] Set item_type and rev_number for userprofile items --- src/moin/_tests/test_user.py | 5 ++++- src/moin/user.py | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/moin/_tests/test_user.py b/src/moin/_tests/test_user.py index 29979ddc2..095e9b5fc 100644 --- a/src/moin/_tests/test_user.py +++ b/src/moin/_tests/test_user.py @@ -11,8 +11,9 @@ from flask import g as flaskg from moin import user +from moin.constants.itemtypes import ITEMTYPE_USERPROFILE from moin.items import Item -from moin.constants.keys import ITEMID, NAME, NAMEPREFIX, NAMERE, NAMESPACE, TAGS +from moin.constants.keys import ITEMID, ITEMTYPE, NAME, NAMEPREFIX, NAMERE, NAMESPACE, REV_NUMBER, TAGS import pytest @@ -36,6 +37,8 @@ def test_create_retrieve(self): assert u.email == email assert u.valid assert u.exists() + assert u.profile[ITEMTYPE] == ITEMTYPE_USERPROFILE + assert u.profile[REV_NUMBER] == 1 class TestUser: diff --git a/src/moin/user.py b/src/moin/user.py index 2b0a13e0a..02a5755f9 100644 --- a/src/moin/user.py +++ b/src/moin/user.py @@ -32,6 +32,7 @@ from moin import wikiutil from moin.constants.contenttypes import CONTENTTYPE_USER +from moin.constants.itemtypes import ITEMTYPE_USERPROFILE from moin.constants.namespaces import NAMESPACE_USERPROFILES from moin.constants.keys import ( BOOKMARKS, @@ -42,12 +43,14 @@ EMAIL_UNVALIDATED, ENC_PASSWORD, ITEMID, + ITEMTYPE, NAME, NAME_EXACT, NAMEPREFIX, NAMERE, NAMESPACE, RECOVERPASS_KEY, + REV_NUMBER, SESSION_KEY, SESSION_TOKEN, TAGS, @@ -244,7 +247,7 @@ class UserProfile: def __init__(self, **q): self._defaults = copy.deepcopy(app.cfg.user_defaults) - self._meta = {} + self._meta = {ITEMTYPE: ITEMTYPE_USERPROFILE} self._stored = False self._changed = False if q: @@ -305,6 +308,8 @@ def save(self, force=False): if self._changed or force: self[NAMESPACE] = NAMESPACE_USERPROFILES self[CONTENTTYPE] = CONTENTTYPE_USER + if REV_NUMBER not in self._meta: + self[REV_NUMBER] = 1 q = {ITEMID: self[ITEMID]} q = update_user_query(**q) item = get_user_backend().get_item(**q)