~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to ivle/webapp/base/xhtml.py

  • Committer: David Coles
  • Date: 2009-08-13 05:27:41 UTC
  • mto: (1294.2.124 ui-the-third)
  • mto: This revision was merged to the branch mainline in revision 1353.
  • Revision ID: coles.david@gmail.com-20090813052741-wq77fpjhjh2jgspd
Refactor root_to_helptree; it now gets generate_toc to build the root.

Show diffs side-by-side

added added

removed removed

Lines of Context:
40
40
 
41
41
    template = 'template.html'
42
42
    allow_overlays = True
43
 
    breadcrumb_text = None
44
43
 
45
44
    def __init__(self, *args, **kwargs):
46
45
        super(XHTMLView, self).__init__(*args, **kwargs)
106
105
        ctx['title_img'] = media_url(req, CorePlugin,
107
106
                                     "images/chrome/root-breadcrumb.png")
108
107
        try:
109
 
            ancestry = self.get_context_ancestry(req)
 
108
            ctx['ancestry'] = self.get_context_ancestry(req)
110
109
        except NoPath:
111
 
            ancestry = []
112
 
 
113
 
        crumber = Breadcrumber(req)
114
 
 
115
 
        ctx['breadcrumbs'] = []
116
 
        for ancestor in ancestry:
117
 
            crumb = crumber.crumb(ancestor)
118
 
            if crumb is None:
119
 
                continue
120
 
 
121
 
            if hasattr(crumb, 'extra_breadcrumbs_before'):
122
 
                ctx['breadcrumbs'].extend(crumb.extra_breadcrumbs_before)
123
 
            ctx['breadcrumbs'].append(crumb)
124
 
            if hasattr(crumb, 'extra_breadcrumbs_after'):
125
 
                ctx['breadcrumbs'].extend(crumb.extra_breadcrumbs_after)
126
 
 
127
 
        # If the view has specified text for a breadcrumb, add one.
128
 
        if self.breadcrumb_text:
129
 
            ctx['breadcrumbs'].append(ViewBreadcrumb(req, self))
 
110
            ctx['ancestry'] = []
130
111
 
131
112
        # Allow the view to add its own fake breadcrumbs.
132
 
        ctx['breadcrumbs'].extend(self.extra_breadcrumbs)
 
113
        ctx['extra_breadcrumbs'] = self.extra_breadcrumbs
133
114
 
 
115
        ctx['crumb'] = Breadcrumber(req).crumb
134
116
        self.populate_headings(req, ctx)
135
117
        tmpl = loader.load(os.path.join(os.path.dirname(__file__), 
136
118
                                                        'ivle-headings.html'))
162
144
                continue
163
145
 
164
146
            for tab in plugin.tabs:
165
 
                # tab is a tuple: name, title, desc, icon, path, weight, admin
166
 
                # (Admin is optional, defaults to false)
 
147
                # tab is a tuple: name, title, desc, icon, path
167
148
                new_app = {}
168
149
                new_app['this_app'] = hasattr(self, 'tab') \
169
150
                                      and tab[0] == self.tab
177
158
                        ctx['favicon'] = icon_url
178
159
                else:
179
160
                    new_app['has_icon'] = False
180
 
                # The following check is here, so it is AFTER setting the
181
 
                # icon, but BEFORE actually installing the tab in the menu
182
 
                if len(tab) > 6 and tab[6]:
183
 
                    # Admin-only tab
184
 
                    if not (req.user and req.user.admin):
185
 
                        break
186
161
                new_app['path'] = req.make_path(tab[4])
187
162
                new_app['desc'] = tab[2]
188
163
                new_app['name'] = tab[1]
251
226
    def __init__(self, req, exception, lastobj):
252
227
        super(XHTMLUnauthorizedView, self).__init__(req, exception, lastobj)
253
228
 
254
 
        if not req.publicmode and req.user is None:
 
229
        if req.user is None:
255
230
            # Not logged in. Redirect to login page.
256
231
            if req.uri == '/':
257
232
                query_string = ''
260
235
            req.throw_redirect('/+login' + query_string)
261
236
 
262
237
        req.status = 403
263
 
 
264
 
class ViewBreadcrumb(object):
265
 
    def __init__(self, req, context):
266
 
        self.req = req
267
 
        self.context = context
268
 
 
269
 
    @property
270
 
    def text(self):
271
 
        return self.context.breadcrumb_text