Skip to content

Commit 3c33357

Browse files
committed
feat: add query operation to get the uid of the current object
1 parent 10bf47e commit 3c33357

File tree

3 files changed

+47
-24
lines changed

3 files changed

+47
-24
lines changed

backend/src/collective/blog/profiles/default/registry/plone.app.querystring.interfaces.IQueryField.xml

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,42 @@
1-
<?xml version="1.0" encoding="utf-8"?>
2-
<registry xmlns:i18n="http://xml.zope.org/namespaces/i18n"
3-
i18n:domain="collective.blog"
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<registry
3+
xmlns:i18n="http://xml.zope.org/namespaces/i18n"
4+
i18n:domain="collective.blog"
45
>
56

67
<!-- filter by authors -->
7-
<records interface="plone.app.querystring.interfaces.IQueryField"
8-
prefix="plone.app.querystring.field.Creator"
8+
<records
9+
interface="plone.app.querystring.interfaces.IQueryField"
10+
prefix="plone.app.querystring.field.Creator"
911
>
10-
<value key="title"
11-
i18n:translate=""
12-
>Author</value>
13-
<value key="description"
14-
i18n:translate=""
12+
<value key="title" i18n:translate="">Author</value>
13+
<value
14+
key="description"
15+
i18n:translate=""
1516
>Categorization by Authors.</value>
1617
<value key="enabled">True</value>
1718
<value key="sortable">False</value>
18-
<value key="group"
19-
i18n:translate=""
20-
>Blog</value>
19+
<value key="group" i18n:translate="">Blog</value>
2120
<value key="operations">
2221
<element>plone.app.querystring.operation.selection.any</element>
2322
</value>
2423
<value key="vocabulary">collective.blog.authors</value>
2524
</records>
2625

2726
<!-- filter by tags -->
28-
<records interface="plone.app.querystring.interfaces.IQueryField"
29-
prefix="plone.app.querystring.field.blog_tags"
27+
<records
28+
interface="plone.app.querystring.interfaces.IQueryField"
29+
prefix="plone.app.querystring.field.blog_tags"
3030
>
31-
<value key="title"
32-
i18n:translate=""
33-
>Blog Tag</value>
34-
<value key="description"
35-
i18n:translate=""
36-
>Categorization by Tags.</value>
31+
<value key="title" i18n:translate="">Blog Tag</value>
32+
<value key="description" i18n:translate="">Categorization by Tags.</value>
3733
<value key="enabled">True</value>
3834
<value key="sortable">False</value>
39-
<value key="group"
40-
i18n:translate=""
41-
>Blog</value>
35+
<value key="group" i18n:translate="">Blog</value>
4236
<value key="operations">
4337
<element>plone.app.querystring.operation.selection.any</element>
4438
<element>plone.app.querystring.operation.selection.all</element>
39+
<element>collective.blog.operation.selection.currentUID</element>
4540
</value>
4641
<value key="vocabulary">collective.blog.tags</value>
4742
</records>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<registry xmlns:i18n="http://xml.zope.org/namespaces/i18n" i18n:domain="plone">
3+
4+
<records
5+
interface="plone.app.querystring.interfaces.IQueryOperation"
6+
prefix="collective.blog.operation.selection.currentUID"
7+
>
8+
<value key="title" i18n:translate="">Current</value>
9+
<value key="description" i18n:translate="">The current Object UID</value>
10+
<value key="operation">collective.blog.queryparser._currentUID</value>
11+
<value key="widget" />
12+
</records>
13+
14+
</registry>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
from collections import namedtuple
2+
from Products.CMFCore.utils import getToolByName
3+
4+
5+
Row = namedtuple("Row", ["index", "operator", "values"])
6+
PATH_INDICES = {"path"}
7+
8+
9+
def _currentUID(context, row):
10+
"""Current user lookup"""
11+
# placeholder
12+
mt = getToolByName(context, "portal_membership")
13+
user = mt.getAuthenticatedMember()
14+
return {row.index: {"query": user.getId()}}

0 commit comments

Comments
 (0)