[web2py] how to set js variable from session variable?
I imagine someone has asked this but couldn't find it from my searches. Anyway, I want to set a javascript variable to the current session variable at time of execution of the javascript, not at time when it's loaded. So I can't just do: script ... blah ... function() { if ( certain_condition = True ) { var myjsvar={{=session.myvar}}; alert(myjsvar); } } ... blah ... /script because that will not be correct when the function executes. I tried an ajax call to a controller callback, that in turn returns $('#myjsvar').val('%d'); % session.myvar, based loosely on a thread I read here, but that didn't come close to working, either. --
[web2py] Re: Code editor on the administrative interface
wow! a few hours after my e-mail, the isue is already fixed I'm new on Web2py and on this group but I'm really impressed by the reactivity. Thank you very much Massimo Le mardi 4 septembre 2012 22:53:07 UTC+2, Massimo Di Pierro a écrit : This is now fixed in trunk and I will post 2.0.7 later today. This was a symptom of a more serious behavior as some features of components are broken in 2.0.6 because of a typo. Now fixed. On Tuesday, 4 September 2012 12:06:02 UTC-5, caps.i.sin wrote: Dear all, I have a question about the code editor on the administrative interface : When I edit a code (for example a controller) I save it with [Ctrl + S]. If there are any errors on my python code, the field Last saved on has a yellow background. On my previous web2py version, when I had an error, a popup was displayed with the description of the python error. So currently if I make a mistake, I know there is an error (yellow background) but I have no more information about the problem. Is it a normal behaviour? or did I miss something? Thank you, and sorry for my bad english My configuration : Web2py 2.03 binaries on Windows 7 pro x64 and Mozilla Firefox 14.0.1 --
[web2py] Re: web2py login and register forms as part of main page
Thank you for your fast reply With main page function you mean I include them in my mainpage.py contorler? OR do I just do a check if user is logged in and show the proper one if he is? thanx again On Tuesday, September 4, 2012 4:30:48 PM UTC+2, Anthony wrote: auth.login() and auth.register() generate and process the login and register forms, respectively. You main page function could return those forms and include them in the view. Anthony On Tuesday, September 4, 2012 9:56:36 AM UTC-4, Yebach wrote: Hello I would like to create a login/register forms as part of a current page not to be redirected to a new page where you login or register and then be redirected back to the main page. Now I have auth.navbar() but that one takes you to a new page any suggestion?? Thank you --
[web2py] Re: Current status of adapting OrientDB for web2py
I am curious if anyone has made any advancements with OrientDB. I only recently found out about it and Neo4j. I had been planning on using mongo/couch for my db backend, but based on the way the graph databases are made, it could be of great use. @TheSweetlink iv'e also noticed that your pasted example is no longer there, since it seems that paste service no longer exists. gist.github.com perhaps? Thanks. On Monday, February 13, 2012 9:54:05 AM UTC-8, Nolan Nichols wrote: I'm researching the nosql and graph database landscape for a web2py application that will require the schema to evolve over time and provide network/graph analysis metrics. I started by looking at the Tinkerpop (http://tinkerpop.com/) stack and the Bulbflow (http://bulbflow.com/) python library for interacting with Tinkerpop graph databases like Neo4j and OrientDB. It looks like there was interest a few months back in adapting OrientDB's sql interface for web2py, and there is an open issue: - http://code.google.com/p/web2py/issues/detail?id=407 A few questions: What is the current status of an OrientDB/web2py adapter? Is anyone currently using a graph database with web2py? Any suggestions for using web2py DAI/templates with non-rdbms sources? Cheers, Nolan --
Re: [web2py] XML Webservice
Dear Derek , What should i do then ?? Best Regards, On Wed, Sep 5, 2012 at 2:01 AM, Derek sp1d...@gmail.com wrote: It is XML, but it doesn't have a doctype. So, when it gets to this character: *’* it fails to validate against UTF-8. It should probably be this: charset=ISO-8859-1 On Tuesday, September 4, 2012 2:15:11 AM UTC-7, Hassan Alnatour wrote: Dear ALec , when i go to the link i gave you before , i can see some XML data but i dont understand what is the viewing problem you are talking about ? and why wold a table filed interrupter Viewing as XML as long as i am returning an object that has all the date ? Best Regards, On Sun, Sep 2, 2012 at 12:47 PM, hasan alnator haln...@gardeniatelco.com wrote: Dear ALec , when i go to the link i gave you before , i can see some XML data but i dont understand what is the viewing problem you are talking about ? and why wold a table filed interrupter Viewing as XML as long as i am returning an object that has all the date ? Best Regards, On Sun, Sep 2, 2012 at 12:42 PM, Alec Taylor alec.t...@gmail.comwrote: Hmm, try lower-case 'description'. Otherwise not sure what's causing the XML viewer problem. Also nowadays JSON is prefered over XML, as it's much less verbose; thus has a much lower overhead On Sun, Sep 2, 2012 at 7:39 PM, hasan alnator haln...@gardeniatelco.com wrote: Dear Alec , What Do you mean with preprocessing ? this is my db.py : # -*- coding: utf-8 -*- ##**##** # ## This scaffolding model makes your app work on Google App Engine too ## File is released under public domain and you can use without limitations ##**##** # ## if SSL/HTTPS is properly configured and you want all HTTP requests to ## be redirected to HTTPS, uncomment the line below: # request.requires_https() if not request.env.web2py_runtime_**gae: ## if NOT running on Google App Engine use SQLite or other DB db = DAL('sqlite://storage.sqlite') else: ## connect to Google BigTable (optional 'google:datastore://namespace'**) db = DAL('google:datastore') ## store sessions and tickets there session.connect(request, response, db = db) ## or store session in Memcache, Redis, etc. ## from gluon.contrib.memdb import MEMDB ## from google.appengine.api.memcache import Client ## session.connect(request, response, db = MEMDB(Client())) ## by default give a view/generic.extension to all actions from localhost ## none otherwise. a pattern can be 'controller/function.**extension' response.generic_patterns = ['*'] if request.is_local else [] ## (optional) optimize handling of static files # response.optimize_css = 'concat,minify,inline' # response.optimize_js = 'concat,minify,inline' ##**##** # ## Here is sample code if you need for ## - email capabilities ## - authentication (registration, login, logout, ... ) ## - authorization (role based authorization) ## - services (xml, csv, json, xmlrpc, jsonrpc, amf, rss) ## - old style crud actions ## (more options discussed in gluon/tools.py) ##**##** # from gluon.tools import Auth, Crud, Service, PluginManager, prettydate auth = Auth(db, hmac_key=Auth.get_or_create_**key()) crud, service, plugins = Crud(db), Service(), PluginManager() ## create all tables needed by auth if not custom tables auth.define_tables() ## configure email mail=auth.settings.mailer mail.settings.server = 'logging' or 'smtp.gmail.com:587' mail.settings.sender = 'y...@gmail.com' mail.settings.login = 'username:password' ## configure auth policy auth.settings.registration_**requires_verification = False auth.settings.registration_**requires_approval = False auth.settings.reset_password_**requires_verification = True ## if you need to use OpenID, Facebook, MySpace, Twitter, Linkedin, etc. ## register with janrain.com, write your domain:api_key in private/janrain.key from gluon.contrib.login_methods.**rpx_account import use_janrain use_janrain(auth,filename='**private/janrain.key') ##**##** # ## Define your tables below (or better in another model file) for example ## ## db.define_table('mytable',**Field('myfield','string')) ## ## Fields can be 'string','text','password','** integer','double','boolean' ## 'date','time','datetime','**blob','upload', 'reference TABLENAME' ## There is an implicit 'id integer autoincrement' field ## Consult manual for more options, validators, etc. ## ## More API examples for controllers: ## ## db.mytable.insert(myfield='**value') ##
Re: [web2py] Re: Bootstrap and custom forms and widgets
Thanks, set it to this and it's now working: .form-actions { background-color: #d9edf7; border-top: 0; padding: 0; } On Wed, Sep 5, 2012 at 3:58 AM, Anthony abasta...@gmail.com wrote: I don't think it's a bug. The submit button is in a div with class form-actions, and bootstrap.css defines the background color of that class as whiteSmoke. You can override that with your own CSS rule for the form-actions class. Anthony On Tuesday, September 4, 2012 1:18:13 PM UTC-4, Alec Taylor wrote: Thanks, in that case I think I've found a bug in that formstyle setting. Around my submit button it has drawn a white rectangle; I've been able to extract it into a test-case: http://jsfiddle.net/**AlecTaylor/7whPt/http://jsfiddle.net/AlecTaylor/7whPt/ On Tue, Sep 4, 2012 at 11:09 PM, Anthony abas...@gmail.com wrote: Also, you can now create your own formstyle function, which should take the form object and a list of field tuples (each field tuple includes the id, label, controls, and comment for the field) and return the DOM you want displayed in the form (i.e., the part that goes inside form/form). Internally, this is how all the formstyles now work (each has its own function). To see how they work, check out the code: http://code.google.com/**p/web2py/source/browse/gluon/**sqlhtml.py#651http://code.google.com/p/web2py/source/browse/gluon/sqlhtml.py#651 . Anthony On Tuesday, September 4, 2012 7:49:45 AM UTC-4, Anthony wrote: For Crud, it's a setting: crud.settings.formstyle = 'bootstrap' Anthony On Tuesday, September 4, 2012 5:36:55 AM UTC-4, Alec Taylor wrote: Unfortunately that didn't work: type 'exceptions.TypeError' create() got an unexpected keyword argument 'formstyle' type 'exceptions.TypeError' update() got an unexpected keyword argument 'formstyle' On Tue, Sep 4, 2012 at 7:31 PM, Niphlod nip...@gmail.com wrote: should be formstyle='bootstrap', the same way you use formstyle=divs , ul, etc Il giorno martedì 4 settembre 2012 10:34:07 UTC+2, Alec Taylor ha scritto: Thanks, but I can't seem to find anything in the release about how to use bootstrap with forms: https://groups.google.com/**foru m/#!topic/web2py/**0Uk5b34LUschttps://groups.google.com/forum/#!topic/web2py/0Uk5b34LUsc (Note that I'm using crud.create and crud.update) On Tue, Sep 4, 2012 at 5:45 PM, Niphlod nip...@gmail.com wrote: the code is out there on github.com/niphlod/w2p_**tvserieshttp://github.com/niphlod/w2p_tvseries, but included in web2py 2.0.6 there is other code for bootstrap-compatible forms Il giorno martedì 4 settembre 2012 05:03:59 UTC+2, Alec Taylor ha scritto: Hi Niphlod, Now that web2py 2 has been released, could you release the code for your form manipulation? Thanks a heap, Alec taylor On Sunday, May 20, 2012 2:48:57 AM UTC+10, Niphlod wrote: me too, but in a different way. I'm working on an app and waiting for web2py 2.0 to release it to the public. It contains a function able to serialize form in bootstrap styles (i.e. form-horizontal, form-vertical, form-inline) With some additional work maybe that could be included to provide more than the current 'table3cols', 'table2cols', 'divs', 'ul' styles of the forms. Right now it's called into the view, i.e.: {{=twitter_form(form, 'form-vertical')}} Il giorno sabato 19 maggio 2012 11:10:30 UTC+2, Pystar ha scritto: Hi matt, I have been working extensively with bootstrap with web2py and I can say the approach you are taking is the best way. This is my solution #controller####3 form = SQLFORM(db.blahblah) if form.accepts(request, session, hideerrror=True): blahblah the hideerror=True is what does the magic. It prevents your forms from displaying the error messages in the default position which is below the form field. In your views, you can now display your error messages by doing span class=help-inline{{=form.**er** rors[post]}}/span make sure you put the above in a conditional IF, ElSE block or else the errors will be displayed whether you have errors in your form or not On Sunday, May 13, 2012 4:35:52 AM UTC+1, Matt wrote: Hi Everybody, I'm using bootstrap for a project with web2py. I want to create forms that mirror the standard approach taken by the bootstrap framework. They wrap each control like so: div class=control-group error label class=control-label for=inputErrorInput with error/label div class=controls input type=text id=inputError span class=help-inlinePlease correct the error/span p class=help-blockA comment for the field goes here./p /div /div Since this is custom code I using form.custom and form.fields for output the HTML myself. One small problem I've run up against in that when I do the following: {{= form.custom.widget.full_name }} If there is a form _error_ the following is
[web2py] CentOS Web2py IOError - Permission denied
I am running web2py on Centos and used the fedora shell script to do the installation. It did set all my folder/files as apache:apache, did the selinux configuration and such. I have the welcome and examples applications loaded. When I run the examples application locally I get no errors (here this makes me think the DAL is set up fine and working) But when I access it online I get the internal error : unknown ticket created message. Here is the error log it generates. It looks like a permissions issue but I already verified that all files as set as apache:apache , as it is in my httpd config and the folder/files have write and read permissions. What could be the reason for this? [Tue Sep 04 23:12:49 2012] [error] ERROR:web2py.cache:corrupted file /opt/web-apps/web2py/applications/examples/cache/cache.shelve, will try delete it! [Tue Sep 04 23:12:49 2012] [error] WARNING:web2py.cache:unable to delete file /opt/web-apps/web2py/applications/examples/cache/cache.shelve [Tue Sep 04 23:12:49 2012] [error] ERROR:web2py:Traceback (most recent call last): [Tue Sep 04 23:12:49 2012] [error] File /opt/web-apps/web2py/gluon/restricted.py, line 205, in restricted [Tue Sep 04 23:12:49 2012] [error] exec ccode in environment [Tue Sep 04 23:12:49 2012] [error] File /opt/web-apps/web2py/applications/examples/compiled/models/menu.py, line 63, in module [Tue Sep 04 23:12:49 2012] [error] File /opt/web-apps/web2py/gluon/dal.py, line 6320, in define_table [Tue Sep 04 23:12:49 2012] [error] polymodel=polymodel) [Tue Sep 04 23:12:49 2012] [error] File /opt/web-apps/web2py/gluon/dal.py, line 710, in create_table [Tue Sep 04 23:12:49 2012] [error] logfile = self.file_open(table._loggername, 'a') [Tue Sep 04 23:12:49 2012] [error] File /opt/web-apps/web2py/gluon/dal.py, line 545, in file_open [Tue Sep 04 23:12:49 2012] [error] fileobj = portalocker.LockedFile(filename,mode) [Tue Sep 04 23:12:49 2012] [error] File /opt/web-apps/web2py/gluon/portalocker.py, line 120, in __init__ [Tue Sep 04 23:12:49 2012] [error] self.file = open(filename,mode.replace('w','a')) [Tue Sep 04 23:12:49 2012] [error] IOError: [Errno 13] Permission denied: '/opt/web-apps/web2py/applications/examples/databases/sql.log' --
[web2py] Re: web2py login and register forms as part of main page
On Wednesday, September 5, 2012 2:46:49 AM UTC-4, Yebach wrote: Thank you for your fast reply With main page function you mean I include them in my mainpage.py contorler? It depends exactly where you want the forms. If on every page, then you need to define in a model and include in the layout. If just on the home page, then define the forms in the function for that page. Another option is to include the forms in an Ajax component -- see http://web2py.com/books/default/chapter/29/12#Components. OR do I just do a check if user is logged in and show the proper one if he is? If the user is logged in, presumably they won't need either form, right? Anthony --
[web2py] I can't display a thumbnail?
Hi, its driving me nuts. I used the code from web2pyslices to generate thumbnails: db.py: db.define_table('Images', Field('Name',length=512), Field('Image','upload'), Field('thumb','upload',writable=False,readable=False), format = '%(Name)s' # important ) db.define_table('Article', Field('Title',length=512), Field('Content','text'), Field('Submitted','datetime',default=datetime.datetime.now()), Field('Views','integer',default=0), Field('TopImage',db.Images) ) default.py: def download(): return response.download(request, db) def makeThumbnail(dbtable,ImageID,size=(200,200)): try: thisImage=db(dbtable.id==ImageID).select()[0] import os, uuid except: print Error while loading libraries return try: from PIL import Image except: print Error while Importing PIL library return print request.folder + 'uploads/' + thisImage.Image im=Image.open(request.folder + 'uploads/' + thisImage.Image) im.thumbnail(size,Image.ANTIALIAS) thumbName='uploads.thumb.%s.jpg' % (uuid.uuid4()) im.save(request.folder + 'uploads/' + thumbName,'jpeg') thisImage.update_record(thumb=thumbName) response.flash = 'Thumb created everything went fine' return def newImage(): dbtable = db.Images #uploads table name if len(request.args): records = db(dbtable.id==request.args[0]).select() if len(request.args) and len(records): form = SQLFORM(dbtable, records[0], deletable=True) else: form = SQLFORM(dbtable) if form.accepts(request.vars, session): response.flash = 'Entry for Images Database accepted,start creating thumb' makeThumbnail(dbtable,form.vars.id,(200,200)) elif form.errors: response.flash = 'Error in Form for Images Database' ## Quick list just to demonstrate... list = crud.select(dbtable) return dict(form=form,list=list) def Article(): id=request.vars.id row=db(db.Article.id==id).select() row[0].update_record(Views=row[0].Views+1) if len(row)==0: redirect(URL(r=request,f='Articles')) return dict(Article=row[0]) article.html {{extend 'layout.html'}} h1 {{=Article.Title}} /h1 br center {{print URL(r=request, c='default', f='download',args=Article.TopImage.thumb)}} {{=IMG(_src=URL(r=request, c='default', f='download',args=Article.TopImage.thumb),_style=display:block;)}} /center br {{=XML(Article.Content)}}brbr the thumbnail is generated by the code as it should. and it lands in the upload folder with the original image as it should. if I change the article.TopImage.thumb to .image it works perfectly. if I change it to .thumb again no image is displayed. the path and name I get from the print seem to be correct at least it is the same path as for the origianl image. thanks for your help guys --
[web2py] web2py login redirect
Hello My login function doesn't work. After I try to login i am redirected to user/user/profile instead back to my main page /school/index.html Register works, everything Also, if I login and enter the url where I should be redirected again I am redirected to /user/user/profile any suggestion?? Thank you --
[web2py] Re: web2py 2.0.2 is out
Hi, Is there any problem with windows binaries for XP, i tried installing the new version 2.0.7 on XP it is not working *C:\web2py1\web2pyweb2py.exe* *The system cannot execute the specified program.* regards Pradeep On Thursday, August 30, 2012 9:11:34 AM UTC+5:30, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### DAL Improvements - Support for DAL(lazy_tables=True) and db.define_table(on_define=lambda table:), thanks Jonathan - db(...).select(cacheable=True) make select 30% faster - db(...).select(cache=(cache.ram,3600)) now caches parsed data 100x faster - db(...).count(cache=(cache.ram,3600)) now supported - MongoDB support in DAL (experimental), thanks Mark Breedveld - geodal and spatialite, thanks Denes and Fran (experimental) - db.mytable._before_insert, _after_insert, _before_update, _after_update, _before_delete. _after_delete (list of callbacks) - db(...).update_naive(...) same as update but ignores table._before_update and table._after_update - DAL BIGINT support and DAL(...,bigint_id=True) - IS_IN_DB(..., distinct=True) - new syntax: db.mytable.insert(myuploadfield=open()), thank you Iceberg - db(...).select(db.mytable.myfield.count(distinct=True)) - db(db.a)._update(name=db(db.b.a==db.a.id).nested_select(db.b.id)) - db.mytable.myfield.filter_in, filter_out - db.mytable._enable_record_versioning(db) adds versioning to this table - teradata adapter, thanks Andrew Willimott - experimental Sybase Adapter - added db.table.field.avg() - Support for Google App Engine projections, thanks Christian - Field(... 'upload', default=path) now accepts a path to a local file as default value, if user does not upload a file. Relative path looks inside current application folder, thanks Marin - executesql(...,fields=,columns=) allows parsing of results in Rows, thanks Anthony ### Auth improvements - auth.enable_record_versioning(db) adds full versioning to all tables - @auth.requires_login(otherwise=URL(...)) - auth supports salt and compatible with third party data, thanks Dave Stoll - CRYPT now defaults to pbkdf2(1000,20,sha1) - Built-in wiki with menu, tags, search, media, permissions. def index: return auth.wiki() - auth.settings.everybody_group_id - allow storage of uploads on any PyFileSystem (including amazon) ### Form improvements - FORM.confirm('Are you sure?',{'Back':URL(...)}) - SQLFORM.smartdictform(dict) - form.add_button(value,link) - SQLFORM.grid(groupby='...') - fixed security issue with SQLFORM.grid and SQLFORM.smartgrid - more export options in SQLFORM.grid and SQLFORM.smartgrid (html, xml, csv, ...) ### Admin improvements - new admin pages: manage_students, bulk_regsiter, and progress reports - increased security in admin against CSRF - experimental Git integration - experimental OpenShift deployment - multi-language pluralization engine - ace text web editor in admin - Ukrainian translations, thanks Vladyslav Kozlovskyy - Romanian translation for welcome, thanks ionel - support for mercurial 2.6, thanks Vlad ### Scheduler Improvements (thanks to niphlod, ykessler, dhx, toomim) - web2py.py -K myapp -X starts the myapp scheduler alongside the webserver - tasks are marked EXPIRED (if stop_time passed) - functions with no result don't end up in scheduler_run - more options: web2py.py -E -b -L - scheduler can now handle 10k tasks with 20 concurrent workers and with no issues - new params: tasks can be found in the environment (no need to define the tasks parameter) max_empty_runs kills the workers automatically if no new tasks are found in queue (nice for spikes of processing power) discard_results to completely discard
[web2py] Re: web2py login redirect
First suggestion -- post your code. :-) On Wednesday, September 5, 2012 8:15:40 AM UTC-4, Yebach wrote: Hello My login function doesn't work. After I try to login i am redirected to user/user/profile instead back to my main page /school/index.html Register works, everything Also, if I login and enter the url where I should be redirected again I am redirected to /user/user/profile any suggestion?? Thank you --
[web2py] Re: web2py login redirect
my view user.html div class=web2py_user_form id=web2py_user_form h2{{=T( request.args(0).replace('_',' ').capitalize() )}}/h2 {{=form}} {{if request.args(0)=='login':}} {{if not 'register' in auth.settings.actions_disabled:}} div class=flash_1 id=flash_1{{=response.flash or ''}}/div br / a href={{=URL(args='register')}}{{=T('Register')}}/a {{pass}} {{if not 'request_reset_password' in auth.settings.actions_disabled:}} br / a href={{=URL(args='request_reset_password')}}{{=T('Lost Password')}}/a {{pass}} {{pass}} div id=logo_algit a href=http://www.algit.eu; target=_blankimg src={{=URL(request.application,'static','images/algit.gif')}} alt=Algit.eu / /a /div my model user.py from gluon.tools import Auth import urllib if (request.controller=='user' or request.controller=='school' or request.controller=='timetable' and request.cookies.has_key('mycookie')): response.generic_patterns = ['*'] if request.is_local else [] database = request.cookies['mycookie'].value baza = DAL('postgres://postgres:postgres@localhost/' + database, migrate=True) from gluon.tools import Mail auth = Auth(baza, controller='user') auth.settings.logout_next = URL('school','index', vars=dict(school=database)) auth.settings.registration_requires_approval = True auth.settings.register_onaccept=lambda form: mail.send(to=['vid.og...@algit.si'], subject='web2py registration', # If reply_to is omitted, then mail.settings.sender is used reply_to='u...@example.com', message='Kreiral se je nov uporabnik, ki ga je potrebno potrditi') auth.settings.expiration = 3600 auth.define_tables() mail=Mail() auth.settings.mailer=mail mail.settings.server='smtp.gmail.com:587' mail.settings.sender='x...@gmail.com' mail.settings.login='x...@gmail.com:' auth.messages.registration_pending = u'Registracija je v postopku odobritve. Ko bo vaš račun potrjen boste prejeli e-mail.' auth.messages.invalid_login = 'Nepravilno geslo' auth.messages.invalid_user = 'Uporabnik ne obstaja' ## configure auth policy ## if you need to use OpenID, Facebook, MySpace, Twitter, Linkedin, etc. ## register with janrain.com, write your domain:api_key in private/janrain.key from gluon.contrib.login_methods.rpx_account import use_janrain use_janrain(auth,filename='private/janrain.key') and my controler user.py def user(): form = auth() #auth.settings.controller=user return dict(form=form) On Wednesday, September 5, 2012 2:40:09 PM UTC+2, Anthony wrote: First suggestion -- post your code. :-) On Wednesday, September 5, 2012 8:15:40 AM UTC-4, Yebach wrote: Hello My login function doesn't work. After I try to login i am redirected to user/user/profile instead back to my main page /school/index.html Register works, everything Also, if I login and enter the url where I should be redirected again I am redirected to /user/user/profile any suggestion?? Thank you --
Re: [web2py] jQuery UI in 2.0.7
I had some problem with jQuery UI too, most were gone by using 1.8.16 ship with web2py (uncomment line in the layout that point to google api). Richard On Wed, Sep 5, 2012 at 1:35 AM, Annet anneve...@googlemail.com wrote: I just upgraded to 2.0.7, this backward comaptibility issue still hasn't been fixed: The issue has something to do with web2py. In 1.99.7 jQuery 1.7.1 jQuery UI 1.8.20 ... the date and auto complete field do work: input type=text value= name=birthday id=no_table_birthday class=date hasDatepicker input id=no_table_locality class=string ui-autocomplete-input type=text value= name=locality autocomplete=off role=textbox aria-autocomplete=list aria-haspopup=true In 2.0.6 jQuery 1.7.1 jQuery UI 1.8.20 ... (same code, different web2py version) the date and autocomplete field do not work when they are in the same form. The date field get the hasDatepicker class and works. The auto complete field isn't set. input type=text value= name=birthday id=no_table_birthday class=date input-xlarge hasDatepicker input type=text value= name=locality id=no_table_locality class=input-xlarge string I have no idea why. Kind regards, Annet -- --
[web2py] web2py.js error
Using Version 2.0.7 (2012-09-04 18:33:19) stable: I get this error on the Firebug console: Timestamp: 05/09/2012 15:22:54 Error: TypeError: doc.on is not a function Source File: http://localhost:8000/init/static/js/web2py.js Line: 42 The code: function web2py_event_handlers() { var doc = jQuery(document) doc.on('click', '.flash', function(e){jQuery(this).fadeOut('slow'); e. preventDefault();}); doc.on('keyup', 'input.integer', function(){this.value=this.value.reverse ().replace(/[^0-9\-]|\-(?=.)/g,'').reverse();}); doc.on('keyup', 'input.double, input.decimal', function(){this.value=this. value.reverse().replace(/[^0-9\-\.,]|[\-](?=.)|[\.,](?=[0-9]*[\.,])/g,''). reverse();}); var confirm_message = (typeof w2p_ajax_confirm_message != 'undefined') ?w2p_ajax_confirm_message : Are you sure you want to delete this object?; doc.on('click', input[type='checkbox'].delete, function(){if(this.checked ) if(!confirm(confirm_message)) this.checked=false;}); doc.ajaxSuccess(function(e, xhr) { var redirect=xhr.getResponseHeader('web2py-redirect-location'); if (redirect != null) { window.location = redirect; }; }); I also noticed this morning that the flash (Success) did not fade away after filling in a form. I suspect it has something to do with this problem. and Timestamp: 05/09/2012 15:22:54 Error: TypeError: a(body).on is not a function Source File: http://localhost:8000/init/static/js/bootstrap.min.js Line: 6 Regards Johann --
Re: [web2py] CentOS Web2py IOError - Permission denied
On 4 Sep 2012, at 9:22 PM, webtest ert...@gmail.com wrote: I am running web2py on Centos and used the fedora shell script to do the installation. It did set all my folder/files as apache:apache, did the selinux configuration and such. I have the welcome and examples applications loaded. When I run the examples application locally I get no errors (here this makes me think the DAL is set up fine and working) But when I access it online I get the internal error : unknown ticket created message. Here is the error log it generates. It looks like a permissions issue but I already verified that all files as set as apache:apache , as it is in my httpd config and the folder/files have write and read permissions. What could be the reason for this? If you're very sure about permissions, try disabling selinux, at least as an experiment. [Tue Sep 04 23:12:49 2012] [error] ERROR:web2py.cache:corrupted file /opt/web-apps/web2py/applications/examples/cache/cache.shelve, will try delete it! [Tue Sep 04 23:12:49 2012] [error] WARNING:web2py.cache:unable to delete file /opt/web-apps/web2py/applications/examples/cache/cache.shelve [Tue Sep 04 23:12:49 2012] [error] ERROR:web2py:Traceback (most recent call last): [Tue Sep 04 23:12:49 2012] [error] File /opt/web-apps/web2py/gluon/restricted.py, line 205, in restricted [Tue Sep 04 23:12:49 2012] [error] exec ccode in environment [Tue Sep 04 23:12:49 2012] [error] File /opt/web-apps/web2py/applications/examples/compiled/models/menu.py, line 63, in module [Tue Sep 04 23:12:49 2012] [error] File /opt/web-apps/web2py/gluon/dal.py, line 6320, in define_table [Tue Sep 04 23:12:49 2012] [error] polymodel=polymodel) [Tue Sep 04 23:12:49 2012] [error] File /opt/web-apps/web2py/gluon/dal.py, line 710, in create_table [Tue Sep 04 23:12:49 2012] [error] logfile = self.file_open(table._loggername, 'a') [Tue Sep 04 23:12:49 2012] [error] File /opt/web-apps/web2py/gluon/dal.py, line 545, in file_open [Tue Sep 04 23:12:49 2012] [error] fileobj = portalocker.LockedFile(filename,mode) [Tue Sep 04 23:12:49 2012] [error] File /opt/web-apps/web2py/gluon/portalocker.py, line 120, in __init__ [Tue Sep 04 23:12:49 2012] [error] self.file = open(filename,mode.replace('w','a')) [Tue Sep 04 23:12:49 2012] [error] IOError: [Errno 13] Permission denied: '/opt/web-apps/web2py/applications/examples/databases/sql.log' --
[web2py] Re: web2py.js error
Are you using a version of jQuery earlier than 1.7? On Wednesday, September 5, 2012 9:27:02 AM UTC-4, Johann Spies wrote: Using Version 2.0.7 (2012-09-04 18:33:19) stable: I get this error on the Firebug console: Timestamp: 05/09/2012 15:22:54 Error: TypeError: doc.on is not a function Source File: http://localhost:8000/init/static/js/web2py.js Line: 42 The code: function web2py_event_handlers() { var doc = jQuery(document) doc.on('click', '.flash', function(e){jQuery(this).fadeOut('slow'); e. preventDefault();}); doc.on('keyup', 'input.integer', function(){this.value=this.value.reverse ().replace(/[^0-9\-]|\-(?=.)/g,'').reverse();}); doc.on('keyup', 'input.double, input.decimal', function(){this.value=this .value.reverse().replace(/[^0-9\-\.,]|[\-](?=.)|[\.,](?=[0-9]*[\.,])/g,'' ).reverse();}); var confirm_message = (typeof w2p_ajax_confirm_message != 'undefined') ?w2p_ajax_confirm_message : Are you sure you want to delete this object?; doc.on('click', input[type='checkbox'].delete, function(){if(this. checked) if(!confirm(confirm_message)) this.checked=false;}); doc.ajaxSuccess(function(e, xhr) { var redirect=xhr.getResponseHeader('web2py-redirect-location'); if (redirect != null) { window.location = redirect; }; }); I also noticed this morning that the flash (Success) did not fade away after filling in a form. I suspect it has something to do with this problem. and Timestamp: 05/09/2012 15:22:54 Error: TypeError: a(body).on is not a function Source File: http://localhost:8000/init/static/js/bootstrap.min.js Line: 6 Regards Johann --
[web2py] Re: web2py login redirect
Looks like it's going to auth.settings.logged_url, which should only happen if you call the auth.register() function when the user is already logged in -- is that happening anywhere? Also, by default, if you get to the login page via the navbar link from another page, you will be redirected back to that page. If you get to the login page via a direct link (e.g., a bookmark), then you will get redirected to auth.settings.login_next, which in your case would default to URL('user', 'index') -- so you would want to change it to URL('school', 'index'). Anthony On Wednesday, September 5, 2012 8:44:00 AM UTC-4, Yebach wrote: my view user.html div class=web2py_user_form id=web2py_user_form h2{{=T( request.args(0).replace('_',' ').capitalize() )}}/h2 {{=form}} {{if request.args(0)=='login':}} {{if not 'register' in auth.settings.actions_disabled:}} div class=flash_1 id=flash_1{{=response.flash or ''}}/div br / a href={{=URL(args='register')}}{{=T('Register')}}/a {{pass}} {{if not 'request_reset_password' in auth.settings.actions_disabled:}} br / a href={{=URL(args='request_reset_password')}}{{=T('Lost Password')}}/a {{pass}} {{pass}} div id=logo_algit a href=http://www.algit.eu; target=_blankimg src={{=URL(request.application,'static','images/algit.gif')}} alt=Algit.eu / /a /div my model user.py from gluon.tools import Auth import urllib if (request.controller=='user' or request.controller=='school' or request.controller=='timetable' and request.cookies.has_key('mycookie')): response.generic_patterns = ['*'] if request.is_local else [] database = request.cookies['mycookie'].value baza = DAL('postgres://postgres:postgres@localhost/' + database, migrate=True) from gluon.tools import Mail auth = Auth(baza, controller='user') auth.settings.logout_next = URL('school','index', vars=dict(school=database)) auth.settings.registration_requires_approval = True auth.settings.register_onaccept=lambda form: mail.send(to=[' vid@algit.si javascript:'], subject='web2py registration', # If reply_to is omitted, then mail.settings.sender is used reply_to='u...@example.com javascript:', message='Kreiral se je nov uporabnik, ki ga je potrebno potrditi') auth.settings.expiration = 3600 auth.define_tables() mail=Mail() auth.settings.mailer=mail mail.settings.server='smtp.gmail.com:587' mail.settings.sender='x...@gmail.com javascript:' mail.settings.login='x...@gmail.com:' auth.messages.registration_pending = u'Registracija je v postopku odobritve. Ko bo vaš račun potrjen boste prejeli e-mail.' auth.messages.invalid_login = 'Nepravilno geslo' auth.messages.invalid_user = 'Uporabnik ne obstaja' ## configure auth policy ## if you need to use OpenID, Facebook, MySpace, Twitter, Linkedin, etc. ## register with janrain.com, write your domain:api_key in private/janrain.key from gluon.contrib.login_methods.rpx_account import use_janrain use_janrain(auth,filename='private/janrain.key') and my controler user.py def user(): form = auth() #auth.settings.controller=user return dict(form=form) On Wednesday, September 5, 2012 2:40:09 PM UTC+2, Anthony wrote: First suggestion -- post your code. :-) On Wednesday, September 5, 2012 8:15:40 AM UTC-4, Yebach wrote: Hello My login function doesn't work. After I try to login i am redirected to user/user/profile instead back to my main page /school/index.html Register works, everything Also, if I login and enter the url where I should be redirected again I am redirected to /user/user/profile any suggestion?? Thank you --
Re: [web2py] Re: web2py.js error
On 5 September 2012 15:44, Anthony abasta...@gmail.com wrote: Are you using a version of jQuery earlier than 1.7? Yes, I was trying to use jQuery-multiSelect which uses 1.6.4. Removing the following lines from my view: {{ # response.files.append( http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js;) # response.files.append( http://ajax.googleapis.com/ajax/libs/themes/ui-darkness/jquery-ui.css;) # response.files.append(URL('static', 'js/jquery.bgiframe.min.js')) # response.files.append(URL('static', 'css/jquery.multiSelect.css')) }} Stops the complaint by firebug and disables any multiselect editing options for me. It practically makes the multiselect field uneditable. :( Is there a solution for a multiselect-field? Regards Johann -- Because experiencing your loyal love is better than life itself, my lips will praise you. (Psalm 63:3) --
[web2py] Re: Limit Length column
Using maxtextlengths optional parameter partially helps. http://web2py.com/books/default/chapter/29/07?search=maxtextlengths I say partially because this param controls how many characters are displayed in the column (Only those many characters are sent by the server) If one has too many wide columns, result could be ugly, especially buttons in last column are now shown vertically - depending on screen size etc. I wish there was way to control the column width via web2py -Mandar On Tuesday, September 4, 2012 12:35:55 AM UTC+5:30, Ovidio Marinho wrote: how to limit the size of columns in sqlform.grid 25 40 15 1 col lenght 25 === = 2 col lenght 40 3 col lenght 15 etc... Ovidio Marinho Falcao Neto Web Developer ovid...@gmail.com javascript: ovidio...@itjp.net.br javascript: ITJP - itjp.net.br 83 8826 9088 - Oi 83 9334 0266 - Claro Brasil --
[web2py] Re: I can't display a thumbnail?
def Article(): id=request.vars.id row=db(db.Article.id==id).select() Not sure how you get the Images filenames. The code does not seem join the Article to the Image? Maybe something like: def Article(): id=request.vars.id # -- only ok for testing row=db((db.Article.id==id)(db.Article.TopImage==db.Images.id)).select() Regards, David On Wednesday, September 5, 2012 12:35:26 PM UTC+1, BlueShadow wrote: Hi, its driving me nuts. I used the code from web2pyslices to generate thumbnails: db.py: db.define_table('Images', Field('Name',length=512), Field('Image','upload'), Field('thumb','upload',writable=False,readable=False), format = '%(Name)s' # important ) db.define_table('Article', Field('Title',length=512), Field('Content','text'), Field('Submitted','datetime',default=datetime.datetime.now()), Field('Views','integer',default=0), Field('TopImage',db.Images) ) default.py: def download(): return response.download(request, db) def makeThumbnail(dbtable,ImageID,size=(200,200)): try: thisImage=db(dbtable.id==ImageID).select()[0] import os, uuid except: print Error while loading libraries return try: from PIL import Image except: print Error while Importing PIL library return print request.folder + 'uploads/' + thisImage.Image im=Image.open(request.folder + 'uploads/' + thisImage.Image) im.thumbnail(size,Image.ANTIALIAS) thumbName='uploads.thumb.%s.jpg' % (uuid.uuid4()) im.save(request.folder + 'uploads/' + thumbName,'jpeg') thisImage.update_record(thumb=thumbName) response.flash = 'Thumb created everything went fine' return def newImage(): dbtable = db.Images #uploads table name if len(request.args): records = db(dbtable.id==request.args[0]).select() if len(request.args) and len(records): form = SQLFORM(dbtable, records[0], deletable=True) else: form = SQLFORM(dbtable) if form.accepts(request.vars, session): response.flash = 'Entry for Images Database accepted,start creating thumb' makeThumbnail(dbtable,form.vars.id,(200,200)) elif form.errors: response.flash = 'Error in Form for Images Database' ## Quick list just to demonstrate... list = crud.select(dbtable) return dict(form=form,list=list) def Article(): id=request.vars.id row=db(db.Article.id==id).select() row[0].update_record(Views=row[0].Views+1) if len(row)==0: redirect(URL(r=request,f='Articles')) return dict(Article=row[0]) article.html {{extend 'layout.html'}} h1 {{=Article.Title}} /h1 br center {{print URL(r=request, c='default', f='download',args=Article.TopImage.thumb)}} {{=IMG(_src=URL(r=request, c='default', f='download',args=Article.TopImage.thumb),_style=display:block;)}} /center br {{=XML(Article.Content)}}brbr the thumbnail is generated by the code as it should. and it lands in the upload folder with the original image as it should. if I change the article.TopImage.thumb to .image it works perfectly. if I change it to .thumb again no image is displayed. the path and name I get from the print seem to be correct at least it is the same path as for the origianl image. thanks for your help guys --
Re: [web2py] compute fields do not show up in SQLFORM view form
Does NOT seem to work. computed field is still not visible. Same problem with this version: 2.0.7 (2012-09-04 18:33:19) stable (updated with hg) I think we should open an issue in the google code page. --
[web2py] Re: web2py 2.0.2 is out
Looks like it is a DLL issue. Some DLLs are missing. I will try rebuild it today but I am not sure which one is missing. Has anybody successfully used the windows version 2.0.x? Massimo On Wednesday, 5 September 2012 07:29:51 UTC-5, pradeep cs wrote: Hi, Is there any problem with windows binaries for XP, i tried installing the new version 2.0.7 on XP it is not working *C:\web2py1\web2pyweb2py.exe* *The system cannot execute the specified program.* regards Pradeep On Thursday, August 30, 2012 9:11:34 AM UTC+5:30, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### DAL Improvements - Support for DAL(lazy_tables=True) and db.define_table(on_define=lambda table:), thanks Jonathan - db(...).select(cacheable=True) make select 30% faster - db(...).select(cache=(cache.ram,3600)) now caches parsed data 100x faster - db(...).count(cache=(cache.ram,3600)) now supported - MongoDB support in DAL (experimental), thanks Mark Breedveld - geodal and spatialite, thanks Denes and Fran (experimental) - db.mytable._before_insert, _after_insert, _before_update, _after_update, _before_delete. _after_delete (list of callbacks) - db(...).update_naive(...) same as update but ignores table._before_update and table._after_update - DAL BIGINT support and DAL(...,bigint_id=True) - IS_IN_DB(..., distinct=True) - new syntax: db.mytable.insert(myuploadfield=open()), thank you Iceberg - db(...).select(db.mytable.myfield.count(distinct=True)) - db(db.a)._update(name=db(db.b.a==db.a.id).nested_select(db.b.id)) - db.mytable.myfield.filter_in, filter_out - db.mytable._enable_record_versioning(db) adds versioning to this table - teradata adapter, thanks Andrew Willimott - experimental Sybase Adapter - added db.table.field.avg() - Support for Google App Engine projections, thanks Christian - Field(... 'upload', default=path) now accepts a path to a local file as default value, if user does not upload a file. Relative path looks inside current application folder, thanks Marin - executesql(...,fields=,columns=) allows parsing of results in Rows, thanks Anthony ### Auth improvements - auth.enable_record_versioning(db) adds full versioning to all tables - @auth.requires_login(otherwise=URL(...)) - auth supports salt and compatible with third party data, thanks Dave Stoll - CRYPT now defaults to pbkdf2(1000,20,sha1) - Built-in wiki with menu, tags, search, media, permissions. def index: return auth.wiki() - auth.settings.everybody_group_id - allow storage of uploads on any PyFileSystem (including amazon) ### Form improvements - FORM.confirm('Are you sure?',{'Back':URL(...)}) - SQLFORM.smartdictform(dict) - form.add_button(value,link) - SQLFORM.grid(groupby='...') - fixed security issue with SQLFORM.grid and SQLFORM.smartgrid - more export options in SQLFORM.grid and SQLFORM.smartgrid (html, xml, csv, ...) ### Admin improvements - new admin pages: manage_students, bulk_regsiter, and progress reports - increased security in admin against CSRF - experimental Git integration - experimental OpenShift deployment - multi-language pluralization engine - ace text web editor in admin - Ukrainian translations, thanks Vladyslav Kozlovskyy - Romanian translation for welcome, thanks ionel - support for mercurial 2.6, thanks Vlad ### Scheduler Improvements (thanks to niphlod, ykessler, dhx, toomim) - web2py.py -K myapp -X starts the myapp scheduler alongside the webserver - tasks are marked EXPIRED (if stop_time passed) - functions with no result don't end up in scheduler_run - more options: web2py.py -E -b -L - scheduler can now handle 10k tasks with 20 concurrent workers and with no issues -
Re: [web2py] Re: web2py.js error
For me chosen has keep working properly... Richard On Wed, Sep 5, 2012 at 10:06 AM, Johann Spies johann.sp...@gmail.comwrote: On 5 September 2012 15:44, Anthony abasta...@gmail.com wrote: Are you using a version of jQuery earlier than 1.7? Yes, I was trying to use jQuery-multiSelect which uses 1.6.4. Removing the following lines from my view: {{ # response.files.append( http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js;) # response.files.append( http://ajax.googleapis.com/ajax/libs/themes/ui-darkness/jquery-ui.css;) # response.files.append(URL('static', 'js/jquery.bgiframe.min.js')) # response.files.append(URL('static', 'css/jquery.multiSelect.css')) }} Stops the complaint by firebug and disables any multiselect editing options for me. It practically makes the multiselect field uneditable. :( Is there a solution for a multiselect-field? Regards Johann -- Because experiencing your loyal love is better than life itself, my lips will praise you. (Psalm 63:3) -- --
[web2py] Re: I can't display a thumbnail?
the image filename is joined to articles by this line: Field('TopImage',db.Images) id=request.vars.id #-- only ok for testing I removed some code to make it as short as possible the original version gets the article id from request.vars.id if none is given it redirects to a page where you can choose the article you want to read. On Wednesday, September 5, 2012 4:07:29 PM UTC+2, villas wrote: def Article(): id=request.vars.id row=db(db.Article.id==id).select() Not sure how you get the Images filenames. The code does not seem join the Article to the Image? Maybe something like: def Article(): id=request.vars.id # -- only ok for testing row=db((db.Article.id==id)(db.Article.TopImage==db.Images.id)).select () Regards, David On Wednesday, September 5, 2012 12:35:26 PM UTC+1, BlueShadow wrote: Hi, its driving me nuts. I used the code from web2pyslices to generate thumbnails: db.py: db.define_table('Images', Field('Name',length=512), Field('Image','upload'), Field('thumb','upload',writable=False,readable=False), format = '%(Name)s' # important ) db.define_table('Article', Field('Title',length=512), Field('Content','text'), Field('Submitted','datetime',default=datetime.datetime.now()), Field('Views','integer',default=0), Field('TopImage',db.Images) ) default.py: def download(): return response.download(request, db) def makeThumbnail(dbtable,ImageID,size=(200,200)): try: thisImage=db(dbtable.id==ImageID).select()[0] import os, uuid except: print Error while loading libraries return try: from PIL import Image except: print Error while Importing PIL library return print request.folder + 'uploads/' + thisImage.Image im=Image.open(request.folder + 'uploads/' + thisImage.Image) im.thumbnail(size,Image.ANTIALIAS) thumbName='uploads.thumb.%s.jpg' % (uuid.uuid4()) im.save(request.folder + 'uploads/' + thumbName,'jpeg') thisImage.update_record(thumb=thumbName) response.flash = 'Thumb created everything went fine' return def newImage(): dbtable = db.Images #uploads table name if len(request.args): records = db(dbtable.id==request.args[0]).select() if len(request.args) and len(records): form = SQLFORM(dbtable, records[0], deletable=True) else: form = SQLFORM(dbtable) if form.accepts(request.vars, session): response.flash = 'Entry for Images Database accepted,start creating thumb' makeThumbnail(dbtable,form.vars.id,(200,200)) elif form.errors: response.flash = 'Error in Form for Images Database' ## Quick list just to demonstrate... list = crud.select(dbtable) return dict(form=form,list=list) def Article(): id=request.vars.id row=db(db.Article.id==id).select() row[0].update_record(Views=row[0].Views+1) if len(row)==0: redirect(URL(r=request,f='Articles')) return dict(Article=row[0]) article.html {{extend 'layout.html'}} h1 {{=Article.Title}} /h1 br center {{print URL(r=request, c='default', f='download',args=Article.TopImage.thumb)}} {{=IMG(_src=URL(r=request, c='default', f='download',args=Article.TopImage.thumb),_style=display:block;)}} /center br {{=XML(Article.Content)}}brbr the thumbnail is generated by the code as it should. and it lands in the upload folder with the original image as it should. if I change the article.TopImage.thumb to .image it works perfectly. if I change it to .thumb again no image is displayed. the path and name I get from the print seem to be correct at least it is the same path as for the origianl image. thanks for your help guys --
[web2py] Re: Limit Length column
If you want to control the column widths and allow the content to wrap if necessary, you can do so with CSS (and some JS in IE). Let's say you want to set the width of the 5th column. To support IE, in Javascript do: script $(function() { $('.ie .web2py_table td:nth-child(5)').addClass('td-wrap'); }); /script Then in CSS: .web2py_table td:nth-child(5), .web2py_table td.td-wrap { min-width: 15em; max-width: 20em; white-space: normal !important; } Anthony On Wednesday, September 5, 2012 10:06:41 AM UTC-4, Mandar Vaze wrote: Using maxtextlengths optional parameter partially helps. http://web2py.com/books/default/chapter/29/07?search=maxtextlengths I say partially because this param controls how many characters are displayed in the column (Only those many characters are sent by the server) If one has too many wide columns, result could be ugly, especially buttons in last column are now shown vertically - depending on screen size etc. I wish there was way to control the column width via web2py -Mandar On Tuesday, September 4, 2012 12:35:55 AM UTC+5:30, Ovidio Marinho wrote: how to limit the size of columns in sqlform.grid 25 40 15 1 col lenght 25 === = 2 col lenght 40 3 col lenght 15 etc... Ovidio Marinho Falcao Neto Web Developer ovid...@gmail.com ovidio...@itjp.net.br ITJP - itjp.net.br 83 8826 9088 - Oi 83 9334 0266 - Claro Brasil --
[web2py] Re: I can't display a thumbnail?
On Wednesday, September 5, 2012 10:07:29 AM UTC-4, villas wrote: def Article(): id=request.vars.id row=db(db.Article.id==id).select() Not sure how you get the Images filenames. The code does not seem join the Article to the Image? Note, Article.TopImage.thumb does a recursive select, so it retrieves the value of the thumb field from the referenced db.Images record. Anthony --
Re: [web2py] Re: 2.02 Table name in smartgrid changed...
Massimo, Any chance to leave only table_plural on line 2248 in sqlhtml.py: #header = table._plural + (field and ' for '+field.name or '') header = table._plural I would also leave all in one line if possible, e.g: table_level_1 id table_level_2, etc... Thanks, Adnan On Tue, Sep 4, 2012 at 10:07 AM, Jim S j...@qlf.com wrote: I'm having the same issue as well with second level display -Jim On Friday, August 31, 2012 9:59:38 AM UTC-5, Adi wrote: trunk works for the first level, but doesn't when i drill down into the second level... (image attached) also it used to display all breadcrumbs in the same line... old source code: div class=web2py_grid ui-widgetdiv class=web2py_breadcrumbsh3a class=w2p_trap href=/list_suppliers/supplierSuppliers/a gt; a class=w2p_trap href= /list_suppliers/supplier/view/supplier/21?_signature=3a9f06fff5edbc76efc140b8838b11063d1cd328 Concept Laboratories, Inc./a gt; a class=w2p_trap href= /list_suppliers/supplier/purchase_order.supplier_id/21Purchase orders /a/h3/div so far, all seems to work perfectly fine on 2 apps :) had a migration problem to alter scheduler tables (usual back and forth), but got it working as well... continuing testing... thanks again for the best framework! On Thursday, August 30, 2012 4:36:40 PM UTC-4, Massimo Di Pierro wrote: Got it. fixed in trunk. This was not intentional! On Thursday, 30 August 2012 10:29:25 UTC-5, Adi wrote: Smartgrid used to display the table name automatically. Is that supposed to be as before? -- --
Re: [web2py] Updated cheatsheet
Maybe the otherwise param should appear in the cheatsheet: @auth.requires_login(otherwise=URL(...)) --
[web2py] Re: I can't display a thumbnail?
thumbName='uploads.thumb.%s.jpg' % (uuid.uuid4()) im.save(request.folder + 'uploads/' + thumbName,'jpeg') The above is not quite the naming scheme expected by response.download. Instead of trying to make the name yourself, it might be easier to use the field's .store() method to handle it the naming and saving: thisImage.update_record(thumb=db.Images.thumb.store(im, filename='thumbnail.jpg')) See http://web2py.com/books/default/chapter/29/06#More-on-uploads. Anthony --
[web2py] Question about vars and crud.create (newbie)
I need to catch the request parameters in a crud.create operation Thi the simple code in the controller form = crud.create(db.anno,next='list_anno') and this the domain db.define_table('anno', Field('descrizione'), Field('incorso','boolean'),format='%(descrizione)s') Now i want before the create operation manipulate the 'incorso' Field Thanks --
[web2py] Re: Init Script in Web2Py
Thank you so much Il giorno venerdì 10 agosto 2012 11:56:15 UTC+2, tommasot ha scritto: I have a newbie question. I need to create some record in db on application startup,like for example default user and other things.. Where is the right script/place to implement it --
[web2py] NewBie Question about crud.create
I have the following code in the controller about record creation *form = crud.create(db.anno,next='list_anno')* This is the model,how you can see is very simple :) *db.define_table('anno', Field('descrizione'), Field('incorso','boolean'),format='%(descrizione)s')* Now i want to catch the 'incorso' value posted from the form and manipulate the value if some condition is satisfied. The question is how can i intercept the value, i hope there is something like form.field Thanks --
Re: [web2py] Question about vars and crud.create (newbie)
What you want to do with the field? there is : db.tablename.fieldname.* = * Richard On Wed, Sep 5, 2012 at 10:50 AM, tommasot tommt...@gmail.com wrote: I need to catch the request parameters in a crud.create operation Thi the simple code in the controller form = crud.create(db.anno,next='list_anno') and this the domain db.define_table('anno', Field('descrizione'), Field('incorso','boolean'),format='%(descrizione)s') Now i want before the create operation manipulate the 'incorso' Field Thanks -- --
Re: [web2py] NewBie Question about crud.create
What you want to do exactly? Base on the value you are talking about filtering a dropbox list for an other field? If so there is lazy option plugin : http://dev.s-cubism.com/plugin_lazy_options_widget You will need to be more specific in your question if you want us to help you properly. Richard On Wed, Sep 5, 2012 at 11:09 AM, tommasot tommt...@gmail.com wrote: I have the following code in the controller about record creation *form = crud.create(db.anno,next='list_anno')* This is the model,how you can see is very simple :) *db.define_table('anno', Field('descrizione'), Field('incorso','boolean'),format='%(descrizione)s')* Now i want to catch the 'incorso' value posted from the form and manipulate the value if some condition is satisfied. The question is how can i intercept the value, i hope there is something like form.field Thanks -- --
[web2py] Start web2py as windows service with ssl
Greetings, I have searched similar posts but I still can't make it work. I have a test machine with the following configuration: - Windows Server 2008 R2 Standard 64 - python 2.7 - pywin32_system32 - OpenSSL - web2py source 1.99.7 (2012-03-04 22:12:08) stable options.py: import socket import os ip = socket.gethostbyname(socket.gethostname()) port = 8000 interfaces=[(ip,port)] interfaces.append((ip,443,'server.key','server.crt')) password = 'recycle' # ## recycle means use the previous password pid_filename = 'httpserver.pid' log_filename = 'httpserver.log' profiler_filename = None #ssl_certificate = 'server.crt' # ## path to certificate file #ssl_private_key = 'server.key' # ## path to private key file minthreads = None maxthreads = None server_name = socket.gethostname() request_queue_size = 5 timeout = 30 shutdown_timeout = 5 folder = os.getcwd() extcron = None nocron = None additional files: parameters_442.py parameters_8000.py all works when started by command line (python web2py.py--password=recycle -- config=options.py) but when I try to start it as a service I get mixed results. if I comment the lines #ssl_certificate = 'server.crt' # ## path to certificate file #ssl_private_key = 'server.key' # ## path to private key file the service does not start and in the event logger I get: Traceback (most recent call last): File D:\web2py\gluon\winservice.py, line 49, in SvcDoRun self.start() File D:\web2py\gluon\winservice.py, line 122, in start ssl_certificate=options.ssl_certificate, AttributeError: 'module' object has no attribute 'ssl_certificate' if I uncomment the lines ssl_certificate = 'server.crt' # ## path to certificate file ssl_private_key = 'server.key' # ## path to private key file the service starts but I cannot connect to the pages Also, if I try to start the service from command line (--winservice=start) instead than from the services pannel, the sytem returns Error starting service: Access is denied. Can anyone help me? Thanks --
Re: [web2py] compute fields do not show up in SQLFORM view form
yes please. Did this work in 1.99.7? On Wednesday, 5 September 2012 09:07:41 UTC-5, Alan Etkin wrote: Does NOT seem to work. computed field is still not visible. Same problem with this version: 2.0.7 (2012-09-04 18:33:19) stable (updated with hg) I think we should open an issue in the google code page. --
Re: [web2py] Re: 2.02 Table name in smartgrid changed...
Open an issue. We can make that a parameter. On Wednesday, 5 September 2012 09:49:11 UTC-5, Adi wrote: Massimo, Any chance to leave only table_plural on line 2248 in sqlhtml.py: #header = table._plural + (field and ' for '+field.name or '') header = table._plural I would also leave all in one line if possible, e.g: table_level_1 id table_level_2, etc... Thanks, Adnan On Tue, Sep 4, 2012 at 10:07 AM, Jim S j...@qlf.com javascript: wrote: I'm having the same issue as well with second level display -Jim On Friday, August 31, 2012 9:59:38 AM UTC-5, Adi wrote: trunk works for the first level, but doesn't when i drill down into the second level... (image attached) also it used to display all breadcrumbs in the same line... old source code: div class=web2py_grid ui-widgetdiv class=web2py_breadcrumbs h3a class=w2p_trap href=/list_suppliers/supplierSuppliers/agt; a class=w2p_trap href= /list_suppliers/supplier/view/supplier/21?_signature=3a9f06fff5edbc76efc140b8838b11063d1cd328 Concept Laboratories, Inc./a gt; a class=w2p_trap href= /list_suppliers/supplier/purchase_order.supplier_id/21Purchase orders /a/h3/div so far, all seems to work perfectly fine on 2 apps :) had a migration problem to alter scheduler tables (usual back and forth), but got it working as well... continuing testing... thanks again for the best framework! On Thursday, August 30, 2012 4:36:40 PM UTC-4, Massimo Di Pierro wrote: Got it. fixed in trunk. This was not intentional! On Thursday, 30 August 2012 10:29:25 UTC-5, Adi wrote: Smartgrid used to display the table name automatically. Is that supposed to be as before? -- --
Re: [web2py] Updated cheatsheet
It should On Wednesday, 5 September 2012 09:57:30 UTC-5, rif wrote: Maybe the otherwise param should appear in the cheatsheet: @auth.requires_login(otherwise=URL(...)) --
Re: [web2py] Re: web2py.js error
On 5 September 2012 16:10, Richard Vézina ml.richard.vez...@gmail.comwrote: For me chosen has keep working properly.. What is 'chosen' in this context? I have used the native web2py widget in the past - that stopped working in the past few weeks with changes to the trunk. I have also used the plugin from http://dev.s-cubism.com/plugin_multiselect_widget at one stage. Maybe I must go back and try that again. Regards Johann -- Because experiencing your loyal love is better than life itself, my lips will praise you. (Psalm 63:3) --
Re: [web2py] little css issue and french translation
Hi Richard, The french translation would be better as: Propulsé par and not Propulser par. BTW, nice to see french speaking folks around here ;-) On Wednesday, September 5, 2012 4:31:10 PM UTC+2, Richard wrote: Hello, I found that if the number of menu entries are to high or if the text is too long the black nav bar overflow over the rest of the page element... Also, notice, that the french translation of the web2py : powered by is wrong. I mean, in french it translate as : alimenté par That could mean : feed by Better to translate with : Propulser par See attach screenshot, for more details. Richard --
Re: [web2py] Updated cheatsheet
Also the cast parameter. Are the sources for the cheatsheet available so we can make patch suggestions? -rif miercuri, 5 septembrie 2012, 18:53:45 UTC+3, Massimo Di Pierro a scris: It should On Wednesday, 5 September 2012 09:57:30 UTC-5, rif wrote: Maybe the otherwise param should appear in the cheatsheet: @auth.requires_login(otherwise=URL(...)) --
Re: [web2py] jQuery UI in 2.0.7
Hi Richard, Thanks for you reply. I had some problem with jQuery UI too, most were gone by using 1.8.16 ship with web2py (uncomment line in the layout that point to google api). That version introduced another problem, the auto complete's list wasn't displayed properly, besides, it didn't fix the issue I described above, which has something to do with a change in web2py between versions 1.99.7 and 2.0.2, which hasn't been fixed in 2.0.7. Kind regards, Annet --
Re: [web2py] Re: web2py.js error
On Wednesday, September 5, 2012 11:57:23 AM UTC-4, Johann Spies wrote: On 5 September 2012 16:10, Richard Vézina ml.richa...@gmail.comjavascript: wrote: For me chosen has keep working properly.. What is 'chosen' in this context? Probably http://harvesthq.github.com/chosen/. I have used the native web2py widget in the past - that stopped working in the past few weeks with changes to the trunk. What native widget? Isn't it just a standard HTML select widget? Anthony --
[web2py] DB Migration (sqlite-pgsql) Problems with 1.99.7 - 2.0.6 - 2.0.7 Versions
Hello, I'm in trouble with a webapp that I'have. I develop it using sqlite only for a best approach of web2py features with it. And I'm trying to migrate it to a Postgresql DB to put it on Testing phase. But It doesn't work with PostgreSQL, only work with sqlite, I'd tried with 1.99.7 - 2.0.6 - 2.0.7 Versions At 2.0.7 and 2.0.6 showme: type 'exceptions.ValueError' invalid literal for int() with base 10: 'SELECT' At Traceback (most recent call last): File /opt/web-apps/web2py/gluon/restricted.py, line 209, in restricted exec ccode in environment File /opt/web-apps/web2py-2.0.7/applications/sadma/models/db.py https://172.16.1.34/admin/default/edit/sadma/models/db.py, line 236, in module if db(db.auth_user).isempty(): File /opt/web-apps/web2py/gluon/dal.py, line 8722, in isempty return not self.select(limitby=(0,1)) File /opt/web-apps/web2py/gluon/dal.py, line 8743, in select return adapter.select(self.query,fields,attributes) File /opt/web-apps/web2py/gluon/dal.py, line 1583, in select return self._select_aux(sql,fields,attributes) File /opt/web-apps/web2py/gluon/dal.py, line 1556, in _select_aux self.execute(sql) My Connection string: *#db = DAL('sqlite://storage.sqlite') db = DAL('postgres://user:pass@localhost/dbapp')** * *Running on Centos 6.0, external Postgresql Server with 9 version, **Python 2.6.6* * * Thanks in advance Christian. --
[web2py] Re: NewBie Question about crud.create
Do you want to manipulate it (a) after submission but before validation (use request.vars.incorso), (b) after validation but before the insert (use crud.settings.create_onvalidation), or (c) after the record is inserted (use crud.settings.create_onaccept). Anthony On Wednesday, September 5, 2012 11:09:41 AM UTC-4, tommasot wrote: I have the following code in the controller about record creation *form = crud.create(db.anno,next='list_anno')* This is the model,how you can see is very simple :) *db.define_table('anno', Field('descrizione'), Field('incorso','boolean'),format='%(descrizione)s')* Now i want to catch the 'incorso' value posted from the form and manipulate the value if some condition is satisfied. The question is how can i intercept the value, i hope there is something like form.field Thanks --
[web2py] Filtering on NULL values in DAL query
Is this documented anywhere? --
Re: [web2py] jQuery UI in 2.0.7
Ok, I may have to take a look at 2.0.7 thought! Richard On Wed, Sep 5, 2012 at 12:23 PM, Annet anneve...@googlemail.com wrote: Hi Richard, Thanks for you reply. I had some problem with jQuery UI too, most were gone by using 1.8.16 ship with web2py (uncomment line in the layout that point to google api). That version introduced another problem, the auto complete's list wasn't displayed properly, besides, it didn't fix the issue I described above, which has something to do with a change in web2py between versions 1.99.7 and 2.0.2, which hasn't been fixed in 2.0.7. Kind regards, Annet -- --
Re: [web2py] little css issue and french translation
You right, I realised it after I sent my email :( Richard On Wed, Sep 5, 2012 at 11:58 AM, Calycé welcome.to.dev.n...@gmail.comwrote: Hi Richard, The french translation would be better as: Propulsé par and not Propulser par. BTW, nice to see french speaking folks around here ;-) On Wednesday, September 5, 2012 4:31:10 PM UTC+2, Richard wrote: Hello, I found that if the number of menu entries are to high or if the text is too long the black nav bar overflow over the rest of the page element... Also, notice, that the french translation of the web2py : powered by is wrong. I mean, in french it translate as : alimenté par That could mean : feed by Better to translate with : Propulser par See attach screenshot, for more details. Richard -- --
[web2py] Re: 2.02 Table name in smartgrid changed...
to display all breadcrumbs in the same line please try to append to web2py.css following rule li.w2p_grid_breadcrumb_elem { display:inline-block; } in versions = 2.0.2 web2py.css file has the right rule, so this issue should arise only with previous experimental versions. Il giorno giovedì 30 agosto 2012 17:29:25 UTC+2, Adi ha scritto: Smartgrid used to display the table name automatically. Is that supposed to be as before? --
Re: [web2py] Filtering on NULL values in DAL query
db(db.table.field == None).select() should give you all records with field = NULL db(~db.table.field == None).select() All records where field NULL Is that? --
Re: [web2py] Filtering on NULL values in DAL query
it is db.table.field != None operator ~ is used for ORDER BY and it maps to DESC. On Wed, Sep 5, 2012 at 7:59 PM, Bruno Rocha rochacbr...@gmail.com wrote: db(~db.table.field == None).select() --
Re: [web2py] Filtering on NULL values in DAL query
On Wed, Sep 5, 2012 at 3:12 PM, Marin Pranjić marin.pran...@gmail.comwrote: it is db.table.field != None operator ~ is used for ORDER BY and it maps to DESC. Yes, my bad, you are right, but there is one case where ~ is used in query ~db.table.field.belongs(list) and ~db.table.listfield.contains(value) --
Re: [web2py] Filtering on NULL values in DAL query
Thanks. Massimo we need this in the docs. On Wednesday, September 5, 2012 2:38:26 PM UTC-4, rochacbruno wrote: On Wed, Sep 5, 2012 at 3:12 PM, Marin Pranjić marin@gmail.comjavascript: wrote: it is db.table.field != None operator ~ is used for ORDER BY and it maps to DESC. Yes, my bad, you are right, but there is one case where ~ is used in query ~db.table.field.belongs(list) and ~db.table.listfield.contains(value) --
[web2py] Accessing id in SQLFORM.process()
Hi, I'm trying to wean myself of CRUD and am doing an insert with SQLFORM.process(). I want to redirect on success to view the newly inserted record. How can I access the ID of the new record in this context? Hoped I could do something like: - SQLFORM(db.t_account).process(next=URL(c='account',f='index', args=['t_account', id])) -- Cheers, PhilK --
[web2py] Re: Start web2py as windows service with ssl
a little bug I found (and corrected) is that if you comment out ssl_certificate and ssl_private_key, that parameter is missing, and web2py requires it. If you don't need certificates just set ssl_certificate and ssl_private_key to None (as current trunk options_std.py http://code.google.com/p/web2py/source/browse/options_std.py) second thing, I think the interface for ws2008 changed a little bit, so it's not possible to use cmdline parameter to start the service (try running the shell as administrator, could help). If it doesn't, just use the windows usual flavour net start nameoftheservice to start it. Another thing, you have parameters_* files for ports 8000 and 442 but you start the service for 8000 and 443. I don't have a ws2008 installation available to test it, but you can try with these hints. Not too long ago I proposed to strip off the code of the windows webservice cause it's getting harder and harder to maintain. Useful tools as nssm are a lot easier to deal with and can make virtually any programs run as services with no issues (and I could make a slice for it if users need it). On Wednesday, September 5, 2012 5:29:06 PM UTC+2, Geo wrote: Greetings, I have searched similar posts but I still can't make it work. I have a test machine with the following configuration: - Windows Server 2008 R2 Standard 64 - python 2.7 - pywin32_system32 - OpenSSL - web2py source 1.99.7 (2012-03-04 22:12:08) stable options.py: import socket import os ip = socket.gethostbyname(socket.gethostname()) port = 8000 interfaces=[(ip,port)] interfaces.append((ip,443,'server.key','server.crt')) password = 'recycle' # ## recycle means use the previous password pid_filename = 'httpserver.pid' log_filename = 'httpserver.log' profiler_filename = None #ssl_certificate = 'server.crt' # ## path to certificate file #ssl_private_key = 'server.key' # ## path to private key file minthreads = None maxthreads = None server_name = socket.gethostname() request_queue_size = 5 timeout = 30 shutdown_timeout = 5 folder = os.getcwd() extcron = None nocron = None additional files: parameters_442.py parameters_8000.py all works when started by command line (python web2py.py--password=recycle -- config=options.py) but when I try to start it as a service I get mixed results. if I comment the lines #ssl_certificate = 'server.crt' # ## path to certificate file #ssl_private_key = 'server.key' # ## path to private key file the service does not start and in the event logger I get: Traceback (most recent call last): File D:\web2py\gluon\winservice.py, line 49, in SvcDoRun self.start() File D:\web2py\gluon\winservice.py, line 122, in start ssl_certificate=options.ssl_certificate, AttributeError: 'module' object has no attribute 'ssl_certificate' if I uncomment the lines ssl_certificate = 'server.crt' # ## path to certificate file ssl_private_key = 'server.key' # ## path to private key file the service starts but I cannot connect to the pages Also, if I try to start the service from command line (--winservice=start) instead than from the services pannel, the sytem returns Error starting service: Access is denied. Can anyone help me? Thanks --
[web2py] Re: Accessing id in SQLFORM.process()
in any case it should be at least form.vars.id. Don't know if it's available inside the process() environment. Even if it doesn't work, is it so hard to if form.process().validate: redirect(URL('whatever', args=form.vars.id)) ? On Wednesday, September 5, 2012 8:41:44 PM UTC+2, Philip Kilner wrote: Hi, I'm trying to wean myself of CRUD and am doing an insert with SQLFORM.process(). I want to redirect on success to view the newly inserted record. How can I access the ID of the new record in this context? Hoped I could do something like: - SQLFORM(db.t_account).process(next=URL(c='account',f='index', args=['t_account', id])) -- Cheers, PhilK --
Re: [web2py] Re: Accessing id in SQLFORM.process()
Should be accepted instead of validate: form = SQLFORM(...).process() if form.accepted: ... redirect(URL(..., args=form.vars.id)) On Wed, Sep 5, 2012 at 8:56 PM, Niphlod niph...@gmail.com wrote: in any case it should be at least form.vars.id. Don't know if it's available inside the process() environment. Even if it doesn't work, is it so hard to if form.process().validate: redirect(URL('whatever', args=form.vars.id)) ? On Wednesday, September 5, 2012 8:41:44 PM UTC+2, Philip Kilner wrote: Hi, I'm trying to wean myself of CRUD and am doing an insert with SQLFORM.process(). I want to redirect on success to view the newly inserted record. How can I access the ID of the new record in this context? Hoped I could do something like: - SQLFORM(db.t_account).process(**next=URL(c='account',f='index'**, args=['t_account', id])) -- Cheers, PhilK -- --
Re: [web2py] Filtering on NULL values in DAL query
Thanks, good to know :) On Wed, Sep 5, 2012 at 8:37 PM, Bruno Rocha rochacbr...@gmail.com wrote: On Wed, Sep 5, 2012 at 3:12 PM, Marin Pranjić marin.pran...@gmail.comwrote: it is db.table.field != None operator ~ is used for ORDER BY and it maps to DESC. Yes, my bad, you are right, but there is one case where ~ is used in query ~db.table.field.belongs(list) and ~db.table.listfield.contains(value) -- --
Re: [web2py] Re: Accessing id in SQLFORM.process()
whoops, right: form = SQLFORM(db.table) if form.process().accepted: redirect(URL('whatever', args=form.vars.id)) On Wednesday, September 5, 2012 9:00:10 PM UTC+2, Marin Pranjić wrote: Should be accepted instead of validate: form = SQLFORM(...).process() if form.accepted: ... redirect(URL(..., args=form.vars.id)) On Wed, Sep 5, 2012 at 8:56 PM, Niphlod nip...@gmail.com javascript:wrote: in any case it should be at least form.vars.id. Don't know if it's available inside the process() environment. Even if it doesn't work, is it so hard to if form.process().validate: redirect(URL('whatever', args=form.vars.id)) ? On Wednesday, September 5, 2012 8:41:44 PM UTC+2, Philip Kilner wrote: Hi, I'm trying to wean myself of CRUD and am doing an insert with SQLFORM.process(). I want to redirect on success to view the newly inserted record. How can I access the ID of the new record in this context? Hoped I could do something like: - SQLFORM(db.t_account).process(**next=URL(c='account',f='index'**, args=['t_account', id])) -- Cheers, PhilK -- --
Re: [web2py] Re: 2.02 Table name in smartgrid changed...
thanks Paolo... worked perfectly. On Wed, Sep 5, 2012 at 1:59 PM, Paolo Caruccio paolo.carucci...@gmail.comwrote: to display all breadcrumbs in the same line please try to append to web2py.css following rule li.w2p_grid_breadcrumb_elem { display:inline-block; } in versions = 2.0.2 web2py.css file has the right rule, so this issue should arise only with previous experimental versions. Il giorno giovedì 30 agosto 2012 17:29:25 UTC+2, Adi ha scritto: Smartgrid used to display the table name automatically. Is that supposed to be as before? -- --
Re: [web2py] how to set js variable from session variable?
jQuery.get('CALLBACK_URL', function(data){ alert(data); }); source: http://api.jquery.com/jQuery.get/ On Wed, Sep 5, 2012 at 8:15 AM, weheh richard_gor...@verizon.net wrote: I tried an ajax call to a controller callback, that in turn returns $('#myjsvar').val('%d'); % session.myvar, based loosely on a thread I read here, but that didn't come close to working, either. You can try: $('#myjsvar --
Re: [web2py] how to set js variable from session variable?
On Wed, Sep 5, 2012 at 10:00 PM, Marin Pranjić marin.pran...@gmail.comwrote: jQuery.get('CALLBACK_URL', function(data){ alert(data); }); source: http://api.jquery.com/jQuery.get/ On Wed, Sep 5, 2012 at 8:15 AM, weheh richard_gor...@verizon.net wrote: I tried an ajax call to a controller callback, that in turn returns $('#myjsvar').val('%d'); % session.myvar, based loosely on a thread I read here, but that didn't come close to working, either. --
Re: [web2py] required option in Field
This should work for other field types as you expect, but empty string is still valid string value. You can set: requires=IS_LENGTH(minsize=1) to disallow empty strings. On Tue, Sep 4, 2012 at 7:24 PM, Denis Rykov ryk...@gmail.com wrote: I use the following Field definition: Field('admin_unit', required=True, label='Region'), But when I create new row through smartgrid interface and leave this field empty - validation error not appears and record creates in database. If see table in database you can see that 'admin_unit' field contains empty string (''). Is it correct? It looks like required options doesn't work properly. -- --
[web2py] 2.0.6: Required=True not enforced by DAL?
I have created simple table: db.define_table('hoortoestel', # algemeen Field('merk', type='string', required=True, ), Field('type', type='string', required=True, ), ... When trying to enter a new record in appadmin I noticed that when not entering anything in either field, the new record data is accepted and entered into the (SQLlite) database. I think that's a bug. If I change the required constraint to notnull=True, the empty record is indeed rejected, as expected. --
Re: [web2py] Filtering on NULL values in DAL query
Db.table.field == None On Sep 5, 2012 6:42 PM, Yarin ykess...@gmail.com wrote: Is this documented anywhere? -- --
[web2py] 2.0.6 bug? required=True not enforced
I have defined a simple table: db.define_table('hoortoestel', # algemeen Field('merk', type='string', required=True, ), Field('type', type='string', required=True, ), ... If I then try to enter a new record in appadmin and do not enter anything for the fields, the record is still accepted and entered into the (SQLite) database. I would have expected the DAL to refuse the values. If I change the constraints from required=True to notnull=True, the empty values are not accepted. Bug or oversight by me? --
[web2py] Connecting to external databases
I am building a json webservice in web2py and it is being used by many different frontends.. What I am looking to do on the back end is connected to external databases (1 postgre, 2 mssql) and return the correlated data from the different servers to the json client. What I am struggling with is how to connect to any external database from web2py and should I sue the DAL layer to coonect to all these different servers ?? Any advice would be greatly apprieciated. Kind Regards GRegg --
Re: [web2py] required option in Field
IS_NOT_EMPTY() is more remembereable . @Marin: when you reply from your mail client please strip the re: from the subject or in the group it will show as a separate thread. On Wednesday, September 5, 2012 10:07:11 PM UTC+2, Marin Pranjić wrote: This should work for other field types as you expect, but empty string is still valid string value. You can set: requires=IS_LENGTH(minsize=1) to disallow empty strings. On Tue, Sep 4, 2012 at 7:24 PM, Denis Rykov ryk...@gmail.comjavascript: wrote: I use the following Field definition: Field('admin_unit', required=True, label='Region'), But when I create new row through smartgrid interface and leave this field empty - validation error not appears and record creates in database. If see table in database you can see that 'admin_unit' field contains empty string (''). Is it correct? It looks like required options doesn't work properly. -- --
[web2py] Re: 2.0.6 bug? required=True not enforced
As steted on the book Notice that requires=... is enforced at the level of forms, required=Trueis enforced at the level of the DAL (insert), while notnull, unique and ondelete are enforced at the level of the database. While they sometimes may seem redundant, it is important to maintain the distinction when programming with the DAL. also, you may want to add a requires=IS_NOT_EMPTY() validator for nice error reporting... On Wednesday, September 5, 2012 7:39:24 PM UTC+2, mjm wrote: I have defined a simple table: db.define_table('hoortoestel', # algemeen Field('merk', type='string', required=True, ), Field('type', type='string', required=True, ), ... If I then try to enter a new record in appadmin and do not enter anything for the fields, the record is still accepted and entered into the (SQLite) database. I would have expected the DAL to refuse the values. If I change the constraints from required=True to notnull=True, the empty values are not accepted. Bug or oversight by me? --
Re: [web2py] 2.0.6 bug? required=True not enforced
I would expect that both constraints are accepted (empty string is not Null). Is the behavior different from older versions? On Wed, Sep 5, 2012 at 7:39 PM, mjm mjm...@webtothemax.com wrote: I have defined a simple table: db.define_table('hoortoestel', # algemeen Field('merk', type='string', required=True, ), Field('type', type='string', required=True, ), ... If I then try to enter a new record in appadmin and do not enter anything for the fields, the record is still accepted and entered into the (SQLite) database. I would have expected the DAL to refuse the values. If I change the constraints from required=True to notnull=True, the empty values are not accepted. Bug or oversight by me? -- --
Re: [web2py] Re: 2.02 Table name in smartgrid changed...
Moreover, if you are interested (I don't know if this is documented), you could change breadcrumbs divider and assign a css class to breadcrumbs itself. The complete signature for the smartgrid is indeed the following: SQLFORM.smartgrid( table, constraints=None, linked_tables=None, links=None, links_in_grid=True, args=None, user_signature=True, divider='', breadcrumbs_class='', **kwargs): Il giorno mercoledì 5 settembre 2012 21:33:29 UTC+2, Adi ha scritto: thanks Paolo... worked perfectly. On Wed, Sep 5, 2012 at 1:59 PM, Paolo Caruccio paolo.ca...@gmail.comjavascript: wrote: to display all breadcrumbs in the same line please try to append to web2py.css following rule li.w2p_grid_breadcrumb_elem { display:inline-block; } in versions = 2.0.2 web2py.css file has the right rule, so this issue should arise only with previous experimental versions. Il giorno giovedì 30 agosto 2012 17:29:25 UTC+2, Adi ha scritto: Smartgrid used to display the table name automatically. Is that supposed to be as before? -- --
[web2py] Re: Connecting to external databases
if you want to use the dal to retrieve data from your databases you should connect to them. dbmysql = DAL('mysql://...') dbmmsql = DAL('mssql://...') What is your issue ? On Wednesday, September 5, 2012 6:18:23 PM UTC+2, Gregg Branquinho wrote: I am building a json webservice in web2py and it is being used by many different frontends.. What I am looking to do on the back end is connected to external databases (1 postgre, 2 mssql) and return the correlated data from the different servers to the json client. What I am struggling with is how to connect to any external database from web2py and should I sue the DAL layer to coonect to all these different servers ?? Any advice would be greatly apprieciated. Kind Regards GRegg --
Re: [web2py] required option in Field
I don't know why this happens - I always reply from email and it is always in the same thread. Sorry about that. Dana srijeda, 5. rujna 2012. 22:14:09 UTC+2, korisnik Niphlod napisao je: IS_NOT_EMPTY() is more remembereable . @Marin: when you reply from your mail client please strip the re: from the subject or in the group it will show as a separate thread. On Wednesday, September 5, 2012 10:07:11 PM UTC+2, Marin Pranjić wrote: This should work for other field types as you expect, but empty string is still valid string value. You can set: requires=IS_LENGTH(minsize=1) to disallow empty strings. On Tue, Sep 4, 2012 at 7:24 PM, Denis Rykov ryk...@gmail.com wrote: I use the following Field definition: Field('admin_unit', required=True, label='Region'), But when I create new row through smartgrid interface and leave this field empty - validation error not appears and record creates in database. If see table in database you can see that 'admin_unit' field contains empty string (''). Is it correct? It looks like required options doesn't work properly. -- --
Re: [web2py] XML Webservice
Create a template with xmlservice.xml and add the appropriate fields. On Wednesday, September 5, 2012 12:50:28 AM UTC-7, Hassan Alnatour wrote: Dear Derek , What should i do then ?? Best Regards, On Wed, Sep 5, 2012 at 2:01 AM, Derek sp1...@gmail.com javascript:wrote: It is XML, but it doesn't have a doctype. So, when it gets to this character: *’* it fails to validate against UTF-8. It should probably be this: charset=ISO-8859-1 On Tuesday, September 4, 2012 2:15:11 AM UTC-7, Hassan Alnatour wrote: Dear ALec , when i go to the link i gave you before , i can see some XML data but i dont understand what is the viewing problem you are talking about ? and why wold a table filed interrupter Viewing as XML as long as i am returning an object that has all the date ? Best Regards, On Sun, Sep 2, 2012 at 12:47 PM, hasan alnator haln...@gardeniatelco.com wrote: Dear ALec , when i go to the link i gave you before , i can see some XML data but i dont understand what is the viewing problem you are talking about ? and why wold a table filed interrupter Viewing as XML as long as i am returning an object that has all the date ? Best Regards, On Sun, Sep 2, 2012 at 12:42 PM, Alec Taylor alec.t...@gmail.comwrote: Hmm, try lower-case 'description'. Otherwise not sure what's causing the XML viewer problem. Also nowadays JSON is prefered over XML, as it's much less verbose; thus has a much lower overhead On Sun, Sep 2, 2012 at 7:39 PM, hasan alnator haln...@gardeniatelco.com wrote: Dear Alec , What Do you mean with preprocessing ? this is my db.py : # -*- coding: utf-8 -*- ##**##** # ## This scaffolding model makes your app work on Google App Engine too ## File is released under public domain and you can use without limitations ##**##** # ## if SSL/HTTPS is properly configured and you want all HTTP requests to ## be redirected to HTTPS, uncomment the line below: # request.requires_https() if not request.env.web2py_runtime_**gae: ## if NOT running on Google App Engine use SQLite or other DB db = DAL('sqlite://storage.sqlite') else: ## connect to Google BigTable (optional 'google:datastore://namespace'**) db = DAL('google:datastore') ## store sessions and tickets there session.connect(request, response, db = db) ## or store session in Memcache, Redis, etc. ## from gluon.contrib.memdb import MEMDB ## from google.appengine.api.memcache import Client ## session.connect(request, response, db = MEMDB(Client())) ## by default give a view/generic.extension to all actions from localhost ## none otherwise. a pattern can be 'controller/function.** extension' response.generic_patterns = ['*'] if request.is_local else [] ## (optional) optimize handling of static files # response.optimize_css = 'concat,minify,inline' # response.optimize_js = 'concat,minify,inline' ##**##** # ## Here is sample code if you need for ## - email capabilities ## - authentication (registration, login, logout, ... ) ## - authorization (role based authorization) ## - services (xml, csv, json, xmlrpc, jsonrpc, amf, rss) ## - old style crud actions ## (more options discussed in gluon/tools.py) ##**##** # from gluon.tools import Auth, Crud, Service, PluginManager, prettydate auth = Auth(db, hmac_key=Auth.get_or_create_**key()) crud, service, plugins = Crud(db), Service(), PluginManager() ## create all tables needed by auth if not custom tables auth.define_tables() ## configure email mail=auth.settings.mailer mail.settings.server = 'logging' or 'smtp.gmail.com:587' mail.settings.sender = 'y...@gmail.com' mail.settings.login = 'username:password' ## configure auth policy auth.settings.registration_**requires_verification = False auth.settings.registration_**requires_approval = False auth.settings.reset_password_**requires_verification = True ## if you need to use OpenID, Facebook, MySpace, Twitter, Linkedin, etc. ## register with janrain.com, write your domain:api_key in private/janrain.key from gluon.contrib.login_methods.**rpx_account import use_janrain use_janrain(auth,filename='**private/janrain.key') ##**##** # ## Define your tables below (or better in another model file) for example ## ## db.define_table('mytable',**Field('myfield','string')) ## ## Fields can be 'string','text','password','** integer','double','boolean' ## 'date','time','datetime','**blob','upload', 'reference TABLENAME' ## There is an implicit 'id integer
[web2py] Re: Accessing id in SQLFORM.process()
Try: SQLFORM(db.t_account).process(next=URL('account', 'index', args='t_account') + '/[id]') If you put the variable name in brackets, it (plus the brackets) should get replaced with the variable's value. Also, .process (and .validate) take an onsuccess argument, which can be a callable: SQLFORM(...).process(..., onsuccess=lambda form: redirect(URL('account', 'index', args=[ 't_account', form.vars.id]))) Anthony On Wednesday, September 5, 2012 2:41:44 PM UTC-4, Philip Kilner wrote: Hi, I'm trying to wean myself of CRUD and am doing an insert with SQLFORM.process(). I want to redirect on success to view the newly inserted record. How can I access the ID of the new record in this context? Hoped I could do something like: - SQLFORM(db.t_account).process(next=URL(c='account',f='index', args=['t_account', id])) -- Cheers, PhilK --
Re: [web2py] Updated cheatsheet
I will add the source to the web2py repo. On Wednesday, 5 September 2012 11:04:02 UTC-5, rif wrote: Also the cast parameter. Are the sources for the cheatsheet available so we can make patch suggestions? -rif miercuri, 5 septembrie 2012, 18:53:45 UTC+3, Massimo Di Pierro a scris: It should On Wednesday, 5 September 2012 09:57:30 UTC-5, rif wrote: Maybe the otherwise param should appear in the cheatsheet: @auth.requires_login(otherwise=URL(...)) --
[web2py] Re: DB Migration (sqlite-pgsql) Problems with 1.99.7 - 2.0.6 - 2.0.7 Versions
Did you install psycopg2? If not it is probably using pg8000. Can you please help us debug? Edit dal.py and in the function log_excecute can you print the value of the command variable? What does it print when it fails? On Wednesday, 5 September 2012 11:29:42 UTC-5, Christian Espinoza wrote: Hello, I'm in trouble with a webapp that I'have. I develop it using sqlite only for a best approach of web2py features with it. And I'm trying to migrate it to a Postgresql DB to put it on Testing phase. But It doesn't work with PostgreSQL, only work with sqlite, I'd tried with 1.99.7 - 2.0.6 - 2.0.7 Versions At 2.0.7 and 2.0.6 showme: type 'exceptions.ValueError' invalid literal for int() with base 10: 'SELECT' At Traceback (most recent call last): File /opt/web-apps/web2py/gluon/restricted.py, line 209, in restricted exec ccode in environment File /opt/web-apps/web2py-2.0.7/applications/sadma/models/db.py https://172.16.1.34/admin/default/edit/sadma/models/db.py, line 236, in module if db(db.auth_user).isempty(): File /opt/web-apps/web2py/gluon/dal.py, line 8722, in isempty return not self.select(limitby=(0,1)) File /opt/web-apps/web2py/gluon/dal.py, line 8743, in select return adapter.select(self.query,fields,attributes) File /opt/web-apps/web2py/gluon/dal.py, line 1583, in select return self._select_aux(sql,fields,attributes) File /opt/web-apps/web2py/gluon/dal.py, line 1556, in _select_aux self.execute(sql) My Connection string: *#db = DAL('sqlite://storage.sqlite') db = DAL('postgres://user:pass@localhost/dbapp')** * *Running on Centos 6.0, external Postgresql Server with 9 version, **Python 2.6.6* * * Thanks in advance Christian. --
[web2py] Re: 2.0.6: Required=True not enforced by DAL?
required=True means that a value must be provided. For a string merk='' is a value. On Wednesday, 5 September 2012 12:27:05 UTC-5, mjm wrote: I have created simple table: db.define_table('hoortoestel', # algemeen Field('merk', type='string', required=True, ), Field('type', type='string', required=True, ), ... When trying to enter a new record in appadmin I noticed that when not entering anything in either field, the new record data is accepted and entered into the (SQLlite) database. I think that's a bug. If I change the required constraint to notnull=True, the empty record is indeed rejected, as expected. --
Re: [web2py] 2.0.6 bug? required=True not enforced
No. This was always like this. On Wednesday, 5 September 2012 15:18:05 UTC-5, Marin Pranjić wrote: I would expect that both constraints are accepted (empty string is not Null). Is the behavior different from older versions? On Wed, Sep 5, 2012 at 7:39 PM, mjm mjm...@webtothemax.com javascript:wrote: I have defined a simple table: db.define_table('hoortoestel', # algemeen Field('merk', type='string', required=True, ), Field('type', type='string', required=True, ), ... If I then try to enter a new record in appadmin and do not enter anything for the fields, the record is still accepted and entered into the (SQLite) database. I would have expected the DAL to refuse the values. If I change the constraints from required=True to notnull=True, the empty values are not accepted. Bug or oversight by me? -- --
[web2py] Web2Py : JQuery .ajax data sent not present in request.vars
Trying to make a simple ajax call from the view back to the controller. It is working, however the data I'm sending isn't coming in the request.vars if I sent the contentType=application/json. I know there is an internal ajax function, but I have my own library with these functions I'd like to use. Here is the code : http://pastie.textmate.org/4670338 Pretty sure I'm doing something silly here. Thanks. --
Re: [web2py] CentOS Web2py IOError - Permission denied
Yes you are right! disabling it fixed the problem. Can you also please point me to a direction where I can learn how to set up multiple applications running at the same time with no selinux permission issues? Thanks a lot again for the quick response. On Wednesday, September 5, 2012 8:40:02 AM UTC-5, Jonathan Lundell wrote: On 4 Sep 2012, at 9:22 PM, webtest ert...@gmail.com javascript: wrote: I am running web2py on Centos and used the fedora shell script to do the installation. It did set all my folder/files as apache:apache, did the selinux configuration and such. I have the welcome and examples applications loaded. When I run the examples application locally I get no errors (here this makes me think the DAL is set up fine and working) But when I access it online I get the internal error : unknown ticket created message. Here is the error log it generates. It looks like a permissions issue but I already verified that all files as set as apache:apache , as it is in my httpd config and the folder/files have write and read permissions. What could be the reason for this? If you're very sure about permissions, try disabling selinux, at least as an experiment. [Tue Sep 04 23:12:49 2012] [error] ERROR:web2py.cache:corrupted file /opt/web-apps/web2py/applications/examples/cache/cache.shelve, will try delete it! [Tue Sep 04 23:12:49 2012] [error] WARNING:web2py.cache:unable to delete file /opt/web-apps/web2py/applications/examples/cache/cache.shelve [Tue Sep 04 23:12:49 2012] [error] ERROR:web2py:Traceback (most recent call last): [Tue Sep 04 23:12:49 2012] [error] File /opt/web-apps/web2py/gluon/restricted.py, line 205, in restricted [Tue Sep 04 23:12:49 2012] [error] exec ccode in environment [Tue Sep 04 23:12:49 2012] [error] File /opt/web-apps/web2py/applications/examples/compiled/models/menu.py, line 63, in module [Tue Sep 04 23:12:49 2012] [error] File /opt/web-apps/web2py/gluon/dal.py, line 6320, in define_table [Tue Sep 04 23:12:49 2012] [error] polymodel=polymodel) [Tue Sep 04 23:12:49 2012] [error] File /opt/web-apps/web2py/gluon/dal.py, line 710, in create_table [Tue Sep 04 23:12:49 2012] [error] logfile = self.file_open(table._loggername, 'a') [Tue Sep 04 23:12:49 2012] [error] File /opt/web-apps/web2py/gluon/dal.py, line 545, in file_open [Tue Sep 04 23:12:49 2012] [error] fileobj = portalocker.LockedFile(filename,mode) [Tue Sep 04 23:12:49 2012] [error] File /opt/web-apps/web2py/gluon/portalocker.py, line 120, in __init__ [Tue Sep 04 23:12:49 2012] [error] self.file = open(filename,mode.replace('w','a')) [Tue Sep 04 23:12:49 2012] [error] IOError: [Errno 13] Permission denied: '/opt/web-apps/web2py/applications/examples/databases/sql.log' --
Re: [web2py] Web2Py : JQuery .ajax data sent not present in request.vars
Your URL should have the vars url: /test01/default/getContent?sourcetitle=xxx If you do not pass the vars on url you can't get them at the called controller --
Re: [web2py] Web2Py : JQuery .ajax data sent not present in request.vars
Thanks Bruno ! That worked, but now when I get the response back as JSON, JQuery throws an error saying the JSON isn't valid. The JSON seems valid to me also passes JSONLint test : {readyState:4,responseText:FIFA support India for U-17 and 2022 World Cup - Times,status:200,statusText:OK} On Wednesday, 5 September 2012 17:40:42 UTC-4, rochacbruno wrote: Your URL should have the vars url: /test01/default/getContent?sourcetitle=xxx If you do not pass the vars on url you can't get them at the called controller --
Re: [web2py] Web2Py : JQuery .ajax data sent not present in request.vars
or you call it with .json extension and use the generic json view url: /test01/default/getContent*.json*?sourceTitle=x or you do this on the return import json def getContent(): titleArg = str(request.vars.sourceTitle) print -- print -- print request.vars # Starts working if contentType in ajax request above is commented print Getting news content for : + titleArg print -- print -- #rows=db(db.NewsMaster).select(db.NewsMaster.ALL) myobj = [dict(value=x),dict(value=x), dict(value=x)] return json.dumps(myobj) On Wed, Sep 5, 2012 at 6:51 PM, Nik nikhil.kodil...@gmail.com wrote: Thanks Bruno ! That worked, but now when I get the response back as JSON, JQuery throws an error saying the JSON isn't valid. The JSON seems valid to me also passes JSONLint test : {readyState:4,responseText:FIFA support India for U-17 and 2022 World Cup - Times,status:200,statusText:OK} On Wednesday, 5 September 2012 17:40:42 UTC-4, rochacbruno wrote: Your URL should have the vars url: /test01/default/getContent?**sourcetitle=xxx If you do not pass the vars on url you can't get them at the called controller -- --
Re: [web2py] Web2Py : JQuery .ajax data sent not present in request.vars
That worked too ! You rock :) On Wednesday, 5 September 2012 17:58:16 UTC-4, rochacbruno wrote: or you call it with .json extension and use the generic json view url: /test01/default/getContent*.json*?sourceTitle=x or you do this on the return import json def getContent(): titleArg = str(request.vars.sourceTitle) print -- print -- print request.vars # Starts working if contentType in ajax request above is commented print Getting news content for : + titleArg print -- print -- #rows=db(db.NewsMaster).select(db.NewsMaster.ALL) myobj = [dict(value=x),dict(value=x), dict(value=x)] return json.dumps(myobj) On Wed, Sep 5, 2012 at 6:51 PM, Nik nikhil@gmail.com javascript:wrote: Thanks Bruno ! That worked, but now when I get the response back as JSON, JQuery throws an error saying the JSON isn't valid. The JSON seems valid to me also passes JSONLint test : {readyState:4,responseText:FIFA support India for U-17 and 2022 World Cup - Times,status:200,statusText:OK} On Wednesday, 5 September 2012 17:40:42 UTC-4, rochacbruno wrote: Your URL should have the vars url: /test01/default/getContent?**sourcetitle=xxx If you do not pass the vars on url you can't get them at the called controller -- --
Re: [web2py] Re: DB Migration (sqlite-pgsql) Problems with 1.99.7 - 2.0.6 - 2.0.7 Versions
Hi Massimo, this is: *File /opt/web-apps/web2py/gluon/dal.py in log_execute at line 1653* Code listing 1648. 1649. 1650. 1651. 1652. 1653. 1654. 1655. 1656. 1657. command = a[0] if self.db._debug: logger.debug('SQL: %s' % command) self.db._lastsql = command t0 = time.time() ret = self.cursor.execute(*a, **b) self.db._timings.append((command,time.time()-t0)) del self.db._timings[:-TIMINGSSIZE] return ret Variablesa('SELECT auth_user.id, auth_user.username, auth_u...r.id 0) ORDER BY auth_user.id LIMIT 1 OFFSET 0;',)b{}selfgluon.dal.PostgreSQLAdapter objectretundefinedself.cursorgluon.contrib.pg8000.dbapi.CursorWrapper objectself.cursor.executebound method CursorWrapper._fn of gluon.contrib.pg8000.dbapi.CursorWrapper object 2012/9/5 Massimo Di Pierro massimo.dipie...@gmail.com Did you install psycopg2? If not it is probably using pg8000. Can you please help us debug? Edit dal.py and in the function log_excecute can you print the value of the command variable? What does it print when it fails? On Wednesday, 5 September 2012 11:29:42 UTC-5, Christian Espinoza wrote: Hello, I'm in trouble with a webapp that I'have. I develop it using sqlite only for a best approach of web2py features with it. And I'm trying to migrate it to a Postgresql DB to put it on Testing phase. But It doesn't work with PostgreSQL, only work with sqlite, I'd tried with 1.99.7 - 2.0.6 - 2.0.7 Versions At 2.0.7 and 2.0.6 showme: type 'exceptions.ValueError' invalid literal for int() with base 10: 'SELECT' At Traceback (most recent call last): File /opt/web-apps/web2py/gluon/**restricted.py, line 209, in restricted exec ccode in environment File /opt/web-apps/web2py-2.0.7/**applications/sadma/models/db.**py https://172.16.1.34/admin/default/edit/sadma/models/db.py, line 236, in module if db(db.auth_user).isempty(): File /opt/web-apps/web2py/gluon/**dal.py, line 8722, in isempty return not self.select(limitby=(0,1)) File /opt/web-apps/web2py/gluon/**dal.py, line 8743, in select return adapter.select(self.query,fiel**ds,attributes) File /opt/web-apps/web2py/gluon/**dal.py, line 1583, in select return self._select_aux(sql,fields,at**tributes) File /opt/web-apps/web2py/gluon/**dal.py, line 1556, in _select_aux self.execute(sql) My Connection string: *#db = DAL('sqlite://storage.sqlite') db = DAL('postgres://user:pass@localhost/dbapp')** * *Running on Centos 6.0, external Postgresql Server with 9 version, **Python 2.6.6* * * Thanks in advance Christian. -- --
[web2py] sqlform.grid and query conditions
Basically, we are generating a SQLFORM.grid with the following code: db.pages.stores_id.default = STORE_DETAILS.id query = ((db.pages.stores_id == STORE_DETAILS.id)) form = SQLFORM.grid(query=query) return dict(form=form) This is working perfectly fine for us. However, we have noticed that if we just change the ID in the query string for the edit page, we are allowed to edit other store's entries. IE http://test.oursite.com/test/admin/pages/edit/pages/6?_signature=f8c5560743.http://test.shofty.com/shofty/admin/pages/edit/pages/6?_signature=f8c55607435864253b5f5b37a6b7109956e4a8fa .. What is the proper way to do this, then? The grid itself looks great, but just by changing the page ID in the URL, we are allowed to edit pages not belonging to us. I guess I was hoping that the query conditional would be passed to each function (add, edit, delete) but that obviously is not the case. Is multi-tenancy the solution to this issue or are we overlooking something simple? --
Re: [web2py] sqlform.grid and query conditions
You can do: if request.args(0) in ['edit', 'delete']: STORE_DETAILS.id == int(request.args(2)) or redirect(URL('default', 'wherever')) db.pages.stores_id.default = STORE_DETAILS.id query = ((db.pages.stores_id == STORE_DETAILS.id)) form = SQLFORM.grid(query=query) return dict(form=form) On Wed, Sep 5, 2012 at 9:38 PM, Kevin C ke...@techdaddies.com wrote: Basically, we are generating a SQLFORM.grid with the following code: db.pages.stores_id.default = STORE_DETAILS.id query = ((db.pages.stores_id == STORE_DETAILS.id)) form = SQLFORM.grid(query=query) return dict(form=form) This is working perfectly fine for us. However, we have noticed that if we just change the ID in the query string for the edit page, we are allowed to edit other store's entries. IE http://test.oursite.com/test/admin/pages/edit/pages/6?_signature=f8c5560743.http://test.shofty.com/shofty/admin/pages/edit/pages/6?_signature=f8c55607435864253b5f5b37a6b7109956e4a8fa .. What is the proper way to do this, then? The grid itself looks great, but just by changing the page ID in the URL, we are allowed to edit pages not belonging to us. I guess I was hoping that the query conditional would be passed to each function (add, edit, delete) but that obviously is not the case. Is multi-tenancy the solution to this issue or are we overlooking something simple? -- --
Re: [web2py] sqlform.grid and query conditions
We did something similar but it feels very hackish, considering it has to be done in every method of the admin controller. I just wanted to see if there was a better way. Thank you. Kevin Cackler Tech Daddies 501-205-1512 http://www.techdaddies.com On 9/5/2012 7:45 PM, Bruno Rocha wrote: You can do: if request.args(0) in ['edit', 'delete']: STORE_DETAILS.id == int(request.args(2)) or redirect(URL('default', 'wherever')) db.pages.stores_id.default = STORE_DETAILS.id query = ((db.pages.stores_id == STORE_DETAILS.id)) form = SQLFORM.grid(query=query) return dict(form=form) On Wed, Sep 5, 2012 at 9:38 PM, Kevin C ke...@techdaddies.com mailto:ke...@techdaddies.com wrote: Basically, we are generating a SQLFORM.grid with the following code: db.pages.stores_id.default = STORE_DETAILS.id query = ((db.pages.stores_id == STORE_DETAILS.id)) form = SQLFORM.grid(query=query) return dict(form=form) This is working perfectly fine for us. However, we have noticed that if we just change the ID in the query string for the edit page, we are allowed to edit other store's entries. IE http://test.oursite.com/test/admin/pages/edit/pages/6?_signature=f8c5560743. http://test.shofty.com/shofty/admin/pages/edit/pages/6?_signature=f8c55607435864253b5f5b37a6b7109956e4a8fa.. What is the proper way to do this, then? The grid itself looks great, but just by changing the page ID in the URL, we are allowed to edit pages not belonging to us. I guess I was hoping that the query conditional would be passed to each function (add, edit, delete) but that obviously is not the case. Is multi-tenancy the solution to this issue or are we overlooking something simple? -- -- --
Re: [web2py] compute fields do not show up in SQLFORM view form
El miércoles, 5 de septiembre de 2012 12:51:06 UTC-3, Massimo Di Pierro escribió: yes please. Did this work in 1.99.7? Ok, the current way is the same as in 1.99.7. SQLFORM output hides by default computed fields. The problem was discussed in this threads before: https://groups.google.com/d/topic/web2py/f5T_6j7F3kA/discussion https://groups.google.com/d/topic/web2py/qzVIBFs2ZGI/discussion ... Note, by default computed fields are not shown in SQLFORMs, though you can explicitly list them among the fields to be shown. Anthony ... But I belive it's not documented in book, so if there's agreement with having a visible computed field by default in forms the behavior could be changed. One reason would be to allow the user to provide a value in a form before inserting/updating the db record with a computed value. Currently calling SQLFORM( filelds=[... computed fieldname ...]) should show the field but with crud.create the computed field is hidden, even if one specifies field.writable as True --
[web2py] Re: Updated cheatsheet
Bless you for this. It helps so much with my advanced case of CRS. On Tuesday, September 4, 2012 11:12:03 AM UTC-4, Massimo Di Pierro wrote: http://web2py.com/examples/static/web2py_cheatsheet.pdf --
[web2py] Override auth.login()?
I want to override the default auth.login(), so wherever auth.login is called my customised login form appears. Here are the customisations I've made to it in my view [which works]: for label in form.elements('label'): if label[-1]!='Remember me (for 30 days)': label[_style] = display:none; email = {email: email address,} pwd = {password: password}for input in form.elements(input[type=text]): input[_placeholder] = email.get(input[_name], )for input in form.elements(input[type=password]): input[_placeholder] = pwd.get(input[_name], ) form.elements('input[type=submit]')[0][_value] = Login form.elements('input[type=submit]')[0][_class] = btn btn-large btn-primary How can I perform this override? Thanks for all suggestions, Alec Taylor --
Re: [web2py] XML Webservice
Dear derek, This is my first time useing web service .. Can you please give me a simple example of what you are talking about .. How to creat a template .. And how fo add fields .. Thank you a lot. On Sep 5, 2012 11:21 PM, Derek sp1d...@gmail.com wrote: Create a template with xmlservice.xml and add the appropriate fields. On Wednesday, September 5, 2012 12:50:28 AM UTC-7, Hassan Alnatour wrote: Dear Derek , What should i do then ?? Best Regards, On Wed, Sep 5, 2012 at 2:01 AM, Derek sp1...@gmail.com wrote: It is XML, but it doesn't have a doctype. So, when it gets to this character: ’ it fails to validate against UTF-8. It should probably be this: charset=ISO-8859-1 On Tuesday, September 4, 2012 2:15:11 AM UTC-7, Hassan Alnatour wrote: Dear ALec , when i go to the link i gave you before , i can see some XML data but i dont understand what is the viewing problem you are talking about ? and why wold a table filed interrupter Viewing as XML as long as i am returning an object that has all the date ? Best Regards, On Sun, Sep 2, 2012 at 12:47 PM, hasan alnator haln...@gardeniatelco.com wrote: Dear ALec , when i go to the link i gave you before , i can see some XML data but i dont understand what is the viewing problem you are talking about ? and why wold a table filed interrupter Viewing as XML as long as i am returning an object that has all the date ? Best Regards, On Sun, Sep 2, 2012 at 12:42 PM, Alec Taylor alec.t...@gmail.com wrote: Hmm, try lower-case 'description'. Otherwise not sure what's causing the XML viewer problem. Also nowadays JSON is prefered over XML, as it's much less verbose; thus has a much lower overhead On Sun, Sep 2, 2012 at 7:39 PM, hasan alnator haln...@gardeniatelco.com wrote: Dear Alec , What Do you mean with preprocessing ? this is my db.py : # -*- coding: utf-8 -*- # ## This scaffolding model makes your app work on Google App Engine too ## File is released under public domain and you can use without limitations # ## if SSL/HTTPS is properly configured and you want all HTTP requests to ## be redirected to HTTPS, uncomment the line below: # request.requires_https() if not request.env.web2py_runtime_gae: ## if NOT running on Google App Engine use SQLite or other DB db = DAL('sqlite://storage.sqlite') else: ## connect to Google BigTable (optional 'google:datastore://namespace') db = DAL('google:datastore') ## store sessions and tickets there session.connect(request, response, db = db) ## or store session in Memcache, Redis, etc. ## from gluon.contrib.memdb import MEMDB ## from google.appengine.api.memcache import Client ## session.connect(request, response, db = MEMDB(Client())) ## by default give a view/generic.extension to all actions from localhost ## none otherwise. a pattern can be 'controller/function.extension' response.generic_patterns = ['*'] if request.is_local else [] ## (optional) optimize handling of static files # response.optimize_css = 'concat,minify,inline' # response.optimize_js = 'concat,minify,inline' # ## Here is sample code if you need for ## - email capabilities ## - authentication (registration, login, logout, ... ) ## - authorization (role based authorization) ## - services (xml, csv, json, xmlrpc, jsonrpc, amf, rss) ## - old style crud actions ## (more options discussed in gluon/tools.py) # from gluon.tools import Auth, Crud, Service, PluginManager, prettydate auth = Auth(db, hmac_key=Auth.get_or_create_key()) crud, service, plugins = Crud(db), Service(), PluginManager() ## create all tables needed by auth if not custom tables auth.define_tables() ## configure email mail=auth.settings.mailer mail.settings.server = 'logging' or 'smtp.gmail.com:587' mail.settings.sender = 'y...@gmail.com' mail.settings.login = 'username:password' ## configure auth policy auth.settings.registration_requires_verification = False auth.settings.registration_requires_approval = False auth.settings.reset_password_requires_verification = True ## if you need to use OpenID, Facebook, MySpace, Twitter, Linkedin, etc. ## register with janrain.com, write your domain:api_key in private/janrain.key from gluon.contrib.login_methods.rpx_account import use_janrain use_janrain(auth,filename='private/janrain.key') # ## Define your tables below (or better in another model file) for example ## ## db.define_table('mytable',Field('myfield','string')) ## ## Fields can be
[web2py] Why would I use DIV classes/helpers, over an html template?
Traditionally, for html templates, I would do something like this in a template.php file (i am coming from php): *div* *Hello ?= $name ?* */div* and reading through the docs for web2py, I see the classes like DIV(), which i can then add id's, classes, and other attributes to, to be rendered. Which seems odd to me. Ive always had the mindset that I shouldnt mix html template and logic. minus things like for loops and such. and in my code, I shouldnt generate html. Mixing them, to me at least, makes it harder for designers to go into the templates to style things and change id's, classes. I also tend not to use ids/classes for structure. lately i have been using things like data attributes to help with structure or looping through things. this way if styles change and id's/classes change, functionality is not broken. So should I still think that way? Should I not use DIV and the other html helper classes in my templates? or is there a use case where I would to that. If there is, I am curious to see/hear about some use cases or examples of why I would use them in templates, or use them in controllers to generate html. or am I just thinking about them wrong somehow. if they should be used in a different way, how should I use them. Thanks. --
Re: [web2py] Re: Limit Length column
Anthony, I guess the following will apply to ALL the sqlform.grid in the app, correct ? Generally, we have multiple different sqlform.grid across the app, and each instance may have different columns (and thus possible needing different column widths) I am looking for something like maxtextlengths which can be changed per sqlform.grid instance -Mandar On Wed, Sep 5, 2012 at 8:01 PM, Anthony abasta...@gmail.com wrote: If you want to control the column widths and allow the content to wrap if necessary, you can do so with CSS (and some JS in IE). Let's say you want to set the width of the 5th column. To support IE, in Javascript do: script $(function() { $('.ie .web2py_table td:nth-child(5)').addClass('td-wrap'); }); /script Then in CSS: .web2py_table td:nth-child(5), .web2py_table td.td-wrap { min-width: 15em; max-width: 20em; white-space: normal !important; } Anthony On Wednesday, September 5, 2012 10:06:41 AM UTC-4, Mandar Vaze wrote: Using maxtextlengths optional parameter partially helps. http://web2py.com/books/**default/chapter/29/07?search=**maxtextlengthshttp://web2py.com/books/default/chapter/29/07?search=maxtextlengths I say partially because this param controls how many characters are displayed in the column (Only those many characters are sent by the server) If one has too many wide columns, result could be ugly, especially buttons in last column are now shown vertically - depending on screen size etc. I wish there was way to control the column width via web2py -Mandar On Tuesday, September 4, 2012 12:35:55 AM UTC+5:30, Ovidio Marinho wrote: how to limit the size of columns in sqlform.grid 25 40 15 1 col lenght 25 ==**= = 2 col lenght 40 3 col lenght 15 etc... Ovidio Marinho Falcao Neto Web Developer ovid...@gmail.com ovidio...@itjp.net.br ITJP - itjp.net.br 83 8826 9088 - Oi 83 9334 0266 - Claro Brasil -- --