Some code:

****
view
****

{{extend 'layout.html'}}
{{=servers}}
{{=server_capabilities}}

**********
controller
**********

def index():
links = [lambda row: A('Check status',_href=URL(c='administration', f='check_server_status/%s' % row.id))]

  servers = SQLFORM.grid(
                db.servers,
                formname="srvrs",
                links = links,
                deletable=True,
                editable=True,
                create=True
                )

  server_capabilities = SQLFORM.grid(
                db.server_capabilities,
                formname="capabilities",
                deletable=True,
                editable=True,
                create=True
  )
  return dict(servers=servers, server_capabilities=server_capabilities)


*****
model
*****

db.define_table('servers',
Field('name', 'string', length=63, default='testserver', required=True, notnull=True, unique=True, label="Server name"), Field('ip', 'string', requires=IS_IPV4(), required=True, notnull=True, unique=True, label="Server ip address"), Field('testimon_folder', 'string', length=256, default='/home/user', required=True, notnull=True, label='TestiMon installation folder'),
    format="%(name)s"
)

db.define_table('server_capabilities',
Field('server_id', db.servers, requires=IS_IN_DB(db, 'servers.id', 'servers.name')), Field('provides', 'string', length=63, required=True, notnull=True, label='Provides'),
    format="%(provides)s"
)
db.server_capabilities.server_id.represent = lambda id, row: db(db.servers.id==id).select().first().name

Reply via email to