Opened 12 years ago
Closed 8 years ago
#10620 closed defect (fixed)
UndefinedError: "data" not defined when navigating to the Announcements preference panel
Reported by: | Ryan J Ollos | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | AnnouncerPlugin |
Severity: | normal | Keywords: | UndefinedError |
Cc: | Trac Release: | 0.11 |
Description
07:07:32 PM Trac[main] ERROR: Internal Server Error: Traceback (most recent call last): File "/home/user/Workspace/th9110/trac-trunk/trac/web/main.py", line 497, in _dispatch_request dispatcher.dispatch(req) File "/home/user/Workspace/th9110/trac-trunk/trac/web/main.py", line 233, in dispatch content_type) File "/home/user/Workspace/th9110/trac-trunk/trac/web/chrome.py", line 1008, in render_template encoding='utf-8') File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/core.py", line 183, in render return encode(generator, method=method, encoding=encoding, out=out) File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/output.py", line 58, in encode for chunk in iterator: File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/output.py", line 339, in __call__ for kind, data, pos in stream: File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/output.py", line 826, in __call__ for kind, data, pos in stream: File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/output.py", line 670, in __call__ for kind, data, pos in stream: File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/output.py", line 771, in __call__ for kind, data, pos in chain(stream, [(None, None, None)]): File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/output.py", line 586, in __call__ for ev in stream: File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/core.py", line 288, in _ensure for event in stream: File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/core.py", line 288, in _ensure for event in stream: File "/home/user/Workspace/th9110/trac-trunk/trac/web/chrome.py", line 1145, in _strip_accesskeys for kind, data, pos in stream: File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/core.py", line 288, in _ensure for event in stream: File "/home/user/Workspace/th9110/trac-trunk/trac/web/chrome.py", line 1134, in _generate for kind, data, pos in stream: File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/core.py", line 288, in _ensure for event in stream: File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/template/base.py", line 605, in _include for event in stream: File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/template/markup.py", line 362, in _match content = list(content) File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/template/base.py", line 605, in _include for event in stream: File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/template/markup.py", line 316, in _strip event = next() File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/template/base.py", line 545, in _flatten for kind, data, pos in stream: File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/core.py", line 288, in _ensure for event in stream: File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/core.py", line 288, in _ensure for event in stream: File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/template/base.py", line 605, in _include for event in stream: File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/template/markup.py", line 327, in _match for event in stream: File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/template/base.py", line 555, in _flatten for event in self._flatten(value, ctxt, **vars) File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/template/base.py", line 565, in _flatten result = _eval_expr(data, ctxt, vars) File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/template/base.py", line 277, in _eval_expr retval = expr.evaluate(ctxt) File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/template/eval.py", line 178, in evaluate return eval(self.code, _globals, {'__data__': data}) File "/home/user/Workspace/trac-hacks/announcerplugin/trunk/announcer/templates/prefs_announcer_watch_users.html", line 10, in <Expression u'data.announcer_watch_users'> <input type="text" id="announcer_watch_users" name="announcer_watch_users" File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/template/eval.py", line 316, in lookup_attr val = getattr(obj, key) File "/home/user/Workspace/th9110/genshi-0.6.0/genshi/template/eval.py", line 277, in _die raise UndefinedError(self._name, self._owner) UndefinedError: "data" not defined
Attachments (0)
Change History (6)
comment:1 Changed 12 years ago by
comment:2 Changed 12 years ago by
I'd suggest that as part of this ticket we wire up the infrastructure for functional tests, and add a functional test to cover this issue. This is at the front of my mind due to recent work on t:#10281. If you agree, you can count on me to provide a patch that adds functional tests in the coming days.
comment:3 Changed 12 years ago by
Keywords: | UndefinedError added |
---|
Oops …, I did a simplification to the call of this template, but forgot about references in the template itself, and even worse, I didn't test this templates usage before commit. So sure, if you can work-out the intro for functional tests for announcer, this would be great. I'll just go and fix this issue right-away.
comment:4 Changed 12 years ago by
(In [12356]) TracAnnouncer: Adapt the template to data dict change in [12338], refs #10620.
Obviously I failed to track all my changes in that changeset, and especially the move-and-modernize approach has fired back here - sorry, and thanks to Ryan J Ollos for spotting this as well as the right place for the fix.
I took the chance to improve template format like I'd do for others later on. That's bound to break msgid's for translation, but I'll need to do a message extraction for other recent i18n-relevant changes anyway.
comment:5 Changed 8 years ago by
Owner: | Steffen Hoffmann deleted |
---|
comment:6 Changed 8 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
The fix appears to be:
announcerplugin/trunk/announcer/templates/prefs_announcer_watch_users.html
data.announcer_watch_users}"/></label>