Skip to content

Commit 9f72fed

Browse files
authored
Merge pull request #1868 from UlrichB22/rm_wikiname
Remove WIKINAME from schema and queries
2 parents 7fa9335 + d386c26 commit 9f72fed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+120
-273
lines changed

docs/user/search.rst

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -200,8 +200,6 @@ The following table includes fields that may be useful for searching.
200200
+-------------------------+-------------------------------------------------------+
201201
| ``username`` | submitter user name, e.g. JoeDoe |
202202
+-------------------------+-------------------------------------------------------+
203-
| ``wikiname`` | wiki name, e.g. ITWiki, EngineeringWiki, SalesWiki |
204-
+-------------------------+-------------------------------------------------------+
205203

206204
** These fields exist only in the current revisions index, see Notes below.
207205

@@ -220,10 +218,6 @@ Search items with an item ACL that explicitly gives Joe read rights::
220218

221219
acl:Joe:+read
222220

223-
Limiting search to a specific wiki, for example in a wiki farm's shared index::
224-
225-
wikiname:SomeWiki # requires correct caps
226-
227221
Notes
228222
=====
229223

@@ -233,10 +227,9 @@ button under the Search Options link is selected. The larger indexes all
233227
revisions of all items including revisions of deleted items. As noted in the table
234228
above the larger index omits several fields to save space.
235229

236-
By default, all namespaces and all wikinames are searched, including the userprofiles
237-
index. Because the userprofiles index is normally read restricted, hits will be
238-
blocked and included as `n items are not shown because read permission was denied` at
239-
the bottom of the page.
230+
By default, all namespaces are searched, including the userprofiles index. Because
231+
the userprofiles index is normally read restricted, hits will be blocked and included
232+
as `n items are not shown because read permission was denied` at the bottom of the page.
240233

241234
Items with transcluded content do not contain the transcluded content within the
242235
item's index. An item containing "foo" within its content and trancluding an item with

src/moin/apps/admin/views.py

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
EMAIL,
3838
DISABLED,
3939
NAME_EXACT,
40-
WIKINAME,
4140
TRASH,
4241
NAMESPACE,
4342
NAME_OLD,
@@ -391,9 +390,7 @@ def interwikihelp():
391390
def itemsize():
392391
"""display a table with item sizes"""
393392
headings = [_("Size"), _("Item name")]
394-
query = And(
395-
[Term(WIKINAME, app.cfg.interwikiname), Not(Term(NAMESPACE, NAMESPACE_USERPROFILES)), Not(Term(TRASH, True))]
396-
)
393+
query = And([Not(Term(NAMESPACE, NAMESPACE_USERPROFILES)), Not(Term(TRASH, True))])
397394
revs = flaskg.storage.search_meta(query, idx_name=LATEST_REVS, sortedby=[NAME], limit=None)
398395
rows = [(rev[SIZE], CompositeName(rev[NAMESPACE], NAME_EXACT, rev[NAME][0])) for rev in revs]
399396
rows = sorted(rows, reverse=True)
@@ -414,7 +411,7 @@ def trash(namespace):
414411

415412

416413
def _trashed(namespace):
417-
q = And([Term(WIKINAME, app.cfg.interwikiname), Term(TRASH, True)])
414+
q = Term(TRASH, True)
418415
if namespace != NAMESPACE_ALL:
419416
q = And([q, Term(NAMESPACE, namespace)])
420417
trashedEntry = namedtuple("trashedEntry", "fqname oldname revid rev_number mtime comment editor parentid")
@@ -439,7 +436,7 @@ def _trashed(namespace):
439436
@admin.route("/user_acl_report/<uid>", methods=["GET"])
440437
@require_permission(SUPERUSER)
441438
def user_acl_report(uid):
442-
query = And([Term(WIKINAME, app.cfg.interwikiname), Not(Term(NAMESPACE, NAMESPACE_USERPROFILES))])
439+
query = Not(Term(NAMESPACE, NAMESPACE_USERPROFILES))
443440
all_metas = flaskg.storage.search_meta(query, idx_name=LATEST_REVS, sortedby=[NAMESPACE, NAME], limit=None)
444441
theuser = user.User(uid=uid)
445442
itemwise_acl = []
@@ -504,7 +501,7 @@ def item_acl_report():
504501
Item names are prefixed with the namespace, if there is a non-default namespace.
505502
If there are multiple names, the first name is used for sorting.
506503
"""
507-
query = And([Term(WIKINAME, app.cfg.interwikiname), Not(Term(NAMESPACE, NAMESPACE_USERPROFILES))])
504+
query = Not(Term(NAMESPACE, NAMESPACE_USERPROFILES))
508505
all_metas = flaskg.storage.search_meta(query, idx_name=LATEST_REVS, sortedby=[NAMESPACE, NAME], limit=None)
509506
items_acls = []
510507
for meta in all_metas:
@@ -558,7 +555,7 @@ def group_acl_report(group_name):
558555
Display a table of items and permissions, where the ACL rule specifies any
559556
WikiGroup or ConfigGroup name.
560557
"""
561-
query = And([Term(WIKINAME, app.cfg.interwikiname), Not(Term(NAMESPACE, NAMESPACE_USERPROFILES))])
558+
query = Not(Term(NAMESPACE, NAMESPACE_USERPROFILES))
562559
all_metas = flaskg.storage.search_meta(query, idx_name=LATEST_REVS, sortedby=[NAMESPACE, NAME], limit=None)
563560
group_items = []
564561
for meta in all_metas:

src/moin/apps/feed/views.py

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,11 @@
1717
from feedgen.feed import FeedGenerator
1818
from markupsafe import Markup
1919

20-
from whoosh.query import Term, And
20+
from whoosh.query import Term, And, Every
2121

2222
from moin.i18n import _
2323
from moin.apps.feed import feed
24-
from moin.constants.keys import (
25-
NAME,
26-
NAME_EXACT,
27-
NAMESPACE,
28-
WIKINAME,
29-
COMMENT,
30-
MTIME,
31-
REVID,
32-
ALL_REVS,
33-
PARENTID,
34-
LATEST_REVS,
35-
)
24+
from moin.constants.keys import NAME, NAME_EXACT, NAMESPACE, COMMENT, MTIME, REVID, ALL_REVS, PARENTID, LATEST_REVS
3625
from moin.themes import get_editor_info, render_template
3726
from moin.items import Item
3827
from moin.utils.crypto import cache_key
@@ -54,10 +43,10 @@ def atom(item_name):
5443
- First item is always rendered fully
5544
- Revision meta(id, size and comment) is shown for parent and current revision
5645
"""
57-
query = Term(WIKINAME, app.cfg.interwikiname)
46+
query = Every()
5847
if item_name:
5948
fqname = split_fqname(item_name)
60-
query = And([query, Term(NAME_EXACT, fqname.value), Term(NAMESPACE, fqname.namespace)])
49+
query = And([Term(NAME_EXACT, fqname.value), Term(NAMESPACE, fqname.namespace)])
6150
revs = list(flaskg.storage.search(query, idx_name=LATEST_REVS, sortedby=[MTIME], reverse=True, limit=1))
6251
if revs:
6352
rev = revs[0]
@@ -76,9 +65,9 @@ def atom(item_name):
7665
feed.title(title)
7766
feed.link(href=request.host_url)
7867
feed.link(href=request.url, rel="self")
79-
query = Term(WIKINAME, app.cfg.interwikiname)
68+
query = Every()
8069
if item_name:
81-
query = And([query, Term(NAME_EXACT, fqname.value), Term(NAMESPACE, fqname.namespace)])
70+
query = And([Term(NAME_EXACT, fqname.value), Term(NAMESPACE, fqname.namespace)])
8271
history = flaskg.storage.search(query, idx_name=ALL_REVS, sortedby=[MTIME], reverse=True, limit=100)
8372
for rev in history:
8473
name = rev.fqname.fullname

src/moin/apps/frontend/views.py

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -256,10 +256,9 @@ def lookup():
256256
term = Term(key, value)
257257
terms.append(term)
258258
if terms:
259-
LookupEntry = namedtuple("LookupEntry", "name revid wikiname")
259+
LookupEntry = namedtuple("LookupEntry", "name revid")
260260
name = lookup_form[NAME].value
261261
name_exact = lookup_form[NAME_EXACT].value or ""
262-
terms.append(Term(WIKINAME, app.cfg.interwikiname))
263262
q = And(terms)
264263
with flaskg.storage.indexer.ix[idx_name].searcher() as searcher:
265264
flaskg.clock.start("lookup")
@@ -269,7 +268,7 @@ def lookup():
269268
for result in results:
270269
analyzer = item_name_analyzer()
271270
lookup_results += [
272-
LookupEntry(n, result[REVID], result[WIKINAME])
271+
LookupEntry(n, result[REVID])
273272
for n in result[NAME]
274273
if not name or name.lower() in analyze(analyzer, n)
275274
if n.startswith(name_exact)
@@ -1522,7 +1521,7 @@ def name_initial(files, uppercase=False, lowercase=False):
15221521
# there will likely be false missing_dirs caused by filter
15231522
missing = set()
15241523
for m_dir in missing_dirs:
1525-
query = And([Term(WIKINAME, app.cfg.interwikiname), (Term(NAME_EXACT, m_dir))])
1524+
query = Term(NAME_EXACT, m_dir)
15261525
metas = tuple(flaskg.unprotected_storage.search_meta(query, idx_name=LATEST_REVS, limit=1))
15271526
if not metas:
15281527
missing.add(m_dir)
@@ -1585,7 +1584,7 @@ def mychanges():
15851584
page_num = request.values.get("page_num", 1)
15861585
page_num = max(int(page_num), 1)
15871586

1588-
query = And([Term(WIKINAME, app.cfg.interwikiname), Term(USERID, flaskg.user.itemid)])
1587+
query = Term(USERID, flaskg.user.itemid)
15891588
if results_per_page:
15901589
len_revs = flaskg.storage.search_results_size(query, idx_name=ALL_REVS)
15911590
metas = flaskg.storage.search_meta_page(
@@ -1670,7 +1669,6 @@ def _forwardrefs(item_name):
16701669
"""
16711670
fqname = split_fqname(item_name)
16721671
q = fqname.query
1673-
q[WIKINAME] = app.cfg.interwikiname
16741672
rev = flaskg.storage.document(**q)
16751673
if rev is None:
16761674
refs = []
@@ -1713,9 +1711,7 @@ def _backrefs(item_name):
17131711
:type item_name: unicode
17141712
:returns: the list of all items which ref fq_name
17151713
"""
1716-
q = And(
1717-
[Term(WIKINAME, app.cfg.interwikiname), Or([Term(ITEMTRANSCLUSIONS, item_name), Term(ITEMLINKS, item_name)])]
1718-
)
1714+
q = Or([Term(ITEMTRANSCLUSIONS, item_name), Term(ITEMLINKS, item_name)])
17191715
metas = flaskg.storage.search_meta(q)
17201716
return {fqname for meta in metas for fqname in meta[FQNAMES]}
17211717

@@ -1739,8 +1735,7 @@ def history(item_name):
17391735
results_per_page = flaskg.user.results_per_page
17401736
else:
17411737
results_per_page = app.cfg.results_per_page
1742-
terms = [Term(WIKINAME, app.cfg.interwikiname)]
1743-
terms.extend(Term(term, value) for term, value in fqname.query.items())
1738+
terms = [Term(term, value) for term, value in fqname.query.items()]
17441739
if bookmark_time:
17451740
terms.append(DateRange(MTIME, start=utcfromtimestamp(bookmark_time), end=None))
17461741
query = And(terms)
@@ -1808,7 +1803,7 @@ def editor_info_for_reports():
18081803
This is useful for history and index reports that show the last editor's name and email address.
18091804
It avoids multiple calls to whoosh for same userid.
18101805
"""
1811-
query = And([Term(WIKINAME, app.cfg.interwikiname), (Term(NAMESPACE, NAMESPACE_USERPROFILES))])
1806+
query = Term(NAMESPACE, NAMESPACE_USERPROFILES)
18121807
metas = flaskg.unprotected_storage.search_meta(query, idx_name=LATEST_REVS, limit=None)
18131808
editors = {}
18141809
for meta in metas:
@@ -1830,13 +1825,12 @@ def global_history(namespace):
18301825

