[web2py] Re: Alternate way for ticket handling

2016-03-07 Thread luis . valladares
I dont want to be anoying but i still need some help and didnt find any 
information. My "solution" cant catch models or views errors.

Thanks!

El lunes, 22 de febrero de 2016, 16:45:26 (UTC-4:30), 
luis.va...@metamaxzone.com escribió:
>
> Hello!
>
> I want to manage and catch all the error of my website using sentry (
> https://getsentry.com/welcome/), reading some post in this forum i found 
> this: 
> https://groups.google.com/forum/#!searchin/web2py/disable$20tickets$20error/web2py/0E73_7KbGJI/9WEfWCpty-4J
>
> Based in that solution i've created this inside one of my models.
>
> from raven import Client
>
>
> def mycacher(f):
> client = 
> Client('*')
> try:
> d = f()
> return d
> except:
> client.captureException()
>
> response._caller = mycacher
>
> With this i'm able to catch all the exceptions originated by a function in 
> the controller or by a function call inside a controller is handled with 
> this code, but the problems comes when a code inside the models (but 
> outside functions) is executed, for example, database definitions etc...
>
> I know i can wrap all my code with a try... Except to catch this but there 
> is any other solution for entirely "Bypassing" the ticket system in order 
> to use other system?
>
> Thanks for your help!
>

-- 
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: Fields from multiple tables in a single form

2016-03-07 Thread villas
Hi David

Try these two...

1.  In your table defs for project and proposer,  make sure you add 

format='%(yourfieldname)s',

So that Web2py knows what to show instead of 'id'.

2. You can use .represent in your model or controller.
db.visit.proposer_id.represent = .
See the book 

.

Best wishes.

-- 
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: list:reference, multiple=True, validation error

2016-03-07 Thread villas
Could someone please assist to resolve this bug?   I am not sure what to do 
to fix it.  

Please note that this bug is in the latest source.  I believe that it is in 
the IS_IN_DB validator. 

Thanks to anyone who might be able to help.  To replicate,  please do this:


> 1. Make a new app.
> 2. Paste this at the bottom of models/db.py
>
>
> db.define_table('tag',
> Field('name'),
> Field('descr',length=50),
> format='%(name)s',
> )
> 
> db.define_table('docstore',
> Field('name'),
> Field('tags','list:reference tag'), 
> )   
> 
> if not db(db.tag.id>0).count():
> db.tag.insert( name = "A",  descr = "A Descr" ) 
> db.tag.insert( name = "B",  descr = "B Descr" ) 
> db.tag.insert( name = "C",  descr = "C Descr" ) 
>
>
> Use Appadmin to add a record to docstore 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] Python Social Auth - example site working with downlevel version of PSA

2016-03-07 Thread Donald McClymont
I am sharing  an example site http://www.netdecisionmaking.com that uses 
Python Social Auth for authentication, based on the following code and 

https://github.com/omab/python-social-auth and the web2py integration 
developed at https://github.com/bnmnetp/w2p-social-auth 


This works basically fine with the configured providers BUT it is using 
python social auth version 0.1.26 and I am keen to get it moved to the 
latest version.  Being keen but lazy I was looking to check if anyone has 
got a more up to date version that is currently working as it seems there 
are a few changes with the 0.2.x release that need to be worked through and 
w2p-social-auth that I am using has not been updated as far as I can find.

The code for the site itself is at https://github.com/DonaldMcC/gdms and I 
am using the recently add config file to determine an overall 
authentication scheme for the site and pickup the keys etc which works fine.
Ideally I'd also like to also have the option to combine PSA and Web2py 
login methods however I haven't really looked into that yet.

Regards
Donald

-- 
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: nginx cannot import any module

2016-03-07 Thread Jim S
Are the paths to the modules included in the PATH environment variable?

-Jim

On Sunday, March 6, 2016 at 4:23:49 AM UTC-6, lungupco...@gmail.com wrote:
>
>
> Hi everyone,
>
> Just deployed my web2py app on a NGINX + uswgi server. 
> Unfortunately, when I try to run it, I keep getting the error "no such 
> module", although I have these modules installed and can use them locally.
>
> I understand that this may be a Path/Permissions problem but I am a newbie 
> to Python, so your help is greatly appreciated.
>
> Thank you,
> Constantin
>

-- 
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: restricting load calls with its html parent permission

2016-03-07 Thread Anthony
You can use a digital signature: 
http://web2py.com/books/default/chapter/29/04/the-core#Digitally-signed-urls

When creating the component, do LOAD(..., user_signature=True). Then 
decorate your component actions with @auth.requires_signature().

Anthony

On Monday, March 7, 2016 at 3:58:25 PM UTC-5, Ben Lawrence wrote:
>
> Hi
>
> I just need a little advice here.
>
> There are logged in users on my website that are given permission to 
> access a particular html page. The page changes depending on the user 
> logged in. The controller decides on whether the user can access that page 
> or not. 
>
> The html page calls LOADs. How do I properly secure these LOAD calls with 
> the same permission as the html parent? (Otherwise people can just put the 
> LOAD file address in the browser and see it.)
>
> Now, I am running the same database checks in the LOAD as in the html, so 
> there is duplication here. Should I use the http referrer 
> request.env.http_referer to check that the caller is correct or is there a 
> better way?
>
> Thanks for your time.
>

-- 
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: checkbox with label on the left side

2016-03-07 Thread Paolo Caruccio
In my sqlforms, I solved the issue with css.

Prerequisite 1: formstyle = divs
Prerequisite 2: you have to know the id of the field outer div i.e. that 
containing the div.w2p_fl and the div.w2p_fw
 Generally it is build as tablename_fieldname__row (for 
more on this subject see 
http://www.web2py.com/books/default/chapter/29/11/#Conditional-fields-in-forms)

For example in a auth login form having formstyle = divs the field 
containing the "remember me checkbox" will be rendered:

 
 
 Ricordami (per 30 giorni)
 
 
 
 
 



So by setting in a custom css:

#auth_user_remember_me__row {
display: -ms-flexbox;
-webkit-display: flex;
display: flex;
}


#auth_user_remember_me__row .w2p_fl {
-ms-flex-order: 2;
-webkit-order: 2;
order: 2;
}


#auth_user_remember_me__row .w2p_fw {
-ms-flex-order: 1;
-webkit-order: 1;
order: 1;
}


we should have the chackbox on the left and its label on the right.

Remarks:
maybe you will need to add more rules depending on the css framework you 
use;
this will not work in IE9 and below versions;
for more info on flexbox see http://caniuse.com/#feat=flexbox

In the attached image (taken from the layout based on semantic-ui css 
framework on which I'm working in these days ) you will see the resulting 
form.



Il giorno lunedì 7 marzo 2016 19:39:55 UTC+1, Viator ha scritto:
>
> Hello dear knowers!
>
> I tried the whole day to create a form with a checkbox with its label on 
> the  left side instead of on the right side.
>
> But with no success. So far I ended up with a field as simple string and 
> the option to select 'yes' or 'no'. But in this case the confirmation does 
> not work. The dialog pops up but no matter if I chosse OK or Cancel the 
> value of the fied will be changed.
>
> I also tried to create the entire form with DIV() and styles wich worked 
> but I had to to all the design by hand. So I thought I will use 
> SQLFORM.factory which does a great job but I could not figure out how to 
> place the label of the checkbox on the left side.
>
> Please, could someone push me into the right direction?
>
> Thank you, Thorsten
>
>
>

-- 
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][OT] ZeroDB An open-source end-to-end encrypted database

2016-03-07 Thread Niphlod
nosql is pretty broad. zerodb is a key-value store, so nothing to abstract 
around it...

On Monday, March 7, 2016 at 9:42:27 PM UTC+1, Richard wrote:
>
> Hello,
>
> Anyone eard about ZeroDB?
>
> https://www.zerodb.io/
>
> I found this really recently and interresting in it.
>
> Curious to know how can web2py support it since it NoSQL and encrypted...
>
> Richard
>

-- 
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] restricting load calls with its html parent permission

2016-03-07 Thread Ben Lawrence
Hi

I just need a little advice here.

There are logged in users on my website that are given permission to access 
a particular html page. The page changes depending on the user logged in. 
The controller decides on whether the user can access that page or not. 

The html page calls LOADs. How do I properly secure these LOAD calls with 
the same permission as the html parent? (Otherwise people can just put the 
LOAD file address in the browser and see it.)

Now, I am running the same database checks in the LOAD as in the html, so 
there is duplication here. Should I use the http referrer 
request.env.http_referer to check that the caller is correct or is there a 
better way?

Thanks for your time.

-- 
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][OT] ZeroDB An open-source end-to-end encrypted database

2016-03-07 Thread Richard
Hello,

Anyone eard about ZeroDB?

https://www.zerodb.io/

I found this really recently and interresting in it.

Curious to know how can web2py support it since it NoSQL and encrypted...

Richard

-- 
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: Bug migrating polyline

2016-03-07 Thread Leonel Câmara
Ok I solved this, but theres a bug with pydal.

How I solved it, I manually migrated using:

ALTER TABLE tour ALTER COLUMN polyline TYPE JSON USING polyline::JSON;

Then I did a fake_migrate.

-- 
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: Bug migrating polyline

2016-03-07 Thread Leonel Câmara
Is it because json fields are dealt differently now and migration didn't 
work?

-- 
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] Bug migrating polyline

2016-03-07 Thread Leonel Câmara
I don't know why it's doing a migration since I didn't change this table at 
all but it is and I'm getting this error.


 column "polyline__tmp" is of type json 
but expression is of type text LINE 1: UPDATE tour SET 
polyline__tmp=polyline; ^ HINT: You will need to rewrite or cast the 
expression.


-- 
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: random generator of stupid pages

2016-03-07 Thread Fabiano Almeida
Great work!

2016-03-07 3:24 GMT-03:00 Dave S :

> On Sunday, March 6, 2016 at 8:49:15 PM UTC-8, Massimo Di Pierro wrote:
>>
>> http://mdipierro.github.io/stupid.css/themes/random.html
>>
>
>
> Nice!  Thank you!
>
> /dps
>
>
> --
> 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.


[web2py] Re: Not receiving post_vars from external service webhook

2016-03-07 Thread Lisandro
Thank you very much Anthony and Niphlod for your help.

I could rewrite my function to read the post JSON like this:

def sparkpost_message_opened():
from gluon.contrib import simplejson
post_data = simplejson.load(request.body) # notice it's load() and not 
loads()
# here I can succesfully access post_data array

Thanks again!





El lunes, 7 de marzo de 2016, 15:23:28 (UTC-3), Niphlod escribió:
>
> it's sending a json as a post content, not the usual form data that is 
> automatically parsed.
> you'd get automatic request.post_vars reconstruction with json ONLY if 
> they posted an object, but instead they're posting an array of objects 
> (notice the [ ] at top and bottom).
> web2py (or anything, for that matter) can't build a key-value object (as 
> the usual request.post_vars) because there are no keys at the top level.
>
> if you want to receive that post, you need to read the request.body() and 
> parse the json accordingly.
>
> On Monday, March 7, 2016 at 5:51:53 PM UTC+1, Lisandro wrote:
>>
>> Thanks for the tip.
>>
>> I've done some tests, and I've found some details that could point the 
>> problem.
>>
>> I'm sending a test post to my app url, from SparkPost web app. 
>> SparkPost tells me that it will send this post:
>>
>> POST /ws/sparkpost_message_opened HTTP/1.1
>> Host: x.com.ar
>> Content-Type: application/json
>> X-MessageSystems-Batch-ID: 77c2b630-d712-11e4-9642-efc2723b99c1
>> Connection: close
>>
>> [
>>   {
>> "msys": {
>>   "track_event": {
>> "type": "open",
>> "campaign_id": "Example Campaign Name",
>> "customer_id": "1",
>> "delv_method": "esmtp",
>> "event_id": "92356927693813856",
>> "ip_address": "127.0.0.1",
>> "message_id": "0e0d94b7-9085-4e3c-ab30-e3f2cd9c273e",
>> "rcpt_meta": {
>>   "customKey": "customValue"
>> },
>> "rcpt_tags": [
>>   "male",
>>   "US"
>> ],
>> "rcpt_to": "reci...@example.com",
>> "raw_rcpt_to": "reci...@example.com",
>> "rcpt_type": "cc",
>> "subaccount_id": "101",
>> "template_id": "templ-1234",
>> "template_version": "1",
>> "timestamp": 1454442600,
>> "transmission_id": "65832150921904138",
>> "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) 
>> AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36"
>> ,
>> "geo_ip": {
>>   "country": "US",
>>   "region": "MD",
>>   "city": "Columbia",
>>   "latitude": "39.1749",
>>   "longitude": "-76.8375"
>> }
>>   }
>> }
>>   }
>> ]
>>
>>
>> I've modified my nginx log configuration, to log the $request_body to a 
>> log file, and I can see in deed the post (sorry about the format, but you 
>> can see the post data is there):
>>
>> [{\x22msys\x22:{\x22track_event\x22:{\x22type\x22:\x22open\x22,\
>> x22campaign_id\x22:\x22Example Campaign Name\x22,\x22customer_id\x22:\
>> x221\x22,\x22delv_method\x22:\x22esmtp\x22,\x22event_id\x22:\
>> x2292356927693813856\x22,\x22ip_address\x22:\x22127.0.0.1\x22,\
>> x22message_id\x22:\x220e0d94b7-9085-4e3c-ab30-e3f2cd9c273e\x22,\
>> x22rcpt_meta\x22:{\x22customKey\x22:\x22customValue\x22},\x22rcpt_tags\
>> x22:[\x22male\x22,\x22US\x22],\x22rcpt_to\x22:\x22recipi...@example.com\
>> x22,\x22raw_rcpt_to\x22:\x22recipi...@example.com\x22,\x22rcpt_type\x22:\
>> x22cc\x22,\x22subaccount_id\x22:\x22101\x22,\x22template_id\x22:\x22templ
>> -1234\x22,\
>> ...
>
>

-- 
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] checkbox with label on the left side

2016-03-07 Thread Viator
Hello dear knowers!

I tried the whole day to create a form with a checkbox with its label on 
the  left side instead of on the right side.

But with no success. So far I ended up with a field as simple string and 
the option to select 'yes' or 'no'. But in this case the confirmation does 
not work. The dialog pops up but no matter if I chosse OK or Cancel the 
value of the fied will be changed.

I also tried to create the entire form with DIV() and styles wich worked 
but I had to to all the design by hand. So I thought I will use 
SQLFORM.factory which does a great job but I could not figure out how to 
place the label of the checkbox on the left side.

Please, could someone push me into the right direction?

Thank you, Thorsten


-- 
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: Not receiving post_vars from external service webhook

2016-03-07 Thread Niphlod
it's sending a json as a post content, not the usual form data that is 
automatically parsed.
you'd get automatic request.post_vars reconstruction with json ONLY if they 
posted an object, but instead they're posting an array of objects (notice 
the [ ] at top and bottom).
web2py (or anything, for that matter) can't build a key-value object (as 
the usual request.post_vars) because there are no keys at the top level.

if you want to receive that post, you need to read the request.body() and 
parse the json accordingly.

On Monday, March 7, 2016 at 5:51:53 PM UTC+1, Lisandro wrote:
>
> Thanks for the tip.
>
> I've done some tests, and I've found some details that could point the 
> problem.
>
> I'm sending a test post to my app url, from SparkPost web app. 
> SparkPost tells me that it will send this post:
>
> POST /ws/sparkpost_message_opened HTTP/1.1
> Host: x.com.ar
> Content-Type: application/json
> X-MessageSystems-Batch-ID: 77c2b630-d712-11e4-9642-efc2723b99c1
> Connection: close
>
> [
>   {
> "msys": {
>   "track_event": {
> "type": "open",
> "campaign_id": "Example Campaign Name",
> "customer_id": "1",
> "delv_method": "esmtp",
> "event_id": "92356927693813856",
> "ip_address": "127.0.0.1",
> "message_id": "0e0d94b7-9085-4e3c-ab30-e3f2cd9c273e",
> "rcpt_meta": {
>   "customKey": "customValue"
> },
> "rcpt_tags": [
>   "male",
>   "US"
> ],
> "rcpt_to": "reci...@example.com ",
> "raw_rcpt_to": "reci...@example.com ",
> "rcpt_type": "cc",
> "subaccount_id": "101",
> "template_id": "templ-1234",
> "template_version": "1",
> "timestamp": 1454442600,
> "transmission_id": "65832150921904138",
> "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) 
> AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36"
> ,
> "geo_ip": {
>   "country": "US",
>   "region": "MD",
>   "city": "Columbia",
>   "latitude": "39.1749",
>   "longitude": "-76.8375"
> }
>   }
> }
>   }
> ]
>
>
> I've modified my nginx log configuration, to log the $request_body to a 
> log file, and I can see in deed the post (sorry about the format, but you 
> can see the post data is there):
>
> [{\x22msys\x22:{\x22track_event\x22:{\x22type\x22:\x22open\x22,\
> x22campaign_id\x22:\x22Example Campaign Name\x22,\x22customer_id\x22:\x221
> \x22,\x22delv_method\x22:\x22esmtp\x22,\x22event_id\x22:\
> x2292356927693813856\x22,\x22ip_address\x22:\x22127.0.0.1\x22,\
> x22message_id\x22:\x220e0d94b7-9085-4e3c-ab30-e3f2cd9c273e\x22,\
> x22rcpt_meta\x22:{\x22customKey\x22:\x22customValue\x22},\x22rcpt_tags\x22
> :[\x22male\x22,\x22US\x22],\x22rcpt_to\x22:\x22recipi...@example.com\x22,\
> x22raw_rcpt_to\x22:\x22recipi...@example.com\x22,\x22rcpt_type\x22:\x22cc\
> x22,\x22subaccount_id\x22:\x22101\x22,\x22template_id\x22:\x22templ-1234\
> x22,\
> ...

-- 
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: for those of us who do not understand ...

2016-03-07 Thread Leonel Câmara
How do you handle menus and submenus in touch devices where you don't 
"hover"?

-- 
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 with a lot of modules

2016-03-07 Thread Leonel Câmara
The production environment can always be a dedicated server or a VPS where 
you can pretty much install anything you have on your development computer.

-- 
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 with a lot of modules

2016-03-07 Thread Marty Jones
I'm working on developing a web2py application that uses a scraper. In 
order to accomplish what I need I'm using a lot of modules... Selenium, 
BeautifulSoup, possibly AutoIT, and all the dependencies of those modules...

How do I begin to think about including those during deployment? I'm 
admittedly a noob so I want to make sure I'm not using tools that can't be 
deployed in a production environment.

-- 
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: for those of us who do not understand ...

2016-03-07 Thread Richard Vézina
I submit a PR to replace bla bla by Lorem ipsum extract...

Richard

On Mon, Mar 7, 2016 at 6:28 AM, Ron Chatterjee 
wrote:

> Nice work Massimo. Looks really great. Once seen one theme but the others
> looks nice as well.
>
> On Sunday, March 6, 2016 at 5:19:33 PM UTC-5, Massimo Di Pierro wrote:
>>
>> Hello Ron,
>>
>> I changed the page so that when you hover on an example it shows a "?"
>> and if you just click it shoes you the source of the example. I use jQuery
>> for this and only for this.
>>
>> Does it makes it easier to learn?
>>
>> Massimo
>>
>> On Saturday, 5 March 2016 12:14:48 UTC-6, Ron Chatterjee wrote:
>>>
>>> For some reason, I could run the app out of box, it gives me this error
>>> (attached). Is there a config file is missing?
>>>
>>> On Saturday, March 5, 2016 at 1:35:20 AM UTC-5, Massimo Di Pierro wrote:



 On Friday, 4 March 2016 18:56:36 UTC-6, Dave S wrote:
>
>
>
> On Friday, March 4, 2016 at 4:01:09 PM UTC-8, Massimo Di Pierro wrote:
>>
>> If you want to try it with web2py here is welcome app based on
>> stupid.css
>>
>> https://github.com/mdipierro/web2py-welcome-theme-stupid
>>
>> Notice a few things:
>> - It does not require any change in the python code or form styles or
>> grid. I
>> - It works with the existing bootstrap classes, it simply ignores.
>> Too much trouble to remove them everywhere.
>> - The static folder is significative lighter.
>>
>>
> I copied the appconfig.ini from the standard welcome app; is the
> [forms]formstyle option ignored?  (bullet 2 suggests 'yes')
>

 the bootstrap classes are ignored. The format of the HTML in the
 bootstrap is instead important. Works with the other style options too but
 I think works best with the bootstrap html.


> Also, on the login form, the "Log In" button is appreciably smaller
> than the "Sign Up" and the "Lost Password" buttons; is that because it is
> an input field and the others are button buttons?
>

 fixed.


>
> The H1 with class="glass" and contents "STUPID.CSS" has a noticeable
> band over the background picture, slightly higher than the letter height,
> but not the height of the enclosing DIV.
>

 That was on purpose. I made it smaller. is it better?


> For the quarter-div with the ADMIN stuff, it looks like I've got a
> missing glyph -- there's a rectangle about the size of the 'A' in Admin,
> with the 10-over-01 pattern that I think FF uses for missing font
> characters.
>

 Fixed.

>
> Otherwise, the page looks very good!
>

 Did you try the grid?


> Massimo
>>
>>
> Thanks!
>
> /dps
>
>
>> On Friday, 4 March 2016 08:51:00 UTC-6, villas wrote:
>>>
>>> I love this.  It would be so cool if this was maintained with the
>>> rest of the framework and widgets could then include the generic
>>> stupid.css.  The grid could use it and this would resolve a lot of 
>>> issues
>>> with choice of css framework.
>>>
>>> A couple of questions spring to mind:
>>> Does anyone need another CSS framework!  Will there be enough
>>> support to keep it going?  I was reminded of the doubts I had about
>>> Markmin,  but this has been great and I use it a lot and it seems to 
>>> have
>>> hardly required any support or huge extra effort.  I am disappointed 
>>> that
>>> Markmin isn't more popular,  but very glad it exists.  I feel that
>>> stupid.css could be a similar kind of thing.
>>>
>>> Is it intended that users use this for standard widgets and then add
>>> Bootstrap or Semantic or whatever for any extras?  Its simplicity is not
>>> going to resolve every requirement.
>>>
>>> I'm not convinced about the name,  but at least it is memorable!
>>>
>>> --
> 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.


[web2py] Re: Not receiving post_vars from external service webhook

2016-03-07 Thread Lisandro
Thanks for the tip.

I've done some tests, and I've found some details that could point the 
problem.

I'm sending a test post to my app url, from SparkPost web app. 
SparkPost tells me that it will send this post:

POST /ws/sparkpost_message_opened HTTP/1.1
Host: x.com.ar
Content-Type: application/json
X-MessageSystems-Batch-ID: 77c2b630-d712-11e4-9642-efc2723b99c1
Connection: close

[
  {
"msys": {
  "track_event": {
"type": "open",
"campaign_id": "Example Campaign Name",
"customer_id": "1",
"delv_method": "esmtp",
"event_id": "92356927693813856",
"ip_address": "127.0.0.1",
"message_id": "0e0d94b7-9085-4e3c-ab30-e3f2cd9c273e",
"rcpt_meta": {
  "customKey": "customValue"
},
"rcpt_tags": [
  "male",
  "US"
],
"rcpt_to": "recipi...@example.com",
"raw_rcpt_to": "recipi...@example.com",
"rcpt_type": "cc",
"subaccount_id": "101",
"template_id": "templ-1234",
"template_version": "1",
"timestamp": 1454442600,
"transmission_id": "65832150921904138",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) 
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36",
"geo_ip": {
  "country": "US",
  "region": "MD",
  "city": "Columbia",
  "latitude": "39.1749",
  "longitude": "-76.8375"
}
  }
}
  }
]


I've modified my nginx log configuration, to log the $request_body to a log 
file, and I can see in deed the post (sorry about the format, but you can 
see the post data is there):

[{\x22msys\x22:{\x22track_event\x22:{\x22type\x22:\x22open\x22,\
x22campaign_id\x22:\x22Example Campaign Name\x22,\x22customer_id\x22:\x221\
x22,\x22delv_method\x22:\x22esmtp\x22,\x22event_id\x22:\x2292356927693813856
\x22,\x22ip_address\x22:\x22127.0.0.1\x22,\x22message_id\x22:\x220e0d94b7-
9085-4e3c-ab30-e3f2cd9c273e\x22,\x22rcpt_meta\x22:{\x22customKey\x22:\
x22customValue\x22},\x22rcpt_tags\x22:[\x22male\x22,\x22US\x22],\x22rcpt_to\
x22:\x22recipi...@example.com\x22,\x22raw_rcpt_to\x22:\x22recipient@example.
com\x22,\x22rcpt_type\x22:\x22cc\x22,\x22subaccount_id\x22:\x22101\x22,\
x22template_id\x22:\x22templ-1234\x22,\x22template_version\x22:\x221\x22,\
x22timestamp\x22:1454442600,\x22transmission_id\x22:\x2265832150921904138\
x22,\x22user_agent\x22:\x22Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) 
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36\
x22,\x22geo_ip\x22:{\x22country\x22:\x22US\x22,\x22region\x22:\x22MD\x22,\
x22city\x22:\x22Columbia\x22,\x22latitude\x22:\x2239.1749\x22,\x22longitude\
x22:\x22-76.8375\x22]


However, in my controller, checking for request.post_vars returns False.
What am I missing?




El lunes, 7 de marzo de 2016, 13:19:17 (UTC-3), Anthony escribió:
>
> request.vars, request.post_vars, and request.get_vars are properties (and 
> their values are filled in lazily upon first access), so they are ignored 
> by BEAUTIFY (which only includes attributes found in request.keys()). If 
> you want the entire request object, you could try the trick used in 
> response.toolbar:
>
> request.post_vars = request.post_vars
> archivo.write(BEAUTIFY(request).xml())
>
> That will retrieve the post_vars and change request.post_vars to an 
> attribute, which BEAUTIFY will then display.
>
> Anthony
>
> On Monday, March 7, 2016 at 10:07:00 AM UTC-5, Lisandro wrote:
>>
>> I'm using SparkPost [1] (a transactional email platform) through its API 
>> [2].
>>
>> I'm trying to implement their webhook.
>> I have already set up a public URL in my app to let SparkPost send a POST 
>> each time a message is opened (that is, one of the messages I previously 
>> sent throug the API).
>>
>> The problem is that *I'm receiving the POST request, but nothing in 
>> post_vars, no vars, nothing*.
>> However, the headers do include some stuff that needs to be there, 
>> accordingly to SparkPost documentation [3].
>>
>>
>> My public function is really simple, just writes a BEAUTIFY(request) to a 
>> log file:
>>
>> def sparkpost_message_opened():
>> archivo = open('webhook.log', 'a')
>> archivo.write('\n')
>> archivo.write(BEAUTIFY(request).xml())
>> archivo.write('\n')
>> archivo.close()
>> return HTTP(200)
>>
>> However, when I check the received data, I see that the request object 
>> doesn't have post_vars or vars.
>> I think the problem could be in the SparkPost side, but I'm not sure.
>> How can I double check? Is there a way that I can see the post data that 
>> was sent? I'm using nginx.
>>
>>
>> [1] https://sparkpost.com
>> [2] https://developers.sparkpost.com/api/
>> [3] 
>> https://support.sparkpost.com/customer/en/portal/articles/2311698-comparing-webhook-and-message-event-data
>>
>>
>> Thanks in advance!
>> Regards, Lisandro. 
>>
>>

-- 
Resources:
- 

[web2py] Re: Not receiving post_vars from external service webhook

2016-03-07 Thread Anthony
request.vars, request.post_vars, and request.get_vars are properties (and 
their values are filled in lazily upon first access), so they are ignored 
by BEAUTIFY (which only includes attributes found in request.keys()). If 
you want the entire request object, you could try the trick used in 
response.toolbar:

request.post_vars = request.post_vars
archivo.write(BEAUTIFY(request).xml())

That will retrieve the post_vars and change request.post_vars to an 
attribute, which BEAUTIFY will then display.

Anthony

On Monday, March 7, 2016 at 10:07:00 AM UTC-5, Lisandro wrote:
>
> I'm using SparkPost [1] (a transactional email platform) through its API 
> [2].
>
> I'm trying to implement their webhook.
> I have already set up a public URL in my app to let SparkPost send a POST 
> each time a message is opened (that is, one of the messages I previously 
> sent throug the API).
>
> The problem is that *I'm receiving the POST request, but nothing in 
> post_vars, no vars, nothing*.
> However, the headers do include some stuff that needs to be there, 
> accordingly to SparkPost documentation [3].
>
>
> My public function is really simple, just writes a BEAUTIFY(request) to a 
> log file:
>
> def sparkpost_message_opened():
> archivo = open('webhook.log', 'a')
> archivo.write('\n')
> archivo.write(BEAUTIFY(request).xml())
> archivo.write('\n')
> archivo.close()
> return HTTP(200)
>
> However, when I check the received data, I see that the request object 
> doesn't have post_vars or vars.
> I think the problem could be in the SparkPost side, but I'm not sure.
> How can I double check? Is there a way that I can see the post data that 
> was sent? I'm using nginx.
>
>
> [1] https://sparkpost.com
> [2] https://developers.sparkpost.com/api/
> [3] 
> https://support.sparkpost.com/customer/en/portal/articles/2311698-comparing-webhook-and-message-event-data
>
>
> Thanks in advance!
> Regards, Lisandro. 
>
>

-- 
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] Not receiving post_vars from external service webhook

2016-03-07 Thread Lisandro
I'm using SparkPost [1] (a transactional email platform) through its API 
[2].

I'm trying to implement their webhook.
I have already set up a public URL in my app to let SparkPost send a POST 
each time a message is opened (that is, one of the messages I previously 
sent throug the API).

The problem is that *I'm receiving the POST request, but nothing in 
post_vars, no vars, nothing*.
However, the headers do include some stuff that needs to be there, 
accordingly to SparkPost documentation [3].


My public function is really simple, just writes a BEAUTIFY(request) to a 
log file:

def sparkpost_message_opened():
archivo = open('webhook.log', 'a')
archivo.write('\n')
archivo.write(BEAUTIFY(request).xml())
archivo.write('\n')
archivo.close()
return HTTP(200)

However, when I check the received data, I see that the request object 
doesn't have post_vars or vars.
I think the problem could be in the SparkPost side, but I'm not sure.
How can I double check? Is there a way that I can see the post data that 
was sent? I'm using nginx.


[1] https://sparkpost.com
[2] https://developers.sparkpost.com/api/
[3] 
https://support.sparkpost.com/customer/en/portal/articles/2311698-comparing-webhook-and-message-event-data


Thanks in advance!
Regards, Lisandro. 

-- 
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 User split by tables

2016-03-07 Thread Anthony
This doesn't quite make sense. You are processing one form, and in the 
callback, you overwrite the "form" variable with an entirely new form 
object, attempting to process it immediately without the user having seen 
or submitted it. I think you need a different strategy.

Two other tips:

   - If your callback already has the proper signature, there is no need to 
   wrap it in a lambda -- just do auth.settings.profile_onaccept = 
   after_profile.
   - If you have the Row object of a record, just pass that as the "record" 
   argument to SQLFORM -- if you pass the id, SQLFORM will then do an 
   additional query to get the Row object.

Anthony

On Sunday, March 6, 2016 at 6:59:20 PM UTC-5, Ron Chatterjee wrote:
>
> I have the auth_user split up between employer and employee
>
> After the profile is created I want to be able to modify the employee 
> profile. 
>
>
> So, I have this in my model 
>
> auth.settings.profile_onaccept = lambda form: after_profile(form) 
>
> In my controller:
>
> def after_profile(form):
> if form.vars.user_type == 'employee':
> record = db(db.employee.employee_profile== auth.user_id).select()
> form = SQLFORM(db.employee,record[0].id,deletable=True, 
> submit_button='Update Profile').process()
> if form.accepted:
> session.flash = T(profile is modified')
> redirect(URL('default','index'))
> else:
> redirect(URL('default','index'))
> return dict(form = form)
>
> request.args(0) is 'profile'. 
>
> How to make the SQLFORM to make it editable for that profile/user_id? It 
> doesn't work the way it is.
>
> On Friday, February 5, 2016 at 11:58:23 AM UTC-5, Ron Chatterjee wrote:
>>
>> yes got it. Thank you. sorry. lol
>>
>> On Friday, February 5, 2016 at 11:19:29 AM UTC-5, Anthony wrote:
>>>
>>> In the shell, just print it, pass it to str(), or call its .xml() method.
>>>
>>> Or just load it in the browser and "view source".
>>>
>>> Anthony
>>>
>>> On Friday, February 5, 2016 at 10:44:58 AM UTC-5, Ron Chatterjee wrote:

 This may be trivial but how do I get the html code out of 
 auth.navbar()? It shows up as a gluon object.

 On Tuesday, February 2, 2016 at 6:29:19 PM UTC-5, Anthony wrote:
>
> I guess I can do this:
>> https://groups.google.com/forum/#!topic/web2py/AYORqIEpc9E
>> But that kills all the style. Then I got to custom style it. 
>>
>
> Just look at the HTML generated by auth.navbar() and replicate that 
> HTML, just making the changes you need in the links.
>
> 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: for those of us who do not understand ...

2016-03-07 Thread Ron Chatterjee
Nice work Massimo. Looks really great. Once seen one theme but the others 
looks nice as well. 

On Sunday, March 6, 2016 at 5:19:33 PM UTC-5, Massimo Di Pierro wrote:
>
> Hello Ron,
>
> I changed the page so that when you hover on an example it shows a "?" and 
> if you just click it shoes you the source of the example. I use jQuery for 
> this and only for this. 
>
> Does it makes it easier to learn?
>
> Massimo
>
> On Saturday, 5 March 2016 12:14:48 UTC-6, Ron Chatterjee wrote:
>>
>> For some reason, I could run the app out of box, it gives me this error 
>> (attached). Is there a config file is missing?
>>
>> On Saturday, March 5, 2016 at 1:35:20 AM UTC-5, Massimo Di Pierro wrote:
>>>
>>>
>>>
>>> On Friday, 4 March 2016 18:56:36 UTC-6, Dave S wrote:



 On Friday, March 4, 2016 at 4:01:09 PM UTC-8, Massimo Di Pierro wrote:
>
> If you want to try it with web2py here is welcome app based on 
> stupid.css
>
> https://github.com/mdipierro/web2py-welcome-theme-stupid
>
> Notice a few things:
> - It does not require any change in the python code or form styles or 
> grid. I
> - It works with the existing bootstrap classes, it simply ignores. Too 
> much trouble to remove them everywhere.
> - The static folder is significative lighter.
>
>
 I copied the appconfig.ini from the standard welcome app; is the 
 [forms]formstyle option ignored?  (bullet 2 suggests 'yes')

>>>
>>> the bootstrap classes are ignored. The format of the HTML in the 
>>> bootstrap is instead important. Works with the other style options too but 
>>> I think works best with the bootstrap html. 
>>>  
>>>
 Also, on the login form, the "Log In" button is appreciably smaller 
 than the "Sign Up" and the "Lost Password" buttons; is that because it is 
 an input field and the others are button buttons?

>>>
>>> fixed.
>>>  
>>>

 The H1 with class="glass" and contents "STUPID.CSS" has a noticeable 
 band over the background picture, slightly higher than the letter height, 
 but not the height of the enclosing DIV.

>>>
>>> That was on purpose. I made it smaller. is it better?
>>>  
>>>
 For the quarter-div with the ADMIN stuff, it looks like I've got a 
 missing glyph -- there's a rectangle about the size of the 'A' in Admin, 
 with the 10-over-01 pattern that I think FF uses for missing font 
 characters.

>>>
>>> Fixed. 
>>>

 Otherwise, the page looks very good! 

>>>
>>> Did you try the grid?
>>>  
>>>
 Massimo
>
>
 Thanks!

 /dps
  

> On Friday, 4 March 2016 08:51:00 UTC-6, villas wrote:
>>
>> I love this.  It would be so cool if this was maintained with the 
>> rest of the framework and widgets could then include the generic 
>> stupid.css.  The grid could use it and this would resolve a lot of 
>> issues 
>> with choice of css framework.
>>
>> A couple of questions spring to mind:
>> Does anyone need another CSS framework!  Will there be enough support 
>> to keep it going?  I was reminded of the doubts I had about Markmin,  
>> but 
>> this has been great and I use it a lot and it seems to have hardly 
>> required 
>> any support or huge extra effort.  I am disappointed that Markmin isn't 
>> more popular,  but very glad it exists.  I feel that stupid.css could be 
>> a 
>> similar kind of thing.
>>
>> Is it intended that users use this for standard widgets and then add 
>> Bootstrap or Semantic or whatever for any extras?  Its simplicity is not 
>> going to resolve every requirement.
>>
>> I'm not convinced about the name,  but at least it is memorable!
>>
>>

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