Changeset 1582

Show
Ignore:
Timestamp:
11/21/06 02:13:23 (2 years ago)
Author:
pacopablo
Message:

TracBlogPlugin:

  • Applied patch for RSS email addresses from kindlund@mitre.org, Closes #336
  • Removed reference to addHeadingLinks in new_blog.cs. Closes #786
  • Added code to redirect to the page where posting a new entry was selected. Closes #452
  • Added patch to allow for customizable footer on blog posts from dfaerch. Closes #745
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • tracblogplugin/0.10/blog/admin.py

    r759 r1582  
    6464                        'nav_bar' : 'true', 
    6565                        'macro_blacklist': '', 
     66                        'footer': '', 
    6667                       } 
    6768        if req.method == 'POST': 
     
    100101 '''Macro Blacklist''':: 
    101102   comma separated list of macros to strip from blog output. 
     103 '''Footer''':: 
     104   Wiki Formatted data, that will be added to end of every document. You may use Macros. Also use $U for name of current user and $D for "blog post date" according to "Date Format String" 
    102105 
    103106 '''strftime formatting''':: 
  • tracblogplugin/0.10/blog/new_blog.py

    r759 r1582  
    107107        add_stylesheet(req, 'common/css/wiki.css') 
    108108        self._new_blog_post(req) 
     109        referer = req.args.get('referer') or req.get_header('Referer') or self.env.href.blog() 
     110        req.hdf['blog.referer'] = referer 
    109111        return 'new_blog.cs', None 
    110112 
     
    136138            if action == 'edit': 
    137139                if req.args.has_key('cancel'): 
    138                     req.redirect(self.env.href.blog()) 
     140                    referrer = req.args.get('referer') or req.get_header('Referer') or self.env.href.blog() 
     141                    req.redirect(referrer) 
    139142                page = WikiPage(self.env, pagename, None) 
    140143                tags = TagEngine(self.env).tagspace.wiki 
     
    149152                    else: 
    150153                        page.text = wikitext 
     154                    # Add footer  
     155                    page.text = page.text.join(["\n\n",self.variable_substitution(req,self.env.config.get('blog', 'footer', ''))])  
    151156                    page.readonly = readonly 
    152157                    page.save(req.authname, comment, req.remote_addr) 
     
    156161                               if t.strip()] 
    157162                    tags.add_tags(req, pagename, taglist) 
    158                     req.redirect(self.env.href.blog()) 
     163                    referrer = req.args.get('referer') or req.get_header('Referer') or self.env.href.blog() 
     164                    req.redirect(referrer) 
    159165        else: 
    160166            info = { 
     
    209215            if blogtitle: 
    210216                info['page_html'] = wiki_to_html(''.join([titleline,  
    211                                                 req.args.get('text')]), 
     217                                                 req.args.get('text'),  
     218                                                 "\n\n",self.variable_substitution(req,self.env.config.get('blog', 'footer', ''))]),  
    212219                                                self.env, req, db) 
    213220            else: 
    214                 info['page_html'] = wiki_to_html(page.text, self.env, req, db) 
     221                info['page_html'] = wiki_to_html(page.text.join(["\n\n", 
     222                    self.variable_substitution(req,self.env.config.get('blog', 'footer', ''))]),  
     223                                                  self.env,  
     224                                                  req,  
     225                                                  db)  
    215226            info['readonly'] = int(req.args.has_key('readonly')) 
    216227        req.hdf['blog'] = info 
    217228 
     229    def variable_substitution(self,req,string):  
     230        string = string.replace('$U',req.authname)  
     231        string = string.replace('$D',time.strftime(self.env.config.get('blog', 'date_format', '%x %X')))  
     232        return string  
    218233     
    219234    # ITemplateProvider 
  • tracblogplugin/0.10/blog/templates/blog_admin.cs

    r741 r1582  
    6767                </label> 
    6868            </div> 
     69            <div class="field"> 
     70                <label>Footer:<br/> 
     71                    <textarea name="footer" cols=40 rows=6><?cs var:blogadmin.footer ?></textarea> 
     72                </label> 
     73            </div> 
    6974        <div class="buttons"> 
    7075            <input type="submit" value="Apply Changes" /> 
  • tracblogplugin/0.10/blog/templates/new_blog.cs

    r595 r1582  
    2323    <?cs /if ?> 
    2424    <form id="edit" method="post"> 
     25        <input type="hidden" name="referer" value="<?cs var:blog.referer ?>" /> 
    2526        <fieldset class="iefix"> 
    2627            <input type="hidden" name="action" value="edit" /> 
     
    120121        </script> 
    121122    </form> 
    122   <script type="text/javascript"> 
    123    addHeadingLinks(document.getElementById("searchable")); 
    124   </script> 
    125123</div> 
    126124 
  • tracblogplugin/0.10/blog/web_ui.py

    r1190 r1582  
    256256        macro_bl = [name.strip() for name in macro_bl if name.strip()] 
    257257        macro_bl.append('BlogShow') 
     258 
     259        # Get the email addresses of all known users 
     260        email_map = {} 
     261        for username, name, email in self.env.get_known_users(): 
     262            if email: 
     263                email_map[username] = email 
    258264                        
    259265        num_posts = self._choose_value('num_posts', req, kwargs, convert=int) 
     
    332338                    if author.find('@') != -1: 
    333339                        data['author.email'] = author 
    334                     elif self._user2email(author) is not None
    335                         data['author.email'] = self._user2email(author) 
     340                    elif email_map.has_key(author)
     341                        data['author.email'] = email_map[author] 
    336342                 
    337343                if (modified != post_time) and mark_updated: 
     
    356362        req.hdf['blog.hidecal'] = hidecal 
    357363        pass 
    358  
    359     def _user2email(self, user): 
    360         for username, name, email in self.env.get_known_users(): 
    361             if email: 
    362                 return email 
    363         return None 
    364364 
    365365    def _generate_calendar(self, req, tallies):