18311826
page_num = request.values.get("page_num", 1)
18321827
page_num = max(int(page_num), 1)
1833-
terms = [Term(WIKINAME, app.cfg.interwikiname)]
18341828
fqname = CompositeName(NAMESPACE_ALL, NAME_EXACT, "")
18351829
if namespace != NAMESPACE_ALL:
1836-
terms.append(Term(NAMESPACE, namespace))
1830+
terms = [Term(NAMESPACE, namespace)]
18371831
fqname = split_fqname(namespace)
18381832
else:
1839-
terms.append(Not(Term(NAMESPACE, NAMESPACE_USERPROFILES)))
1833+
terms = [Not(Term(NAMESPACE, NAMESPACE_USERPROFILES))]
18401834
bookmark_time = flaskg.user.bookmark
18411835
if bookmark_time is not None:
18421836
terms.append(DateRange(MTIME, start=utcfromtimestamp(bookmark_time), end=None))
@@ -1902,9 +1896,7 @@ def _compute_item_sets(wanted=False):
19021896
transcluded = set()
19031897
existing = set()
19041898
who_wants = {}
1905-
query = And(
1906-
[Term(WIKINAME, app.cfg.interwikiname), Not(Term(NAMESPACE, NAMESPACE_USERPROFILES)), Not(Term(TRASH, True))]
1907-
)
1899+
query = And([Not(Term(NAMESPACE, NAMESPACE_USERPROFILES)), Not(Term(TRASH, True))])
19081900
metas = flaskg.storage.search_meta(query, idx_name=LATEST_REVS, sortedby=[NAME], limit=None)
19091901
if wanted:
19101902
for meta in metas:
@@ -2746,8 +2738,7 @@ def diff(item_name):
27462738
offset = request.values.get("offset", 0)
27472739
offset = max(int(offset), 0)
27482740
bookmark_time = int(request.values.get("bookmark", 0))
2749-
terms = [Term(WIKINAME, app.cfg.interwikiname)]
2750-
terms.extend(Term(term, value) for term, value in fqname.query.items())
2741+
terms = [Term(term, value) for term, value in fqname.query.items()]
27512742
query = And(terms)
27522743
metas = flaskg.storage.search_meta(query, idx_name=ALL_REVS, sortedby=[MTIME, REV_NUMBER], reverse=True, limit=None)
27532744
close_file(item.rev.data)
@@ -3009,10 +3000,10 @@ def global_tags(namespace):
30093000
"""
30103001
title_name = _("Global Tags")
30113002
if namespace == NAMESPACE_ALL:
3012-
query = And([Term(WIKINAME, app.cfg.interwikiname), Term(HAS_TAG, True)])
3003+
query = Term(HAS_TAG, True)
30133004
fqname = CompositeName(NAMESPACE_ALL, NAME_EXACT, "")
30143005
else:
3015-
query = And([Term(WIKINAME, app.cfg.interwikiname), Term(NAMESPACE, namespace), Term(HAS_TAG, True)])
3006+
query = And([Term(NAMESPACE, namespace), Term(HAS_TAG, True)])
30163007
fqname = split_fqname(namespace)
30173008
if namespace == NAMESPACE_DEFAULT:
30183009
headline = _("Global Tags")
@@ -3056,7 +3047,7 @@ def tagged_items(tag, namespace):
30563047
"""
30573048
show all items' names that have tag <tag> and belong to namespace <namespace>
30583049
"""
3059-
terms = And([Term(WIKINAME, app.cfg.interwikiname), Term(TAGS, tag)])
3050+
terms = Term(TAGS, tag)
30603051
if namespace != NAMESPACE_ALL:
30613052
terms = And([terms, Term(NAMESPACE, namespace)])
30623053
query = And(terms)

src/moin/apps/misc/views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def format_timestamp(t):
4545
root_fqnames.append(CompositeName(rev.meta[NAMESPACE], NAME_EXACT, rev.meta[NAME][0]))
4646

4747
sitemap = []
48-
for rev in flaskg.storage.documents(wikiname=app.cfg.interwikiname):
48+
for rev in flaskg.storage.documents():
4949
fqnames = rev.fqnames
5050
mtime = rev.meta[MTIME]
5151
# default for content items:
@@ -74,7 +74,7 @@ def urls_names():
7474
"""
7575
# XXX we currently also get deleted items, fix this
7676
fq_names = []
77-
for rev in flaskg.storage.documents(wikiname=app.cfg.interwikiname):
77+
for rev in flaskg.storage.documents():
7878
fq_names += [fqname for fqname in rev.fqnames]
7979
content = render_template("misc/urls_names.txt", fq_names=fq_names)
8080
return Response(content, mimetype="text/plain")

src/moin/cli/_tests/data/Corrupt.meta

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,5 @@
2020
"sha1": "6e17f7841d0771d781ef187d6fb8c97540c29fae",
2121
"size": 8,
2222
"summary": "",
23-
"tags": [],
24-
"wikiname": "MyMoinMoin"
23+
"tags": []
2524
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"itemtype": "default", "contenttype": "text/x.moin.wiki;charset=utf-8", "namespace": "", "summary": "", "name": ["Page2"], "tags": [], "comment": "", "rev_number": 1, "itemlinks": [], "itemtransclusions": [], "itemid": "9999989aca5e45cc8683432f986a0e50", "wikiname": "MyMoinMoin", "name_old": [], "mtime": 1683243630, "action": "SAVE", "address": "127.0.0.1", "externallinks": [], "dataid": "8ad82a97211e4de18537e183c235c1a8", "size": 13, "sha1": "25ff6d28976a9e0feb97710a0c4b08ae197a0000", "revid": "0a2f1b476b6c42be80908b3b799df3fd"}
1+
{"itemtype": "default", "contenttype": "text/x.moin.wiki;charset=utf-8", "namespace": "", "summary": "", "name": ["Page2"], "tags": [], "comment": "", "rev_number": 1, "itemlinks": [], "itemtransclusions": [], "itemid": "9999989aca5e45cc8683432f986a0e50", "name_old": [], "mtime": 1683243630, "action": "SAVE", "address": "127.0.0.1", "externallinks": [], "dataid": "8ad82a97211e4de18537e183c235c1a8", "size": 13, "sha1": "25ff6d28976a9e0feb97710a0c4b08ae197a0000", "revid": "0a2f1b476b6c42be80908b3b799df3fd"}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"itemtype": "default", "contenttype": "text/x.moin.wiki;charset=utf-8", "namespace": "", "summary": "", "tags": [], "rev_number": 2, "itemlinks": [], "itemtransclusions": [], "itemid": "3c7e36466726441faf6d7d266ac224e2", "externallinks": [], "wikiname": "MyMoinMoin", "parentid": "002e5210cc884010b0dd75a1c337032d", "name": ["Page3"], "comment": "", "name_old": [], "mtime": 1683245964, "action": "SAVE", "address": "127.0.0.1", "dataid": "c3615a8d48d440c2a344a0e1dcfe7388", "size": 24, "sha1": "3c8b6b1f192549155fa6fef1545b29a06f2441a6", "revid": "39c8fe8da0a048c0b7839bf8aa02cd04"}
1+
{"itemtype": "default", "contenttype": "text/x.moin.wiki;charset=utf-8", "namespace": "", "summary": "", "tags": [], "rev_number": 2, "itemlinks": [], "itemtransclusions": [], "itemid": "3c7e36466726441faf6d7d266ac224e2", "externallinks": [], "parentid": "002e5210cc884010b0dd75a1c337032d", "name": ["Page3"], "comment": "", "name_old": [], "mtime": 1683245964, "action": "SAVE", "address": "127.0.0.1", "dataid": "c3615a8d48d440c2a344a0e1dcfe7388", "size": 24, "sha1": "3c8b6b1f192549155fa6fef1545b29a06f2441a6", "revid": "39c8fe8da0a048c0b7839bf8aa02cd04"}

src/moin/cli/_tests/data/Home.meta

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,5 @@
2020
"sha1": "9521dba25709a79ede4a34b50471419774c41099",
2121
"size": 9,
2222
"summary": "",
23-
"tags": [],
24-
"wikiname": "MyMoinMoin"
23+
"tags": []
2524
}

src/moin/cli/_tests/data/MyPage-v1.meta

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,5 @@
2020
"sha1": "487076f6c9eb3ce9cb18fd9800a62b35383a34ee",
2121
"size": 16,
2222
"summary": "",
23-
"tags": [],
24-
"wikiname": "MyMoinMoin"
23+
"tags": []
2524
}

0 commit comments

Comments
 (0)