pvl/verkko/leases.py
author Tero Marttila <terom@paivola.fi>
Sat, 21 Dec 2013 22:57:44 +0200
changeset 329 b3778c190aa5
parent 186 0bfb34281141
permissions -rw-r--r--
version 0..0:

pvl.rrd: api.report()
pvl.wlan-syslog: track openwrt hostapd syslog wlan sta activity
pvl.verkko.wlan: basic Table view
pvl.dns-serial
pvl.dns-zone
pvl.dhcp.config: nested blocks
pvl.hosts-import: import hosts from dns/dhcp
pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235
pvl.hosts-dhcp: generate dhcp hosts conf
184
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     1
from pvl.verkko import web, db, table
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     2
from pvl.verkko.utils import parse_timedelta, format_timedelta
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     3
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     4
from pvl.web import html
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     5
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     6
import datetime
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     7
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     8
import logging; log = logging.getLogger('pvl.verkko.leases')
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     9
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    10
class DHCPLease (object) :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    11
    """
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    12
        A DHCP lease with ip/mac and starts/ends
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    13
    """
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    14
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    15
    DATE_FMT = '%Y%m%d %H:%M'
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    16
    TIME_FMT = '%H:%M:%S'
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    17
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    18
    @classmethod
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    19
    def format_datetime (cls, dt) :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    20
        if dt.date() == datetime.date.today() :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    21
            return dt.strftime(cls.TIME_FMT)
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    22
        else :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    23
            return dt.strftime(cls.DATE_FMT)
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    24
    
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    25
    def render_starts (self) :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    26
        return self.format_datetime(self.starts)
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    27
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    28
    def render_ends (self) :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    29
        if self.ends :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    30
            return self.format_datetime(self.ends)
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    31
        else :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    32
            return None
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    33
    
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    34
    def ends_class (self) :
186
0bfb34281141 pvl.verkko.hosts/leases: docfix
Tero Marttila <terom@paivola.fi>
parents: 184
diff changeset
    35
        if self.ends and self.ends > datetime.datetime.now() :
184
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    36
            return 'active'
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    37
        else :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    38
            return None
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    39
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    40
    @property
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    41
    def length (self) :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    42
        if self.ends :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    43
            return self.ends - self.starts
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    44
        else :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    45
            return datetime.datetime.now() - self.starts
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    46
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    47
    def render_length (self) :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    48
        return format_timedelta(self.length)
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    49
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    50
db.mapper(DHCPLease, db.dhcp_leases, properties=dict(
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    51
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    52
))
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    53
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    54
class LeasesTable (table.Table) :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    55
    """
186
0bfb34281141 pvl.verkko.hosts/leases: docfix
Tero Marttila <terom@paivola.fi>
parents: 184
diff changeset
    56
        <table> of leases.
184
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    57
    """
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    58
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    59
    ITEMS   = "Leases"
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    60
    COLUMNS = (
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    61
        table.Column('ip',          "IP",       DHCPLease.ip,        
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    62
            rowfilter   = True,
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    63
        ),
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    64
        table.Column('mac',         "MAC",      DHCPLease.mac,
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    65
            rowfilter   = True,
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    66
        ),
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    67
        table.Column('hostname',    "Hostname", DHCPLease.hostname),
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    68
        table.Column('starts',      "Starts",   DHCPLease.starts,       DHCPLease.render_starts),
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    69
        table.Column('ends',        "Ends",     DHCPLease.ends,         DHCPLease.render_ends,
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    70
            rowcss  = DHCPLease.ends_class
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    71
        ),
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    72
        table.Column('length',      "Lease",    DHCPLease.ends - DHCPLease.starts,  DHCPLease.render_length),
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    73
    )
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    74
    
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    75
    # XXX: have to set again
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    76
    ATTRS = dict((col.attr, col) for col in COLUMNS)
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    77
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    78
    # default
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    79
    SORT = DHCPLease.starts.desc()
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    80
    PAGE = 20
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    81
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    82
class LeasesHandler (table.TableHandler, web.DatabaseHandler) :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    83
    """
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    84
        Combined database + <table>
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    85
    """
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    86
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    87
    CSS = web.DatabaseHandler.CSS + table.TableHandler.CSS + (
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    88
        "/static/dhcp/hosts.css", 
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    89
    )
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    90
    
186
0bfb34281141 pvl.verkko.hosts/leases: docfix
Tero Marttila <terom@paivola.fi>
parents: 184
diff changeset
    91
    # view
184
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    92
    TABLE = LeasesTable
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    93
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    94
    def query (self) :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    95
        """
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    96
            Database SELECT query.
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    97
        """
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    98
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    99
        return self.db.query(DHCPLease)
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   100
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   101
    def filter_starts (self, value) :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   102
        return ((db.func.now() - DHCPLease.starts) < parse_timedelta(value))
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   103
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   104
    def filter_ends (self, value) :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   105
        return ((DHCPLease.ends - db.func.now()) > parse_timedelta(value))
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   106
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   107
    def filter_length (self, value) :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   108
        """
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   109
            Filter by leases valid on given date.
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   110
        """
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   111
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   112
        dt = datetime.datetime.strptime(value, DHCPLease.DATE_FMT)
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   113
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   114
        return db.between(dt, DHCPLease.starts, DHCPLease.ends)
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   115
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   116
    def filter_ip (self, value) :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   117
        # column is IPv4 string literal format...
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   118
        if '/' in value :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   119
            return (db.func.inet(DHCPLease.ip).op('<<')(db.func.cidr(value)))
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   120
        else :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   121
            return (db.func.inet(DHCPLease.ip) == db.func.inet(value))
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   122
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   123
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   124
class ListHandler (LeasesHandler) :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   125
    """
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   126
        List of DHCP leases, using table.TableHandler -> LeasesTable.
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   127
    """
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   128
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   129
    #TABLE_ITEM_URL = ItemHandler
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   130
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   131
    def process (self) :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   132
        # super
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   133
        table.TableHandler.process(self)
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   134
 
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   135
    def title (self) :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   136
        if self.filters :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   137
            return "DHCP Leases: {filters}".format(filters=self.filters_title())
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   138
        else :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   139
            return "DHCP Leases"
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   140
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   141
    def render (self) :
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   142
        return (
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   143
            self.render_table(self.query, filters=self.filters, sort=self.sorts, page=self.page),
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   144
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   145
            #html.a(href=self.url())(html('&laquo;'), 'Back') if self.filters else None,
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   146
        )
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   147
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   148
eef756d892e9 pvl.verkko.leases: implement ui for dhcp_leases table
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   149