source: gutenbach-web/root.py @ bed8e5d

debianmacno-cupsweb
Last change on this file since bed8e5d was 0b8c868, checked in by Edward Z. Yang <edwardzyang@…>, 16 years ago

Implement nice slider for volume.

Signed-off-by: Edward Z. Yang <edwardzyang@…>

  • Property mode set to 100644
File size: 1.5 KB
Line 
1"""Main Controller"""
2from sipbmp3web.lib.base import BaseController
3from tg import expose, flash, require, url, request, redirect, validate
4from pylons.i18n import ugettext as _
5#from tg import redirect, validate
6from sipbmp3web.model import DBSession, metadata
7from sipbmp3web.controllers.error import ErrorController
8from sipbmp3web import model
9from catwalk.tg2 import Catwalk
10from repoze.what import predicates
11from sipbmp3web.controllers.secure import SecureController
12from remctl import remctl
13import tw.forms as twf
14from sipbmp3web.widgets.slider import UISlider
15
16volume_form = twf.TableForm('volume_form', action='volume', children=[
17    UISlider('volume', min=1, max=31, validator=twf.validators.NotEmpty())
18])
19
20server = "zygorthian-space-raiders.mit.edu"
21
22class RootController(BaseController):
23    admin = Catwalk(model, DBSession)
24    error = ErrorController()
25
26    @expose('sipbmp3web.templates.index')
27    def index(self, **kw):
28        out = dict(page="index")
29        volume = int(remctl(server, command=["volume", "get"]).stdout.rstrip())
30        if not "volume" in kw: kw["volume"] = volume
31        return dict(
32                    page="index",
33                    volume=volume,
34                    volume_form=volume_form,
35                    volume_data=kw,
36                )
37
38    @validate(form=volume_form, error_handler=index)
39    @expose()
40    def volume(self, **kw):
41        remctl(server, command=["volume", "set", kw["volume"]])
42        redirect('index')
43
44    @expose('sipbmp3web.templates.about')
45    def about(self):
46        return dict(page="about")
47
Note: See TracBrowser for help on using the repository browser.