FileAttachedEvent behaves differently when using <<Include()>>
I'm using the ParserMarket/matplotlib parser to generate images dynamically (only when the matplotlib code has changed). After the image(s) are generated, send_event(FileAttachedEvent()) is called to index the generated images. The indexing works fine when the page (say it is called MplPage) with the matplotlib code is rendered directly. I check the indexing by doing a FullSearch(), which brings back the attachments on MplPage.
If I repeat the above by including MplPage with the <<Include()>> macro within another page, the images are no longer indexed.
Steps to reproduce
Create sample page SamplePage with following content
<<Include(/subpage)>>
- Create /subpage where the parser is called
{{{#!xap Hello world! }}}
- Goto /subpage (check if attachment test-indexing.txt has been created)
- Search for text-indexing.txt, should return /subpage with attachment
- Goto /subpage and delete test-indexing.txt (without reloading page)
Goto SamplePage (includes /subpage and recreates test-indexing.txt)
- Search for text-indexing.txt, /subpage with attachment no longer found
Example text_x_xap.py
1 # -*- coding: iso-8859-15 -*-
2 """
3 @copyright: 2008 F. Zieher
4 @license: GNU GPL, see COPYING for details.
5
6 """
7
8 import os
9 from MoinMoin.events import FileAttachedEvent, send_event
10 from MoinMoin.action import AttachFile
11
12 Dependencies = ["namespace"]
13
14 # -------------------------------------------------------------------------------
15
16 class Parser:
17 """
18 Test xapian indexing
19 """
20
21 extensions = []
22 Dependencies = Dependencies
23
24 def __init__(self, raw, request, **kw):
25 self.raw = raw
26 self.request = request
27
28 def format(self, formatter):
29 """ Send the text. """
30
31 self.request.flush() # to identify error text
32 self.formatter = formatter
33 self.pagename = formatter.page.page_name
34 self.attach_dir=AttachFile.getAttachDir(self.request,self.pagename,create=1)
35
36 fname = 'test-indexing.txt'
37 fpath = os.path.join(self.attach_dir,fname)
38 f = open(fpath,'w')
39 f.write(self.raw)
40 f.close()
41 send_event(FileAttachedEvent(self.request, self.pagename, fname, os.path.getsize(fpath)))
42 self.request.write('<pre>'+self.raw+'</pre>')
Component selection
- general
Details
MoinMoin Version
1.8.2
OS and Version
WinXP or Linux (SLES10)
Python Version
2.4
Server Setup
twisted
Server Details
Language you are using the wiki in (set in the browser/UserPreferences)
Workaround
Discussion
Plan
- Priority:
- Assigned to:
- Status: