[web2py] Re: Merry Christmas

2010-12-23 Thread Pepe Araya
Hey!

Merry Christmas!!

good vibes for all!


[web2py] Re: Web2Py Foundation?

2010-12-27 Thread Pepe Araya
Hi,

some news about this topic?

I think 2 things are going in favor of creating a foundation or [whatever]:
1. the community has grown a lot.
2. in all the reviews I read about web2py, always, always, ALWAYS!!! say it 
is a single-person framework and that takes away the future security of 
their development.

kind regards

Pepe


[web2py] Re: Web2Py Foundation?

2010-12-27 Thread Pepe Araya
Sorry, I only did a question, not a claim...

I know this community and framework and I know that there are a lot of 
people collaborating. I mentioned the "single-person" phrase beacause is 
what I always read in the reviews about web2py vs others frameworks. It's 
not what I think.


Now, I have something to answer: "hey guys, what about 
experts4solutions.com? that's a whole company working with/for web2py!!!"
:)

that sounds good!


Maybe more presence of "experts4solutions.com" would be good...


Kind regards!

Pepe


[web2py] define represent in a Controller

2011-08-31 Thread Pepe Araya
Hi!

I really can't get this done, please, any help is welcome.

Consider that I have this tables:

# models/db.py #

db.define_table('auth_user' ... )

db.define_table('estados_postulacion',
Field('nombre'),
Field('descripcion'),
format='[%(id)s] %(nombre)s')

db.define_table('postulaciones',
Field('proceso_postulacion', db.proceso_postulacion),
Field('postulante', db.auth_user, default=user_id),
Field('fecha_postulacion', 'datetime', default=request.now),
Field('estado_postulacion', requires=IS_IN_DB(db, 'estados_postulacion.id', 
'%(nombre)s'),
  represent=lambda r:db.estados_postulacion[r].nombre))

###

The "represent" attribute defined there only work for SQLTABLE but I don't 
need a table in my view.

How I can to define a represent in a controller for the field: 
db.postulaciones.estado_postulacion ?

I need that this represent work in my view:
represent=lambda r:db.estados_postulacion[r].nombre


Thanks a lot!


Re: [web2py] define represent in a Controller

2011-08-31 Thread Pepe Araya
Thanks Bruno!

I'm doing something wrong:

*my controller*:

def index():
db.postulaciones.estado_postulacion.represent = lambda 
r:db.estados_postulacion[r].nombre
lista_postulaciones = db(db.postulaciones.postulante == 
db.auth_user.id).select()

return dict( lista_postulaciones = lista_postulaciones)

*my view:*
*
*

 
 ID 
 Fecha de Postulación
 Estado
 Nombres
 Apellido Paterno
 Apellido Materno
 Ver Postulación
 
 {{for postulacion in lista_postulaciones:}}
 
 {{=postulacion.postulaciones.id}}

 {{=postulacion.postulaciones.fecha_postulacion}}

 {{=postulacion.postulaciones.estado_postulacion}}
 {{=postulacion.auth_user.first_name}}
 {{=postulacion.auth_user.last_name}}
 {{=postulacion.auth_user.apellido_materno}}
 {{=A('VER POSTULACIÓN', _href=URL(r=request, 
f='ver_postulacion', args=postulacion.postulaciones.id))}}

 
 {{pass}}
 

*and I get this:*

IDFecha de PostulaciónEstadoNombresApellido PaternoApellido MaternoVer 
Postulación62011-08-03 12:53:151PepeArayaBossaVER POSTULACIÓN



Thank you for your help!

Re: [web2py] define represent in a Controller

2011-08-31 Thread Pepe Araya
I get this error:

AttributeError: 'str' object has no attribute 'represent'



Re: [web2py] define represent in a Controller

2011-08-31 Thread Pepe Araya
In that way it not work, but I tried this:

{{for postulacion in lista_postulaciones:}}
 {{represent =*db.postulaciones.estado_postulacion.represent
*}}
 
 {{=postulacion.postulaciones.id}}

 {{=postulacion.postulaciones.fecha_postulacion}}
 {{=represent(*
postulacion.postulaciones.estado_postulacion*)}}

and it works :)

Thanks a lot!

ps: is this the right way or the best way to do it?


Re: [web2py] define represent in a Controller

2011-08-31 Thread Pepe Araya
Thanks!
I'm very grateful for your help!

I have only one more question: in which cases is right to define this in the 
controller?

You says:

you can define a represent in controller before creating the table or form.
db.table.field.represent = lambda .

that is for Table and Form Helpers?

Anew, thanks very much for your time and help! 



[web2py] Re: file locations once web2py is deployed on fluxflex

2011-09-24 Thread Pepe Araya
Hi, I have same problems here.

can someone record a step by step screencast?

when I clone the repo, I only get one folder and 4 files:

public_html> dispatch.fcgi
icon.png
README
tmp_fb_pw

how I can to add one app?

Thanks so much!


Re: [web2py] Re: file locations once web2py is deployed on fluxflex

2011-09-24 Thread Pepe Araya
thank you so much!

[web2py] Field compute= and make thumbnail

2011-09-26 Thread Pepe Araya
Hello,

I have a table where only store images related to x Article. 

db_define_table('images',
  Field('original_image', 'upload'),
  Field('thumb_image', 'upload')

Is efficient even, possible to make  'thumb_image' Field a computed Field?
Something like:

  Field('thumb_image', 'upload', *compute*= lambda r:*make_thumb*(r, 
85))


def *make_thumb*(r, thumb_size):

try:
from PIL import Image
except:
raise ImportError, "Requires PIL installed in your system."


size = (thumb_size, thumb_size)


Any help is welcome!

thanks!


Re: [web2py] Re: Field compute= and make thumbnail

2011-09-26 Thread Pepe Araya
oh! thanks very much!

I'll try

pepe

On Mon, Sep 26, 2011 at 3:30 PM, pbreit  wrote:

> Here's what I do. Seems to work.
>
> Field('image', 'upload', uploadfolder=request.folder+'static/uploads',
> requires=IS_EMPTY_OR(IS_IMAGE())),
> Field('image_display', 'upload',
> uploadfolder=request.folder+'static/uploads',
> compute=lambda r: resize_image(r['image'], (320,320),
> 'display'),
> readable=False, writable=False),
> Field('image_thumb', 'upload',
> uploadfolder=request.folder+'static/uploads',
> compute=lambda r: resize_image(r['image'], (150,130), 'thumb'),
> readable=False, writable=False),
>
> def resize_image(image, size, path, rotate=0):
> import os.path
> from PIL import Image'
> if image:
> try:
> img = Image.open('%sstatic/uploads/%s' % (request.folder,
> image))
> img = img.convert("RGB")
> img.thumbnail(size, Image.ANTIALIAS)
> img = img.rotate(rotate)
> root, ext = os.path.splitext(image)
> filename = '%s_%s%s' %(root, path, ext)
> img.save('%sstatic/uploads/%s' % (request.folder, filename))
> return filename
> except Exception, e:
> return e
> else:
> return None
>


[web2py] Re: Cascading Drop Down Lists with Ajax

2011-10-07 Thread Pepe Araya
hi! the demo site is down :(

Re: [web2py] Re: Cascading Drop Down Lists with Ajax

2011-10-08 Thread Pepe Araya
Great!
thank you!!

On Fri, Oct 7, 2011 at 11:04 AM, Omi Chiba  wrote:

> Pepe,
>
> It's up now. Thank you for letting me know.
>
> My web2py version was back to 1.98.2 and all app was gone... I don't
> know why.
> I deployed the new version 1.99.2 and re-create the app from slice.
> It's actually pretty easy !
>
> On Oct 7, 4:00 am, Pepe Araya  wrote:
> > hi! the demo site is down :(
>


[web2py] web2py HL7: where come from "key:descriptions" of some tables?

2011-03-04 Thread Pepe Araya
Hello,

I'm trying to understand the Web2py HL7 App and I don't understand where 
come from the key:descriptions of some tables.

e.g:

"social_history" Table

id: 1
key: 229819007
description: Tobacco use and exposure (observable entity) Not available 
Smoking


is the key arbitrary or is a standard?

Thanks a lot.


Re: [web2py] Extend Field Type "upload" to a CDN

2011-04-17 Thread Pepe Araya
Hi,

any news about?

I'm very interested

regards!


[web2py] Pusher - Real-time push

2011-04-22 Thread Pepe Araya
Hello!

Has anyone used this with web2py? can you share your experience?

http://www.pusher.com




[web2py] Re: Embedding web2py

2011-05-19 Thread Pepe Araya
maybe this help: 
http://www.appcelerator.com/products/titanium-cross-platform-application-development/

[web2py] webfaction: Internal Server Error after upgrade to 1.96.2

2011-06-04 Thread Pepe Araya
Hi, my site have an "internal server error" after upgrade to 1.96.2

Webfaction support say:

Your app is trying to wrote to /dev/urandom which it will never be able to 
do:

[pepearaya@web136 apache2]$ tail 
/home/pepearaya/logs/user/error_crewcatalyst.log
[Sat Jun 04 01:34:25 2011] [error] [client 127.0.0.1] from globals import 
current
[Sat Jun 04 01:34:25 2011] [error] [client 127.0.0.1] File 
"/home/pepearaya/webapps/crewcatalyst/web2py/gluon/globals.py", line 21, in 

[Sat Jun 04 01:34:25 2011] [error] [client 127.0.0.1] from html import 
xmlescape, TABLE, TR, PRE
[Sat Jun 04 01:34:25 2011] [error] [client 127.0.0.1] File 
"/home/pepearaya/webapps/crewcatalyst/web2py/gluon/html.py", line 29, in 

[Sat Jun 04 01:34:25 2011] [error] [client 127.0.0.1] from utils import 
web2py_uuid, hmac_hash
[Sat Jun 04 01:34:25 2011] [error] [client 127.0.0.1] File 
"/home/pepearaya/webapps/crewcatalyst/web2py/gluon/utils.py", line 98, in 

[Sat Jun 04 01:34:25 2011] [error] [client 127.0.0.1] ctokens = 
initialize_urandom()
[Sat Jun 04 01:34:25 2011] [error] [client 127.0.0.1] File 
"/home/pepearaya/webapps/crewcatalyst/web2py/gluon/utils.py", line 90, in 
initialize_urandom
[Sat Jun 04 01:34:25 2011] [error] [client 127.0.0.1] 
open('/dev/urandom','wb').write(''.join(chr(t) for t in ctokens))
[Sat Jun 04 01:34:25 2011] [error] [client 127.0.0.1] IOError: [Errno 13] 
Permission denied: '/dev/urandom'

*So, you need to change that line to: 
"open('/dev/urandom','r').write(''.join(chr(t) for t in ctokens))"*
*
*
after that change I get this error:
open('/dev/urandom','r').write(''.join(chr(t) for t in ctokens))
[Sat Jun 04 02:12:33 2011] [error] [client 127.0.0.1] IOError: [Errno 9] Bad 
file descriptor

any idea of what i can to do?

thanks!


[web2py] Re: webfaction: Internal Server Error after upgrade to 1.96.2

2011-06-04 Thread Pepe Araya
Reply 2:

> open('/dev/urandom','r').write(''.join(chr(t) for t in ctokens))

In this line, you are attempting to open /dev/urandom for reading, and then 
are attempting to write to it.

Instead, you need to read the data from /dev/urandom, and then open a new 
file for writing to write your output.

Hope that helps!

__

what can i do?


[web2py] Re: webfaction: Internal Server Error after upgrade to 1.96.2

2011-06-04 Thread Pepe Araya
Thanks Massimo!

I'll give a try


[web2py] Re: webfaction: Internal Server Error after upgrade to 1.96.2

2011-06-04 Thread Pepe Araya
Massimo, bad news :( it not work
this is the log:

[Sat Jun 04 17:41:31 2011] [error] [client 127.0.0.1]   File 
"/home/pepearaya/webapps/crewcatalyst/web2py/gluon/html.py", line 29, in 

[Sat Jun 04 17:41:31 2011] [error] [client 127.0.0.1] from utils import 
web2py_uuid, hmac_hash
[Sat Jun 04 17:41:31 2011] [error] [client 127.0.0.1]   File 
"/home/pepearaya/webapps/crewcatalyst/web2py/gluon/utils.py", line 98, in 

[Sat Jun 04 17:41:31 2011] [error] [client 127.0.0.1] ctokens = 
initialize_urandom()
[Sat Jun 04 17:41:31 2011] [error] [client 127.0.0.1]   File 
"/home/pepearaya/webapps/crewcatalyst/web2py/gluon/utils.py", line 90, in 
initialize_urandom
[Sat Jun 04 17:41:31 2011] [error] [client 127.0.0.1] 
open('/dev/urandom','wb').write(''.join(chr(t) for t in ctokens))
[Sat Jun 04 17:41:31 2011] [error] [client 127.0.0.1] IOError: [Errno 13] 
Permission denied: '/dev/urandom'




Re: [web2py] 1.96.3 is OUT

2011-06-04 Thread Pepe Araya
I have the same problem as i mentioned 
here: https://groups.google.com/d/topic/web2py/e2KcQDYcPD0/discussion



Re: [web2py] 1.96.3 is OUT

2011-06-04 Thread Pepe Araya
did you installed it with the webfaction's script?

Re: [web2py] 1.96.3 is OUT

2011-06-04 Thread Pepe Araya
In webfaction, I did a fresh install using their install script but i get 
this error:

Traceback (most recent call last):
  File "web2py.py", line 16, in 
import gluon.widget
  File "/home/pepearaya/webapps/crewcatalyst2/web2py/gluon/__init__.py", 
line 15, in 
from globals import current
  File "/home/pepearaya/webapps/crewcatalyst2/web2py/gluon/globals.py", line 
21, in 
from html import xmlescape, TABLE, TR, PRE
  File "/home/pepearaya/webapps/crewcatalyst2/web2py/gluon/html.py", line 
29, in 
from utils import web2py_uuid, hmac_hash
  File "/home/pepearaya/webapps/crewcatalyst2/web2py/gluon/utils.py", line 
98, in 
ctokens = initialize_urandom()
  File "/home/pepearaya/webapps/crewcatalyst2/web2py/gluon/utils.py", line 
93, in initialize_urandom
logging.warn(
NameError: global name 'logging' is not defined

any idea of what I can to do??
thanks a lot!


Re: [web2py] 1.96.3 is OUT

2011-06-04 Thread Pepe Araya
now it works ok!

thanks!!


Re: [web2py] 1.96.3 is OUT

2011-06-05 Thread Pepe Araya
In webfaction, I did a fresh install using their install script (
https://wiki.webfaction.com/wiki/Web2py-LatestSource) and I get this error:

Traceback (most recent call last):
  File "web2py.py", line 16, in 
import gluon.widget
  File "/home/pepearaya/webapps/crewcatalyst2/web2py/gluon/__init__.py", 
line 15, in 
from globals import current
  File "/home/pepearaya/webapps/crewcatalyst2/web2py/gluon/globals.py", line 
21, in 
from html import xmlescape, TABLE, TR, PRE
  File "/home/pepearaya/webapps/crewcatalyst2/web2py/gluon/html.py", line 
29, in 
from utils import web2py_uuid, hmac_hash
  File "/home/pepearaya/webapps/crewcatalyst2/web2py/gluon/utils.py", line 
98, in 
ctokens = initialize_urandom()
  File "/home/pepearaya/webapps/crewcatalyst2/web2py/gluon/utils.py", line 
93, in initialize_urandom
logging.warn(
NameError: global name 'logging' is not defined

Any idea?


[web2py] Re: webfaction: Internal Server Error after upgrade to 1.96.2

2011-06-05 Thread Pepe Araya
Massimo, I did a fresh install with the new trunk and this is the traceback:

Traceback (most recent call last):
  File "web2py.py", line 16, in 
import gluon.widget
  File "/home/pepearaya/webapps/crewcatalyst2/web2py/gluon/__init__.py", 
line 15, in 
from globals import current
  File "/home/pepearaya/webapps/crewcatalyst2/web2py/gluon/globals.py", line 
21, in 
from html import xmlescape, TABLE, TR, PRE
  File "/home/pepearaya/webapps/crewcatalyst2/web2py/gluon/html.py", line 
29, in 
from utils import web2py_uuid, hmac_hash
  File "/home/pepearaya/webapps/crewcatalyst2/web2py/gluon/utils.py", line 
103, in 
ctokens = initialize_urandom()
  File "/home/pepearaya/webapps/crewcatalyst2/web2py/gluon/utils.py", line 
93, in initialize_urandom
except IOerror:
NameError: global name 'IOerror' is not defined



Re: [web2py] 1.96.3 is OUT

2011-06-05 Thread Pepe Araya
Sorry, that is a duplicate message of 
this: https://groups.google.com/d/msg/web2py/f3l_IOcx560/wNLyIfvSj6wJ

After your recommendation, I added that line to utils.py and it works but 
now, after a fresh install with the version in trunk other error appear : 

(posted 
here: https://groups.google.com/d/msg/web2py/e2KcQDYcPD0/32Gvo-UrUCEJ )

Traceback (most recent call last):
  File "web2py.py", line 16, in 
import gluon.widget
  File "/home/pepearaya/webapps/crewcatalyst2/web2py/gluon/__init__.py", 
line 15, in 
from globals import current
  File "/home/pepearaya/webapps/crewcatalyst2/web2py/gluon/globals.py", line 
21, in 
from html import xmlescape, TABLE, TR, PRE
  File "/home/pepearaya/webapps/crewcatalyst2/web2py/gluon/html.py", line 
29, in 
from utils import web2py_uuid, hmac_hash
  File "/home/pepearaya/webapps/crewcatalyst2/web2py/gluon/utils.py", line 
103, in 
ctokens = initialize_urandom()
  File "/home/pepearaya/webapps/crewcatalyst2/web2py/gluon/utils.py", line 
93, in initialize_urandom
except IOerror:
NameError: global name 'IOerror' is not defined


Re: [web2py] 1.96.3 is OUT

2011-06-05 Thread Pepe Araya
With that change it works.

 open('/dev/urandom','wb').write(''.join(chr(t) for t in ctokens))
except IOError:
# works anyway


thanks!


[web2py] Re: webfaction: Internal Server Error after upgrade to 1.96.2

2011-06-05 Thread Pepe Araya
Quoting Jonathan Lundell:

It should be* IOError* (capital E)

---

with that change it works.


Re: [web2py] Re: Error

2010-05-18 Thread Pepe Araya
maybe was something like that, i've recreate the app and run OK.

I think that was the text editor, it was not correctly configured.

what editor do you use?

thanks!

Pepe.

On Tue, May 18, 2010 at 10:14 PM, mdipierro  wrote:

> Do you use a custom layout? make sure it uses the utf8 encoding
>
> On May 18, 7:55 pm, Pepe  wrote:
> > hello,
> >
> > when i register a new user i got this error:
> >
> > Traceback (most recent call last):
> >   File "gluon/restricted.py", line 178, in restricted
> > exec ccode in environment
> >   File "/home/pepearaya/webapps/web2py/web2py/applications/comunidad/
> > controllers/default.py", line 57, in 
> >   File "gluon/globals.py", line 96, in 
> > self._caller = lambda f: f()
> >   File "/home/pepearaya/webapps/web2py/web2py/applications/comunidad/
> > controllers/default.py", line 34, in user
> > return dict(form=auth())
> >   File "gluon/tools.py", line 860, in __call__
> > return self.register()
> >   File "gluon/tools.py", line 1406, in register
> > % dict(key=key)):
> >   File "gluon/tools.py", line 299, in send
> > text = text.decode(encoding).encode('utf-8')
> >   File "/usr/local/lib/python2.5/encodings/utf_8.py", line 16, in
> > decode
> > return codecs.utf_8_decode(input, errors, True)
> > UnicodeDecodeError: 'utf8' codec can't decode bytes in position 36-39:
> > invalid data
> >
> > my controller:
> >
> > def index():
> > """
> > example action using the internationalization operator T and flash
> > rendered by views/default/index.html or views/generic.html
> > """
> > response.flash = T('Hola Mundo')
> > return dict(message=T('Hola Mundo2'))
> >
> > def user():
> > """
> > exposes:
> >http:///[app]/default/user/login
> >http:///[app]/default/user/logout
> >http:///[app]/default/user/register
> >http:///[app]/default/user/profile
> >http:///[app]/default/user/retrieve_password
> >http:///[app]/default/user/change_password
> > use @auth.requires_login()
> > @auth.requires_membership('group name')
> > @auth.requires_permission('read','table name',record_id)
> > to decorate functions that need access control
> > """
> > return dict(form=auth())
> >
> > def download():
> > """
> > allows downloading of uploaded files
> >http:///[app]/default/download/[filename]
> > """
> > return response.download(request,db)
> >
> > def call():
> > """
> > exposes services. for example:
> >http:///[app]/default/call/jsonrpc
> > decorate with @services.jsonrpc the functions to expose
> > supports xml, json, xmlrpc, jsonrpc, amfrpc, rss, csv
> > """
> > session.forget()
> > return service()
> >
> > any help is welcome!
>


Re: [web2py] Re: [off-topic] UI frameworks like: ExtJs, Pivot

2010-05-22 Thread Pepe Araya
looks great, I'll give a try

On Sat, May 22, 2010 at 7:10 PM, Mengu  wrote:

> qooxdoo?
>
> On 23 Mayıs, 01:38, b00m_chef  wrote:
> > I prefer YUI 3. It includes the most revolutionary plugin system.
> > Basically, it has a built in apt-get like system where you just list
> > all the plugins you are going to include in your app, and YUI 3
> > automatically downloads the additional source code and links it to
> > your app. Also, it has excellent documentation and is being developed
> > by Yahoo (they use it for all their website stuff). Here is the best
> > part, it can use jQuery plugins as part of it, and it can be used with
> > ExtJS.
> >
> > As for a complete widget library, YUI 3 is not all there yet, though,
> > you can use ExtJS for widgets, as it is quite solid in that regard,
> > and has great support.
> >
> > Enjoy!
> >
> > On May 22, 1:16 pm, Pepe  wrote:
> >
> >
> >
> > > Hi everybody!
> >
> > > i'm searching ui frameworks for work with web2py.
> >
> > > Here a list that I like to share and please, if you have worked with
> > > some, post your evaluation or, if you know another please enlarge the
> > > list :D
> >
> > > ExtJS Designer:http://www.extjs.com/products/designer/
> > > Pivot:  http://pivot.apache.org/index.html
> > > WaveMaker:http://wavemaker.com/product/
> > > Flash Builder:http://www.adobe.com/products/flashbuilder/ (with
> > > pyamf / xml services)
> > > GWT Designer:http://www.instantiations.com/gwtdesigner/
> >
> > > thanks a lot!
> >
> > > Pepe.
>


[web2py] Re: Checkboxes in SQLFORMs don't show updated values in 1.99.2

2011-11-23 Thread Pepe Araya
some news?

Thank you!




[web2py] computed field: update and images

2011-11-28 Thread Pepe Araya
Hi!!

I have 3 computed fields that call a "resize_image" function to make 3 
versions of a uploaded image.
The definition of one of these fields:

Field('foto_portada_detalle', 'upload',
uploadfolder=request.folder+'static/uploads/actividades',
compute=lambda r: resize_image(r['foto_portada'], (200,200), 'detalle', 
'actividades'),
autodelete=True,
readable=False)


When I delete the record, all is ok and the images are deleted but when I 
update the record with another image one good thing occur: all the other 3 
versions get updated BUT one bad thing occur too: the old images stay on 
the disk although "autodelete=True"

I think that the resize_image function need to manage the delete of old 
images but I don't know how. can you help me? Thank a lot!

The function:

def resize_image(image, size, path, folder, rotate=0):
import os.path

from PIL import Image, ImageOps

if image:
try:
img = Image.open('%sstatic/uploads/%s/%s' % (request.folder, 
folder, image))
img = img.convert("RGB")
img = ImageOps.fit(img, size, Image.ANTIALIAS, centering=(0.5, 
0.5))
#img.resize(size, Image.ANTIALIAS)
img = img.rotate(rotate)
root, ext = os.path.splitext(image)
filename = '%s_%s%s' %(root, path, ext)
img.save('%sstatic/uploads/%s/%s' % (request.folder, folder, 
filename))
return filename
except Exception, e:
return e
else:
return None


[web2py] Re: simulate a sub-domain from localhost?

2011-11-28 Thread Pepe Araya
I think that you can make it through the HOSTS file of your system

127.0.0.1:8000 site1.web2py.local
127.0.0.1:8000 site2.web2py.local




[web2py] Re: SQLForm.grid - How do I use it properly?

2011-12-04 Thread Pepe Araya
Hi Massimo and all the team!

First all: Thanks very much for this feature!I it's really amazing!

I have a question: It's possible to call a function after *update* or *edit* 
that 
take the id of the record created or updated? (or any other parameter)

thanks very much!

pepe.


[web2py] Re: SQLForm.grid - How do I use it properly?

2011-12-04 Thread Pepe Araya
Thanks!

Massimo, I noticed that this line of *gluon/sqlhtml.py*

1754: message = error or T('%(nrows)s records found') % dict(nrows=nrows)

add a new entry in the language file for every different search result. ("1 
records found", "2 records found"  )

I think that %(nrows)s should be outside the T() helper.

regards!

pepe.


[web2py] Re: book 4th edition in PDF

2011-12-17 Thread Pepe Araya
Work for me.

thanks.


[web2py] how to set the id of a textarea of a SQLFORM?

2011-12-17 Thread Pepe Araya
Hello!

is possible to set the id of a textarea of a SQLFORM?

I have 2 forms on the same page but the textarea of both have the same 
id... 

thanks


[web2py] SQLFORM.smartgrid PLURALIZE by default!!!!?????

2011-12-18 Thread Pepe Araya
Why pluralize by default!!???!

that ONLY work for english language, in spanish isn't so simply like add 
"s" for everything. I hate that, is like Rails...
please, don't go in the wrong way...

can I get my WELL FORMED labels back in some way?

thanks.


[web2py] Re: SQLFORM.smartgrid PLURALIZE by default!!!!?????

2011-12-18 Thread Pepe Araya
sorry if my speech is annoying, but it's really irritating.

My apologies.


[web2py] Re: [OT] Pycharm 2 is out

2011-12-18 Thread Pepe Araya
Voted

[web2py] problem when upgrade to 1.99.4

2011-12-18 Thread Pepe Araya
Hi,

I have this ticket when upgrade to 1.99.4:

 'NoneType' object has no attribute 
'strftime'VERSIONweb2py™(1, 99, 4, datetime.datetime(2011, 12, 14, 14, 46, 
14), 'stable')PythonPython 2.7.1: /usr/local/bin/pythonTRACEBACK

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.

Traceback (most recent call last):
  File "/home/doctoradoarq/webapps/web2py_docv3/web2py/gluon/restricted.py", 
line 204, in restricted
exec ccode in environment
  File 
"/home/doctoradoarq/webapps/web2py_docv3/web2py/applications/doctoradofadeu/controllers/administrar.py"
 
,
 line 244, in 
  File "/home/doctoradoarq/webapps/web2py_docv3/web2py/gluon/globals.py", line 
172, in 
self._caller = lambda f: f()
  File 
"/home/doctoradoarq/webapps/web2py_docv3/web2py/applications/doctoradofadeu/controllers/administrar.py"
 
,
 line 92, in agenda
return index()
  File 
"/home/doctoradoarq/webapps/web2py_docv3/web2py/applications/doctoradofadeu/controllers/administrar.py"
 
,
 line 88, in index
grid = SQLFORM.smartgrid(db.actividades)
  File "/home/doctoradoarq/webapps/web2py_docv3/web2py/gluon/sqlhtml.py", line 
1962, in smartgrid
user_signature=user_signature,**kwargs)
  File "/home/doctoradoarq/webapps/web2py_docv3/web2py/gluon/sqlhtml.py", line 
1781, in grid
value=field.represent(value,row)
  File 
"/home/doctoradoarq/webapps/web2py_docv3/web2py/applications/doctoradofadeu/models/ac_a_actividades.py"
 
,
 line 33, in 
db.actividades.fecha.represent = lambda v, r: v.strftime('%d-%m-%Y')
AttributeError: 'NoneType' object has no attribute 'strftime'


related to:
db.actividades.fecha.represent = lambda v, r: r.strftime('%d-%m-%Y')

what is a 'date' field

in version 1.99.2 it works ok, and reformat the date.

Thanks!! 


[web2py] Re: problem when upgrade to 1.99.4

2011-12-18 Thread Pepe Araya
sorry, is related with this:

db.actividades.fecha.represent = lambda *v, r: v.strftime(*'%d-%m-%Y')


[web2py] Re: problem when upgrade to 1.99.4

2011-12-18 Thread Pepe Araya
thank you very much!
my fault.
:(


Re: [web2py] Re: No models vs. conditional models -- what's the advantage?

2012-03-12 Thread Pepe Araya
With all the post arguing about no models... I'm asking myself: why web2py 
have "models" folder if it isn't the best way to do the work? only for 
background compatibility? 

what's the reason to load the models every time you make a request? is 
because the automatic migrations? 

are only questions, and why not made a huge change and optimization in a 
brand new version of web2py?

best regards,



On Thursday, March 8, 2012 12:45:41 PM UTC-3, rochacbruno wrote:
>
> another advantage is the fact that you can import modules, you cannot 
> import models. it is very nice to import your tables on external scripts.
>
> http://zerp.ly/rochacbruno
> Em 08/03/2012 12:11, "Anthony" escreveu:
>
>> I think an additional advantage of the module approach is that the module 
>> only has to be loaded once (when it is first imported), but the model files 
>> have to be read on every request.
>>
>> Anthony
>>
>> On Thursday, March 8, 2012 10:04:11 AM UTC-5, Cliff wrote:
>>>
>>> Certainly we want to avoid processing unnecessary table definitions 
>>> with every request. 
>>>
>>> It seems to me that the simplest solution is something like this: 
>>>
>>> if request.controller=='foo': 
>>>   db.define_table('foo', Field...) # main table 
>>>   db.define_table('foo_one_to_**many', Field(foo_id, db.foo...)...) 
>>>   ... 
>>>
>>> What is the advantage of the no models architecture over this?
>>
>>

[web2py] HTML truncate

2012-09-11 Thread Pepe Araya
Hello,

I need to truncate a field that contains HTML content. 

Now i'm using htmltruncate  in 
a controller that return a SQLFORM.smartgrid and it works perfect:
 
def noticias():

db.noticias.cuerpo.represent = lambda field,row: 
XML(htmltruncate.truncate(field, 100))
grid = SQLFORM.smartgrid(db.noticias, 
linked_tables=['adjuntos_noticia'])

return dict(grid =grid)


But when I try to implement a in a controller in this way:

def index():
db.publicaciones.descripcion.represent = lambda field, row: 
XML(htmltruncate.truncate(field, 10))
tipo_3 = db(db.publicaciones.tipo == 3).select().last()

return dict(tipo_3 = tipo_3)


It doesn't work


The module is inside the "modules" folder of the app and it's imported via:
import htmltruncate


any help is welcome!

Best!

-- 





[web2py] Re: HTML truncate

2012-09-11 Thread Pepe Araya
Hi Massimo,

Sorry for my poor explanation.

What I don't get is in the view when i call the field value 
{{=tipo_3.descripcion}}  I get the whole text and not the truncated one 
like in the SQLFORM.grid case.




On Tuesday, September 11, 2012 9:32:18 AM UTC-3, Massimo Di Pierro wrote:
>
> What does it mean it does not work? Can you import it? Can you import it 
> from python?
>
> On Tuesday, 11 September 2012 00:55:03 UTC-5, Pepe Araya wrote:
>>
>> Hello,
>>
>> I need to truncate a field that contains HTML content. 
>>
>> Now i'm using htmltruncate <https://github.com/eentzel/htmltruncate.py> in 
>> a controller that return a SQLFORM.smartgrid and it works perfect:
>>  
>> def noticias():
>> 
>> db.noticias.cuerpo.represent = lambda field,row: 
>> XML(htmltruncate.truncate(field, 100))
>> grid = SQLFORM.smartgrid(db.noticias, 
>> linked_tables=['adjuntos_noticia'])
>>
>> return dict(grid =grid)
>>
>>
>> But when I try to implement a in a controller in this way:
>>
>> def index():
>> db.publicaciones.descripcion.represent = lambda field, row: 
>> XML(htmltruncate.truncate(field, 10))
>> tipo_3 = db(db.publicaciones.tipo == 3).select().last()
>>
>> return dict(tipo_3 = tipo_3)
>>
>>
>> It doesn't work
>>
>>
>> The module is inside the "modules" folder of the app and it's imported 
>> via:
>> import htmltruncate
>>
>>
>> any help is welcome!
>>
>> Best!
>>
>

-- 





[web2py] represent list:reference

2012-09-11 Thread Pepe Araya
Hello,
I need to display the format value of the referenced table in a 
list:reference and not the list of ids.

I have these tables:
db.define_table('personas',
 Field('nombres'),
 Field('apellidos'),
 format='%(nombres)s %(apellidos)s')

db.define_table('publicaciones',
 Field('titulo'),
 Field('descripcion', 'text', label='Descripción'),
 Field('autores', 'list:reference db.personas',
requires= IS_IN_DB(db, 'personas.id', '%(nombres)s %(apellidos)s', 
multiple=True)),
 format='%(titulo)s')

this controller function:
def filtro():
tipo = request.args(0)
lista_publicaciones = db(db.publicaciones.tipo == tipo).select(orderby 
=~ db.publicaciones.fecha)
if lista_publicaciones:
lista_publicaciones=lista_publicaciones
else:
lista_publicaciones = "0"
return dict(lista_publicaciones=lista_publicaciones)

and this in the view:

{{if lista_publicaciones !='0':}}

{{for publicacion in lista_publicaciones:}}


{{=publicacion.titulo}}
Autores: {{=publicacion.autores}}

{{=XML(publicacion.descripcion)}}

{{pass}}
{{else:}}
something...
{{pass}}

using this in the view:
{{=db.publicaciones.autores.represent(publicacion.autores) }}

I get this error:
('NoneType' object is not callable)

Please, any help is welcome.
Thanks.

-- 





[web2py] Re: denormalizing a list:reference -- need a bit of help

2012-09-12 Thread Pepe Araya
Hi,
a question: how do you display the entities related to a user in a View 
which displays a list of users with their related entities??

for example:

Name: user 1
Entities: one, two

--

Name: user 2
Entities: one

--
...

Thanks.

On Friday, May 11, 2012 12:16:32 PM UTC-4, Niphlod wrote:
>
> If you need to fetch all entities knowing the user in advance there is a 
> ultra-simple way to fetch entities in a single query
> Actually I don't think anyone will come up with a solution involving more 
> than 1 additional query to the one required for "selecting" the user.
>
> user = db.auth_user(auth.user_id)
> entities = db(db.entity.id.belongs(user.entity)).select(db.entity.name) 
>
> Mind that the auth_user line is copied into session, so if that is always 
> available you can skip the first query and do
>
> entities = db(db.entity.id.belongs(auth.user.entity)).select(
> db.entity.name)
>
>
>
> Il giorno venerdì 11 maggio 2012 17:28:38 UTC+2, weheh ha scritto:
>>
>> db.define_table('entity', Field('name'), format='%(name)s')
>> auth_user_table = db.define_table(
>> auth.settings.table_user_name,
>> ... 
>> Field('entity', 'list:reference db.entity',
>>requires=IS_IN_DB(db, 'entity.id','%(name)s', multiple=True),
>>...
>> )
>>
>> Later, I want to get a list of entities by name from the list: reference 
>> entry for the current user.
>>
>> I would think I could do this:
>> user = db(db.auth_user.id == auth.user_id).select().first()
>> entities = db.auth_user.entity.represent(user.entity)
>> but I get a ticket:
>>   File "N:/web2py/applications/myapp/controllers/mycontroller.py", line 
>> 15, in myfunc
>> return dict(etext=db.auth_user.entity.represent(user.entity))
>> TypeError: 'NoneType' object is not callable
>>
>>
>> I've tried a few different variations on the theme, but none working so 
>> far. Any help would be appreciated.
>>
>> There are obvious slower ways to do this, but inelegant. I want the 
>> fastest, tightest solution.
>>
>>
>>

-- 





[web2py] Re: denormalizing a list:reference -- need a bit of help

2012-09-12 Thread Pepe Araya
Thanks very much! it works!

if I have the user query in the controller like this:

def user_list():
 users = db(db.auth_user).select()
 entities =  db(db.entity.id.belongs(user.entity)).select(db.entity.name)
 return dict(users = users, entities = entities )

will work?

---

Another related question is: why this don't work?
entities = db.auth_user.entity.represent(user.entity)

on the book appears as the way to get the work done, but it doesn't 


On Wednesday, September 12, 2012 6:32:44 AM UTC-3, Niphlod wrote:
>
> more or less
>
> {{for user in db(db.auth_user).select():}}
>  Name : {{=user.name}}
>  {{entities = db(db.entity.id.belongs(user.entity)).select(db.entity.
> name)}}
>  Entities : {{', '.join(ent.name for ent in entities)}}
> {{pass}}
> --
>
> of course you should probably fetch the result in the controller and show 
> only them in the view.
>
> BTW: this is pretty simple and standard for web2py. If you were asking for 
> something else please post more details...
>
> Il giorno mercoledì 12 settembre 2012 11:10:33 UTC+2, Pepe Araya ha 
> scritto:
>>
>> Hi,
>> a question: how do you display the entities related to a user in a View 
>> which displays a list of users with their related entities??
>>
>> for example:
>>
>> Name: user 1
>> Entities: one, two
>>
>> --
>>
>> Name: user 2
>> Entities: one
>>
>> --
>> ...
>>
>> Thanks.
>>
>> On Friday, May 11, 2012 12:16:32 PM UTC-4, Niphlod wrote:
>>>
>>> If you need to fetch all entities knowing the user in advance there is a 
>>> ultra-simple way to fetch entities in a single query
>>> Actually I don't think anyone will come up with a solution involving 
>>> more than 1 additional query to the one required for "selecting" the user.
>>>
>>> user = db.auth_user(auth.user_id)
>>> entities = db(db.entity.id.belongs(user.entity)).select(db.entity.name) 
>>>
>>> Mind that the auth_user line is copied into session, so if that is 
>>> always available you can skip the first query and do
>>>
>>> entities = db(db.entity.id.belongs(auth.user.entity)).select(
>>> db.entity.name)
>>>
>>>
>>>
>>> Il giorno venerdì 11 maggio 2012 17:28:38 UTC+2, weheh ha scritto:
>>>>
>>>> db.define_table('entity', Field('name'), format='%(name)s')
>>>> auth_user_table = db.define_table(
>>>> auth.settings.table_user_name,
>>>> ... 
>>>> Field('entity', 'list:reference db.entity',
>>>>requires=IS_IN_DB(db, 'entity.id','%(name)s', multiple=True
>>>> ),
>>>>...
>>>> )
>>>>
>>>> Later, I want to get a list of entities by name from the list: 
>>>> reference entry for the current user.
>>>>
>>>> I would think I could do this:
>>>> user = db(db.auth_user.id == auth.user_id).select().first()
>>>> entities = db.auth_user.entity.represent(user.entity)
>>>> but I get a ticket:
>>>>   File "N:/web2py/applications/myapp/controllers/mycontroller.py",line 
>>>> 15, in myfunc
>>>> return dict(etext=db.auth_user.entity.represent(user.entity))
>>>> TypeError: 'NoneType' object is not callable
>>>>
>>>>
>>>> I've tried a few different variations on the theme, but none working so 
>>>> far. Any help would be appreciated.
>>>>
>>>> There are obvious slower ways to do this, but inelegant. I want the 
>>>> fastest, tightest solution.
>>>>
>>>>
>>>>

-- 





[web2py] Re: denormalizing a list:reference -- need a bit of help

2012-09-12 Thread Pepe Araya
Thanks you!

On Wednesday, September 12, 2012 6:51:56 AM UTC-3, Niphlod wrote:
>
> no, it wont.
> users is a "list" of users.
> you need to fetch the "list of entities" separately for every "item" of 
> the "list of the users".
>
> Il giorno mercoledì 12 settembre 2012 11:46:32 UTC+2, Pepe Araya ha 
> scritto:
>>
>> Thanks very much! it works!
>>
>> if I have the user query in the controller like this:
>>
>> def user_list():
>>  users = db(db.auth_user).select()
>>  entities =  db(db.entity.id.belongs(user.entity)).select(db.entity.name)
>>  return dict(users = users, entities = entities )
>>
>> will work?
>>
>> ---
>>
>> Another related question is: why this don't work?
>> entities = db.auth_user.entity.represent(user.entity)
>>
>> on the book appears as the way to get the work done, but it doesn't 
>>
>>
>> On Wednesday, September 12, 2012 6:32:44 AM UTC-3, Niphlod wrote:
>>>
>>> more or less
>>>
>>> {{for user in db(db.auth_user).select():}}
>>>  Name : {{=user.name}}
>>>  {{entities = db(db.entity.id.belongs(user.entity)).select(db.entity
>>> .name)}}
>>>  Entities : {{', '.join(ent.name for ent in entities)}}
>>> {{pass}}
>>> --
>>>
>>> of course you should probably fetch the result in the controller and 
>>> show only them in the view.
>>>
>>> BTW: this is pretty simple and standard for web2py. If you were asking 
>>> for something else please post more details...
>>>
>>> Il giorno mercoledì 12 settembre 2012 11:10:33 UTC+2, Pepe Araya ha 
>>> scritto:
>>>>
>>>> Hi,
>>>> a question: how do you display the entities related to a user in a View 
>>>> which displays a list of users with their related entities??
>>>>
>>>> for example:
>>>>
>>>> Name: user 1
>>>> Entities: one, two
>>>>
>>>> --
>>>>
>>>> Name: user 2
>>>> Entities: one
>>>>
>>>> --
>>>> ...
>>>>
>>>> Thanks.
>>>>
>>>> On Friday, May 11, 2012 12:16:32 PM UTC-4, Niphlod wrote:
>>>>>
>>>>> If you need to fetch all entities knowing the user in advance there is 
>>>>> a ultra-simple way to fetch entities in a single query
>>>>> Actually I don't think anyone will come up with a solution involving 
>>>>> more than 1 additional query to the one required for "selecting" the user.
>>>>>
>>>>> user = db.auth_user(auth.user_id)
>>>>> entities = db(db.entity.id.belongs(user.entity)).select(db.entity.name) 
>>>>>
>>>>>
>>>>> Mind that the auth_user line is copied into session, so if that is 
>>>>> always available you can skip the first query and do
>>>>>
>>>>> entities = db(db.entity.id.belongs(auth.user.entity)).select(
>>>>> db.entity.name)
>>>>>
>>>>>
>>>>>
>>>>> Il giorno venerdì 11 maggio 2012 17:28:38 UTC+2, weheh ha scritto:
>>>>>>
>>>>>> db.define_table('entity', Field('name'), format='%(name)s')
>>>>>> auth_user_table = db.define_table(
>>>>>> auth.settings.table_user_name,
>>>>>> ... 
>>>>>> Field('entity', 'list:reference db.entity',
>>>>>>requires=IS_IN_DB(db, 'entity.id','%(name)s', multiple=
>>>>>> True),
>>>>>>...
>>>>>> )
>>>>>>
>>>>>> Later, I want to get a list of entities by name from the list: 
>>>>>> reference entry for the current user.
>>>>>>
>>>>>> I would think I could do this:
>>>>>> user = db(db.auth_user.id == auth.user_id).select().first()
>>>>>> entities = db.auth_user.entity.represent(user.entity)
>>>>>> but I get a ticket:
>>>>>>   File "N:/web2py/applications/myapp/controllers/mycontroller.py",line 
>>>>>> 15, in myfunc
>>>>>> return dict(etext=db.auth_user.entity.represent(user.entity))
>>>>>> TypeError: 'NoneType' object is not callable
>>>>>>
>>>>>>
>>>>>> I've tried a few different variations on the theme, but none working 
>>>>>> so far. Any help would be appreciated.
>>>>>>
>>>>>> There are obvious slower ways to do this, but inelegant. I want the 
>>>>>> fastest, tightest solution.
>>>>>>
>>>>>>
>>>>>>

-- 





[web2py] Re: HTML truncate

2012-09-12 Thread Pepe Araya
Thanks you both!

One more help request: I have a "represent" related question in this 
topic https://groups.google.com/d/topic/web2py/9R9iQT_BVyU/discussion

please, can you help me to understand what I'm doing wrong? 

On Tuesday, September 11, 2012 11:33:18 AM UTC-3, Massimo Di Pierro wrote:
>
> {{=db.publicaciones.descripcion.represent(tipo_3.descripcion,tipo_3}}
>
> I do not think you want the extra =.
>
> On Tuesday, 11 September 2012 08:47:00 UTC-5, villas wrote:
>>
>> I end up doing something like this:
>>
>> {{=db.publicaciones.descripcion.represent(=tipo_3.descripcion,tipo_3)}}
>>
>> I hope that helps,  but maybe there is a better way?
>>
>>
>>
>> On Tuesday, September 11, 2012 1:48:59 PM UTC+1, Pepe Araya wrote:
>>>
>>> Hi Massimo,
>>>
>>> Sorry for my poor explanation.
>>>
>>> What I don't get is in the view when i call the field value 
>>> {{=tipo_3.descripcion}}  I get the whole text and not the truncated one 
>>> like in the SQLFORM.grid case.
>>>
>>>
>>>
>>>
>>> On Tuesday, September 11, 2012 9:32:18 AM UTC-3, Massimo Di Pierro wrote:
>>>>
>>>> What does it mean it does not work? Can you import it? Can you import 
>>>> it from python?
>>>>
>>>> On Tuesday, 11 September 2012 00:55:03 UTC-5, Pepe Araya wrote:
>>>>>
>>>>> Hello,
>>>>>
>>>>> I need to truncate a field that contains HTML content. 
>>>>>
>>>>> Now i'm using htmltruncate<https://github.com/eentzel/htmltruncate.py> in 
>>>>> a controller that return a SQLFORM.smartgrid and it works perfect:
>>>>>  
>>>>> def noticias():
>>>>> 
>>>>> db.noticias.cuerpo.represent = lambda field,row: 
>>>>> XML(htmltruncate.truncate(field, 100))
>>>>> grid = SQLFORM.smartgrid(db.noticias, 
>>>>> linked_tables=['adjuntos_noticia'])
>>>>>
>>>>> return dict(grid =grid)
>>>>>
>>>>>
>>>>> But when I try to implement a in a controller in this way:
>>>>>
>>>>> def index():
>>>>> db.publicaciones.descripcion.represent = lambda field, row: 
>>>>> XML(htmltruncate.truncate(field, 10))
>>>>> tipo_3 = db(db.publicaciones.tipo == 3).select().last()
>>>>>
>>>>> return dict(tipo_3 = tipo_3)
>>>>>
>>>>>
>>>>> It doesn't work
>>>>>
>>>>>
>>>>> The module is inside the "modules" folder of the app and it's imported 
>>>>> via:
>>>>> import htmltruncate
>>>>>
>>>>>
>>>>> any help is welcome!
>>>>>
>>>>> Best!
>>>>>
>>>>

-- 





[web2py] Help with query

2013-03-05 Thread Pepe Araya
Hi!

In words what i need is to get a set from this query: select the 
'persons.email' and 'persons.id' from table 'persons' *that are not in*table 
'invitations.to'

my tables:

db.define_table('persons',
 Field('name'),
 Field('email'))

db.define_table('invitations',
 Field('from',db.persons),
 Field('to',db.persons))


Any help is welcome.

Thank you very much.

-- 

--- 
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/groups/opt_out.




Re: [web2py] Re: Help with query

2013-03-05 Thread Pepe Araya
Hi Derek and Anthony,

that's make the trick!!

Thank you both!!

*Pepe Araya*
Diseñador / Designer



On Tue, Mar 5, 2013 at 4:18 PM, Derek  wrote:

> You can negate a part of a query by using a tilde (~).
>
>
> On Tuesday, March 5, 2013 10:30:50 AM UTC-7, Pepe Araya wrote:
>>
>> Hi!
>>
>> In words what i need is to get a set from this query: select the
>> 'persons.email' and 'persons.id' from table 'persons' *that are not in*table 
>> '
>> invitations.to'
>>
>> my tables:
>>
>> db.define_table('persons',
>>  Field('name'),
>>  Field('email'))
>>
>> db.define_table('invitations',
>>  Field('from',db.persons),
>>  Field('to',db.persons))
>>
>>
>> Any help is welcome.
>>
>> Thank you very much.
>>
>>  --
>
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "web2py-users" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/web2py/OOFjQug73q0/unsubscribe?hl=en.
> To unsubscribe from this group and all its topics, send an email to
> web2py+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 

--- 
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/groups/opt_out.