Ignore:
Timestamp:
11/09/06 12:35:18 (6 years ago)
Author:
christian
Message:

Working wiki-sitemap, admin page is not functional yet

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sitemap-plugin/trunk/sitemap/admin_ui.py

    r15 r18  
    1 from pkg_resources import resource_filename 
     1from pkg_resources import resource_filename #@UnresolvedImport 
    22from webadmin.web_ui import IAdminPageProvider 
    33from trac.web.chrome import ITemplateProvider 
    4 from trac.perm import IPermissionRequestor 
    54from trac.core import implements 
    65from trac.core import Component 
    76 
     7from api import SitemapController 
    88 
    9 class SitemapAdmin(Component): 
     9class SitemapAdminPage(Component): 
    1010    """ 
    1111        Generates a sitemap file suitable for Google Sitemaps 
    1212    """ 
    1313     
    14     implements(ITemplateProvider, IAdminPageProvider, IPermissionRequestor) 
     14    implements(ITemplateProvider, IAdminPageProvider) 
     15     
     16    priorities = [ 1.0, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1 ] 
     17    frequencies = [ 'never', 'yearly', 'monthly', 'weekly', 'daily', 'hourly', 'always'] 
    1518 
    16     # IPermissionRequestor 
    17     def get_permission_actions(self): 
    18         return ['BLOG_ADMIN'] 
    19  
     19    def _get_field(self, req, name, default_value): 
     20        if name in req.args: 
     21            return req.args[name] 
     22        return default_value 
     23     
    2024    # IAdminPageProvider methods 
    2125    def get_admin_pages(self, req): 
    22         if req.perm.has_permission('BLOG_ADMIN'): 
    23             yield ('general', 'General', 'sitemap', 'Sitemap') 
     26        if req.perm.has_permission('TRAC_ADMIN'): 
     27            yield ('general', 'General', 'sitemap_admin', 'Sitemap') 
    2428 
    2529    def process_admin_request(self, req, cat, page, path_info): 
    26         assert req.perm.has_permission('BLOG_ADMIN') 
     30        assert req.perm.has_permission('TRAC_ADMIN') 
     31        c = SitemapController(self.env) 
    2732 
    28         # add_stylesheet(req, 'blog/css/blog.css') 
    29         # add_stylesheet(req, 'common/css/wiki.css') 
    30         req.hdf['sitemap.url'] = req.base_url + '/sitemap.xml' 
    31         req.hdf['sitemap.priorities'] = [ 1.0, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1 ] 
    32         req.hdf['sitemap.frequencies'] = [ 'monthly', 'weekly', 'daily'] 
     33        if req.method == 'POST': 
     34            if page == 'sitemap': 
     35                if 'save' in req.args: 
     36                    for contributor in c.contributors: 
     37                        name, title = contributor.get_name() #@UnusedVariable 
     38                        contributor.set_configuration( 
     39                                                      self._get_field(req, name + '_priority', contributor.priority), 
     40                                                      self._get_field(req, name + '_frequency', contributor.frequency) 
     41                                                      ) 
     42 
     43        req.hdf['sitemap.data'] = c.get_descriptions() 
     44        req.hdf['sitemap.url'] = c.path 
     45        req.hdf['sitemap.priorities'] = self.priorities 
     46        req.hdf['sitemap.frequencies'] = self.frequencies 
    3347        return 'sitemap_admin.cs', None 
    3448 
Note: See TracChangeset for help on using the changeset viewer.