source: gutenbach-web/root.py @ 4b9d354

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

Implement volume twiddling.

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
14
15volume_form = twf.TableForm('volume_form', action='volume', children=[
16    twf.TextField('volume', validator=twf.validators.Int(not_empty=True,min=1,max=31))
17])
18
19server = "zygorthian-space-raiders.mit.edu"
[973dd91]20
21class RootController(BaseController):
22    admin = Catwalk(model, DBSession)
23    error = ErrorController()
24
25    @expose('sipbmp3web.templates.index')
[4b9d354]26    def index(self, **kw):
[1998d46]27        out = dict(page="index")
[4b9d354]28        volume = int(remctl(server, command=["volume", "get"]).stdout.rstrip())
29        if not "volume" in kw: kw["volume"] = volume
30        return dict(
31                    page="index",
32                    volume=volume,
33                    volume_form=volume_form(kw),
34                )
35
36    @validate(form=volume_form, error_handler=index)
37    @expose()
38    def volume(self, **kw):
39        remctl(server, command=["volume", "set", kw["volume"]])
40        redirect('index')
[973dd91]41
42    @expose('sipbmp3web.templates.about')
43    def about(self):
[1998d46]44        return dict(page="about")
[973dd91]45
Note: See TracBrowser for help on using the repository browser.