[web2py] Logout if browser is closed

2011-12-07 Thread Saurabh S
Hi ,

Is there any way possible to log-out the user if browser is closed ?

Please provide suggestions 


[web2py] Logout if browser is closed

2011-12-07 Thread Saurabh S
Hi ,


Is there any way possible to log-out the user if browser in closed ?



Please provide suggestions 



[web2py] Re: request reset password

2011-12-07 Thread Constantine Vasil
Yes it worked! 

Thank you Anthony, you help is much appreciated. ;)


[web2py] Re: request reset password

2011-12-07 Thread Anthony
You're right -- there's one setting for both buttons 
(auth.messages.password_reset_button), but they should probably be 
separate. For now, you could add some code changing the setting right 
before the reset form is created:

auth.messages.password_reset_button = 'Reset Password'
form = auth.reset_password()
return dict(form=form)

Anthony

On Wednesday, December 7, 2011 10:54:12 PM UTC-5, Constantine Vasil wrote:
>
> I implemented request_reset_password in a separate
> url to have more control on the design.
>
> The email comes with the link pointing to:
> /reset_password. I am clicking on the link and I can change the password 
> but the button showing on reset_password form is "Request Reset Password"
> like the button in /request_reset_password. I believe it should be "Reset 
> Password".
>
> The question is how to change the name of the button. If I use form 
> factory I can define it like this:
> form = SQLFORM.factory(
> submit_button = 'Submit'   
>  
>   )
>
> But how to change it directly?
>
> Thank in advance,
> --Constantine
>
> def request_reset_password(): 
> form=current.app.auth.request_reset_password()
> form.custom.submit['_data-theme'] = 'e'
> form.custom.submit['_data-ajax'] = 'false'
> auth.messages.reset_password = \
> 'Click on the link http://' + 
> current.request.env.http_host + \
> URL('reset_password') + \
> '/%(key)s to reset your password' 
> current.app.auth =  auth
>
> return dict(
> form=form
> )
>
> def reset_password():
> form=current.app.auth.reset_password(next=reset_password_next)
> form.custom.submit['_data-theme'] = 'e'
> form.custom.submit['_data-ajax'] = 'false'
> form.custom.submit_button = 'Reset Password'
> return dict(
> form=form
> )
>
>
>
>
>

[web2py] request reset password

2011-12-07 Thread Constantine Vasil
I implemented request_reset_password in a separate
url to have more control on the design.

The email comes with the link pointing to:
/reset_password. I am clicking on the link and I can change the password 
but the button showing on reset_password form is "Request Reset Password"
like the button in /request_reset_password. I believe it should be "Reset 
Password".

The question is how to change the name of the button. If I use form factory 
I can define it like this:
form = SQLFORM.factory(
submit_button = 'Submit'   
 
  )

But how to change it directly?

Thank in advance,
--Constantine

def request_reset_password(): 
form=current.app.auth.request_reset_password()
form.custom.submit['_data-theme'] = 'e'
form.custom.submit['_data-ajax'] = 'false'
auth.messages.reset_password = \
'Click on the link http://' + 
current.request.env.http_host + \
URL('reset_password') + \
'/%(key)s to reset your password' 
current.app.auth =  auth

return dict(
form=form
)

def reset_password():
form=current.app.auth.reset_password(next=reset_password_next)
form.custom.submit['_data-theme'] = 'e'
form.custom.submit['_data-ajax'] = 'false'
form.custom.submit_button = 'Reset Password'
return dict(
form=form
)






[web2py] Re: the register form does not checks if a password is entered

2011-12-07 Thread Constantine Vasil
min_length was missing - I had to go to "tools" to see how to do it.

Thank you.


[web2py] Re: How to do it: Handling import path manipulation + GAE + deferred?

2011-12-07 Thread Constantine Vasil
Thank you, I know about it but I am using deferred because I have a lot of 
tasks ad-hoc from a functions. Using deferred eliminates the need to create 
a separate url for each task.

[web2py] Re: Code changes are not noticed

2011-12-07 Thread Anthony
Glad to be of help. :-)

On Wednesday, December 7, 2011 8:25:19 PM UTC-5, SallyG wrote:
>
> Anthony,
>
> With renewed confidence after your thoughtful reply I created a new
> directory and my 10 line program worked and behaved perfectly.
>
> I believe all your diagnosis is correct and I was simply befuddled.
>
> Thank you for helping me over my initial frustration.  The power of
> these 10 lines of code demonstrates web2py will be a great tool in
> accomplishing my tasks.
>
> Sally
>
> On Dec 6, 9:33 pm, Anthony  wrote:
> > >  after I removed the content of the default index.html and
> > > added my own 5 lines, I got complaints about (non-existent) line 84.
> >
> > When there is an error in a view file, the line number reported is not 
> the
> > line number of the original view file, but the line number of the code
> > after the entire view has been translated to Python. The translated code 
> is
> > the code shown in the error ticket page, so the line number should match 
> up
> > there. This is mentioned
> > here:http://web2py.com/book/default/chapter/03#errors.
> >
> > > When I moved my index.html to index.html.hold, I got complaints about
> > > the content of the now absent file.
> >
> > When a function is called and there is no corresponding view file, if
> > generic views are enabled (which they are by default in the 'welcome' app
> > for local requests), web2py will use the generic view -- so even if you
> > have removed index.html, it will still render whatever is returned by 
> your
> > index function. Perhaps that is what is happening here. If you show some
> > code and tracebacks, we might be able to help further.
> >
> > Anthony
>
>

[web2py] Re: Code changes are not noticed

2011-12-07 Thread SallyG
Anthony,

With renewed confidence after your thoughtful reply I created a new
directory and my 10 line program worked and behaved perfectly.

I believe all your diagnosis is correct and I was simply befuddled.

