Oh, How that happernd.
I'm using new groups. It have advanced edit field. Hides links.
For me it doesn't show links
anyways, code without links follows.
(*But, I'll be more than happy, if I can go with a custom form.*
**
*Only thing that I don't know in that case, is how to deal with upload field
and make it into db.)*
db.define_table('languages',
Field('full', 'string', length=30, notnull=True,
required=True),
Field('short', 'string', length=10 , notnull=True,
required=True),
Field('natural', 'string', length=30),
format='%(full)s - %(short)s')
db.define_table('words',
Field('word', 'string', notnull=True, required=True),
Field('lang', db.languages, notnull=True, writable=False),
Field('entry_by', db.auth_user, notnull=True,
readable=False, writable=False))
db.define_table('pictures',
Field('image', 'upload', notnull=True, required=True,
label='Visual Lingua'),
Field('word', 'list:reference words', readable=False,
writable=False, required=True),
Field('total', 'integer', readable=False, writable=False,
default=2),
Field('clicks', 'integer', readable=False, writable=False,
default=1),
Field('rating', 'double', readable=False, writable=False,
compute=lambda row: row['total']/row['clicks']),
Field('entry_by', db.auth_user, notnull=True,
readable=False, writable=False))
db.languages.full.requires = [IS_NOT_EMPTY(),
IS_NOT_IN_DB(db, 'languages.full')]
db.languages.short.requires = [IS_NOT_EMPTY(), IS_NOT_IN_DB(db,
'languages.short')]
db.languages.natural.requires = [IS_NOT_IN_DB(db, 'languages.natural')]
db.words.word.requires = IS_NOT_EMPTY()
db.words.lang.requires = IS_IN_DB(db, 'languages.id')
db.words.entry_by.requires = [IS_IN_DB(db, 'auth_user.id')]
db.pictures.image.requires = [IS_NOT_EMPTY(), IS_LENGTH(262144, 4096),
IS_IMAGE(minsize=(60, 60))] #min_size 4kb,
max_size 256kb; min_width 60px min_height 60px
db.pictures.entry_by.requires = [IS_IN_DB(db, 'auth_user.id')]