author | Tero Marttila <terom@paivola.fi> |
Sun, 22 Dec 2013 19:03:57 +0200 | |
changeset 336 | edaa5d0aa57d |
parent 207 | c985d2c788ea |
permissions | -rw-r--r-- |
178
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
1 |
# encoding: utf-8 |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
2 |
import pvl.web |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
3 |
import pvl.verkko.web |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
4 |
|
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
5 |
from pvl.web import html, urls |
184
eef756d892e9
pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
178
diff
changeset
|
6 |
from pvl.verkko import hosts, leases |
178
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
7 |
|
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
8 |
import logging; log = logging.getLogger('pvl.verkko.dhcp') |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
9 |
|
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
10 |
class Index (pvl.verkko.web.DatabaseHandler) : |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
11 |
TITLE = u"Päivölä Verkko" |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
12 |
|
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
13 |
CSS = pvl.verkko.web.DatabaseHandler.CSS + ( |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
14 |
'/static/dhcp/forms.css', |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
15 |
) |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
16 |
|
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
17 |
def render_link (self, title, **opts) : |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
18 |
return html.a(href=self.url(hosts.ListHandler, **opts))(title) |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
19 |
|
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
20 |
def render_links (self, attr, titlevalues) : |
207
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
21 |
for title, value in titlevalues : |
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
22 |
yield html.li( |
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
23 |
self.render_link(title, **{attr: value}) |
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
24 |
) |
178
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
25 |
|
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
26 |
def render (self) : |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
27 |
return ( |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
28 |
html.h2("Interval"), |
207
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
29 |
html.ul( |
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
30 |
self.render_links('seen', ( |
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
31 |
("Hour", '1h'), |
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
32 |
("Day", '1d'), |
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
33 |
#("Month", '30d'), |
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
34 |
#("Year", '365d'), |
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
35 |
)), |
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
36 |
html.li( |
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
37 |
html.a(href=self.url(hosts.RealtimeHandler))("Realtime"), |
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
38 |
), |
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
39 |
), |
178
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
40 |
html.h2("State"), |
207
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
41 |
html.ul( |
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
42 |
self.render_links('state', ( |
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
43 |
("Valid", ('DHCPACK', 'DHCPRELEASE')), |
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
44 |
("Incomplete", ('DHCPDISCOVER', 'DHCPOFFER', 'DHCPREQUEST')), |
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
45 |
("Invalid", ('DHCPNAK', )), |
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
46 |
)), |
c985d2c788ea
pvl.verkko.dhcp: add realtime link to index page
Tero Marttila <terom@paivola.fi>
parents:
184
diff
changeset
|
47 |
), |
178
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
48 |
|
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
49 |
html.h2("IP/MAC"), |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
50 |
html.form(action=self.url(hosts.ListHandler), method='get')( |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
51 |
html.fieldset( |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
52 |
html.ul( |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
53 |
html.li( |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
54 |
html.label(for_='ip')("IP"), |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
55 |
html.input(type='text', name='ip'), |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
56 |
), |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
57 |
|
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
58 |
html.li( |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
59 |
html.label(for_='mac')("MAC"), |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
60 |
html.input(type='text', name='mac'), |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
61 |
), |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
62 |
|
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
63 |
html.li( |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
64 |
html.input(type='submit', value="Search"), |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
65 |
), |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
66 |
) |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
67 |
) |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
68 |
), |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
69 |
) |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
70 |
|
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
71 |
class Application (pvl.verkko.web.Application) : |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
72 |
URLS = urls.Map(( |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
73 |
urls.rule('/', Index), |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
74 |
urls.rule('/hosts/', hosts.ListHandler), |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
75 |
urls.rule('/hosts/<int:id>', hosts.ItemHandler), |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
76 |
urls.rule('/hosts/realtime', hosts.RealtimeHandler), |
184
eef756d892e9
pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
178
diff
changeset
|
77 |
urls.rule('/leases/', leases.ListHandler), |
178
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
78 |
)) |
f9f5e669bace
pvl.verkko: refactor into dhcp -> hosts -> web+db modules, reworking index page
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
79 |