Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 9f8e4f7

Browse files
Changed title of /query page to manage navigation menu
1 parent 1a835a9 commit 9f8e4f7

File tree

4 files changed

+82
-3
lines changed

4 files changed

+82
-3
lines changed

‎.TRACFREEZE.txt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# generated by traccheck.py on 2024-04-18 14:36:14 with Trac version 1.6
1+
# generated by traccheck.py on 2024-10-12 11:43:25 with Trac version 1.6
22
trac.admin.api.admincommandmanager
33
trac.admin.console.tracadminhelpmacro
44
trac.admin.web_ui.adminmodule
@@ -66,7 +66,6 @@ trac.ticket.notification.ticketownersubscriber
6666
trac.ticket.notification.ticketpreviousupdaterssubscriber
6767
trac.ticket.notification.ticketreportersubscriber
6868
trac.ticket.notification.ticketupdatersubscriber
69-
trac.ticket.query.querymodule
7069
trac.ticket.query.ticketquerymacro
7170
trac.ticket.roadmap.defaultticketgroupstatsprovider
7271
trac.ticket.roadmap.milestonemodule
@@ -106,6 +105,7 @@ tracdjangoplugin.plugins.customtheme
106105
tracdjangoplugin.plugins.customwikimodule
107106
tracdjangoplugin.plugins.githubbrowserwithsvnchangesets
108107
tracdjangoplugin.plugins.plainlogincomponent
108+
tracdjangoplugin.plugins.renamequerytitlecomponent
109109
tracdjangoplugin.plugins.reservedusernamescomponent
110110
tracdragdrop.web_ui.tracdragdropmodule
111111
tracext.github.githubloginmodule

‎DjangoPlugin/tracdjangoplugin/plugins.py‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from trac.web.api import IRequestFilter, IRequestHandler, RequestDone
77
from trac.web.auth import LoginModule
88
from trac.wiki.web_ui import WikiModule
9+
from trac.ticket.query import QueryModule
910
from trac.util.html import tag
1011
from tracext.github import GitHubLoginModule, GitHubBrowser
1112

@@ -190,3 +191,15 @@ def force_logout_and_redirect(self, req):
190191

191192
def post_process_request(self, req, template, data, metadata):
192193
return template, data, metadata # required by Trac to exist
194+
195+
196+
class RenameQueryTitleComponent(QueryModule):
197+
"""
198+
Change the title of the /query page so that the navmenu entry matches the
199+
page's <h1>.
200+
"""
201+
202+
def display_html(self, req, query):
203+
template_name, context = super().display_html(req, query)
204+
context["title"] = "View Tickets"
205+
return template_name, context

‎DjangoPlugin/tracdjangoplugin/tests.py‎

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,10 @@
1212
ReStructuredTextRenderer, # noqa: needed for RSTWikiTestCase to work
1313
)
1414
from trac.test import EnvironmentStub, MockRequest
15+
from trac.ticket.web_ui import TicketModule # Imported for side effects
16+
from trac.ticket.query import QueryModule # Imported for side effects
1517
from trac.web.api import RequestDone
18+
from trac.web.main import RequestDispatcher
1619

1720
from tracdjangoplugin.middlewares import DjangoDBManagementMiddleware
1821
from tracdjangoplugin.plugins import PlainLoginComponent, ReservedUsernamesComponent
@@ -258,3 +261,65 @@ def test_wiki_can_render_rst(self):
258261
str(output),
259262
'<div class="document" id="test"><h1 class="title">TEST</h1></div>',
260263
)
264+
265+
266+
class _TracRequestWrapper:
267+
"""
268+
Wrap a Trac request object to make it look like a Django response (so it
269+
can be used with assertContains)
270+
"""
271+
272+
streaming = False
273+
charset = "utf8"
274+
275+
def __init__(self, request):
276+
self._request = request
277+
278+
@property
279+
def status_code(self):
280+
status_str, _ = self._request._status.split(" ", 1)
281+
return int(status_str)
282+
283+
@property
284+
def content(self):
285+
return self._request.response_sent.getvalue()
286+
287+
288+
class RenameQueryTitleComponentTestCase(TestCase):
289+
def setUp(self):
290+
self.env = EnvironmentStub(
291+
enable=[
292+
"trac.ticket.*",
293+
"trac.ticket.query.*",
294+
"trac.web.*",
295+
"tracdjangoplugin.plugins.renamequerytitlecomponent",
296+
],
297+
disable=[
298+
"trac.ticket.query.querymodule",
299+
],
300+
)
301+
self.request_factory = partial(MockRequest, self.env)
302+
self.dispatcher = RequestDispatcher(self.env)
303+
304+
def get_response(self, **kwargs):
305+
"""
306+
Build a request using the given kwargs and return a Django-like
307+
response object.
308+
"""
309+
request = self.request_factory(**kwargs)
310+
self.assertRaises(RequestDone, self.dispatcher.dispatch, request)
311+
return _TracRequestWrapper(request)
312+
313+
def test_new_title(self):
314+
response = self.get_response(path_info="/query")
315+
316+
self.assertContains(
317+
response,
318+
'<h1>View Tickets <span class="numrows">(0 matches)</span></h1>',
319+
html=True,
320+
)
321+
self.assertNotContains(
322+
response,
323+
'<h1>Custom Query <span class="numrows">(0 matches)</span></h1>',
324+
html=True,
325+
)

‎trac-env/conf/trac.ini‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ wiki_format_messages = enabled
1313
trac.about.* = disabled
1414
trac.admin.web_ui.PluginAdminPanel = disabled
1515
trac.ticket.query.* = enabled
16-
trac.ticket.query.querymodule = enabled
16+
# replaced by tracdjangoplugin.plugins.RenameQueryTitleComponent
17+
trac.ticket.query.querymodule = disabled
1718
trac.ticket.query.ticketquerymacro = enabled
1819
trac.ticket.report.* = disabled
1920
trac.ticket.report.reportmodule = disabled

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /