I am just a beginner with CSS/HTML, and so maybe I have a misconceived idea of what CSS can/should do and the right way to use it.
Naively, I thought that I could use the #id=table-field entries in CSS to control placement/shape of the form elements, and not need to change much more in the controller or the view? It seems that if I have to use custom forms, then I might as well not even bother with using SQLFORM -- it's pretty much like building the form piece by piece in the view? thanks, Luis. On Fri, Jul 22, 2011 at 11:42 PM, Anthony <abasta...@gmail.com> wrote: > What's wrong with this method - > http://web2py.com/book/default/chapter/07#Custom-forms - you can put the > form widgets wherever you want? Or specifically, how would > "better/smarter/proper use of the #id table-field entries" help? What would > you like to see in the rendered form HTML that would enable you to do what > you want with just CSS? > > Anthony > > On Saturday, July 23, 2011 2:33:54 AM UTC-4, Luis Goncalves wrote: > >> Yes ... too many :( >> >> Here's a 'simple' one: >> >> The database table definition, which I use as a form for input: >> >> >> >> db.define_table('scorecard', >> Field('offense1', db.player, requires=IS_IN_DB( db, 'player.id', >> '%(name)s', zero=T('choose one')) ), >> Field('defense1', db.player, requires=IS_IN_DB( db, 'player.id', >> '%(name)s', zero=T('choose one')) ), >> >> >> >> Field('offense2', db.player, requires=IS_IN_DB( db, 'player.id', >> '%(name)s', zero=T('choose one')) ), >> Field('defense2', db.player, requires=IS_IN_DB( db, 'player.id', >> '%(name)s', zero=T('choose one')) ), >> >> >> >> Field('fifth', db.player, requires=IS_IN_DB( db, 'player.id', >> '%(name)s', zero=T('choose one')) ), >> >> >> >> Field('score1', 'integer', requires=IS_IN_SET([1, 2, 3, 4, >> 5],zero=None)), >> Field('score2', 'integer', requires=IS_IN_SET([1, 2, 3, 4, >> 5],zero=None)), >> >> >> >> Field('start', 'datetime', readable=False, writable=False), >> Field('finish', 'datetime', readable=False, writable=False), >> Field('single', 'boolean', readable=False, writable=False)) # single >> game during round-robin rotate play, or part of a game-set-match >> >> I would like this to display something like: >> >> >> >> <https://lh3.googleusercontent.com/-043w1FYNTj8/Tipod6h9_zI/AAAAAAAAHFk/0eX4V6S0Uf0/scorecard.png> >> >> The input is a scorecard for a game. Two teams with two players each, >> and a fifth person that will play the next game. >> >> The user defines who is playing the current game, and who is sitting >> out. When the game is over, they select the scores. >> >> On 'submit', the teams and scores are recorded, and the form is shown >> again, with a suggested line-up for the next game >> >> (but the user can alter the line-up if he wants). >> >> >> >> >> >> >> In the controller: >> >> >> def rotate_5_man(): >> >> >> form = SQLFORM( db.scorecard ) >> >> # retrieve previous player positions. >> >> # pre-fill form with some suggestions >> >> >> >> >> >> if form.accepts( .. ) >> >> >> # record score, >> >> # figure out how to rotate players for next game >> >> >> return dict(form=form) >> >> >> In the view, rotate_5_man.html : >> >> >> {{extend 'layout.html'}} >> >> {{=form}} >> >> >> >> So right now, the display of the form is quite rudimentary >> (each item gets shown in order, listed vertically). >> >> Is there a simple way to get the above layout instead? >> >> Preferably done with minimal additional python/web2py/html, >> but via CSS instead! >> >> >> >> Thanks!!! >> Luis. >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >>