[web2py] auth.settings.login_onaccept and request.vars_next

2014-10-31 Thread Annet
I have the follwoing auth settings:


auth.settings.login_next = URL('default', 'index')

auth.settings.login_onaccept = lambda form: on_login()

When the user visits:

www.domain.com/my/group/confirm_connect/8/3

without being logged in he is redirected to:

www.domain.com/my/default/user/login

after the user logs in he is redirect to

www.domain.com/my/default/index not to 
www.domain.com/my/group/confirm_connect/8/3

I thought request.vars_next would override auth.settings.login_next = 
URL('default', 'index')
but apparently auth.settings.login_onaccept = lambda form: on_login() 
interferes with
that behavior.

Is there a fix to this issue?


Kind regards,

Annet

-- 
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] Minor suggestion for web editor

2014-10-31 Thread António Ramos
Hello i find myself a lot of times using the web editor for minor
corrections

There is already the

"Exposes: " line above the code but does not allow to follow directly to
editing the controller.

Is is asking too much for this litle improvement?

I have to scrooll hundreds of lines looking for my code to edit it.

Regards
António

-- 
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: Minor suggestion for web editor

2014-10-31 Thread Paolo Valleri
The "expose: controller_method_1, controller_method_2 ..." line is supposed 
to contain shortcuts that open a new tab and call the method controller you 
clicked.
I'm not sure I understood what you aske; are you interested in changing the 
current behavior so when you click the controller name, you jump directly 
to the line where the method is defined?

Paolo

Il giorno venerdì 31 ottobre 2014 12:38:27 UTC+1, Ramos ha scritto:
>
> Hello i find myself a lot of times using the web editor for minor 
> corrections
>
> There is already the 
>
> "Exposes: " line above the code but does not allow to follow directly to 
> editing the controller.
>
> Is is asking too much for this litle improvement?
>
> I have to scrooll hundreds of lines looking for my code to edit it.
>
> Regards
> António
>
>

-- 
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] function 'GEOSversion' not found

2014-10-31 Thread Raouf Mir
i am gettting this error.
 function 'GEOSversion' not found

-- 
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] Forcing download of generated PDF

2014-10-31 Thread Jason Solack
Hello everyone, i'm generating a PDF using pdfkit and i'd like my function 
to force the download of the pdf file i'm making.

Here's some simple code demonstrating the PDF being made in memory:

def make_pdf():
import pdfkit
pdf = pdfkit.from_string("test", False)
return pdf


Ideally i would like to have an "export" button on my page and have that 
function called and then download the PDF i have made.

Thank you in advance!

Jason

-- 
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] Unit Testing

2014-10-31 Thread Ben Olivas
What do people use to perform unit testing in web2py?

-- 
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] if else if in views

2014-10-31 Thread Sriram Gudimella
Why does this ..

{{for i in range(0,3):}}

{{if i==0:}}

Email :


{{=form[i]}}



{{else if i==1:}}


Passkey :


{{=form[1]}}


{{else :}} 




{{=form[2]}}


{{pass}}
{{pass}}

translate to

for i in range(0,3):
response 
.write('\n\t\n\t', 
escape=False)
if i==0:
response 
.write('\n\t\t\n\t\tEmail
 :\n\t\t\n\t\t\n\t\t', escape=False)
response 
.write(form[i])
response 
.write('\n\t\t\n\t\t\n\t\n\t',
 escape=False)
else if i==1:
response 
.write('\n\t\n\t\t\n\t\tPasskey
 :\n\t\t\n\t\t\n\t\t', escape=False)
response 
.write(form[1])
response 
.write('\n\t\t\n\t\n\t',
 escape=False)
else :
response 
.write('\n\t\n\t\t\n\t\t\n\t\t\n\t\t',
 escape=False)
response 
.write(form[2])
response 
.write('\n\t\t\n\t\n\t',
 escape=False)
pass
response 
.write('\n\t', 
escape=False)
pass


-- 
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] Forking/multiprocessing bug triggered by Web2Py launch directory

2014-10-31 Thread Roshan Mathews
Hi,

I have a weird bug that seems to be triggered when using the multiprocessing
module, if web2py is launched from another directory.

I've tried to isolate the issue.  To reproduce the issue, take a clean
web2py source tarball, and make the following changes:

1. to the end of *applications/welcome/controllers/default.py* add the
lines:
import alpha
def bravo():
return alpha.charlie()

2. create a new file *applications\welcome\modules\alpha.py* with the
following content
from multiprocessing import Process, Manager

def delta(output):
output.append('Hello, world!')

def charlie():
output = Manager().list()
p = Process(target=delta, args=(output,))
p.start()
p.join()
return output[0]

3. run it normally,
d:\code\temp\web2py>python web2py.py
... hit *http://127.0.0.1:8000/welcome/default/bravo
* ... everything works

4. change the current working directory, and relaunch
d:\code\temp\web2py>cd ..
d:\code\temp>python web2py\web2py.py
   and you get an error.  An unhelpful ticket, but the console has the
following traceback:
Traceback (most recent call last):
  File "", line 1, in 
  File "D:\Python27\lib\multiprocessing\forking.py", line 380, in main
prepare(preparation_data)
  File "D:\Python27\lib\multiprocessing\forking.py", line 489, in prepare
file, path_name, etc = imp.find_module(main_name, dirs)
ImportError: No module named web2py


If it helps, I put a print statement before File "
*D:\Python27\lib\multiprocessing\forking.py*", line 489, and it printed out:
['d:\\code\\temp\\web2py\\web2py']

Something is causing the path to add the directory web2py twice!

If I run the code from one directory above that:
d:\code\temp>cd ..
d:\code>python temp\web2py\web2py.py
then the following is printed:
['d:\\code\\temp\\web2py\\temp\\web2py']

Again the path is repeated twice.

Can anyone help me understand what is causing this issue?  What is a
potential fix?

If it helps, the real bug got triggered when running web2py behind Apache
on Windows (modwsgi), since the wsgi script was launched from some random
Apache directory.

Regards,
Roshan Mathews

-- 
http://about.me/rosh

-- 
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] Re: Web Editor Blank Screen

2014-10-31 Thread Trevor Strauss
Thanks to whoever denied my last question. Here it is...plus broke
something today which allow me to view the file but have no idea what
broke.  picture attached of style change ... someone must know?

The other missing item is the create button in the files toggle slide
outdoes this give anyone additional ideas?

On Tue, Sep 30, 2014 at 2:36 PM, Trevor Strauss 
wrote:

> The other missing item is the create button in the files toggle slide
> outdoes this give anyone additional ideas?
>
> On Tue, Sep 30, 2014 at 1:56 PM, Trevor Strauss 
> wrote:
>
>> All files have the same ownership...other thoughts?
>>
>> On Fri, Sep 26, 2014 at 8:27 AM, Trevor Strauss > > wrote:
>>
>>> Hi, upgraded through the admin console.  will check the user/file
>>> ownership but but think I recall them being the same when I checked file
>>> permissions.  Thanks for the help
>>>
>>> On Wed, Sep 24, 2014 at 6:16 PM, Leonel Câmara 
>>> wrote:
>>>
 How did you upgrade web2py? Is the nginx's user the same as the files
 in the web2py folder?

 --
 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 a topic in the
 Google Groups "web2py-users" group.
 To unsubscribe from this topic, visit
 https://groups.google.com/d/topic/web2py/PV8UHqc3AW4/unsubscribe.
 To unsubscribe from this group and all its topics, send an email to
 web2py+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/optout.

>>>
>>>
>>
>

-- 
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: SQLFORM. Insert field to DB from calculation (not from form)

2014-10-31 Thread Dmitry Vlasov
Solve a problem by myself. Simply put additional code with callback call 
before in line 428.

четверг, 23 октября 2014 г., 14:20:25 UTC+4 пользователь Dmitry Vlasov 
написал:
>
> Hi folks,
>
> I'm trying to insert additional field to DB, but it cannot be obtain from 
> SQLFORM.
> I use SOLIDGRID plugin 
> http://dev.s-cubism.com/plugin_solidgrid?_signature=868375a5ca48f87805d4366b05a2df678637611e
>
> For my purposes I define a table
>
> db.define_table('r_users',
> db.Field('username', 'string', requires=IS_NOT_EMPTY(), 
> length=128, required=True),
> db.Field('registered', 'boolean', required=True,
>  default=False),
> db.Field('email', 'string', requires = 
> IS_EMAIL(error_message='invalid email!'),
>  length=64, required=True),
> db.Field('password', 'string', requires=IS_NOT_EMPTY(), 
> length=255, required=True),
> db.Field('ip', 'string', requires = IS_IPV4(), 
> required=False, default='127.0.0.1'),
> db.Field('modified_on', 'datetime', required=True),
> db.Field('captcha_url', 'string', length=255, 
> required=True),
> migrate='r_users.table', fake_migrate=fake_migrate)
>
>
> and add to plugin code invalidation method to calculate field that I 
> cannot obtain from form (add to line 298):
>
> def __onvalidation(form):
> rs = self.callback(request.post_vars)
> print request.post_vars
> if rs.startswith('http'):
> request.post_vars['captcha_url'] = rs
>
> and assign this in the line 429
>
> create_form = SOLIDFORM(virtualtable or table,
> fields=create if type(create) in (list, tuple) 
> else None,
> showid=showid,
> _class='web2py_form',
> submit_button=T('Create'),
> ).process(  # next=referrer, for web2py-bug
>   *onvalidation=__onvalidation,*
>   onsuccess=oncreate,
>   formname=formname)
>
> This method added captcha_url field to request.post_vars successfully. But 
> in DB there is no value.
>
>
> This is the common problem, not only using this plug-in. I cannot do this 
> trick while using SQLFORM only, without plug-in.
> What I'm doing wrong? 
>
> 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] Asynchronous Background Processes

2014-10-31 Thread Josh L
I'm trying to solve a business problem where I need to cache many images, 
around 20 at a time from a third party website on my server and then serve 
those to a client. A key requirement is that they be made available as 
quickly as possible, so for this reason I started building a function in 
Web2Py with the python multiprocessing module. I used the Process and Lock 
functions from this and got it to work fine in the web2py command line 
environment. Essentially it downloads all 20 images simultaneously, stores 
them to disk, and updates my DB with their location. However, when I call 
the function from my controller after a web request, I get lots of errors 
such as this one:

(Unexpected response msg 
> )


I know spawning processes is frowned upon in Web2py, so I also tried the 
Scheduler. While I could get that to work, I found the delay waiting for 
the heartbeat to cycle around to be a hindrance - even 1 second is too long 
to wait to start the caching process. The only way I have been able to get 
it to work is to download one file after the other with urllib, but I 
really need to be able to grab them all simulatenously, and launch the 
processes that grab them instantaneously. Is there a solution to this 
problem using Web2py?

-- 
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] download an in memory PDF generated by pdfkit

2014-10-31 Thread Jason Solack
Hello, i have a PDF file i have generated and i'd like to have users 
download when clicking an 'export' button on the page.

i have tried this:

import pdfkit
pdf = pdfkit.from_string("test", False)
return response.stream(pdf, attachment=True, filename="whatever.pdf")


and it doesn't work... any help on how i might do this?

side note when i post my questions don't show up many times, or if they 
do they take a long time to show up.  Any insight on that would be 
appreciated!

Jason

-- 
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] Uploading of file is not working.

2014-10-31 Thread Nurendra Choudhary
Hi,
My db.py is:

 Field 
('Research_Statement','upload'),
Field 
('Teaching_Statement','upload'),
Field 
('Relevant_Research_Paper_1','upload'),
Field 
('Relevant_Research_Paper_2','upload'),
Field 
('Relevant_Research_Paper_3','upload'),
Field 
('Recommendation_Name_1','string'),
Field 
('Recommendation_Email_1','string'),
Field 
('Recommendation_Name_2','string'),

I use this table to create normal SQLFORM by using form=SQLFORM(db.table_name).
The problem is that I am able to browse and fill the field and the form also 
passes without any error 
but the file is not uploaded to the database. All the other fields are 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] Deploying web2py-based service along with no-web2py main site

2014-10-31 Thread Dmitry Vlasov
Hi, web2py users,

anybody know, is there a way to deploy service, written with web2py in a 
such a way:

1) we have a site, xxx.com, for example. The site isn't web2py based. It is 
accessible from internet and shouldn't be touched.

2) the main aim is to access web2py service requesting 

subdomain.xxx.com

In other words, how can I route requests to this subdomain to web2py 
service?

Main site uses Apache. Should I configure Apache, or I can use Rocket for 
these types of tasks?

I will be very appreciated for advices.

-- 
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: janrain implementation

2014-10-31 Thread marylou
According to janrain, the web2py built in code for using janrain uses a 
deprecated method of displaying their login widget. 
Has anyone been able to recently integrate janrain in a web2py application? 
If so, 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] How to create a dual purpose login?

2014-10-31 Thread Luis Ramos
Hi guys, the website I'm programming has to parts, one for the "provider" 
and one for the "client". Is it possible to have just one login box for 
both? 
The main goal is that everybody logs in in the same page, then if is a 
client, take it to the client dashboard, if is a provider, take it to the 
provider dashboard.

-- 
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] Pack Custom, Failing

2014-10-31 Thread James O' Driscoll
All,

I am trying to use Pack Custom option to make a slice.

When I click the Pack Custom, I can see the tree file structure for a split 
second, then it disappears.

I am using source distribution and I have used used the latest version to 
test.

Any help would be great.

Regards,

James

-- 
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] image blog

2014-10-31 Thread Ken Archer
Hi, 
I am a newbie to web2py. I am going through the manual; at the 'image blog'.
Having entered the code, I get the following error when I click database 
administration.

I would greatly appreciate if assistance can be rendered in this regard.

('DAL' object has no attribute 'image_id')

-- 
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] P3P headers in redirects

2014-10-31 Thread Vlada Ćalić
Hello, 

I have a very strange problem which I'm not able to solve, somebody may be 
able to help.

I'm building a web app which needs to run embedded in an iframe of a 
company web. It works in normal browsers but not in IE. Of course, it's 
"Privacy policy" that prevents it from working. 

I found the suitable set of switches that I'm putting in a P3P header, but 
the trouble is: if I'm adding them using response.headers("P3P: CP='...') 
it only works on normal reposnses. And I have a lot of redirects in the 
app, and those headers are not sent when doing redirect. And when I don't 
sent P3P in the header, IE drop the session cookie and app stop working 
correctly.

Is there any solution?

-- 
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] Re: Minor suggestion for web editor

2014-10-31 Thread António Ramos
i dont want to change current behaviour
just would like to see added a feature to edit the code of the controller
so i dont have to scroll down until i find it



2014-10-31 13:48 GMT+00:00 Paolo Valleri :

> The "expose: controller_method_1, controller_method_2 ..." line is
> supposed to contain shortcuts that open a new tab and call the method
> controller you clicked.
> I'm not sure I understood what you aske; are you interested in changing
> the current behavior so when you click the controller name, you jump
> directly to the line where the method is defined?
>
> Paolo
>
> Il giorno venerdì 31 ottobre 2014 12:38:27 UTC+1, Ramos ha scritto:
>
>> Hello i find myself a lot of times using the web editor for minor
>> corrections
>>
>> There is already the
>>
>> "Exposes: " line above the code but does not allow to follow directly to
>> editing the controller.
>>
>> Is is asking too much for this litle improvement?
>>
>> I have to scrooll hundreds of lines looking for my code to edit it.
>>
>> Regards
>> António
>>
>>  --
> 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.
>

-- 
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] if else if in views

2014-10-31 Thread Marin Pranjić
Why don't you use elif?

On Wed, Oct 29, 2014 at 6:23 PM, Sriram Gudimella <
sriramsgudime...@gmail.com> wrote:

