Are you running 1.99.2 or trunk? They do not work the same.
On Nov 15, 6:39 am, Rahul <rahul.dhak...@gmail.com> wrote: > Hi All, > Thanks for your help and wonderful posts - I cleared the css > mess and I was able to see the SQLForm.grid properly. I tried working > with multiple and even updated plugin layouts but it does not display > the SQLForm.grid properly if I have a plugin_layouts thing. With > default scaffolding application, it works like a charm- Here are my > findings - Created a new application. > > Jim - If I use fields=fields , I get below traceback (Note > columns=fields works fine) - have a look at code listing below - > [Note: this is in index() function ] > > --- > query = ((db.projects_posts.post_visibility=="Classified")) > fields = ('projects_posts.title', > 'projects_posts.project_details', > 'projects_posts.estimated_worth' > ) > headers ={'projects_posts.title': 'Title', > 'projects_posts.project_details': 'Details', > 'projects_posts.estimated_worth': 'Worth'} > > ##columns=fields works, but fields=fields throws a ticket ..see > below > form = SQLFORM.grid( query=query, columns=fields, headers=headers, > deletable=False, editable=False, csv=False, > maxtextlength=64, paginate=10 ) > > return dict(form=form) > ------------------------------------- > TRACEBACK > ------------------------------------- > > Traceback (most recent call last): > File "D:\WEB2PY\web2py\gluon\restricted.py", line 194, in restricted > exec ccode in environment > File "D:/WEB2PY/web2py/applications/Link_IT/controllers/default.py", > line 162, in <module> > File "D:\WEB2PY\web2py\gluon\globals.py", line 149, in <lambda> > self._caller = lambda f: f() > File "D:/WEB2PY/web2py/applications/Link_IT/controllers/default.py", > line 40, in index > deletable=False, editable=False, csv=False, maxtextlength=64, > paginate=10 ) > File "D:\WEB2PY\web2py\gluon\sqlhtml.py", line 1588, in grid > if not field.readable: continue > AttributeError: 'str' object has no attribute 'readable' > > Now some questions - > Q1 - By links above, I meant - the add, delete, edit and view buttons > that are on the SQLForm.grid - Is there a way to add custom code for > it? With my new application, it works out of the box though and it > requires me to login. > Q2 - Can I use those button functions without authorization? > Q3 - Is there a way to format the View rendered by the grid? Since the > "text" datatype field of Database containing huge text goes out of the > layout. It expands it horizontally. > Q4 - How can I hide ID field from showing up while viewing or > modifying data ? > > Please excuse me for asking so many questions but this is the best > place to get the answers. Please let me know on above questions. I > also intend to put up a web2pyslice for SQLForm.grid once I am done > with it completely. Thanks > > More questions to follow... > > Thanks and Sincerely, Rahul > (www.flockbird.com- web2py powered) > > --------------------------------------------------------------------------- > --------- > On Nov 15, 5:28 am, Massimo Di Pierro <massimo.dipie...@gmail.com> > wrote: > > > > > > > > > true. fields should also work with expressions > > db.table.field1*db.table.field2+1 although I did not try. > > > On Nov 14, 3:36 pm, JaapP <j...@tetra.nl> wrote: > > > > One more reason to stick to using fields could be that with fields you > > > can specify the order in which the columns are shown, this didn't work > > > for 'columns' > > > > On 14 nov, 18:13, Jim Steil <j...@qlf.com> wrote: > > > > > Ok, columns are gone again... > > > > > Might just be best to stick with using fields. > > > > > -Jim > > > > > On 11/14/2011 8:47 AM, Jim Steil wrote: > > > > > > I stand corrected on the 'columns' comment. Massimo added it back in > > > > > this morning. > > > > > > -Jim > > > > > > On 11/14/2011 8:45 AM, Jim Steil wrote: > > > > >> here are a few thoughts... > > > > > >> 1. Make sure you create this test in a new app. If you're updating > > > > >> or adding functionality to an already existing app, then your layout > > > > >> and base.css need to be updated. > > > > >> 2. If using jquery-ui, then you need to download jquery-ui and > > > > >> include it in your layout.html with a line like this: > > > > > >> {{response.files.append(URL('static','jquery-ui/js/jquery-ui-1.8.16.custom. > > > > >> min.js'))}} > > > > > >> {{response.files.append(URL('static','jquery-ui/css/sunny/jquery-ui-1.8.16. > > > > >> custom.css'))}} > > > > > >> 3. Don't use the 'columns' argument. It is going away in the next > > > > >> release. Instead, use 'fields'. In your case, use the following: > > > > > >> fields = [db.projects_posts.title, db.projects_posts.project_details, > > > > >> db.projects_posts.estimated_worth] > > > > > >> 4. I typically do not specify the 'headers' arg. Instead, set the > > > > >> 'label' on your table definition. That way you only have to do it > > > > >> once and can use it all over. If you need to override it for a > > > > >> particular function, then just set the 'label' attribute in that > > > > >> function. > > > > > >> 5. At this time there is no documentation available for SQLFORM.grid > > > > >> or SQLFORM.smartgrid. The best thing to do would be to look through > > > > >> this group for all the posts. Massimo is working on an updated > > > > >> version of that manual that he is hoping to have complete by the end > > > > >> of this month. That should contain information on .grid and > > > > >> .smartgrid. > > > > > >> 6. If you are going to be playing around with this I would recommend > > > > >> that you work with the code in trunk. I don't recall what state the > > > > >> .grid was in when 1.99.2 was released. > > > > > >> As for answers for your specific questions: > > > > > >> Q: What is the exact proper method to use SQLForm.grid - > > > > >> I think your on the right track. Just need to clean up your css and > > > > >> layout.html files to get the proper formatting. > > > > > >> Q: What all libraries do I need to include? where? > > > > >> If you want to use jquery-ui then you need to download it and > > > > >> reference it in your layout.html. > > > > > >> Q: How to make links work the way they should ? > > > > >> I'd like some more information on what is going on here before giving > > > > >> an answer. > > > > > >> Q: Can search be customized? How? > > > > >> I don't remember if the search_form is implemented in 1.99.2, but > > > > >> there is a search facility built in that allows the users to create a > > > > >> custom search. I am not a fan of it and have some other ideas how > > > > >> developers could be allowed to create custom search forms, but I > > > > >> haven't opened a ticket on it yet. > > > > > >> Q: Is this documented in online book? - did not find much about it > > > > >> in > > > > >> version 3.2 though. > > > > > >> Documentation will be coming with the next version of the book > > > > >> targeted for the end of the month. > > > > > >> Hope this helps. > > > > > >> -Jim > > > > > >> On 11/14/2011 6:54 AM, Rahul wrote: > > > > >>> Hi All, > > > > >>> Can anyone let me know how to use SQLForm.grid properly or > > > > >>> tell > > > > >>> me what I am missing. I have not installed any jquery plugin for the > > > > >>> same (assuming that it is part of 1.99.2 by default). I cannot see > > > > >>> the > > > > >>> complete grid, just some buttons and data as per my query below. > > > > >>> Also > > > > >>> the links do not function when clicked. The table does not show any > > > > >>> backgroud color or anything. Simply it doesnt look like a jquery > > > > >>> grid. My code is as below - > > > > > >>> My machine - Windows7 , IE9 and Firefox 7.0, Chrome. > > > > >>> Web2py- Latest stable (1.99.1) > > > > > >>> #---------Controller- (default.py)--- > > > > >>> def index(): > > > > >>> """ > > > > >>> example action using the internationalization operator T and > > > > >>> flash > > > > >>> rendered by views/default/index.html or views/generic.html > > > > >>> """ > > > > >>> #Posts grid - SQLForm.grid > > > > >>> #grid = SQLFORM.grid(db.projects_posts) > > > > >>> query = ((db.projects_posts.post_visibility=="Classified")) > > > > >>> columns = ('projects_posts.title', > > > > >>> 'projects_posts.project_details', > > > > >>> 'projects_posts.estimated_worth' > > > > >>> ) > > > > >>> headers ={'projects_posts.title': 'Title', > > > > >>> 'projects_posts.project_details': 'Details', > > > > >>> 'projects_posts.estimated_worth': 'Worth'} > > > > > >>> form = SQLFORM.grid( query=query, columns=columns, > > > > >>> headers=headers, > > > > >>> deletable=False, editable=False, > > > > >>> csv=False, > > > > >>> maxtextlength=64 ) > > > > > >>> return dict(form=form) > > > > > >>> #--------- View --- (index.html) > > > > >>> {{extend 'layout.html'}} > > > > >>> {{=form}} > > > > > >>> Also, if possible please refer me to the proper documentation for > > > > >>> SQLForm.grid. Again, if I include the parameter form = > > > > >>> SQLForm.grid(....., ui="jquery-ui") in above code, the buttons > > > > >>> disappear and it only shows me links for 'view' etc. > > > > > >>> Q: What is the exact proper method to use SQLForm.grid - > > > > >>> Q: What all libraries do I need to include? where? > > > > >>> Q: How to make links work the way they should ? > > > > >>> Q: Can search be customized? How? > > > > >>> Q: Is this documented in online book? - did not find much about it > > > > >>> in > > > > >>> version 3.2 though. > > > > > >>> Please advice or refer me to the proper thread(though I checked > > > > >>> several to find solutions). > > > > > >>> Regards, Rahul (www.flockbird.com- web2py powered)