Re: [web2py] Re: web2py Google Group
Ian Ryder i.ry...@appichar.com.au writes: Any chance of it being removed from history? You can remove it from web UI ('More message options actions'). Sincerely, Gour -- As the embodied soul continuously passes, in this body, from boyhood to youth to old age, the soul similarly passes into another body at death. A sober person is not bewildered by such a change. -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] Re: web2py Google Group
Hi, sorry - thought this was just to the group owner so wasn't supposed to be a general post, especially as it has my contact details in :) Any chance of it being removed from history? On Thursday, May 28, 2015 at 7:16:55 AM UTC+2, Ian Ryder wrote: Hi there I wonder if you could help - I've posted to the user group several times, I think my last 2 posts have never been posted. Normally the ones that have worked might take a day to arrive by which point they're down the list - the upshot is I avoid using the list. Assuming it's not something specific about my account this must be the same for others. Is there anything I can do? It's generally holding back our use of web2py as we effectively don't have access to the community and we're building a pretty big application using it. Thanks Ian -- Ian Ryder -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] Re: _before_insert / update question
Possible bug. What does your bulk_insert code look like? On Friday, May 29, 2015 at 1:32:35 AM UTC-4, Ian Ryder wrote: OK - I think I have the answer. I discovered it wasn't table-specific, it worked with this same method / table elsewhere in the app. The place it was failing was using bulk_insert. I changed to insert individually and all works fine. Bug? On Friday, May 29, 2015 at 6:39:56 AM UTC+2, Ian Ryder wrote: Hi, the key point is I'm not getting passed a dict, I'm getting passed a list. Here's a dump of what the _is_before handler gets passed: [(pydal.objects.Field object at 0x11eb9ad10, datetime.datetime(2015, 5 , 29, 6, 32, 27, 732420)), (pydal.objects.Field object at 0x1334a5150, 1L), (pydal.objects.Field object at 0x1334a5290, 8L), (pydal.objects. Field object at 0x1334a5390, 2L), (pydal.objects.Field object at 0x11c2dfcd0, 5.0), (pydal.objects.Field object at 0x1334a57d0, 14093L ), (pydal.objects.Field object at 0x1334a5b10, 'APPEAL'), (pydal. objects.Field object at 0x1334a5050, 1L), (pydal.objects.Field object at 0x1334a5410, 358001L), (pydal.objects.Field object at 0x11eb9a4d0, datetime.datetime(2015, 5, 29, 6, 32, 27, 732420)), (pydal.objects.Field object at 0x1334a53d0, 5.0), (pydal.objects.Field object at 0x1334a5690 , True), (pydal.objects.Field object at 0x1334a55d0, 1L)] I test it on a different table and it gets a dict as expected: {'query_group': 1, 'name': 'asddasdasdasdsada', 'created_date': datetime. datetime(2015, 5, 29, 6, 27, 37, 2291), 'run_order': 0, 'type': '', 'sum_description': '', 'created_by': 1L} I'll post again the definition for the one that isn't working: db.income_line_item._before_insert.append(lambda f: trigger_ili_before_insert(f)) Which is essentially the same for the one that is working: db.query._before_insert.append(lambda f: query_before_test(f)) On Thursday, May 28, 2015 at 11:10:21 PM UTC+2, Niphlod wrote: the book shows how to print every argument passed to those functions I dunno how to make the book clearer :°°°D before_insert def this_is_before_insert(some_dict): if 'last_name' in some_dict: some_dict['last_name'] = 'altering' + some_dict['last_name'] db.auth_user._before_insert.append(lambda f: this_is_before_insert(f)) db.auth_user.insert(first_name='john') 1L db.auth_user.insert(last_name='doe') 2L rtn = db(db.auth_user.id0).select(db.auth_user.first_name, db. auth_user.last_name) print str(rtn) auth_user.first_name,auth_user.last_name john, ,alteringdoe before_update ... def this_is_before_update(a_set, some_dict): if 'last_name' in some_dict: some_dict['last_name'] += 'was_updated' db.auth_user._before_update.append(lambda s,f: this_is_before_update(s,f )) db.auth_user.insert(first_name='john', last_name='doe') 1L db(db.auth_user.first_name=='john').update(last_name='white') 1 rtn = db(db.auth_user.id0).select(db.auth_user.first_name, db. auth_user.last_name) print str(rtn) auth_user.first_name,auth_user.last_name john,whitewas_updated -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [web2py] web2py 2.11.1 is OUT
This is strange. ANYWAY, a bug crept in so I reverted the posted stable version to 2.10.4 until the bug is fixed. Massimo On Friday, 29 May 2015 00:46:16 UTC-5, Gour wrote: Massimo Di Pierro writes: web2py 2.11.1 is OUT. Heh, I pulled from the master yesterday and it was still alpha. :-) Just in time for the DePy conference tomorrow. All the best promoting web2py!! Sincerely, Gour p.s. I notice that your signature contains: - https://code.google.com/p/web2py/issues/list (Report Issues) which is linking to https://github.com/web2py/web2py/issues. Time to update your sig or it's by intention? -- As the embodied soul continuously passes, in this body, from boyhood to youth to old age, the soul similarly passes into another body at death. A sober person is not bewildered by such a change. -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] register and login - extra fields
A proposal to extend the register form and the login form The issue: I want to have a register form with an extra field,* which should not be part of auth_user*. The purpose: a new user can only register if this field contrains (e.g.) some special code. This code can be checked by a validation function, set by auth.settings.register_onvalidation I have tried to change the form which is created by def user in default.py. The result was a very long code which is hard to read and which needs some additional statements for the error message. A better way would be a small modification of gluon/tools.py. And the same could be done with the login-form. We need only 6 additional lines in gluon/tools.py At the end of default_settings (line 1206) add: register_extra_fields=[], login_extra_fields=[] At the end of settings.update (line 1506) add: register_extra_fields = [], lo gin_extra_fields = [] I n def login() add after line 2561ff: if settings.remember_me_form: extra_fields = [ Field('remember_me', 'boolean', default=False, label = self.messages.label_remember_me)] else: extra_fields = [] extra_fields += self.settings.login_extra_fields In def register() add after line 2862 ff: if self.settings.register_verify_password: extra_fields = [ Field(password_two, password, requires=IS_EQUAL_TO( request.post_vars.get(passfield, None), error_message=self.messages.mismatched_password), label=current.T(Confirm Password))] else: extra_fields = [] extra_fields += self.settings.register_extra_fields How to use: Yes, it’s only a very simple check: the user has to write “VALID” into the field “extracode”. In db.py, before auth.define_tables: def validate_registercode(form): if form.vars.extracode != VALID: form.errors.extracode=T(Invalid extra code) auth.settings.register_extra_fields= [Field('extracode', label='My extracode', comment='This is the extracode') ] auth.settings.register_onvalidation=[validate_registercode] That’s all. Now we have a nice register form with an extra field labeled “My extracode”. If the use r does not know the right answer “VALID” he could not register. All css attributes are the same as in the remaining register form. Regards, Martin -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] Re: Strip Spaces
there are no functions in T-SQL accross backends that do what you ask, so you'll need to do it in python for rec in db(db.table.id 0).select(): rec.update_record(field=rec.field.strip()) On Friday, May 29, 2015 at 6:33:28 AM UTC+2, Jerry Liu wrote: Hello, all I want to update all of records of a table. Basically, what I want to update is just a string Field. I want to strip all spaces out of that Field. I have tried: db(db.table.id 0).update(field = db.table.field.strip()) But looks like Field object doesn't have a strip method. Any ideas? -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] compute field with function NOT lambda
Hello i need ta compute field, quite similar to that expesed in the book, but with a bit pre-verification before. So i need a function, not a lambda. But what is the syntax in this case? Does the function need a row as input? a need something like Field('total', *compute*=lambda r: (float(r['preco'] * r['quantidade']) But i need more process before So ewhat should be the syntax? def fun(r): process() r['preco'] * r['quantidade']) Thanks -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] Re: Strip Spaces
Yes there are, it's called the 'trim' function. It's part of SQL-92. http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt Postgres, MSSQL, MySQL, SQLite, and Oracle all have rtrim, and ltrim. I think it's widely supported and thus we should support it in DAL. It's easy enough to write a function that handles it if the database driver doesn't support it. On Friday, May 29, 2015 at 5:54:46 AM UTC-7, Niphlod wrote: there are no functions in T-SQL accross backends that do what you ask, so you'll need to do it in python for rec in db(db.table.id 0).select(): rec.update_record(field=rec.field.strip()) On Friday, May 29, 2015 at 6:33:28 AM UTC+2, Jerry Liu wrote: Hello, all I want to update all of records of a table. Basically, what I want to update is just a string Field. I want to strip all spaces out of that Field. I have tried: db(db.table.id 0).update(field = db.table.field.strip()) But looks like Field object doesn't have a strip method. Any ideas? -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] Re: Customizing registration fields for linkedin login
What don't you understand? Step 2 - Retrieve basic profile data Once you have obtained a valid access token for the user, you can use the following REST API call to retrieve basic profile data for the user: GET https://api.linkedin.com/v1/people/~?format=json sample api response { firstName: Frodo, headline: 2nd Generation Adventurer, id: 1R2RtA, lastName: Baggins, siteStandardProfileRequest: { url: https://www.linkedin.com/profile/view?id=…; }} On Friday, May 29, 2015 at 7:56:35 AM UTC-7, John Costantino wrote: Just giving this a Bump. Would really love a resolution to this one. Thanks guys. On Wednesday, May 13, 2015 at 10:28:43 AM UTC-4, John Costantino wrote: Yes, that is correct. I added extra fields using the auth.settings.extra_fields['']. So the table is able to support the extra ones I need. My issue is more so with making sure that when logging with the linkedin API. I need to be sure to get the rest of the information from the API, such as the public-url, and then map those to the correct extra fields which where set by myself in the auth.users table. On Tuesday, May 12, 2015 at 5:56:58 PM UTC-4, 黄祥 wrote: had you modified the auth_users table? ref: http://web2py.com/books/default/chapter/29/09/access-control#Customizing-Auth best regards, stifan -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] Re: Customizing registration fields for linkedin login
Just giving this a Bump. Would really love a resolution to this one. Thanks guys. On Wednesday, May 13, 2015 at 10:28:43 AM UTC-4, John Costantino wrote: Yes, that is correct. I added extra fields using the auth.settings.extra_fields['']. So the table is able to support the extra ones I need. My issue is more so with making sure that when logging with the linkedin API. I need to be sure to get the rest of the information from the API, such as the public-url, and then map those to the correct extra fields which where set by myself in the auth.users table. On Tuesday, May 12, 2015 at 5:56:58 PM UTC-4, 黄祥 wrote: had you modified the auth_users table? ref: http://web2py.com/books/default/chapter/29/09/access-control#Customizing-Auth best regards, stifan -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] Re: compute field with function NOT lambda
i've done with def func(row): and calling row['preco'] etc in it. Now the problem is that the filed is not shown in form, even if i put db.table.total.readable=True I read there there was an issue about this in the past, but how is now the situation about this? Thanks Il giorno venerdì 29 maggio 2015 18:33:10 UTC+2, goome ha scritto: Hello i need ta compute field, quite similar to that expesed in the book, but with a bit pre-verification before. So i need a function, not a lambda. But what is the syntax in this case? Does the function need a row as input? a need something like Field('total', *compute*=lambda r: (float(r['preco'] * r['quantidade']) But i need more process before So ewhat should be the syntax? def fun(r): process() r['preco'] * r['quantidade']) Thanks -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [web2py] web2py 2.11.1 is OUT
@Massimo, The web2py 2.11.1 still in the box or was released? I need to test it out with my app, that use mongodb too. I'm experiencing _id troubles, and wish that was only a minor problem with mongodb adapter in the 2.10.4 release that I was updated from the pydal issue #170. Best regards. And congratulations for the very good work in w2p and pydal. 2015-05-29 9:12 GMT-03:00 Massimo Di Pierro massimo.dipie...@gmail.com: This is strange. ANYWAY, a bug crept in so I reverted the posted stable version to 2.10.4 until the bug is fixed. Massimo On Friday, 29 May 2015 00:46:16 UTC-5, Gour wrote: Massimo Di Pierro writes: web2py 2.11.1 is OUT. Heh, I pulled from the master yesterday and it was still alpha. :-) Just in time for the DePy conference tomorrow. All the best promoting web2py!! Sincerely, Gour p.s. I notice that your signature contains: - https://code.google.com/p/web2py/issues/list (Report Issues) which is linking to https://github.com/web2py/web2py/issues. Time to update your sig or it's by intention? -- As the embodied soul continuously passes, in this body, from boyhood to youth to old age, the soul similarly passes into another body at death. A sober person is not bewildered by such a change. -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- José Ricardo Borba -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [web2py] getting type 'exceptions.IOError' [Errno 13] Permission denied over and over
On Thursday, May 28, 2015 at 9:33:28 PM UTC-7, Gene wrote: Encountered the same ticket on windows 8.1, web2py 2.9. 'Fixed' by uninstalling McAfee, no tickets thereafter. You might not have to uninstall; McAfee, AIUI, does provide the ability to exclude certain directories from scanning. This issue comes up in the Mercurial forums, too, and in general you don't want scanning (or the OS indexing) of repositories. Thanks for the confirming experience, though. /dps On Monday, September 15, 2014 at 11:22:15 PM UTC+8, Willoughby wrote: I'm late to this thread but one issue I always run into with web2py on Windows (well, anything with SQLite) are virus scanners randomly locking files. Especially if they're corporate network machines. That's another avenue you might look into. On Thursday, September 4, 2014 3:22:47 AM UTC-4, Johann Spies wrote: On 3 September 2014 23:31, JorgeH jorg...@gmail.com wrote: I discovered that by cleaning errors, cache and sessions, its work again. But now Im getting the error like every other time I test. Any hints?? Which user owns web2py/applications/your_app/models? Regards Johann -- Because experiencing your loyal love is better than life itself, my lips will praise you. (Psalm 63:3) -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] Re: Email invite users - peer review
Great idea. My webapp needs something like this. Not in bulk but I can modify it to serve my needs -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] Re: Issues with _id in MongoDB
Hum... Seems that web2py converts the hex _id of ObjectId to the Loong integer that represent that number. So, this is not an issue. I need to think again... Best regards, 2015-05-29 18:22 GMT-03:00 José Ricardo Borba jrborba...@gmail.com: Hello all, I'm experiencing some issues with web2py and MongoDB 3.0.3 _id field. With web2py 2.10.4 the _id field (ObjectId) is showed in this way: 26418130264307745716389872944 26418130264307745716389872963 . . With Ipython 3.1.0 (with [python2.7.9 or 3.4.3 and pymongo] OR mongodb shell 3.0.3) the _id field (ObjectId) is showed in this way: 555c90af47439f0958f10530 555c90af47439f0958f10543 . . I think that the last is the correct way to show the _id, because both pymongo and mongoshell showed the same. But why the web2py is not showing the correct _id? Maybe I'm doing something wrong? The last record was imported from a CSV file, and the first was inserted from web2py form (from SQLGRID). Best regards, -- José Ricardo Borba -- José Ricardo Borba -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] Re: _before_insert / update question
i face the same situation before, but because i use bulk_insert in controller install.py so that i put the conditional if on it. e.g. *models/db.py* # after_insert_purchase_detail def __after_insert_purchase_detail(f, id): db(db.dvd.id == f.dvd).update(quantity = db.dvd(f.dvd).quantity + f.quantity) # on_define_purchase_detail def on_define_purchase_detail(table): # callbacks if not 'install' in request.controller : # _after_insert table._after_insert.append(__after_insert_purchase_detail) # create table : purchase_detail db.define_table('purchase_detail', Field('purchase_no', 'reference purchase_header'), Field('dvd', 'reference dvd'), Field('quantity', 'integer'), Field('price', 'integer'), on_define = on_define_purchase_detail, format = '%(purchase_no)s') *controllers/install.py* # purchase_detail db.purchase_detail.bulk_insert([{purchase_no : 1, dvd : 1, quantity : 1, price : 15000}, {purchase_no : 2, dvd : 3, quantity : 1, price : 15000}, {purchase_no : 2, dvd : 4, quantity : 1, price : 15000}, ]) hopefully, after the bug is fixed i don't have to put the conditional if to check the controller again. best regards, stifan -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] Re: Email invite users - peer review
I've submitted a pull request under the username Peregrinius. As noted my initial code relies on register_bare, which seems to have since been removed. On Thursday, May 28, 2015 at 5:19:07 PM UTC+12, Massimo Di Pierro wrote: think this is an excellent idea. Please submit a pull request. On Wednesday, 20 May 2015 03:12:24 UTC-5, James Burke wrote: Hi, I'm looking for a peer review of some code I put together for email inviting users to join an application. I couldn't find anything suitable looking around, hopefully I didn't overlook anything! The idea is, you enter in email addresses into a form, click submit and it will send an email to the email address with an invite to your application. The email will contain a link which the user clicks to take them to a form to fill in the rest of their required details, name etc. I've tested this and it works, but I would like to know what others thoughts are and there are any improvements that could be made. Thank you! *default.py controller* def index(): form=FORM('Enter a comma separated list of emails to send invites:', BR(), INPUT(_id='emails', _value=''), INPUT(_type='submit')) if form.accepts(request,session): # send the invitations for email in form.vars.email.split(','): auth.invite_user(email=email) response.flash = 'Invitations sent' return dict(form=form) def confirm_registration(): return dict(form=auth.confirm_registration()) *gluon/tools.py* def confirm_registration( self, next=DEFAULT, onvalidation=DEFAULT, onaccept=DEFAULT, log=DEFAULT, ): Modified version of Auth.reset_password() table_user = self.table_user() request = current.request # response = current.response session = current.session if next is DEFAULT: next = self.get_vars_next() or self.settings. reset_password_next if self.settings.prevent_password_reset_attacks: key = request.vars.key if not key and len(request.args)1: key = request.args[-1] if key: session._reset_password_key = key redirect(self.url('confirm_registration')) else: key = session._reset_password_key else: key = request.vars.key or getarg(-1) try: t0 = int(key.split('-')[0]) if time.time() - t0 60 * 60 * 24: raise Exception user = table_user(reset_password_key=key) if not user: raise Exception except Exception as e: session.flash = self.messages.invalid_reset_password redirect(self.url('login', vars=dict(test=e))) redirect(next, client_side=self.settings.client_side) passfield = self.settings.password_field form = SQLFORM.factory( Field('first_name', label='First Name', required=True), Field('last_name', label='Last Name', required=True), Field('new_password', 'password', label=self.messages.new_password, requires=self.table_user()[passfield].requires), Field('new_password2', 'password', label=self.messages.verify_password, requires=[IS_EXPR( 'value==%s' % repr(request.vars.new_password), self.messages.mismatched_password)]), submit_button='Confirm Registration', hidden=dict(_next=next), formstyle=self.settings.formstyle, separator=self.settings.label_separator ) if form.accepts(request, session, hideerror=self.settings.hideerror): user.update_record( **{passfield: str(form.vars.new_password), 'first_name': str(form.vars.first_name), 'last_name': str(form.vars.last_name), 'registration_key': '', 'reset_password_key': ''}) session.flash = self.messages.password_changed if self.settings.login_after_password_change: self.login_user(user) redirect(next, client_side=self.settings.client_side) return form def email_registration(self, user): Modified version of Auth.email_reset_password() import ... -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups
[web2py] Select all fields with length 0?
db((db.table.field1.id0)(db.table.field2.length0)).select() This still returns the whole field. I'm thinking the length takes the length of the entire field. How can I bring back all records that aren't empty for a field For example db.table.field2 row1: has information row2: empty row3: has information in my query I only want to return row 1 3. I'm sure there is an easy way to do this? -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] Re: Select all fields with length 0?
Sigh should have thought a little more before posting. Sorry about this This works: db((db.table.field1.id0)(db.table.field2!='')).select() On Friday, May 29, 2015 at 6:19:44 PM UTC-4, LoveWeb2py wrote: db((db.table.field1.id0)(db.table.field2.length0)).select() This still returns the whole field. I'm thinking the length takes the length of the entire field. How can I bring back all records that aren't empty for a field For example db.table.field2 row1: has information row2: empty row3: has information in my query I only want to return row 1 3. I'm sure there is an easy way to do this? -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] Re: Issues with _id in MongoDB
Closing with success If more people need to import data from CSV files and need to reference other collections in MongoDB, just prepare the file in the way described below (recipe). In a separate file (py) do this - search your term in MongoDB collection of your choice; - convert the _id in int from hex [ like int('deadbeef',16) ]; - convert the int in str; - save your csv with this string (shoul be the Looong integer above); - import the file! This is the code I've used to do this. https://gist.github.com/jrborbars/63a82486bdddfc13e365 Best regards, 2015-05-29 22:12 GMT-03:00 José Ricardo Borba jrborba...@gmail.com: Hum... Seems that web2py converts the hex _id of ObjectId to the Loong integer that represent that number. So, this is not an issue. I need to think again... Best regards, 2015-05-29 18:22 GMT-03:00 José Ricardo Borba jrborba...@gmail.com: Hello all, I'm experiencing some issues with web2py and MongoDB 3.0.3 _id field. With web2py 2.10.4 the _id field (ObjectId) is showed in this way: 26418130264307745716389872944 26418130264307745716389872963 . . With Ipython 3.1.0 (with [python2.7.9 or 3.4.3 and pymongo] OR mongodb shell 3.0.3) the _id field (ObjectId) is showed in this way: 555c90af47439f0958f10530 555c90af47439f0958f10543 . . I think that the last is the correct way to show the _id, because both pymongo and mongoshell showed the same. But why the web2py is not showing the correct _id? Maybe I'm doing something wrong? The last record was imported from a CSV file, and the first was inserted from web2py form (from SQLGRID). Best regards, -- José Ricardo Borba -- José Ricardo Borba -- José Ricardo Borba -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] Re: compute field with function NOT lambda
You need to set the writable attribute to True for forms. -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] Re: _before_insert / update question
It was this: new_ilis = [] ... new_ili = { 'income': this_rg.template_income, 'income_coding': rgli.income_coding, 'amount_item': rgli.amount_item, 'quantity': rgli.quantity, 'income_source': rgli.income_source, 'source_agency': rgli.source_agency, 'source_type': rgli.source_type } new_ilis.append(new_ili) ... db.income_line_item.bulk_insert(new_ilis) On Friday, May 29, 2015 at 1:43:37 PM UTC+2, Anthony wrote: Possible bug. What does your bulk_insert code look like? On Friday, May 29, 2015 at 1:32:35 AM UTC-4, Ian Ryder wrote: OK - I think I have the answer. I discovered it wasn't table-specific, it worked with this same method / table elsewhere in the app. The place it was failing was using bulk_insert. I changed to insert individually and all works fine. Bug? On Friday, May 29, 2015 at 6:39:56 AM UTC+2, Ian Ryder wrote: Hi, the key point is I'm not getting passed a dict, I'm getting passed a list. Here's a dump of what the _is_before handler gets passed: [(pydal.objects.Field object at 0x11eb9ad10, datetime.datetime(2015, 5, 29, 6, 32, 27, 732420)), (pydal.objects.Field object at 0x1334a5150 , 1L), (pydal.objects.Field object at 0x1334a5290, 8L), (pydal. objects.Field object at 0x1334a5390, 2L), (pydal.objects.Field object at 0x11c2dfcd0, 5.0), (pydal.objects.Field object at 0x1334a57d0, 14093L), (pydal.objects.Field object at 0x1334a5b10, 'APPEAL'), ( pydal.objects.Field object at 0x1334a5050, 1L), (pydal.objects.Field object at 0x1334a5410, 358001L), (pydal.objects.Field object at 0x11eb9a4d0, datetime.datetime(2015, 5, 29, 6, 32, 27, 732420)), ( pydal.objects.Field object at 0x1334a53d0, 5.0), (pydal.objects.Field object at 0x1334a5690, True), (pydal.objects.Field object at 0x1334a55d0, 1L)] I test it on a different table and it gets a dict as expected: {'query_group': 1, 'name': 'asddasdasdasdsada', 'created_date': datetime .datetime(2015, 5, 29, 6, 27, 37, 2291), 'run_order': 0, 'type': '', 'sum_description': '', 'created_by': 1L} I'll post again the definition for the one that isn't working: db.income_line_item._before_insert.append(lambda f: trigger_ili_before_insert(f)) Which is essentially the same for the one that is working: db.query._before_insert.append(lambda f: query_before_test(f)) On Thursday, May 28, 2015 at 11:10:21 PM UTC+2, Niphlod wrote: the book shows how to print every argument passed to those functions I dunno how to make the book clearer :°°°D before_insert def this_is_before_insert(some_dict): if 'last_name' in some_dict: some_dict['last_name'] = 'altering' + some_dict['last_name'] db.auth_user._before_insert.append(lambda f: this_is_before_insert(f)) db.auth_user.insert(first_name='john') 1L db.auth_user.insert(last_name='doe') 2L rtn = db(db.auth_user.id0).select(db.auth_user.first_name, db. auth_user.last_name) print str(rtn) auth_user.first_name,auth_user.last_name john, ,alteringdoe before_update ... def this_is_before_update(a_set, some_dict): if 'last_name' in some_dict: some_dict['last_name'] += 'was_updated' db.auth_user._before_update.append(lambda s,f: this_is_before_update(s, f)) db.auth_user.insert(first_name='john', last_name='doe') 1L db(db.auth_user.first_name=='john').update(last_name='white') 1 rtn = db(db.auth_user.id0).select(db.auth_user.first_name, db. auth_user.last_name) print str(rtn) auth_user.first_name,auth_user.last_name john,whitewas_updated -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] Re: _before_insert / update question
It was this: new_ilis = [] ... new_ili = { 'income': this_rg.template_income, 'income_coding': rgli.income_coding, 'amount_item': rgli.amount_item, 'quantity': rgli.quantity, 'income_source': rgli.income_source, 'source_agency': rgli.source_agency, 'source_type': rgli.source_type } new_ilis.append(new_ili) ... db.income_line_item.bulk_insert(new_ilis) On Friday, May 29, 2015 at 1:43:37 PM UTC+2, Anthony wrote: Possible bug. What does your bulk_insert code look like? On Friday, May 29, 2015 at 1:32:35 AM UTC-4, Ian Ryder wrote: OK - I think I have the answer. I discovered it wasn't table-specific, it worked with this same method / table elsewhere in the app. The place it was failing was using bulk_insert. I changed to insert individually and all works fine. Bug? On Friday, May 29, 2015 at 6:39:56 AM UTC+2, Ian Ryder wrote: Hi, the key point is I'm not getting passed a dict, I'm getting passed a list. Here's a dump of what the _is_before handler gets passed: [(pydal.objects.Field object at 0x11eb9ad10, datetime.datetime(2015, 5, 29, 6, 32, 27, 732420)), (pydal.objects.Field object at 0x1334a5150 , 1L), (pydal.objects.Field object at 0x1334a5290, 8L), (pydal. objects.Field object at 0x1334a5390, 2L), (pydal.objects.Field object at 0x11c2dfcd0, 5.0), (pydal.objects.Field object at 0x1334a57d0, 14093L), (pydal.objects.Field object at 0x1334a5b10, 'APPEAL'), ( pydal.objects.Field object at 0x1334a5050, 1L), (pydal.objects.Field object at 0x1334a5410, 358001L), (pydal.objects.Field object at 0x11eb9a4d0, datetime.datetime(2015, 5, 29, 6, 32, 27, 732420)), ( pydal.objects.Field object at 0x1334a53d0, 5.0), (pydal.objects.Field object at 0x1334a5690, True), (pydal.objects.Field object at 0x1334a55d0, 1L)] I test it on a different table and it gets a dict as expected: {'query_group': 1, 'name': 'asddasdasdasdsada', 'created_date': datetime .datetime(2015, 5, 29, 6, 27, 37, 2291), 'run_order': 0, 'type': '', 'sum_description': '', 'created_by': 1L} I'll post again the definition for the one that isn't working: db.income_line_item._before_insert.append(lambda f: trigger_ili_before_insert(f)) Which is essentially the same for the one that is working: db.query._before_insert.append(lambda f: query_before_test(f)) On Thursday, May 28, 2015 at 11:10:21 PM UTC+2, Niphlod wrote: the book shows how to print every argument passed to those functions I dunno how to make the book clearer :°°°D before_insert def this_is_before_insert(some_dict): if 'last_name' in some_dict: some_dict['last_name'] = 'altering' + some_dict['last_name'] db.auth_user._before_insert.append(lambda f: this_is_before_insert(f)) db.auth_user.insert(first_name='john') 1L db.auth_user.insert(last_name='doe') 2L rtn = db(db.auth_user.id0).select(db.auth_user.first_name, db. auth_user.last_name) print str(rtn) auth_user.first_name,auth_user.last_name john, ,alteringdoe before_update ... def this_is_before_update(a_set, some_dict): if 'last_name' in some_dict: some_dict['last_name'] += 'was_updated' db.auth_user._before_update.append(lambda s,f: this_is_before_update(s, f)) db.auth_user.insert(first_name='john', last_name='doe') 1L db(db.auth_user.first_name=='john').update(last_name='white') 1 rtn = db(db.auth_user.id0).select(db.auth_user.first_name, db. auth_user.last_name) print str(rtn) auth_user.first_name,auth_user.last_name john,whitewas_updated -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [web2py] web2py 2.11.1 is OUT
More I learn other framework more I appreciate web2py. Massimo truly deserves a gold medal if not a nobel prize. On Friday, May 29, 2015 at 2:31:42 PM UTC-4, José Borba wrote: @Massimo, The web2py 2.11.1 still in the box or was released? I need to test it out with my app, that use mongodb too. I'm experiencing _id troubles, and wish that was only a minor problem with mongodb adapter in the 2.10.4 release that I was updated from the pydal issue #170. Best regards. And congratulations for the very good work in w2p and pydal. 2015-05-29 9:12 GMT-03:00 Massimo Di Pierro massimo@gmail.com javascript:: This is strange. ANYWAY, a bug crept in so I reverted the posted stable version to 2.10.4 until the bug is fixed. Massimo On Friday, 29 May 2015 00:46:16 UTC-5, Gour wrote: Massimo Di Pierro writes: web2py 2.11.1 is OUT. Heh, I pulled from the master yesterday and it was still alpha. :-) Just in time for the DePy conference tomorrow. All the best promoting web2py!! Sincerely, Gour p.s. I notice that your signature contains: - https://code.google.com/p/web2py/issues/list (Report Issues) which is linking to https://github.com/web2py/web2py/issues. Time to update your sig or it's by intention? -- As the embodied soul continuously passes, in this body, from boyhood to youth to old age, the soul similarly passes into another body at death. A sober person is not bewildered by such a change. -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+un...@googlegroups.com javascript:. For more options, visit https://groups.google.com/d/optout. -- José Ricardo Borba -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] Re: compute field with function NOT lambda
Il giorno venerdì 29 maggio 2015 21:40:27 UTC+2, Anthony ha scritto: You need to set the writable attribute to True for forms. i put legacy_db.ordinipo.total.readable = True in the model (db.py). Should i put it ont the form too? In this case, how? Thanks -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] Issues with _id in MongoDB
Hello all, I'm experiencing some issues with web2py and MongoDB 3.0.3 _id field. With web2py 2.10.4 the _id field (ObjectId) is showed in this way: 26418130264307745716389872944 26418130264307745716389872963 . . With Ipython 3.1.0 (with [python2.7.9 or 3.4.3 and pymongo] OR mongodb shell 3.0.3) the _id field (ObjectId) is showed in this way: 555c90af47439f0958f10530 555c90af47439f0958f10543 . . I think that the last is the correct way to show the _id, because both pymongo and mongoshell showed the same. But why the web2py is not showing the correct _id? Maybe I'm doing something wrong? The last record was imported from a CSV file, and the first was inserted from web2py form (from SQLGRID). Best regards, -- José Ricardo Borba -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] Re: compute field with function NOT lambda
writable, not readable. On Friday, May 29, 2015 at 5:11:39 PM UTC-4, goome wrote: Il giorno venerdì 29 maggio 2015 21:40:27 UTC+2, Anthony ha scritto: You need to set the writable attribute to True for forms. i put legacy_db.ordinipo.total.readable = True in the model (db.py). Should i put it ont the form too? In this case, how? Thanks -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] Re: _before_insert / update question
Yes, this is a bug in bulk_insert -- it calls the _listify method *before* running the _before_insert callbacks instead of after (_listify changes the format from a dictionary to a list of (field, value) tuples). If you don't mind, please file a pydal github issue and reference this post. Anthony On Friday, May 29, 2015 at 3:21:33 PM UTC-4, Ian Ryder wrote: It was this: new_ilis = [] ... new_ili = { 'income': this_rg.template_income, 'income_coding': rgli.income_coding, 'amount_item': rgli.amount_item, 'quantity': rgli.quantity, 'income_source': rgli.income_source, 'source_agency': rgli.source_agency, 'source_type': rgli.source_type } new_ilis.append(new_ili) ... db.income_line_item.bulk_insert(new_ilis) On Friday, May 29, 2015 at 1:43:37 PM UTC+2, Anthony wrote: Possible bug. What does your bulk_insert code look like? On Friday, May 29, 2015 at 1:32:35 AM UTC-4, Ian Ryder wrote: OK - I think I have the answer. I discovered it wasn't table-specific, it worked with this same method / table elsewhere in the app. The place it was failing was using bulk_insert. I changed to insert individually and all works fine. Bug? On Friday, May 29, 2015 at 6:39:56 AM UTC+2, Ian Ryder wrote: Hi, the key point is I'm not getting passed a dict, I'm getting passed a list. Here's a dump of what the _is_before handler gets passed: [(pydal.objects.Field object at 0x11eb9ad10, datetime.datetime(2015, 5, 29, 6, 32, 27, 732420)), (pydal.objects.Field object at 0x1334a5150 , 1L), (pydal.objects.Field object at 0x1334a5290, 8L), (pydal. objects.Field object at 0x1334a5390, 2L), (pydal.objects.Field object at 0x11c2dfcd0, 5.0), (pydal.objects.Field object at 0x1334a57d0, 14093L), (pydal.objects.Field object at 0x1334a5b10, 'APPEAL'), ( pydal.objects.Field object at 0x1334a5050, 1L), (pydal.objects.Field object at 0x1334a5410, 358001L), (pydal.objects.Field object at 0x11eb9a4d0, datetime.datetime(2015, 5, 29, 6, 32, 27, 732420)), ( pydal.objects.Field object at 0x1334a53d0, 5.0), (pydal.objects.Field object at 0x1334a5690, True), (pydal.objects.Field object at 0x1334a55d0, 1L)] I test it on a different table and it gets a dict as expected: {'query_group': 1, 'name': 'asddasdasdasdsada', 'created_date': datetime.datetime(2015, 5, 29, 6, 27, 37, 2291), 'run_order': 0, 'type' : '', 'sum_description': '', 'created_by': 1L} I'll post again the definition for the one that isn't working: db.income_line_item._before_insert.append(lambda f: trigger_ili_before_insert(f)) Which is essentially the same for the one that is working: db.query._before_insert.append(lambda f: query_before_test(f)) On Thursday, May 28, 2015 at 11:10:21 PM UTC+2, Niphlod wrote: the book shows how to print every argument passed to those functions I dunno how to make the book clearer :°°°D before_insert def this_is_before_insert(some_dict): if 'last_name' in some_dict: some_dict['last_name'] = 'altering' + some_dict['last_name'] db.auth_user._before_insert.append(lambda f: this_is_before_insert(f)) db.auth_user.insert(first_name='john') 1L db.auth_user.insert(last_name='doe') 2L rtn = db(db.auth_user.id0).select(db.auth_user.first_name, db. auth_user.last_name) print str(rtn) auth_user.first_name,auth_user.last_name john, ,alteringdoe before_update ... def this_is_before_update(a_set, some_dict): if 'last_name' in some_dict: some_dict['last_name'] += 'was_updated' db.auth_user._before_update.append(lambda s,f: this_is_before_update(s ,f)) db.auth_user.insert(first_name='john', last_name='doe') 1L db(db.auth_user.first_name=='john').update(last_name='white') 1 rtn = db(db.auth_user.id0).select(db.auth_user.first_name, db. auth_user.last_name) print str(rtn) auth_user.first_name,auth_user.last_name john,whitewas_updated -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups web2py-users group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.