Thank you for helping me over my initial frustration.  The power of
these 10 lines of code demonstrates web2py will be a great tool in
accomplishing my tasks.

Sally

On Dec 6, 9:33 pm, Anthony  wrote:
> >  after I removed the content of the default index.html and
> > added my own 5 lines, I got complaints about (non-existent) line 84.
>
> When there is an error in a view file, the line number reported is not the
> line number of the original view file, but the line number of the code
> after the entire view has been translated to Python. The translated code is
> the code shown in the error ticket page, so the line number should match up
> there. This is mentioned
> here:http://web2py.com/book/default/chapter/03#errors.
>
> > When I moved my index.html to index.html.hold, I got complaints about
> > the content of the now absent file.
>
> When a function is called and there is no corresponding view file, if
> generic views are enabled (which they are by default in the 'welcome' app
> for local requests), web2py will use the generic view -- so even if you
> have removed index.html, it will still render whatever is returned by your
> index function. Perhaps that is what is happening here. If you show some
> code and tracebacks, we might be able to help further.
>
> Anthony


Re: [web2py] How to implement a function to choose from a really long list of categories?

2011-12-07 Thread Vinicius Assef
A bit of curiosity... if web2py component has problems, why couldn't
it be replaced (by default) by plugin_suggest_widget if it is open
source?



On Tue, Nov 29, 2011 at 3:33 PM, Jim Steil  wrote:
> +1 for the suggest widget.  I too have had display issues with the web2py
> autocomplete widget.
>
>     -Jim
>
>
> On 11/29/2011 11:10 AM, Bruno Rocha wrote:
>
> http://dev.s-cubism.com/plugin_suggest_widget
>
> http://dev.s-cubism.com/plugin_lazy_options_widget
>
> On Tue, Nov 29, 2011 at 3:02 PM, Constantine Vasil 
> wrote:
>>
>> I have a long list of categories which the user has to add to his My Info.
>>
>> The issue is the list is very long - about 500 categories and counting.
>>
>> How it would be the best approach to make this list to load in the HTML
>> really quick?
>>
>> Loading this long list takes considerable time especially on mobile
>> devices where the browser is slow.
>>
>>
>>
>
>
>
> --
>
> Bruno Rocha
> [http://rochacbruno.com.br]
>


Re: [web2py] Web2py breaks with [IS_INT_IN_RANGE(), IS_IN_SET()]

2011-12-07 Thread Vinicius Assef
Thanks, Anthony.


On Wed, Dec 7, 2011 at 10:15 PM, Anthony  wrote:
> Good to know -- I'll make sure the book gets updated.
>
> On Wednesday, December 7, 2011 7:12:47 PM UTC-5, viniciusban wrote:
>>
>> On Tue, Dec 6, 2011 at 8:30 PM, Anthony Bastardi 
>> wrote:
>> > Try just using IS_IN_SET as you have, and just do the
>> > insert without any transformation -- does that work?
>>
>> Yes.


Re: [web2py] Web2py breaks with [IS_INT_IN_RANGE(), IS_IN_SET()]

2011-12-07 Thread Anthony
Good to know -- I'll make sure the book gets updated.

On Wednesday, December 7, 2011 7:12:47 PM UTC-5, viniciusban wrote:
>
> On Tue, Dec 6, 2011 at 8:30 PM, Anthony Bastardi  
> wrote:
> > Try just using IS_IN_SET as you have, and just do the
> > insert without any transformation -- does that work?
>
> Yes.
>


Re: [web2py] Web2py breaks with [IS_INT_IN_RANGE(), IS_IN_SET()]

2011-12-07 Thread Vinicius Assef
On Tue, Dec 6, 2011 at 8:30 PM, Anthony Bastardi  wrote:
> Try just using IS_IN_SET as you have, and just do the
> insert without any transformation -- does that work?

Yes.


Re: [web2py] Re: SQLFORM.factory int() argument must be a string or a number, not 'list' in many-to-many relationship

2011-12-07 Thread Vincenzo Ampolo

On 12/08/2011 12:24 AM, Anthony wrote:
do not set multiple=True (in that case, though, you'll only be able to 
select one dictionary or category at a time).
Sure, i did it... but i want a form in which the user can choose many an 
user, many categories and many dictionaries. and submit. how can i do that?


--
Vincenzo Ampolo
http://vincenzo-ampolo.net
http://goshawknest.wordpress.com



[web2py] Re: SQLFORM.factory int() argument must be a string or a number, not 'list' in many-to-many relationship

2011-12-07 Thread Anthony
On Wednesday, December 7, 2011 6:08:24 PM UTC-5, Vincenzo Ampolo wrote:
>
>  Hi all
>
> I'm new to web2py. I set up a many to many relationship like these ones:
>
> db.define_table('users_dictionaries',
>
> Field('user_id', db.auth_user, requires = 
> IS_IN_DB(db,'auth_user.id', db.auth_user._format)),
>
> Field('dictionary_id', db.dictionary, 
> requires=IS_IN_DB(db,'dictionary.id',db.dictionary._format,multiple=True)),
>
> )
>
> db.define_table('users_categories',
>
> Field('user_id', db.auth_user, requires = 
> IS_IN_DB(db,'auth_user.id', db.auth_user._format)),
>
> Field('category_id', db.category, 
> requires=IS_IN_DB(db,'category.id',db.category._format,multiple=True))
>
> )
>
>
You only use multiple=True if the field is of type list:reference, which 
enables it to store multiple reference values in a single field (I'm not 
sure that's what you want, though). If you want a true many-to-many 
relationship with a separate record in the link table for each 
user/dictionary and user/category combo, then do not set multiple=True (in 
that case, though, you'll only be able to select one dictionary or category 
at a time).

Anthony

 

[web2py] SQLFORM.factory int() argument must be a string or a number, not 'list' in many-to-many relationship

2011-12-07 Thread Vincenzo Ampolo

Hi all

I'm new to web2py. I set up a many to many relationship like these ones:

db.define_table('users_dictionaries',

Field('user_id', db.auth_user, requires = 
IS_IN_DB(db,'auth_user.id', db.auth_user._format)),

Field('dictionary_id', db.dictionary, 
requires=IS_IN_DB(db,'dictionary.id',db.dictionary._format,multiple=True)),

)

db.define_table('users_categories',

Field('user_id', db.auth_user, requires = 
IS_IN_DB(db,'auth_user.id', db.auth_user._format)),

Field('category_id', db.category, 
requires=IS_IN_DB(db,'category.id',db.category._format,multiple=True))

)


in the controller i'm doing:

 perm_form=SQLFORM.factory(db.users_categories,db.users_dictionaries)
if perm_form.process().accepted:
form.vars.user=auth_user.id
id = 
db.users_categories.insert(**db.user_categories._filter_fields(perm_form.vars))
id = 
db.users_dictionaries.insert(**db.user_dictionaries._filter_fields(perm_form.vars))
response.flash='Thanks for filling the form'


It's displayed correctly: combo for the user, multiple select for 
user_categories and user_dictionaries but when i try to select a user, 
some or one category and some or one dictionary and i press submit i get 
this error:


Traceback(most recent call last):
  File"/var/www/argomenti.in/web2py/gluon/restricted.py",line194,inrestricted
execccodeinenvironment
  File"/var/www/argomenti.in/web2py/applications/webkeywords2/controllers/admin.py"  
,line20,in
  File"/var/www/argomenti.in/web2py/gluon/globals.py",line149,in
self._caller=lambdaf:f()
  File"/var/www/argomenti.in/web2py/applications/webkeywords2/controllers/admin.py"  
,line9,inindex
ifperm_form.process().accepted:
  File"/var/www/argomenti.in/web2py/gluon/html.py",line1950,inprocess
self.validate(**kwargs)
  File"/var/www/argomenti.in/web2py/gluon/html.py",line1898,invalidate
if self.accepts(**kwargs):
  File"/var/www/argomenti.in/web2py/gluon/sqlhtml.py",line1219,inaccepts
fields[fieldname] =safe_int(value)
  File"/var/www/argomenti.in/web2py/gluon/sqlhtml.py",line48,insafe_int
returnint(x)
TypeError:int()argument must be a stringora number,not'list'

How can i fix it? is that multiple=True of my tables that triggers the problem?

Thanks

--
Vincenzo Ampolo
http://vincenzo-ampolo.net
http://goshawknest.wordpress.com



[web2py] Re: web2py social gathering in Chicago

2011-12-07 Thread Massimo Di Pierro
I'd love to.

On Dec 7, 12:53 pm, Cliff  wrote:
> Chicago too far away!
>
> Next time how about Atlanta?  Weather (usually) better in the winter.
>
> On Dec 6, 6:21 pm, Massimo Di Pierro 
> wrote:
>
>
>
>
>
>
>
> > If you can make it please RSVP
>
> >http://mdp.cti.depaul.edu/rsvp/default/respond_event/4bf55e15-0c58-44...
>
> > Massimo


[web2py] Re: Mongo DB, AMFRPC3 and http 500 errors

2011-12-07 Thread Mike D
I just decided to make copies of the objects. Thanks a lot though!

On Nov 12, 10:07 pm, Sathvik Ponangi  wrote:
> I keep getting a RestrictedError for certain kinds of output, especially
> when I try using modules in my views & they are usually hard to trace.
> I think web2py restricts the kind of things you can output, probably for
> security reasons...
> Hope that helped!


Re: [web2py] Re: SQLFORM.grid - get rid of 'id'

2011-12-07 Thread Martin Weissenboeck
That's it - thank you!

2011/12/7 Anthony 

> db.mytable.id.readable = db.mytable.id.writeable = False
>
>
> On Wednesday, December 7, 2011 4:23:23 PM UTC-5, mweissen wrote:
>>
>> How can I get rid of the "id"-column when editing one row of a grid?
>>
>> Regards, Martin
>>
>


[web2py] Re: How to do it: Handling import path manipulation + GAE + deferred?

2011-12-07 Thread howesc
Constantine,

perhaps because i was not able to untangle the deferred library and paths 
and how to get GAE and web2py to play nice together (i remember it was a 
long afternoon a couple of years ago and that is about all), i found 
http://code.google.com/appengine/docs/python/taskqueue/functions.html which 
allows me to add a request to the taskqueue.

now, this is different then deferred.  i believe deferred is like running a 
python script/module sometime in the future, whereas the taskqueue is like 
scheduling a curl request to your server sometime in the future.  once i 
wrapped my head around that and wrapped my script/module into a web2py 
controller function i was up and running in minutes.

that said, have you looked into using taskqueue?  what does deferred have 
that taskqueue does not?  perhaps i missed something by giving up on 
deferred.

christian


[web2py] Re: SQLFORM.grid - get rid of 'id'

2011-12-07 Thread Anthony
db.mytable.id.readable = db.mytable.id.writeable = False

On Wednesday, December 7, 2011 4:23:23 PM UTC-5, mweissen wrote:
>
> How can I get rid of the "id"-column when editing one row of a grid?
>
> Regards, Martin
>


[web2py] SQLFORM.grid - get rid of 'id'

2011-12-07 Thread Martin Weissenboeck
How can I get rid of the "id"-column when editing one row of a grid?

Regards, Martin


[web2py] Re: web2py social gathering in Chicago

2011-12-07 Thread Anthony
Janrain signin doesn't seem to be working.

On Tuesday, December 6, 2011 6:21:44 PM UTC-5, Massimo Di Pierro wrote:
>
> If you can make it please RSVP
>
>
> http://mdp.cti.depaul.edu/rsvp/default/respond_event/4bf55e15-0c58-440d-bd61-3dcb99fc8cce
>
> Massimo
>
>

[web2py] Re: avoid logging-in-site

2011-12-07 Thread Anthony
What do you mean by "logging-in-site" -- are you just talking about the 
default login URL (i.e., /default/user/login)?

You can set the login URL via:

auth.settings.login_url = URL(...)

See http://web2py.com/book/default/chapter/08#Settings-and-Messages.

Anthony

On Wednesday, December 7, 2011 2:02:34 PM UTC-5, Rick wrote:
>
> Hi,
>
> From my controller file:
>
> @auth.requires_login()
> def create():
> ...
>
> def somethingelse():
> ...
>
> When the user isn't logged in but tries to open the site
> "create.html", then he's redirected to the logging-in-site. My problem
> is that I'd like the user to be redirected to "somethingelse.html"
> instead of the logging-in-site. How to code that?
>
> Thanks in advance for help
>
>

Re: [web2py] Re: StaticPython!

2011-12-07 Thread Angelo Compagnucci
I think there is no way, it's statically compiled by the way!

2011/12/7 Ross Peoples :
> Great find Angelo! Would things like Cython and other CPython extensions
> (.so) work with StaticPython (obviously they would need to be built for the
> platform)?



-- 
Profile: http://www.gild.com/compagnucciangelo
Register on Gild: http://www.gild.com/referral/compagnucciangelo


[web2py] avoid logging-in-site

2011-12-07 Thread Rick
Hi,

>From my controller file:

@auth.requires_login()
def create():
...

def somethingelse():
...

When the user isn't logged in but tries to open the site
"create.html", then he's redirected to the logging-in-site. My problem
is that I'd like the user to be redirected to "somethingelse.html"
instead of the logging-in-site. How to code that?

Thanks in advance for help


[web2py] Re: web2py social gathering in Chicago

2011-12-07 Thread Cliff
Chicago too far away!

Next time how about Atlanta?  Weather (usually) better in the winter.

On Dec 6, 6:21 pm, Massimo Di Pierro 
wrote:
> If you can make it please RSVP
>
> http://mdp.cti.depaul.edu/rsvp/default/respond_event/4bf55e15-0c58-44...
>
> Massimo


[web2py] Re: Add Appending Fields to a Form with Ajax

2011-12-07 Thread Cliff
Don't use a form for the list items, just for the list header.

The following is meant to serve as an example, not as working code.

It represents the way I solved the problem.  No doubt there are better
ways but this does work.

The script is Jquery.  Strongly recommend you do lots of reading on
that site.
Also see The Book on javascript and ajax recipes.

You can probably accomplish the same thing using a component and the
LOAD command; The Book recommends this approach though I have not used
it.

Validate request.vars in the javascript callbacks!!

model:

db.define_table('stuff', Field('name'))
db.define_table('related', Field('myfield'), Field('stuff_id',
db.stuff))
# other details left out

controller:

def edit():
  ## so you can edit stuff
  form = SQLFORM(db.stuff, request.args[-1])
  #
  if form.process().success:
redirect(URFL('edit')) # so you come back here
  ## outside the form
  new_related = INPUT(_type='text', _class='new_related_item',
_name='this', _id='that')
  show_related_rows = make_related_rows(request.args[-1]

  return dict(form=form,
new_related=new_related,
show_related_rows=show_related_rows)

def make_related_rows(id)

  related_rows = db(db.related.stuff_id==request.args[-1])select()
  if len(related_rows) == 0:
return 'Nothing related to stuff'
  tbl = TABLE(TR(TH('Related')))
  for row in related_rows:
  tbl.append(TR(
INPUT(_type='text', _class='related_input',
  _id =  str(row.id)
  _name = str(row.id)
)
  return tbl


def new_related():
  # here will be your code to parse request.vars.name,
  # and request.vars.field_id
  # and insert stuff in the database
  # hint: use validate_and_insert
  # make sure field_id is an integer
  # rebuild the show_related_rows variable
  # return it

  return '$('#related_rows').html(show_related_rows)

def edit_related():
  # parse request.vars and update the affected record
  # use validate_and_update

view
{{=form}}
{{=new_related}}

{{=show_related_rows}}





$('.new_related_item').live('change', function(e){

  ajax(URL('new_related', ['this'], ':eval'),); //check out ajax
recipes in The Book
});
$('.related_input').live('change', function(e){
  $('updated_related_text').val(this.val)
  $('field_id').val(this.id)
  ajax(URL('edit_related'), [this.name, 'field_id' ], ':eval');
});




On Dec 5, 10:56 pm, Aaron Levin  wrote:
> Hi,
>
> I'm really enjoying the simplicity of Web2py. However, for the life of
> me, I cannot figure out a way to accomplish this without re-writing
> FORM/SQLFORM. So, I know I'm not understanding something :)
>
> I'm writing a small app to make lists. Each list has many "items". I'd
> like a user to be able to create a List, and the list may have as many
> items as needed. When the user creates a list, there is a form field
> for one item. When they "focus" or "blur" or interact with that item
> field, another one appears below, via ajax. They continue to add items
> until they're finished.
>
> What I cannot figure out is how to pass back the additional form field
> via ajax, or how to select (via ajax) the form itself.
>
> Here is my model:
>
> db.define_table('listy',
>         Field('title'),
>         Field('description','text'),
>         Field('created_on','datetime',default=request.now),
>         Field('created_by',db.auth_user, default=auth.user_id),
>         format='%(title)s')
>
> db.define_table('entry',
>         Field('listy_id',db.listy),
>         Field('item','string', length=144))
>
> And my basic controller stuff to create a list:
>
> @auth.requires_login()
> def create():
>     """create a new empty list"""
>     # form = crud.create(db.listy, next=URL('index'))
>     form = SQLFORM.factory(db.listy, db.entry,formstyle='divs')
>     if form.process().accepted:
>         id = db.listy.insert(**db.listy._filter_fields(form.vars))
>         form.vars.listy=id
>         id = db.entry.insert(**db.entry._filter_fields(form.vars))
>         response.flash = 'Success! Thanks!'
>     return dict(form=form)
>
> Any help is appreciated. Thanks so much!


[web2py] Re: StaticPython!

2011-12-07 Thread Ross Peoples
Great find Angelo! Would things like Cython and other CPython extensions 
(.so) work with StaticPython (obviously they would need to be built for the 
platform)?

[web2py] Re: hidding functionality and DRY

2011-12-07 Thread Anthony
In general that seems fine. Note, in this case, you can also simplify to:

{{if auth.user_id == mytable.author_id:}}

This is because auth.user_id returns the id of the current logged in user 
or None if the user isn't logged in. Of course, this assumes 
mytable.author_id is never None -- if it is, you would need:

{{if auth.user and auth.user.id == mytable.author_id:}}

Anthony


On Wednesday, December 7, 2011 11:33:44 AM UTC-5, thodoris wrote:
>
> I have found myself doing multiple times in my views:
>  
> {{if auth.user:}} # checking that a user in logged in and
>{{if auth.user.id == my_table.author_id:}} # if he is the author of a 
> table entry
>   SHOW SOMETHING ONLY TO THE AUTHOR OF THIS TABLE
>{{pass}}
> {{pass}}
>
> I am thinking that repeating myself is a bad code practice and i am going 
> to make a function like
>
> is_author(auth.user, my_table.author_id)
>
> and in the view have
>
> {{if is_author(...):}}
>
> Could i hear some opinions  on that?
>
> Also if there are parts of code that appear in multiple views, is it 
> better to make a function that returns html code in order to make the code 
> better???
>


[web2py] Web2py admin Suggestion

2011-12-07 Thread António Ramos
Hello, i want to suggest for consideration this improvement

The admin page where i see my models, controlers and views could be more
inteligent.
The links are ordered alphabeticaly but this causes everyone to scrool all
the time to the link of the view or controller named to the end of the
alphabet.

For me it would be more productive if this admin page could add in every
topic( models,controlers,view) the most views links at the top

Does it make sense?


Thank you


[web2py] StaticPython!

2011-12-07 Thread Angelo Compagnucci
If you want to make your web2py application completely portable on
Linux, Mac OS X and FreeBSD you can use StaticPython:

http://code.google.com/p/pts-mini-gpl/wiki/StaticPython

>From the homepage:

"StaticPython is a statically linked version of the Python 2.x
(currently 2.7.1) and 3.x (currently 3.2) and Stackless Python
interpreters and their standard modules for 32-bit (i686, i386, x86)
Linux, Mac OS X and FreeBSD systems. It is distributed as single,
statically linked 32-bit executable binaries, which contains the
Python scripting engine, the interactive interpreter with command
editing (readline), the Python debugger (pdb), most standard Python
modules (including pure Python modules and C extensions), coroutine
support using greenlet and multithreading support. The binary contains
both the pure Python modules and the C extensions, so no additional
.py or .so files are needed to run it. It also works in a chroot
environment. The binary uses uClibc, so it supports username lookups
and DNS lookups as well (without NSS). "

I tested it and it works like a charm!

-- 
Profile: http://www.gild.com/compagnucciangelo
Register on Gild: http://www.gild.com/referral/compagnucciangelo


[web2py] hidding functionality and DRY

2011-12-07 Thread thodoris
I have found myself doing multiple times in my views:
 
{{if auth.user:}} # checking that a user in logged in and
   {{if auth.user.id == my_table.author_id:}} # if he is the author of a 
table entry
  SHOW SOMETHING ONLY TO THE AUTHOR OF THIS TABLE
   {{pass}}
{{pass}}

I am thinking that repeating myself is a bad code practice and i am going 
to make a function like

is_author(auth.user, my_table.author_id)

and in the view have

{{if is_author(...):}}

Could i hear some opinions  on that?

Also if there are parts of code that appear in multiple views, is it better 
to make a function that returns html code in order to make the code 
better???


[web2py] Re: Automatic logout in Web2py

2011-12-07 Thread Anthony
On Tuesday, December 6, 2011 11:49:42 PM UTC-5, Saurabh S wrote:
>
> Hi thanks fir the reply,
>
> I wrote that line in db_init.py but that is not working
>
Did you change the setting after defining Auth?

What happens if you set auth.settings.long_expiration to 1800 as well?

Anthony 


Re: [web2py] Re: connection with oracle database [SOLVED]

2011-12-07 Thread Anthony
Also, see http://lucumr.pocoo.org/2011/12/7/thoughts-on-python3/

On Wednesday, December 7, 2011 9:03:31 AM UTC-5, Anthony wrote:
>
> please how soon are we gon move web2py source to python version 3 ...
>>
> That won't happen, as it would break backward compatibility. Though there 
> is this: http://code.google.com/r/reingart-web2py/source/list?name=py3k  
> (see discussion here: 
> https://groups.google.com/d/topic/web2py-developers/9ztv8ecT1Nk/discussion
> ).
>
> Anthony
>


[web2py] Re: error gluon/sqlhtml.py?

2011-12-07 Thread Anthony
I think it has already been changed in trunk -- can you check it there?

On Wednesday, December 7, 2011 9:40:28 AM UTC-5, mweissen wrote:
>
> I think line 1566 of gluon/sqlhtml.py
> message = error or T('%(nrows)s records found' % dict(nrows=nrows))
> should be
> message = error or T('%(nrows)s records found') % dict(nrows=nrows)
>
>
> Regards, Martin 
>


[web2py] error gluon/sqlhtml.py?

2011-12-07 Thread Martin Weissenboeck
I think line 1566 of gluon/sqlhtml.py
message = error or T('%(nrows)s records found' % dict(nrows=nrows))
should be
message = error or T('%(nrows)s records found') % dict(nrows=nrows)


Regards, Martin


[web2py] Re: Bug : exec_environment vs. Auth

2011-12-07 Thread Mirek Zvolský
I don't understand why Auth object makes no problems in web2py shell,
but has problem in exec_environment.

In my case I have used exec_environment to populate mongo database. I
don't know if there is better solution, so I have used web2py DAL to
create "database structure" first in SQLite, i have populated SQLite
database, and then copied records into MongoDB.

I have no problem with previous bug(?). It's easy to remove Auth
object from models.
However I just want say, that exec_environment is described in web2py
book and if somebody want to try it, and has the initial model from
Welcome application, this will fail. So it would be nice to look a
little to the Auth and improve this behaviour.

I understand, that this isn't really important thing.

Mirek


Re: [web2py] Plugin suggestions - Raphael + Dracula

2011-12-07 Thread Vasile Ermicioi
works even on ie, cool


Re: [web2py] Re: connection with oracle database [SOLVED]

2011-12-07 Thread Anthony

>
> please how soon are we gon move web2py source to python version 3 ...
>
That won't happen, as it would break backward compatibility. Though there 
is this: http://code.google.com/r/reingart-web2py/source/list?name=py3k  
(see discussion here: 
https://groups.google.com/d/topic/web2py-developers/9ztv8ecT1Nk/discussion).

Anthony


[web2py] Re: the register form does not checks if a password is entered

2011-12-07 Thread Anthony
Show your auth_user table definition (including any validators on the 
password field) and the custom register form code.

On Tuesday, December 6, 2011 11:48:12 PM UTC-5, Constantine Vasil wrote:
>
> I have to make my own register form.
>
> When submitting the form without email I get the
> message: "Invalid Email" (right behavior).
>
> When I enter a valid email address and just hit Enter,
> the registration is accepted without checking the two 
> password fields - they are empty.
>
> What is wrong?
>


Re: [web2py] Two tables and one grid

2011-12-07 Thread Anthony

>
> You probably have to define a function to add records to 'cv' and modify 
> the SQLFORM-grid to let the 'add' button refer to that function where the 
> 'person' field will be writable.
>
> I don't know hot to change the link in the 'add' button in the grid.  
> Maybe someone else can help.
>

You can edit the href of the 'add' button via:

grid.element('.web2py_search_actions a')['_href'] = URL(...)

Anthony


Re: [web2py] Two tables and one grid

2011-12-07 Thread Martin Weissenboeck
Thank you very much.
I have found something in chapter 07 of THE BOOK and I will try all
proposals.

2011/12/7 Johann Spies 

> On 7 December 2011 13:17, Martin Weissenboeck  wrote:
>
> I modified your code a little bit.  That is not quite what you want but on
> the condition that you already have records in table 'cv' a person can edit
> a record without touching the field 'person'.
>
> You probably have to define a function to add records to 'cv' and modify
> the SQLFORM-grid to let the 'add' button refer to that function where the
> 'person' field will be writable.
>
> I don't know hot to change the link in the 'add' button in the grid.
> Maybe someone else can help.
>
>
> Model:
>
>
> db.define_table('person',
> Field('name'),
> format = '%(name)s')
>
>
> db.define_table('cv',  # curriculum vitae
> Field('person', 'reference person'),
> Field('status',requires =
> IS_IN_SET(['student','teacher','something else'])),
> Field('date','date'),
> )
>
> Controller:
>
> def editcv():
> query = db.cv.id > 0
> db.cv.person.writable = False
> links = [lambda row: A('Add' , _href = URL('default', 'add_cv',
> args = [row.id]))]
> return dict(grid=SQLFORM.grid(query,
>user_signature=False))
>
>
> Regards
> Johann
> --
> Because experiencing your loyal love is better than life itself,
> my lips will praise you.  (Psalm 63:3)
>
>


-- 
Mit freundlichen Grüßen / With kind regards
Martin Weissenböck
Gregor-Mendel-Str. 37, 1190 Wien
Austria / European Union
Tel  +43 1 31400 00
Fax  +43 1 31400 700


[web2py] Plugin suggestions - Raphael + Dracula

2011-12-07 Thread António Ramos
Seems easy to use
http://www.graphdracula.net/
http://raphaeljs.com/


Best regards


Re: [web2py] Two tables and one grid

2011-12-07 Thread Johann Spies
On 7 December 2011 13:17, Martin Weissenboeck  wrote:

I modified your code a little bit.  That is not quite what you want but on
the condition that you already have records in table 'cv' a person can edit
a record without touching the field 'person'.

You probably have to define a function to add records to 'cv' and modify
the SQLFORM-grid to let the 'add' button refer to that function where the
'person' field will be writable.

I don't know hot to change the link in the 'add' button in the grid.  Maybe
someone else can help.


Model:

db.define_table('person',
Field('name'),
format = '%(name)s')

db.define_table('cv',  # curriculum vitae
Field('person', 'reference person'),
Field('status',requires =
IS_IN_SET(['student','teacher','something else'])),
Field('date','date'),
)

Controller:

def editcv():
query = db.cv.id > 0
db.cv.person.writable = False
links = [lambda row: A('Add' , _href = URL('default', 'add_cv',
args = [row.id]))]
return dict(grid=SQLFORM.grid(query,
   user_signature=False))


Regards
Johann
-- 
Because experiencing your loyal love is better than life itself,
my lips will praise you.  (Psalm 63:3)


Re: [web2py] Re: One Queue

2011-12-07 Thread Martin Weissenboeck
Thank you for your hints, but I did not find a solution.
Now I will use a new table in the database for these items.
I thought that a queue would be more efficient.

2011/12/5 Anthony 

> On Sunday, December 4, 2011 4:28:19 PM UTC-5, Alan Etkin wrote:
>>
>> It seems that you are resetting the q object (because controller code
>> executes on each request)
>> It could be solved storing the object in session.
>>
>> session.q = ...
>>
> Note, the session is unique per user, so that only works if each user
> should have their own session. Otherwise, may store in cache or db.
>



-- 
Mit freundlichen Grüßen / With kind regards
Martin Weissenböck
Gregor-Mendel-Str. 37, 1190 Wien
Austria / European Union
Tel  +43 1 31400 00
Fax  +43 1 31400 700


[web2py] Two tables and one grid

2011-12-07 Thread Martin Weissenboeck
Hi,
I want to use two tables and one grid.
For each person (table 1) there could be some rows in table 2. Table 2
should be edited with a grid.
If one person is selected from table 1 the name of the person should only
be readable in table 2.

The id of the selected person should be the default person-id in table 2.
I have found the following solution, but it seems to be a little bit
complicated to use a function pnr for the id of the person.

Any ideas how to make it better?

In db.py (simplified):

pnr = None

db.define_table('person',
Field('name'),
)

db.define_table('cv',  # curriculum vitae
Field('person', db.person, writable=False, readable=True,
default=lambda: pnr(),
represent=lambda v,r: db.person[v].name),
Field('status',requires = IS_IN_SET(['student','teacher','something
else'])),
Field('date','date'),
)


In default.py:

def editcv():
pr = db(db.person.name=='Smith').select()  # or something like this...
pnr = lambda:pr.first().id
return dict(grid=SQLFORM.grid(
query=db.cv.person==pnr(),
user_signature=False,
))


And just some other question:

   - How to do it with a smartgrid?
   - How to use the parameters fields, field_id and constraints of a
   smartgrid?
   - Are there any examples?

Regards, Martin


Re: [web2py] Re: connection with oracle database [SOLVED]

2011-12-07 Thread tOlorun
Thanks so Much

Laz and Mas

i was able to run the source from python 27 install and everything is fine now

you guys are the best

please how soon are we gon move web2py source to python version 3 ...

just asking ...

On 12/6/11, tOlorun  wrote:
> When i import cx_Oracle from python shell
>
> everything is fine its works well ...
>
> I tried running from source but i kept getting errors
>
> method 1
> -
>
> C:\Users\Administrator>python
> C:\Users\Administrator\Downloads\web2py_src\web2py\web2py.py
> Traceback (most recent call last):
>   File "C:\Users\Administrator\Downloads\web2py_src\web2py\web2py.py",
> line 16, in 
> import gluon.widget
>   File
> "C:\Users\Administrator\Downloads\web2py_src\web2py\gluon\__init__.py",
> line 15, in 
> from globals import current
> ImportError: No module named globals
>
> C:\Users\Administrator>
>
>
> method 2
> -
>
> kindly find attached screenshot
>
> E:\tOlorun\tO\web2py>python web2py.py
> Access is denied.
>
>
>
>
> method 3
> -
> E:\tOlorun\tO\web2py>e:\Python32\python web2py.py
> Traceback (most recent call last):
>   File "web2py.py", line 16, in 
> import gluon.widget
>   File "E:\tOlorun\tO\web2py\gluon\__init__.py", line 15, in 
> from globals import current
> ImportError: No module named globals
>
> E:\tOlorun\tO\web2py>
> -
>
> all of these i ran with and without administrative privileges
>
>
> Thanks
>
>
>
>
>
>
>
>
>
>
> On 12/4/11, Massimo Di Pierro  wrote:
>> First check it is installed correctly.
>>
>> start python (not web2py) and try to import cx_Oracle
>>
>> if that works but it does not work in web2py then web2py is using a
>> different Python version.
>>
>> Make sure you run web2py from source and not the binary, the binary
>> has its own python.
>>
>> On Dec 3, 9:50 am, tOlorun  wrote:
>>> I did try to import the cx_Oracle module
>>>
>>> but web2py throws an error
>>>
>>> then i realized that web2py is not seeing the oracle driver installed
>>> already
>>>
>>> so now ...
>>>
>>> How do i make web2py see and use the oracle driver which is already
>>> installed
>>>
>>> Thanks in advance
>>>
>>> On 12/2/11, Lazarof  wrote:
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> > If you are working with Oracle google for this - Oracle Apex.
>>>
>>> > On Dec 2, 11:56 pm, tOlorun  wrote:
>>> >> Thanks
>>>
>>> >> i am able to connect python to oracle database
>>>
>>> >> but iam talking about connecting using the web2py connection string
>>>
>>> >> db = DAL('oracle://schema_name/schema_password@tns_name',
>>> >> pool_size=100)
>>>
>>> >> to connect to oracle database
>>>
>>> >> thanks
>>>
>>> >> On 12/2/11, Lazarof  wrote:
>>>
>>> >> > Hi!
>>> >> > Have you tried this?
>>>
>>> >> > export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/
>>> >> > server/
>>> >> > export LD_LIBRARY_PATH=$ORACLE_HOME/lib
>>> >> > export PATH=$ORACLE_HOME/bin:$PATH
>>>
>>> >> > sudo apt-get install python-dev python-setuptools
>>> >> > sudo -E easy_install cx_Oracle
>>>
>>> >> > Test:
>>>
>>> >> > $ python
>>> >>  import cx_Oracle
>>> >>  cnxn = cx_Oracle.connect('system/systempasswd@xe')
>>> >>  crsr = cnxn.cursor()
>>> >>  crsr.execute('SELECT * FROM dual')
>>>
>>> >> > On Dec 2, 10:26 pm, tOlorun  wrote:
>>> >> >> Thanks for the other time ...
>>>
>>> >> >> buh iam back again ...
>>>
>>> >> >> i dont seem to get a hang of connection strings (lols)
>>>
>>> >> >> please kindly help me with the error below ...
>>>
>>> >> >> Traceback (most recent call last):
>>> >> >>   File "gluon/restricted.py", line 194, in restricted
>>> >> >>   File
>>> >> >> "E:/tOlorun/web2py/web2py/applications/est8ment/models/db.py",
>>> >> >> line 13, in 
>>> >> >>   File "gluon/dal.py", line 4156, in __init__
>>> >> >> RuntimeError: Failure to connect, tried 5 times:
>>> >> >> 'NoneType' object has no attribute 'connect'
>>>
>>> >> >> thanks in advance
>>>
>>> >> --
>>> >> Oluwaseun Omotosho
>>>
>>> >> *Oluwanife@me*
>>>
>>> >> To be filled with the life of Christ Jesus and released into our
>>> >> destinies,taking
>>> >> the world for Him.
>>>
>>> >> Credit Risk, Card & Ins. Services | Research & Development | Flex
>>> >> Branch &
>>> >> Retail | FASYL Technology Group
>>>
>>> >> M: +2348103891218 | M: +2348185780959 | M: +23233487811
>>>
>>> >> | E-mail: omnioto...@gmail.com I omnioto...@live.com
>>> >> 
>>> >>  | omnioto...@yahoo.co.uk 
>>>
>>> >> I URL ; fasylgroup.com I
>>>
>>> >> A Member of *fasyl *Technology Group with presence in Mauritius | UK
>>> >> |
>>> >> India | Nigeria | Ghana | Sierra Leone | South Africa | Zimbabwe |
>>> >> Ken

[web2py] Re: Massimo

2011-12-07 Thread lyn2py
Big thanks to Anthony, Bruno and other contributors for helping
newbies like me understand how web2py works better!


On Dec 7, 9:33 am, villas  wrote:
> You are right, this list must be one of the very best,  and in addition to
> Massimo,  there are some other great contributors. Amongst the many
> valuable messages that I read here,  I wonder whether I might also single
> out Anthony's posts too - his answers to everyone's questions are really so
> helpful and well written.  Thanks guys!


Re: [web2py] Re: Massimo

2011-12-07 Thread Joseph Jude
Am not sure where Yarko is now-a-days, but he used to provide replies in a 
manner that not only provided answers you were looking for but made you 
rethink the problem itself. I have his replies stored.

Anthony is active both here and in stackoverflow. I can't even keep up here.

And one time, Massimo replied for one of the queries, I don't want to beat 
django, I want to beat IBM consulting. Man...thats vision.

I hope this community not only brings out a fantastic framework but 
practical business model too.

Regards,
Joseph


Re: [web2py] Re: Massimo

2011-12-07 Thread Vasile Ermicioi
Yep, Anthony is a great teacher, his responds are very detailed and careful,
sometimes I would tell newbies "go read the book",
but he has patience to respond or to point to a good answer


[web2py] Re: Massimo

2011-12-07 Thread thodoris
My compliments as well to both Massimo and all contributors.

Keep up the good work guys!

Thodoris

On Dec 7, 9:08 am, chandrakant kumar  wrote:
> Programmers don't get the glory they deserve,http://goo.gl/yRJbR.
>
>
>
>
>
>
>
> On Wed, Dec 7, 2011 at 12:34 PM, Vineet  wrote:
> > Oops.
> > Inadvertently, I did not mention about the other contributors in my
> > OP!
> > Anthony's (& of course, the other members') replies have been very
> > useful to me.


[web2py] vCard

2011-12-07 Thread annet
I am working on sort of an address book application. The addresses are
rendered as a business card in a view:



  
  

{{if logo:}}
  
{{=IMG(_src=URL('static','init/images/logos/%s' %
logo.link))}}
   
{{pass}}

{{if tagline:}}
  
{{=tagline.line}}
   
{{pass}}


  {{if organization:}}
{{=organization.name}}
  {{pass}}
 

   

  
  


  
{{if npas:}}
  
{{for npa in npas:}}
  {{c=npa.NpaType.abbr}}
  {{a=npa.Npa.address}}
  {{if c=='T' or c=='F' or c=='M':}}

  {{=c}}: 
  {{=a}}

  {{elif c=='E':}}

  {{=c}}: 
  {{=A(a,_href="mailto:"+a)}}

  {{else:}}

  {{=c}}: 
  {{=A(a,_href="http://"+a)}}

  {{pass}}
{{pass}}
  
{{pass}}
   
 


  
{{if address:}}
  

  {{=address.street}} {{=address.houseNumber}} {{if
address.houseNumberExtension:}}{{=address.houseNumberExtension}}
{{pass}}


  {{=address.zipcode}} {{=address.city}}

  
{{pass}}
   
 

   

 



I would like to add a link to this view which makes the business card
downloadable as a vCard. Has anyone done this in web2py? What do I
need to do to make this possible?


Kind regards,

Annet.


Re: [web2py] Re: Massimo

2011-12-07 Thread chandrakant kumar
Programmers don't get the glory they deserve, http://goo.gl/yRJbR.

On Wed, Dec 7, 2011 at 12:34 PM, Vineet  wrote:

> Oops.
> Inadvertently, I did not mention about the other contributors in my
> OP!
> Anthony's (& of course, the other members') replies have been very
> useful to me.
>
>


[web2py] Re: Add Appending Fields to a Form with Ajax

2011-12-07 Thread Gerd
Hi!

I'm also interested how this works :)

best regards
Gerd