Mercurial > hg > bitsyblog
diff bitsyblog/bitsyblog.py @ 26:e37d117a9deb
preferences form now works
author | k0s <k0scist@gmail.com> |
---|---|
date | Sat, 31 Oct 2009 01:15:26 -0400 |
parents | 62c961bb91e6 |
children | 4101fdb16ab2 |
line wrap: on
line diff
--- a/bitsyblog/bitsyblog.py Sat Oct 31 00:30:47 2009 -0400 +++ b/bitsyblog/bitsyblog.py Sat Oct 31 01:15:26 2009 -0400 @@ -255,6 +255,12 @@ """ write a blog entry and other POST requests """ + + # GENSHI: data dictionary + request.environ['data'] = { 'site_name': self.site_name, + 'request': request, + 'link': self.link, + 'logo': self.logo(request) } # find user + path user, path = self.userpath(request) @@ -797,56 +803,31 @@ template = self.loader.load('post.html') return template.generate(**data).render() - def preferences_form(self, request, user): - prefs = request.user.settings - form = Form() - - # date format - format = prefs.get('Date format', self.date_format) - value = datetime.datetime.now().strftime(format) - form.add_element('textfield', 'Date format', value=value, - help='how to display dates in your blog post subject') - - # subject - subject = prefs.get('Subject', self.subject) - subject = subject.split('%(date)s', 1) - func = lambda name: value - form.add_elements('Subject', - ['textfield', func, 'textfield' ], - [ (), (), ()], # this is horrible! - [ dict(value=subject[0]), - {}, - dict(value=subject[1]) ], - help='how to display the subject line of your blog post' - ) - - # CSS files - css_files = [ i['name'] for i in prefs['CSS'] ] - form.add_element('menu', 'Stylesheet', css_files, - help='which CSS file should be the default') - - # or upload a CSS file - form.add_element('file_upload', 'CSS file', - help='upload a CSS file to theme your webpage') - - # Friends -- can see secret posts - users = [ i for i in list(self.users.users()) - if i != user ] - if users: - users.sort(key=str.lower) - form.add_element('checkboxes', 'Friends', - users, prefs.get('Friends', set()), - help='friends can see your secret posts') - - return form def preferences(self, request, user, errors=None, message=None): """user preferences form""" - body = self.preferences_form(request, user)(errors) - if message: - body = '%s\n%s' % ( markup.p(markup.strong(message)), body ) - return self.render(request, body, title='preferences') - + + # genshi data + self.site_nav(request) + data = request.environ['data'] + data['user'] = user + data['stylesheets'] = self.stylesheets(request) + + # form data + prefs = request.user.settings + data['date_format'] = prefs.get('Date format', self.date_format) + data['now'] = datetime.datetime.now().strftime(data['date_format']) + subject = prefs.get('Subject', self.subject) + data['subject'] = subject.split('%(date)s', 1) + data['css_files'] = [ i['name'] for i in prefs['CSS' ] ] + data['users'] = [ i for i in list(self.users.users()) + if i != user ] + data['message'] = message + + # render the template + template = self.loader.load('preferences.html') + return template.generate(**data).render() + class BitsierBlog(BitsyBlog): """single user version of bitsyblog"""