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

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

Implement volume twiddling.

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
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"
20
21class RootController(BaseController):
22    admin = Catwalk(model, DBSession)
23    error = ErrorController()
24
25    @expose('sipbmp3web.templates.index')
26    def index(self, **kw):
27        out = dict(page="index")
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')
41
42    @expose('sipbmp3web.templates.about')
43    def about(self):
44        return dict(page="about")
45
Note: See TracBrowser for help on using the repository browser.