annotate examples/trac/trac/Settings.py @ 39:93b4dcbafd7b trunk

Copy Trac to main branch.
author cmlenz
date Mon, 03 Jul 2006 18:53:27 +0000
parents
children f8a5a6ee2097
rev   line source
39
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
1 # -*- coding: utf-8 -*-
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
2 #
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
3 # Copyright (C) 2004-2005 Edgewall Software
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
4 # Copyright (C) 2004-2005 Daniel Lundin <daniel@edgewall.com>
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
5 # All rights reserved.
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
6 #
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
7 # This software is licensed as described in the file COPYING, which
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
8 # you should have received as part of this distribution. The terms
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
9 # are also available at http://trac.edgewall.com/license.html.
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
10 #
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
11 # This software consists of voluntary contributions made by many
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
12 # individuals. For exact contribution history, see the revision
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
13 # history and logs, available at http://projects.edgewall.com/trac/.
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
14 #
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
15 # Author: Daniel Lundin <daniel@edgewall.com>
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
16
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
17 from trac.core import *
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
18 from trac.util.markup import html
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
19 from trac.web import IRequestHandler
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
20 from trac.web.chrome import INavigationContributor
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
21
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
22
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
23 class SettingsModule(Component):
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
24
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
25 implements(INavigationContributor, IRequestHandler)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
26
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
27 _form_fields = ['newsid','name', 'email']
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
28
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
29 # INavigationContributor methods
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
30
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
31 def get_active_navigation_item(self, req):
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
32 return 'settings'
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
33
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
34 def get_navigation_items(self, req):
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
35 yield ('metanav', 'settings',
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
36 html.A('Settings', href=req.href.settings()))
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
37
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
38 # IRequestHandler methods
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
39
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
40 def match_request(self, req):
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
41 return req.path_info == '/settings'
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
42
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
43 def process_request(self, req):
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
44 action = req.args.get('action')
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
45
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
46 if req.method == 'POST':
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
47 if action == 'save':
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
48 self._do_save(req)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
49 elif action == 'load':
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
50 self._do_load(req)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
51
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
52 req.hdf['title'] = 'Settings'
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
53 req.hdf['settings'] = req.session
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
54 if req.authname == 'anonymous':
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
55 req.hdf['settings.session_id'] = req.session.sid
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
56
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
57 return 'settings.cs', None
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
58
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
59 # Internal methods
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
60
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
61 def _do_save(self, req):
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
62 for field in self._form_fields:
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
63 val = req.args.get(field)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
64 if val:
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
65 if field == 'newsid' and val:
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
66 req.session.change_sid(val)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
67 else:
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
68 req.session[field] = val
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
69 req.redirect(req.href.settings())
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
70
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
71 def _do_load(self, req):
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
72 if req.authname == 'anonymous':
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
73 oldsid = req.args.get('loadsid')
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
74 req.session.get_session(oldsid)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
75 req.redirect(req.href.settings())
Copyright (C) 2012-2017 Edgewall Software