> Why does this ..
> 
> {{for i in range(0,3):}}
> 
> {{if i==0:}}
> 
> Email :
> 
> 
> {{=form[i]}}
> 
> 
> 
> {{else if i==1:}}
> 
> 
> Passkey :
> 
> 
> {{=form[1]}}
> 
> 
> {{else :}}
> 
> 
> 
> 
> {{=form[2]}}
> 
> 
> {{pass}}
> {{pass}}
> 
> translate to
>
> for i in range(0,3):
> response 
> .write('\n\t\n\t', 
> escape=False)
> if i==0:
> response 
> .write('\n\t\t\n\t\tEmail
>  :\n\t\t\n\t\t\n\t\t', escape=False)
> response 
> .write(form[i])
> response 
> .write('\n\t\t\n\t\t\n\t\n\t',
>  escape=False)
> else if i==1:
> response 
> .write('\n\t\n\t\t\n\t\tPasskey
>  :\n\t\t\n\t\t\n\t\t', escape=False)
> response 
> .write(form[1])
> response 
> .write('\n\t\t\n\t\n\t',
>  escape=False)
> else :
> response 
> .write('\n\t\n\t\t\n\t\t\n\t\t\n\t\t',
>  escape=False)
> response 
> .write(form[2])
> response 
> .write('\n\t\t\n\t\n\t',
>  escape=False)
> pass
> response 
> .write('\n\t', 
> escape=False)
> pass
>
>
>  --
> 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.
>

-- 
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] Re: Web Editor Blank Screen

2014-10-31 Thread Paolo Valleri
something has not been loaded correctly, can you check the chrome developer 
console?

Il giorno venerdì 31 ottobre 2014 15:02:09 UTC+1, Trevor Strauss ha scritto:
>
> Thanks to whoever denied my last question. Here it is...plus broke 
> something today which allow me to view the file but have no idea what 
> broke.  picture attached of style change ... someone must know?
>
> The other missing item is the create button in the files toggle slide 
> outdoes this give anyone additional ideas?
>
> On Tue, Sep 30, 2014 at 2:36 PM, Trevor Strauss  > wrote:
>
>> The other missing item is the create button in the files toggle slide 
>> outdoes this give anyone additional ideas?
>>
>> On Tue, Sep 30, 2014 at 1:56 PM, Trevor Strauss > > wrote:
>>
>>> All files have the same ownership...other thoughts?
>>>
>>> On Fri, Sep 26, 2014 at 8:27 AM, Trevor Strauss >> > wrote:
>>>
 Hi, upgraded through the admin console.  will check the user/file 
 ownership but but think I recall them being the same when I checked file 
 permissions.  Thanks for the help

 On Wed, Sep 24, 2014 at 6:16 PM, Leonel Câmara >>> > wrote:

> How did you upgrade web2py? Is the nginx's user the same as the files 
> in the web2py folder?
>
> -- 
> 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 a topic in the 
> Google Groups "web2py-users" group.
> To unsubscribe from this topic, visit 
> https://groups.google.com/d/topic/web2py/PV8UHqc3AW4/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to 
> web2py+un...@googlegroups.com .
> For more options, visit https://groups.google.com/d/optout.
>


>>>
>>
>

-- 
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: How to create a dual purpose login?

2014-10-31 Thread Leonel Câmara
Sure, I would add a redirect to login_onaccept to do that.

-- 
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: Format specification for chained one to many

2014-10-31 Thread Ron McOuat
Thanks Anthony, that worked. For some reason lambdas still confuse me, I 
need to work on that.

In terms of the model I didn't show all the fields, there are mid block 
addresses as well. I am thinking the best way forward is to denormalize the 
road table into the address table and put the values directly in there. 
This part of the database is very static so I could keep the road table as 
a lookup for building new intersection and mid block address table entries 
with a custom form. In the rare event a road changes name an update query 
could take care of that. That would remove the recursive database lookup. 
This is an inventory of city infrastructure - traffic signals, pedestrian 
signals at mid block, radios etc. It is currently managed by spreadsheet 
which has its own set of little horrors such as several ways to represent 
76 Avenue spawned by people typing things in. I have a lat long value pair 
to the address table and adding some code would weed out duplicate entries 
and coordinate lookup failures would prevent entry of impossible addresses. 
It might be time to look at the GIS extensions to PostgreSQL if this 
prototype gets wings.

Thanks much for your help,
Ron

-- 
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: Deploying web2py-based service along with no-web2py main site

2014-10-31 Thread Niphlod
configure web2py to be served within the server that handles 
subdomain.xxx.com

On Thursday, October 30, 2014 12:10:44 AM UTC+1, Dmitry Vlasov wrote:
>
> Hi, web2py users,
>
> anybody know, is there a way to deploy service, written with web2py in a 
> such a way:
>
> 1) we have a site, xxx.com, for example. The site isn't web2py based. It 
> is accessible from internet and shouldn't be touched.
>
> 2) the main aim is to access web2py service requesting 
>
> subdomain.xxx.com
>
> In other words, how can I route requests to this subdomain to web2py 
> service?
>
> Main site uses Apache. Should I configure Apache, or I can use Rocket for 
> these types of tasks?
>
> I will be very appreciated for advices.
>

-- 
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] ajax eval not working when url has an argument

2014-10-31 Thread Toby
Hi,

I tried this ajax eval example:
http://www.web2py.com/books/default/chapter/29/11/jquery-and-ajax#Eval-target

It works fine so long as the url doesn't have an argument. But if I add an 
argument to the url, then it doesn't work anymore. For example
https://apps.homemade-gifts-made-easy.com/ajax_test/default/one   - works 
fine
https://apps.homemade-gifts-made-easy.com/ajax_test/default/one/asdf   - 
doesn't work (text isn't echoed)

Is there a way of making this work even when the url has an argument? 

Thanks in advance

Tobias

-- 
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: ajax eval not working when url has an argument

2014-10-31 Thread Anthony
Should work. Please show your code.

Anthony

On Friday, October 31, 2014 12:30:17 PM UTC-4, Toby wrote:
>
> Hi,
>
> I tried this ajax eval example:
>
> http://www.web2py.com/books/default/chapter/29/11/jquery-and-ajax#Eval-target
>
> It works fine so long as the url doesn't have an argument. But if I add an 
> argument to the url, then it doesn't work anymore. For example
> https://apps.homemade-gifts-made-easy.com/ajax_test/default/one   - works 
> fine
> https://apps.homemade-gifts-made-easy.com/ajax_test/default/one/asdf   - 
> doesn't work (text isn't echoed)
>
> Is there a way of making this work even when the url has an argument? 
>
> Thanks in advance
>
> Tobias
>

-- 
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: Format specification for chained one to many

2014-10-31 Thread Anthony
On Friday, October 31, 2014 11:26:02 AM UTC-4, Ron McOuat wrote:
>
> Thanks Anthony, that worked. For some reason lambdas still confuse me, I 
> need to work on that.
>

Note, it doesn't have to be a lambda -- you can write a separate function:

def address_format(row):
return '%s %s' % (row.street_id.name, row.avenue_id.name)
 
db.define_table('address', ..., format=address_format)

A lambda is just a convenient way of creating a simple function without 
having to bother with the separate function definition block.

In terms of the model I didn't show all the fields, there are mid block 
> addresses as well. I am thinking the best way forward is to denormalize the 
> road table into the address table and put the values directly in there. 
> This part of the database is very static so I could keep the road table as 
> a lookup for building new intersection and mid block address table entries 
> with a custom form. In the rare event a road changes name an update query 
> could take care of that. That would remove the recursive database lookup. 
> This is an inventory of city infrastructure - traffic signals, pedestrian 
> signals at mid block, radios etc. It is currently managed by spreadsheet 
> which has its own set of little horrors such as several ways to represent 
> 76 Avenue spawned by people typing things in. I have a lat long value pair 
> to the address table and adding some code would weed out duplicate entries 
> and coordinate lookup failures would prevent entry of impossible addresses. 
> It might be time to look at the GIS extensions to PostgreSQL if this 
> prototype gets wings.
>

Yeah, I was thinking it might be simpler to just denormalize the road. Good 
luck.

Anthony

-- 
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] Unexpected common filter behavior

2014-10-31 Thread mcamel
Hi everybody,

It seems common filters do nothing is there is no WHERE clause in the SQL.

Following book example:

db.blog_post.insert(subject='one', post_text=request.utcnow, is_public=
True)
db.blog_post.insert(subject='two', post_text=request.utcnow, is_public=
False)

this gives no WHERE clause:

db()._select(db.blog_post.ALL, limitby=(0,5)) 

while this:

db(db.blog_post)._select(db.blog_post.ALL, limitby=(0,5)) 

gives this the expected clause:

... WHERE ((blog_post.id IS NOT NULL) AND (blog_post.is_public = 'T')) 
...


Is this intentionally or is it a bug?.

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: if else if in views

2014-10-31 Thread Anthony
What you have written is equivalent to:

if i == 0:
...
else:
if i == 1:
...
else:
...

Perhaps you instead meant:

if 1 == 0:
...
elif i == 1:
...
else:
...

Anthony

On Wednesday, October 29, 2014 1:23:38 PM UTC-4, Sriram Gudimella wrote:
>
> Why does this ..
> 
> {{for i in range(0,3):}}
> 
> {{if i==0:}}
> 
> Email :
> 
> 
> {{=form[i]}}
> 
> 
> 
> {{else if i==1:}}
> 
> 
> Passkey :
> 
> 
> {{=form[1]}}
> 
> 
> {{else :}} 
> 
> 
> 
> 
> {{=form[2]}}
> 
> 
> {{pass}}
> {{pass}}
> 
> translate to
>
> for i in range(0,3):
> response 
> .write('\n\t\n\t', 
> escape=False)
> if i==0:
> response 
> .write('\n\t\t\n\t\tEmail
>  :\n\t\t\n\t\t\n\t\t', escape=False)
> response 
> .write(form[i])
> response 
> .write('\n\t\t\n\t\t\n\t\n\t',
>  escape=False)
> else if i==1:
> response 
> .write('\n\t\n\t\t\n\t\tPasskey
>  :\n\t\t\n\t\t\n\t\t', escape=False)
> response 
> .write(form[1])
> response 
> .write('\n\t\t\n\t\n\t',
>  escape=False)
> else :
> response 
> .write('\n\t\n\t\t\n\t\t\n\t\t\n\t\t',
>  escape=False)
> response 
> .write(form[2])
> response 
> .write('\n\t\t\n\t\n\t',
>  escape=False)
> pass
> response 
> .write('\n\t', 
> escape=False)
> pass
>
>
>

-- 
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: Unexpected common filter behavior

2014-10-31 Thread Leonel Câmara
Well the common_filter is on the table and you give it no table.

-- 
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: Unexpected common filter behavior

2014-10-31 Thread Anthony
In the BaseAdapter._select method at 
https://github.com/web2py/web2py/blob/master/gluon/dal/adapters/base.py#L1035, 
it looks like tables included only by virtue of the list of fields in 
._select() but not explicitly included in the query are purposely left out 
of the common_filters fitlering (i.e., the tablenames_for_common_filters 
variable is defined before looping through the fields to add extra tables 
to the list of tablenames). I'm not sure why it was done this way, as I 
would think you would want the common filter to apply whenever a query 
involves the table in question. If it's not a bug, it may at least be a 
design choice worth revisiting.

Anthony

On Friday, October 31, 2014 1:40:44 PM UTC-4, mcamel wrote:
>
> Hi everybody,
>
> It seems common filters do nothing is there is no WHERE clause in the SQL.
>
> Following book example:
>
> db.blog_post.insert(subject='one', post_text=request.utcnow, is_public
> =True)
> db.blog_post.insert(subject='two', post_text=request.utcnow, is_public
> =False)
>
> this gives no WHERE clause:
>
> db()._select(db.blog_post.ALL, limitby=(0,5)) 
>
> while this:
>
> db(db.blog_post)._select(db.blog_post.ALL, limitby=(0,5)) 
>
> gives this the expected clause:
>
> ... WHERE ((blog_post.id IS NOT NULL) AND (blog_post.is_public = 'T')) 
> ...
>
>
> Is this intentionally or is it a bug?.
>
> 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: Unexpected common filter behavior

2014-10-31 Thread mcamel
Sorry Leonel, for the sake of brevity i've just started where the book 
ends. You need to write this before:

db.define_table('blog_post',
Field('subject'),
Field('post_text', 'text'),
Field('is_public', 'boolean'),
common_filter = lambda query: db.blog_post.is_public==True
)

I append now both full Sqls:

SELECT blog_post.id, blog_post.subject, blog_post.post_text, 
blog_post.is_public 
FROM blog_post ORDER BY blog_post.id LIMIT 5 OFFSET 0;

SELECT blog_post.id, blog_post.subject, blog_post.post_text, 
blog_post.is_public 
FROM blog_post WHERE ((blog_post.id IS NOT NULL) AND (blog_post.is_public = 
'T')) ORDER BY blog_post.id LIMIT 5 OFFSET 0;

By the way, i've tested with Sqlite and Mysql and with web2py v2.9.5 and 
v2.9.11.

I agree with Anthony it's worth revisiting this, because one of the aims of 
common filter is security. In the case exposed any user could access the 
whole table.

Regards.


El viernes, 31 de octubre de 2014 19:49:35 UTC+1, Leonel Câmara escribió:
>
> Well the common_filter is on the table and you give it no table.
>

-- 
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: Unexpected common filter behavior

2014-10-31 Thread Leonel Câmara
Well if common_fields are used for security reasons it must definitely be 
revisited.

Although, my design choice would be different, I would not allow you to put 
fields in the select from tables not explicitly included. 

-- 
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: Unexpected common filter behavior

2014-10-31 Thread Leonel Câmara
In my opinion this bug is caused by bad design that complicates things 
unnecessarily. Why are we allowing users to ask for fields in the select 
for tables they haven't included in the query?

-- 
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: Unexpected common filter behavior

2014-10-31 Thread mcamel
Ticket opened: https://code.google.com/p/web2py/issues/detail?id=2010

Regards.

-- 
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: Unexpected common filter behavior

2014-10-31 Thread Niphlod
+1: never coded with that syntax and it feels unnatural to me.

On Friday, October 31, 2014 8:47:44 PM UTC+1, Leonel Câmara wrote:
>
> In my opinion this bug is caused by bad design that complicates things 
> unnecessarily. Why are we allowing users to ask for fields in the select 
> for tables they haven't included in the query?
>

-- 
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: Unexpected common filter behavior

2014-10-31 Thread mcamel
Book has plenty of examples like:

db().select(db.person...

To encourage people not to code that way they should be changed. Is this 
the way you encourage?

db(db.person).select(db.person...

Regards.


El viernes, 31 de octubre de 2014 21:12:23 UTC+1, Niphlod escribió:
>
> +1: never coded with that syntax and it feels unnatural to me.
>
> On Friday, October 31, 2014 8:47:44 PM UTC+1, Leonel Câmara wrote:
>>
>> In my opinion this bug is caused by bad design that complicates things 
>> unnecessarily. Why are we allowing users to ask for fields in the select 
>> for tables they haven't included in the query?
>>
>

-- 
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: Unexpected common filter behavior

2014-10-31 Thread Anthony
On Friday, October 31, 2014 3:47:51 PM UTC-4, Leonel Câmara wrote:
>
> In my opinion this bug is caused by bad design that complicates things 
> unnecessarily. Why are we allowing users to ask for fields in the select 
> for tables they haven't included in the query?
>

But the DAL doesn't really provide a way to explicitly specify the tables 
in the "FROM" clause -- this is inferred from the query and the elements of 
the select. If it is OK to infer the "FROM" tables from the query, why not 
from the select?

Technically, db(db.person.id > 0).select(db.person.name) only tells us 
"SELECT name ... WHERE person.id > 0" -- it doesn't explicitly give us 
"FROM person" -- that has to be inferred. Likewise, 
db().select(db.person.name) only tells us "SELECT name" -- again, "FROM 
person" must be inferred. What's the difference? In both cases, it is 
equally easy to infer the FROM clause, and in neither case is it explicit 
in the DAL code. You can simply think of db().select(db.person.name) as 
"SELECT name FROM person".

Anthony

-- 
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] basic argument question

2014-10-31 Thread Alex Glaros
Assume am total beginner:

Argument below gets correctly passed to controller named 
"comment_on_an_object".

dict(header='Comments',  body=lambda row: A('Comments',_class="btn btn-mini"
, _href=URL('comment_on_an_object', vars=dict(filter=row.objectID,

looks good so far:

http://127.0.0.1:8000/ES1/default/comment_on_an_object?filter=5

However I also want to pass the row ID of the row to the controller. How is 
this done?  I've already sent row.objectID.  How to send row.id?

What do the receiving controller arg statements look like?  

commentsHeader=db.SuperObject(request.args(0)) ???
commentsHeader2=db.objectComments(request.args(1)) ???

thanks

Alex Glaros

-- 
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: basic argument question

2014-10-31 Thread Anthony
On Friday, October 31, 2014 4:46:32 PM UTC-4, Alex Glaros wrote:
>
> Assume am total beginner:
>
> Argument below gets correctly passed to controller named 
> "comment_on_an_object".
>
> dict(header='Comments',  body=lambda row: A('Comments',_class="btn 
> btn-mini", _href=URL('comment_on_an_object', vars=dict(filter=row.objectID
> ,
>
> looks good so far:
>
> http://127.0.0.1:8000/ES1/default/comment_on_an_object?filter=5
>
> However I also want to pass the row ID of the row to the controller. How 
> is this done?  I've already sent row.objectID.  How to send row.id?
>

Can't you just add the id to the URL variables:

URL('comment_on_an_object', vars=dict(filter=row.objectID, id=row.id))
 
In which case, you have:

http://127.0.0.1:8000/ES1/default/comment_on_an_object?filter=5&id=1

What do the receiving controller arg statements look like?  
>
> commentsHeader=db.SuperObject(request.args(0)) ???
> commentsHeader2=db.objectComments(request.args(1)) ???
>

You are using query string variables, not URL args, so instead of 
request.args, the values are in request.get_vars (also in request.vars):

commentsHeader=db.SuperObject(request.get_vars.filter)
commentsHeader2=db.objectComments(request.get_vars.id)

Anthony

-- 
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: Unexpected common filter behavior

2014-10-31 Thread Leonel Câmara
It feels completely unnatural to me to just ask the DAL for fields. I do 
get your point with the "FROM" clause whoever I don't think it maps well to 
DAL semantics. I do realize I'm not being very objective with this opinion. 

More technically, one of the biggest code smells for me, is when you need 
to remember to change things in more than one place when adding a feature. 
Someone is bound to forget it. This feature may also hide a bug where a 
user forgets to add a query for one of the tables but still gets the 
results so everything appears to be fine.

I would just remove this "feature" rather than refactor things so in the 
future people don't have to remember to change things in two places. I 
think there should be one, and only one, obvious way to do things.

-- 
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-dev] Unexpected common filter behavior

2014-10-31 Thread Massimo DiPierro
db(query).select(*fields)

is supposed to translated into

SELECT *fields (from TABLE) WHERE query

where TABLES are inferred automatically from fields or from query. In principle 
one can have fields without a query (no WHERE) and a query without fields 
(select *).


On Oct 31, 2014, at 3:12 PM, Niphlod  wrote:

> +1: never coded with that syntax and it feels unnatural to me.
> 
> On Friday, October 31, 2014 8:47:44 PM UTC+1, Leonel Câmara wrote:
> In my opinion this bug is caused by bad design that complicates things 
> unnecessarily. Why are we allowing users to ask for fields in the select for 
> tables they haven't included in the query?
> 
> -- 
> -- mail from:GoogleGroups "web2py-developers" mailing list
> make speech: web2py-develop...@googlegroups.com
> unsubscribe: web2py-developers+unsubscr...@googlegroups.com
> details : http://groups.google.com/group/web2py-developers
> the project: http://code.google.com/p/web2py/
> official : http://www.web2py.com/
> --- 
> You received this message because you are subscribed to the Google Groups 
> "web2py-developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to web2py-developers+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
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-dev] Unexpected common filter behavior

2014-10-31 Thread Massimo DiPierro
But it is critical to be able to filter fields at the database level.

I think db as the send of all records db(...) as a subset, db(...)(...) as a 
set of all subset, etc. db(...).select(..fields..) specified which columns to 
filter from the set.



On Oct 31, 2014, at 3:12 PM, Niphlod  wrote:

> +1: never coded with that syntax and it feels unnatural to me.
> 
> On Friday, October 31, 2014 8:47:44 PM UTC+1, Leonel Câmara wrote:
> In my opinion this bug is caused by bad design that complicates things 
> unnecessarily. Why are we allowing users to ask for fields in the select for 
> tables they haven't included in the query?
> 
> -- 
> -- mail from:GoogleGroups "web2py-developers" mailing list
> make speech: web2py-develop...@googlegroups.com
> unsubscribe: web2py-developers+unsubscr...@googlegroups.com
> details : http://groups.google.com/group/web2py-developers
> the project: http://code.google.com/p/web2py/
> official : http://www.web2py.com/
> --- 
> You received this message because you are subscribed to the Google Groups 
> "web2py-developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to web2py-developers+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
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: Unexpected common filter behavior

2014-10-31 Thread Anthony

>
> More technically, one of the biggest code smells for me, is when you need 
> to remember to change things in more than one place when adding a feature. 
> Someone is bound to forget it. This feature may also hide a bug where a 
> user forgets to add a query for one of the tables but still gets the 
> results so everything appears to be fine.
>

I'm not sure exactly what you mean by needing to change things in more than 
one place in this context, but regarding the common_filters feature, I 
think the code could be easily be changed to make it work whether or not a 
query is specified. In that case, the user wouldn't have to worry about 
forgetting anything -- the common_filter would just always work.

Anthony

-- 
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: Unexpected common filter behavior

2014-10-31 Thread Anthony
On Friday, October 31, 2014 5:10:24 PM UTC-4, Leonel Câmara wrote:
>
> It feels completely unnatural to me to just ask the DAL for fields.
>

Then how in web2py would you best represent the following?

SELECT name FROM person

It seems to me that db().select(db.person.name) is the closest you can get. 
db(db.person).select(db.person.name) is a shortcut for db(db.person.id > 
0).select(db.person.name), which translates to "SELECT name FROM person 
WHERE person.id > 0", which is not quite the same as the above SQL 
statement.

Anthony

-- 
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] import error when running compiled version of web2py

2014-10-31 Thread skd
Hi all,
I have a web2py app that runs perfectly fine when running with web2py_src 
on windows. However, if i compile and pack the app and attempt to run it 
with web2py.exe in windows, I get import errors such as: 

 Cannot import module 'requests'

If I type import requests at a python shell i get no errors 
If I type import requests at a python shell launched via command window 
launched without admin rights I do indeed get errors

With that knowledge, I attempted to launch web2py.exe as administrator, 
but this resulted in the same import errors.

I'm fairly certain there are just some dependency issues here. I'm not 
sure where to look for them. Any ideas?

Thanks in advance.

-- 
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: basic argument question

2014-10-31 Thread Alex Glaros
Thanks Anthony, args look good:

http://127.0.0.1:8000/ES1/default/comment_on_an_object?filter=5&id=1

but for 2nd variable, 

objectComments = db.SuperObjectComment(request.get_vars.id)

this error appears:

 'str' object has no attribute 
'created_on'

However, if I use below statement where everything else is the same:

objectComments = db(db.SuperObjectComment.id).select()

then there are no errors, but of course it selects the whole table without 
filtering anything.

How can the filter be made to work?

FIRST CONTROLLER

dict(header='Comments',  body=lambda row: A('Comments',_class="btn 
btn-mini", _href=URL('comment_on_an_object', vars=dict(filter=row.objectID, 
id=row.id,

SECOND CONTROLLER

objectComments = db.SuperObjectComment(request.get_vars.id)

HTML

{{extend 'layout.html'}}
View Comments
Comments for {{=A(commentsHeader.objectDisplayName)}}

  {{for objectComment in objectComments:}}
  
{{=objectComment.created_on}}
{{=objectComment.created_by.first_name}} says 
{{=MARKMIN(objectComment.superObjectComment)}}
  
  {{pass}}
{{=form}}


thanks

Alex Glaros










-- 
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: import error when running compiled version of web2py

2014-10-31 Thread skd
skd  writes:


> 
> If I type import requests at a python shell i get no errors 
> If I type import requests at a python shell launched via command 
window 
> launched without admin rights I do indeed get errors
> 


More info on attempting to type import requests at a python shell:
- when the command prompt directory is not in the web2py directory and i 
launch the python shell, i get no errors when typing 'import requests'
- when i cd to the web2py dir, then launch python, i get errors when 
typing 'import requests'

somehow the web2py folder is not allowing python to see into it's 
Lib/site-packages folder where 'requests' is installed.
 





-- 
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: How to create a dual purpose login?

2014-10-31 Thread Luis Ramos
Thanks for the answer, I'll test it tonight.

On Friday, October 31, 2014 11:17:17 AM UTC-4, Leonel Câmara wrote:
>
> Sure, I would add a redirect to login_onaccept to do that.
>

-- 
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] update_or_insert

2014-10-31 Thread Luis Ramos
I'm currently using this method to insert new elements. How can I update 
the 'update_date' field only if there's an update and only insert the 
'creation_date' one time?

import datetime

now = datetime.datetime.now()

db.define_table('dogs', Field('name'),
 Field('owner'),
 Field('address'),
 Field('creation_date', 'datetime'),
 Field('update_date', 'datetime'))


q1 = db.dogs.name == 'Paco'
q2 = db.dogs.owner == 'Rob'

db.dogs.update_or_insert((q1) & (q2), name='Paco', owner='Rob', 
creation_date=now)

-- 
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: Translation issue

2014-10-31 Thread Massimo Di Pierro
very strange because T(T(...)) would not translate twice but T(T(...)+'') 
would.


On Monday, 27 October 2014 03:28:35 UTC-5, Ion Caliman wrote:
>
> Hi!
>
> I reported a bug with translation here 
> 
> .
>
> Can someone to look at it and to suggest a solution?
>
> 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: janrain implementation

2014-10-31 Thread Massimo Di Pierro
In gluon/contrib/login_methods/ we have both janrain_account.py (new) and 
rpx_account.py 
(old). New apps should old janrain_ccount.

On Monday, 27 October 2014 14:02:26 UTC-5, mar...@hens-teeth.net wrote:
>
> According to janrain, the web2py built in code for using janrain uses a 
> deprecated method of displaying their login widget. 
> Has anyone been able to recently integrate janrain in a web2py 
> application? If so, 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: Pack Custom, Failing

2014-10-31 Thread Massimo Di Pierro
Please open a ticket about this. I will reviews this asap. What OS? What 
browser?

On Tuesday, 28 October 2014 18:56:46 UTC-5, James O' Driscoll wrote:
>
> All,
>
> I am trying to use Pack Custom option to make a slice.
>
> When I click the Pack Custom, I can see the tree file structure for a 
> split second, then it disappears.
>
> I am using source distribution and I have used used the latest version to 
> test.
>
> Any help would be great.
>
> Regards,
>
> James
>

-- 
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: image blog

2014-10-31 Thread Massimo Di Pierro
A typo somewhere? Can you show the complete traceback?

On Tuesday, 28 October 2014 23:02:18 UTC-5, Ken Archer wrote:
>
> Hi, 
> I am a newbie to web2py. I am going through the manual; at the 'image 
> blog'.
> Having entered the code, I get the following error when I click database 
> administration.
>
> I would greatly appreciate if assistance can be rendered in this regard.
>
> ('DAL' object has no attribute 
> 'image_id')
>

-- 
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: function 'GEOSversion' not found

2014-10-31 Thread Massimo Di Pierro
Now a web2py error

On Thursday, 30 October 2014 23:07:11 UTC-5, Raouf Mir wrote:
>
> i am gettting this error.
>  function 'GEOSversion' not found
>

-- 
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: basic argument question

2014-10-31 Thread Anthony
On Friday, October 31, 2014 8:01:53 PM UTC-4, Alex Glaros wrote:
>
> Thanks Anthony, args look good:
>
> http://127.0.0.1:8000/ES1/default/comment_on_an_object?filter=5&id=1
>
> but for 2nd variable, 
>
> objectComments = db.SuperObjectComment(request.get_vars.id)
>

The above method does not return a Rows object with multiple records -- it 
only returns a single record (as a Row) object. If you need to do a select 
that returns multiple records, do no use the above syntax. Instead, do a 
regular select:

db(db.SuperOjbectComment.some_id_field == request.get_vars.id).select()

Presumably there is some field in db.SuperObjectComment that stores id's 
that should match request.get_vars.id. If not, then you have not specified 
the model or the URL variables properly.

Anthony

-- 
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: update_or_insert

2014-10-31 Thread Anthony
Does this work:

db.define_table('dogs', ...,
Field('creation_date', 'datetime', default=now),
Field('update_date', 'datetime', default=None, update=now))

Then in your update_or_insert, don't explicitly specify either of those 
fields and let the default/update attributes handle it.

Anthony

On Friday, October 31, 2014 5:47:41 PM UTC-4, Luis Ramos wrote:
>
> I'm currently using this method to insert new elements. How can I update 
> the 'update_date' field only if there's an update and only insert the 
> 'creation_date' one time?
>
> import datetime
>
> now = datetime.datetime.now()
>
> db.define_table('dogs', Field('name'),
>  Field('owner'),
>  Field('address'),
>  Field('creation_date', 'datetime'),
>  Field('update_date', 'datetime'))
>
>
> q1 = db.dogs.name == 'Paco'
> q2 = db.dogs.owner == 'Rob'
>
> db.dogs.update_or_insert((q1) & (q2), name='Paco', owner='Rob', 
> creation_date=now)
>

-- 
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: auth.settings.login_onaccept and request.vars_next

2014-10-31 Thread Anthony
What does on_login() do? Assuming it doesn't do a redirect, it shouldn't 
interfere with the redirect to the _next URL (in which case, the problem 
likely lies elsewhere).

Anthony

On Friday, October 31, 2014 4:20:58 AM UTC-4, Annet wrote:
>
> I have the follwoing auth settings:
>
>
> auth.settings.login_next = URL('default', 'index')
>
> auth.settings.login_onaccept = lambda form: on_login()
>
> When the user visits:
>
> www.domain.com/my/group/confirm_connect/8/3
>
> without being logged in he is redirected to:
>
> www.domain.com/my/default/user/login
>
> after the user logs in he is redirect to
>
> www.domain.com/my/default/index not to 
> www.domain.com/my/group/confirm_connect/8/3
>
> I thought request.vars._next would override auth.settings.login_next = 
> URL('default', 'index')
> but apparently auth.settings.login_onaccept = lambda form: on_login() 
> interferes with
> that behavior.
>
> Is there a fix to this issue?
>
>
> Kind regards,
>
> Annet
>

-- 
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.