source: gutenbach-web/root.py @ 0b8c868

debianmacno-cupsweb
Last change on this file since 0b8c868 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
RevLine 
[973dd91]1"""Main Controller"""
2from sipbmp3web.lib.base import BaseController
[4b9d354]3from tg import expose, flash, require, url, request, redirect, validate
[973dd91]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
[84ed773]12from remctl import remctl
[4b9d354]13import tw.forms as twf
[0b8c868]14from sipbmp3web.widgets.slider import UISlider
[4b9d354]15
16volume_form = twf.TableForm('volume_form', action='volume', children=[
[0b8c868]17    UISlider('volume', min=1, max=31, validator=twf.validators.NotEmpty())
[4b9d354]18])
19
20server = "zygorthian-space-raiders.mit.edu"
[973dd91]21
22class RootController(BaseController):
23    admin = Catwalk(model, DBSession)
24    error = ErrorController()
25
26    @expose('sipbmp3web.templates.index')
[4b9d354]27    def index(self, **kw):
[1998d46]28        out = dict(page="index")
[4b9d354]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,
[0b8c868]34                    volume_form=volume_form,
35                    volume_data=kw,
[4b9d354]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')
[973dd91]43
44    @expose('sipbmp3web.templates.about')
45    def about(self):
[1998d46]46        return dict(page="about")
[973dd91]47
Note: See TracBrowser for help on using the repository browser.