I am currently building an accounting system for companies. This could
be used as a foundation to develop more financial applications. Likely
delivery end of the year.
Your release of spreadsheet is proving very useful, eventhough I am
encountering similar difficulties to some people on the
Hi Yannick,
Your code sample showing how to access the hidden fields of the form
object gave me the clue I needed to fix my custom form posting to the
auth login url.
For those wondering how to do the same, here is an example:
controllers/default.py
def index():
response.flash =
I just copy / pasted the link below into the URL of the admin page and it
installed as testme just fine with latest web2py.
Can you give more information?
Are you downloading the app first, then installing it from local disk?
Are you installing from the url?
What O/S? What browser / version?
oh - I just checked, and I was running web2py 1.65.0 on Firefox 3.5 on
Fedora-11 / 64;
I grabbed a clean clone of web2py 1.65.1, and repeated - also worked fine
(NOTE: we need to think about the repository: it took forever to get a
branch - the .bzr directory is now at 486MB, mostrly from the
I think this is a chicken and egg story. Before we compare with
Django, let's compare with Turbogears. According to google trends we
are as popular as they are (we going up and they going down). Same is
true for Cherrypy. Yet TG was allotted 8 hours of tutorials at Pycon
2009. Cherrypy had one
On Jul 6, 1:08 am, Francois (Jersey)
francois.ches...@googlemail.com wrote:
I am currently building an accounting system for companies. This could
be used as a foundation to develop more financial applications. Likely
delivery end of the year.
Your release of spreadsheet is proving very
Hi Massimo,
this is perhaps also fuelled by the fact that all source/distributions
are coming from your trunk. Don't get me wrong, I think ity's very
good that yo oversee the project and keep it from straying off track.
And yes, everybody can send you patches and you says thanks in your
commits
On Jul 6, 7:59 am, Yarko Tymciurak yark...@gmail.com wrote:
(NOTE: we need to think about the repository: it took forever to get a
branch - the .bzr directory is now at 486MB, mostrly from the one pack (I
presume holding revisions) Are we keeping the tar files in there too?
That would
the is now also acting as a kind of distribution. We might need to
split that and have
- source develop
- source stable
- distribution dev
- distribution stable
On Mon, Jul 6, 2009 at 8:59 AM, Yarko Tymciurakyark...@gmail.com wrote:
oh - I just checked, and I was running web2py 1.65.0 on
I think you are starting to mix two different things here - django has been
in commercial use for some years. Runs info for a news organization.
Your TG story is another thing, but the _fact_ remains (and I've had this
private conversation quite recently with you) that solid, well designed,
I agree - a mainline release process would be of benefit.
I think we need to look at the maturity of that google code mercurial
option, as that would give us some important tools - like code-review per
submission, so it would at least be a process...
and could lead us into what Hans mentions...
You have to obtain your own RECAPTCHA_PUBLIC_KEY and
RECAPTCHA_PRIVATE_KEY. That's the idea of keys.
http://recaptcha.net/
--
Kuba
On Sun, Jul 5, 2009 at 10:58 PM, wehehrichard_gor...@verizon.net wrote:
On my clean install of 1.65.1 I'm trying out a brand new test app. All
I'm trying to
hi together,
i have a function:
def table_as_xml():
from gluon.serializers import xml
response.headers['Content-Type']='text/xml'
return '''?xml version=1.0 encoding=UTF-8?
'''+itemlist%s/itemlist % xml(db(db[request.args
(0)].id0).select().as_list())
ok this works
Yarko. Many more people than you know are using web2py.
I know of companies who do and I know of government organizations who
do, although I am not saying their names without their permission.
For various reason these users tend to use web2py do develop
applications for internal use and not
You can call but it ugly.
http://www.test.com/myapp/default/table_as_xml.xml/user
I suggest
def table_as_xml():
from gluon.serializers import xml
response.headers['Content-Type']='text/xml'
return '''?xml version=1.0 encoding=UTF-8?
'''+itemlist%s/itemlist %
Hello,
when you have hundreds lines of code and you are working on one
function ,when testing (index) and comming back to code, you have to
scroll to ...the last place you were working on ! (so loosing few
precious time).
I know you can find a line or word in text editor but you have to
enter a
Hello folks,
Maybe it will be good to have in the web2py's website a section where
we can see a list of all the good and serious hosting company that
support web2py it will be helpful... Me the web hosting I found
doesn't seems to be very professional and maybe you guys know a better
and really
On Jul 6, 2009, at 7:54 AM, Yannick wrote:
Maybe it will be good to have in the web2py's website a section where
we can see a list of all the good and serious hosting company that
support web2py it will be helpful... Me the web hosting I found
doesn't seems to be very professional and maybe
Is it practical to run web2py from a non-admin remote-login account,
without access to httpd.conf or rc files? I'm wondering, for example,
how to get it to start after a reboot without manual intervention.
Running without web2py admin access would be fine.
In addition to that, are we talking about companies that support
web2py in the sense that they provide some sort of control panel for
it? - I mean I've been using my (same) hosting company for ages now,
though I have a dedicated VPS with them I do not have a control
panel of any sort, and I've
is there no possibiltiy to get follow url:
http://www.test.com/myapp/default/table_as_xml/user.xml
??
thanks
On 6 Jul., 15:55, mdipierro mdipie...@cs.depaul.edu wrote:
You can call but it ugly.
http://www.test.com/myapp/default/table_as_xml.xml/user
I suggest
def table_as_xml():
i need this url, when i use httpservice in flex
On 6 Jul., 15:55, mdipierro mdipie...@cs.depaul.edu wrote:
You can call but it ugly.
http://www.test.com/myapp/default/table_as_xml.xml/user
I suggest
def table_as_xml():
from gluon.serializers import xml
Hi,
Are you talking about some IDE?
In many IDEs you have something like Outline (Eclipse + PyDev) or
Navigator (NetBeans + Python plugin) which displays classes,
functions, often with variables in them. By doubleclicking on some
name (let's say, class Client) you can quickly go to its
In routes.py you can do
routes_in=(('/myapp/default/table_as_xml/user.html','/myapp/default/
table_as_xml.xml/user'),)
routes_out=(('/myapp/default/table_as_xml.html/user','/myapp/default/
table_as_xml/user.html'),)
On Jul 6, 10:30 am, pk peter.kirch...@youngdesigners.de wrote:
i need this
where can i find routes.py?
On 6 Jul., 17:43, mdipierro mdipie...@cs.depaul.edu wrote:
In routes.py you can do
routes_in=(('/myapp/default/table_as_xml/user.html','/myapp/default/
table_as_xml.xml/user'),)
routes_out=(('/myapp/default/table_as_xml.html/user','/myapp/default/
On Jul 6, 4:47 pm, pk peter.kirch...@youngdesigners.de wrote:
where can i find routes.py?
cp web2py\routes.example.py web2py\routes.py
F
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups
web2py Web Framework group.
On Jul 6, 2009, at 8:50 AM, Fran wrote:
On Jul 6, 4:47 pm, pk peter.kirch...@youngdesigners.de wrote:
where can i find routes.py?
cp web2py\routes.example.py web2py\routes.py
And section 4.15 of the manual.
--~--~-~--~~~---~--~~
You received this message
Can I know the name of the company you are using please ?
On Jul 6, 11:25 am, Speedbird ju...@techfuel.net wrote:
In addition to that, are we talking about companies that support
web2py in the sense that they provide some sort of control panel for
it? - I mean I've been using my (same)
ok thanks but i dont`t find the routes.example.py
i use a mac
On 6 Jul., 17:55, Jonathan Lundell jlund...@pobox.com wrote:
On Jul 6, 2009, at 8:50 AM, Fran wrote:
On Jul 6, 4:47 pm, pk peter.kirch...@youngdesigners.de wrote:
where can i find routes.py?
cp web2py\routes.example.py
can you explain in more detailed. what i have to do to change the
routes.py
On 6 Jul., 18:11, pk peter.kirch...@youngdesigners.de wrote:
ok thanks but i dont`t find the routes.example.py
i use a mac
On 6 Jul., 17:55, Jonathan Lundell jlund...@pobox.com wrote:
On Jul 6, 2009, at 8:50 AM,
I have setup the email verification according to the instructions
online, but everyone is still able to login with no issues.
I know the email is setup properly as I have used the same settings for
emailing to others with my website.
I am using Gmail's smtp to do the emailing.
Any ideas?
This is
From a OSX terminal (which you can open from Application/Utilities) go
into
web2py.app/Contents/Resources/
and create and edit route.py. Place this text in it:
#begin
routes_in=(('/myapp/default/table_as_xml/user.html','/myapp/default/
table_as_xml.xml/user'),)
Replied. Thanks!
On Jul 6, 9:08 am, Yannick ytchatch...@gmail.com wrote:
Can I know the name of the company you are using please ?
On Jul 6, 11:25 am, Speedbird ju...@techfuel.net wrote:
In addition to that, are we talking about companies that support
web2py in the sense that they
ok but now i get this errormessage
Traceback (most recent call last):
File gluon/restricted.py, line 107, in restricted
File /Applications/web2py/web2py1.64.4/web2py.app/Contents/
Resources/applications/2busy/controllers/default.py, line 55, in
module
File gluon/globals.py, line 100, in
add
auth.settings.registration_requires_verification = True
On Jul 6, 11:19 am, Jason Brower encomp...@gmail.com wrote:
I have setup the email verification according to the instructions
online, but everyone is still able to login with no issues.
I know the email is setup properly as I have
my mistake. try this
#begin
routes_in=(('/myapp/default/table_as_xml/$user.html','/myapp/default/
table_as_xml.xml/$user'),)
routes_out=(('/myapp/default/table_as_xml.html/$user','/myapp/default/
table_as_xml/$user.html'),)
#end
On Jul 6, 11:40 am, pk peter.kirch...@youngdesigners.de wrote:
ok
i also get this ticket
Traceback (most recent call last):
File gluon/restricted.py, line 107, in restricted
File /Applications/web2py/web2py1.64.4/web2py.app/Contents/
Resources/applications/2busy/controllers/default.py, line 55, in
module
File gluon/globals.py, line 100, in lambda
File
http://127.0.0.1:8000/2busy/default/table_as_xml/projectmember
if i try this, this works fine
but still:
http://127.0.0.1:8000/2busy/default/table_as_xml/projectmember.xml
throw a ticket
On 6 Jul., 18:54, pk peter.kirch...@youngdesigners.de wrote:
i also get this ticket
Traceback (most
one more try
#begin
routes_in=(('/myapp/default/table_as_xml/$user\.html','/myapp/default/
table_as_xml\.xml/$user'),)
routes_out=(('/myapp/default/table_as_xml\.html/$user','/myapp/default/
table_as_xml/$user\.html'),)
#end
On Jul 6, 11:57 am, pk peter.kirch...@youngdesigners.de wrote:
How I use the decorators of auth in multiple controllers without
having to declare in every controller:
def user ():
return dict(form=auth())
Though to do it is troublesome, also I must duplicate the view user.
I imagine that there must be a simpler way.
Regards
Jose
it still doesn`t work
On 6 Jul., 19:59, mdipierro mdipie...@cs.depaul.edu wrote:
one more try
#begin
routes_in=(('/myapp/default/table_as_xml/$user\.html','/myapp/default/
table_as_xml\.xml/$user'),)
routes_out=(('/myapp/default/table_as_xml\.html/$user','/myapp/default/
Not sure I understand. You need only one
def user ():
return dict(form=auth())
If you need to decorate lots of functions with @auth.requires_login(),
you can do
if not request.function in ['index','other_allowed_function'] and not
auth.is_logged_in():
Did you restart web2py? If yes, and still does not work, please post
you routes.py, and a full path that does work
On Jul 6, 1:09 pm, pk peter.kirch...@youngdesigners.de wrote:
it still doesn`t work
On 6 Jul., 19:59, mdipierro mdipie...@cs.depaul.edu wrote:
one more try
#begin
P.S. This is a very well established feature. It is just a matter of
getting the regex right.
I can help you but you may want to read about it in the book. It is
well documented.
Massimo
On Jul 6, 1:09 pm, pk peter.kirch...@youngdesigners.de wrote:
it still doesn`t work
On 6 Jul., 19:59,
On 6 jul, 18:16, mdipierro mdipie...@cs.depaul.edu wrote:
Not sure I understand. You need only one
def user ():
return dict(form=auth())
If you need to decorate lots of functions with @auth.requires_login(),
you can do
if not request.function in ['index','other_allowed_function']
Hey, Massimo, what've you got against cats? ;^)
And Yarko says:
Your TG story is another thing, but the _fact_ remains (and I've
had this
private conversation quite recently with you) that solid, well
designed,
non-trivial, and commercially in-use applications written in web2py
are
what?
Thanks, Kuba. I was wondering about that and where to get the keys.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups
web2py Web Framework group.
To post to this group, send email to web2py@googlegroups.com
To
Little hack I do that most editors have...
If you want to see your last change:
Cntrl-Z for undo... that will jump your cursor there...
the Cntrl-Y is ussually redo, and that will put back your change with
your cursor where you want it.
I use geany, it has a nice bookmarking feature. I use it at
I am talking of administrative interface of web2py .When looking to my
code (models,controllers,views,...) it should be interesting having
this option.Of course some idle or éditors,can do that outside ,it
should be better inside web2py...
Jean-Marc
The example _action='.' appears in the manual, section 7.2 (SQLForm),
page 168.
What does that mean?
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups
web2py Web Framework group.
To post to this group, send email
No. You should define the 'user; action only one (for example in
default.py)
But, you also need the following in the model
auth.settings.login_url = URL(r=request,c='default',f='user/login')
auth.settings.on_failed_authorization = URL
(r=request,c='default',f='user/on_failed_authorization')
so
weheh. You think you absolutely have a point.
here are some other public apps that use web2py (although as I said
most web2py apps are not designed to be public):
http://www.appliedstacks.com/NewestFirst/web2py
Massimo
On Jul 6, 1:33 pm, weheh richard_gor...@verizon.net wrote:
Hey, Massimo,
it still doesn`t work.
here the routes.py
#begin
routes_in=(('/2busy/default/table_as_xml/$projectmember\.html','/myapp/
default/table_as_xml\.xml/$projectmember'),)
routes_out=(('/2busy/default/table_as_xml\.html/$projectmember','/
myapp/default/table_as_xml/$projectmember\.html'),)
#end
Massimo -
Sounds good.
On Mon, Jul 6, 2009 at 8:51 AM, mdipierro mdipie...@cs.depaul.edu wrote:
Yarko. Many more people than you know are using web2py.
I know of companies who do and I know of government organizations who
do, although I am not saying their names without their permission.
I think your request is a good one:
- A blog-like list of hosting where web2py is known to run, and what it
takes to setup a web2py site there.
I have an account on webfaction, and have moved others there. They have a
writeup on how to get web2py deployed, and support you through it.
I _know_
_action value (in SQLForm) is what action in HTML FORM will be set to.
It is a URI, so . is relative to the current context.
check out something like
http://www.w3.org/TR/html401/interact/forms.htmlfor more.
On Mon, Jul 6, 2009 at 1:44 PM, Jonathan Lundell jlund...@pobox.com wrote:
The
I think, that web editor in web2py shouldn't be your main code editor. It
is really poor in comparison to other IDEs (Eclipse, NetBeans, or Geany,
as Jason mentioned). For example, does it have autocompletion, or a
debugger? No.
I also think, that the main point of using web editor (which
That looks VERY sleek!! Great job!!
Any way to get the source-code to learn from it?
On Jul 5, 9:46 pm, mr.freeze nat...@freezable.com wrote:
I am putting together a paste bin site for web2py called
web2pyslices.com. It has ratings, markdown, favorites, comments and a
few other
On Jul 6, 2009, at 12:31 PM, Yarko Tymciurak wrote:
_action value (in SQLForm) is what action in HTML FORM will be
set to.
It is a URI, so . is relative to the current context.
check out something like http://www.w3.org/TR/html401/interact/forms.html
for more.
OK, thanks.
The
I understand what you are trying to say but when you say no one is
using web2py gives people the wrong impression and not the correct
one. It is not fair to member of this community who use web2py.
You should also assume that there are lots of people on this list who
are considering web2py but
yes, excellent job!
On Jul 6, 2:48 pm, waTR roman.goldm...@gmail.com wrote:
That looks VERY sleek!! Great job!!
Any way to get the source-code to learn from it?
On Jul 5, 9:46 pm, mr.freeze nat...@freezable.com wrote:
I am putting together a paste bin site for web2py called
This is thought one because there are many subtleties.
web2py can run everywhere as long as they have python installed. If
they can run any other python framework they can run web2py. If they
can run java apps, they can run Jython and thus they can run web2py
too. All sites that list cherrypy
I
onclick=confirmation('{{=r.id}}');
Then just accept the parameter in your JS function and handle it
there, something like
function confirmation(recno) {
...
-- Julio
On Jul 6, 1:57 pm, NetAdmin mr.netad...@gmail.com wrote:
Hello All,
I'm trying to display records in a table, that has a
Thanks! I will pack it into a w2p and make it available on the site
after it is deployed. I've still got a few bugs to iron out and CSS
to clean up.
On Jul 6, 2:48 pm, waTR roman.goldm...@gmail.com wrote:
That looks VERY sleek!! Great job!!
Any way to get the source-code to learn from it?
_action=URL(r=request))
is probably fine
_action=URL(r=request,args=request.args))
to be user
On Jul 6, 3:32 pm, Jonathan Lundell jlund...@pobox.com wrote:
On Jul 6, 2009, at 12:31 PM, Yarko Tymciurak wrote:
_action value (in SQLForm) is what action in HTML FORM will be
set to.
YES! YES! YES!
That worked GREAT! I spent HOURS trying to get that correct!
Thanks So Much!
Sterling
On Jul 6, 4:07 pm, Speedbird ju...@techfuel.net wrote:
onclick=confirmation('{{=r.id}}');
Then just accept the parameter in your JS function and handle it
there, something like
function
Some people are not interested in features as are only interested in
learning the system that will give them the highest chance of getting
hired. Some people are interested in features as a way to get the job
done better and quicker. I am working for this second class of users.
I am interested in
Some people have asked so here is a prototype of the new DAL. It is
far come complete. The tests at the end work. It cannot jet be
integrated in web2py because the part for auto-closing transactions if
missing.
--~--~-~--~~~---~--~~
You received this
Hello All,
I'm trying to display records in a table, that has a button at the end
of each row, that calls a JavaScript popup to confirm the delete.
I'm stuck and would appreciate any help anyone can offer.
Some of the code is attached.
Thanks!
Sterling
head
script type=text/javascript
!--
hey... web2py does this automatically if you use an input checkbox
with class=delete. No JS needed.
Massimo
On Jul 6, 3:57 pm, NetAdmin mr.netad...@gmail.com wrote:
Hello All,
I'm trying to display records in a table, that has a button at the end
of each row, that calls a JavaScript popup
It looks very good mr. freeze. On my system it is horizontally
challenged however. Do you really need four columns in the layout or
could you stack the new slices and the favorite slices?
Sites should be usable without too much scrolling in an 800x600
window. That may not be possible in all
On Jul 5, 2009, at 11:59 PM, mdipierro wrote:
Why is that? I think there are multiple answers.
One is that the python community still perceives web2py as a one man
project. You people need to brag more about it and about your
contribution.
To the extent that the one-man project
mdipierro :
Some people are interested in features as a way to get the job
done better and quicker. I am working for this second class of users.
I am interested in building a community for these people.
I like that statement. Keen to see what follows up.
I mean, you add neice little features
On Mon, Jul 6, 2009 at 3:13 PM, mdipierro mdipie...@cs.depaul.edu wrote:
I understand what you are trying to say but when you say no one is
using web2py gives people the wrong impression and not the correct
one. It is not fair to member of this community who use web2py.
Massimo - no one is
On Mon, Jul 6, 2009 at 5:48 PM, Yarko Tymciurak yark...@gmail.com wrote:
On Mon, Jul 6, 2009 at 3:13 PM, mdipierro mdipie...@cs.depaul.edu wrote:
.
http://www.whitepeaksoftware.com/ uses web2py for their web site
For purposes of showing web2py look and feel, this is just a
I must say that I grow even more impressed with this framework as time
goes by :)
On Jul 6, 2:53 pm, mdipierro mdipie...@cs.depaul.edu wrote:
hey... web2py does this automatically if you use an input checkbox
with class=delete. No JS needed.
Massimo
On Jul 6, 3:57 pm, NetAdmin
+1
On Jul 6, 3:48 pm, Yarko Tymciurak yark...@gmail.com wrote:
On Mon, Jul 6, 2009 at 3:13 PM, mdipierro mdipie...@cs.depaul.edu wrote:
I understand what you are trying to say but when you say no one is
using web2py gives people the wrong impression and not the correct
one. It is not
Yarko,
we should not transform a strength into a weakness. As I stressed many
times web2py is mostly used to develop intranet apps in corporate
environments (small and medium size businesses).
There are people do not want to say what they are doing with web2py
and do not want to advertise that
Let me add that only one chapter needs to be added the book (about web
services) and two chapters need minor revisions. Aside for that all
new features are stable and described in the book. If I get some help
with proofreading and screenshots I can have a web2py book 2nd edition
in by the end of
On Jul 6, 2009, at 2:10 PM, mdipierro wrote:
_action=URL(r=request))
is probably fine
_action=URL(r=request,args=request.args))
to be user
Because valid html requires a non-empty action, I'd like to make the
effort to specify self-submission as easy as possible. I've been
thinking
Let me add that most of the the other chapters have already been
revised, although need some proofreading.
Only one chapter needs to be added the book (a short one, about web
services) and two chapters still need some revision. Aside for that
all
new features are stable and described in the
This is just in time! I'm starting to add AUTH functions to the app
I'm working on
so I'll read both chapters and provide feedback.
Sterling
On Jul 6, 7:09 pm, Massimo Di Pierro mdipie...@cs.depaul.edu wrote:
Here are two very very draft chapters for the second edition of the
book.
Chapter
I look forward to this new edition.
Mike
On Jul 6, 6:20 pm, net mr.shank...@gmail.com wrote:
This is just in time! I'm starting to add AUTH functions to the app
I'm working on
so I'll read both chapters and provide feedback.
Sterling
On Jul 6, 7:09 pm, Massimo Di Pierro
I would be willing to do screen shots if you are looking for a
volunteer.
JohnMc
On Jul 6, 7:49 pm, mdipierro mdipie...@cs.depaul.edu wrote:
Let me add that most of the the other chapters have already been
revised, although need some proofreading.
Only one chapter needs to be added the book
Thank you. I am going to work on this probably one or two more weeks.
Than I will post here a list if screenshots that are needed and some
guidelines.
I cannot promise much in return other than a mention in the book and a
copy of the final version to all those who help.
Massimo
On Jul 6, 9:47
I think I good information to put in 'auth' section, besides the Renaming
Auth tables is how translate auth tables fields:
db.auth_user.first_name.label=T(First Name)
etc.
etc.
I take some time to figure how get it.
IDEA: I sugest, to make web2py more friendly to l10n, the labels was default
as
I do not think this needs to be in web2py.
You can already define something like:
def url(f,args=request.args): return URL(r=request,f=f,args=args)
I always do it together with some of my other favorite shortcuts.
Massimo
On Jul 6, 8:06 pm, Jonathan Lundell jlund...@pobox.com wrote:
On Jul
same problem with another field:
it is defined as
db.Field('impressions','integer'),
but impressions=r._extra[db.ans_dashboard_report.impressions.sum()] is
returning decimal instead of integer !!!
the strange thing is than on another machine it gives me integer...
any ideas ?
On Thu, Jul 2,
On Mon, Jul 6, 2009 at 7:00 PM, mdipierro mdipie...@cs.depaul.edu wrote:
Yarko,
we should not transform a strength into a weakness.
Massimo, Massimo, Massimo -
Facts are neither strength or weakness (these words from you seem strange
indeed).
As I stressed many
times web2py is mostly
Ach - I see why you are so protective of the user base, and all your
efforts, long hours and fine teachings.
Let it not get in the way of stepping back now and then, and looking,
seeing...
there is no shame in reality...
On Tue, Jul 7, 2009 at 12:01 AM, Yarko Tymciurak yark...@gmail.com wrote:
These functions in a controller:
@auth.requires_membership('tier1_manager')
def crud_nfa():
response.functionname='Manage nfa-gegevens'
db.nfa.bedrijf.writable=False
db.nfa.bedrijf.default=auth.user.bedrijf
form=create_form(db.nfa)
It is not just the check to delete that doesn't work, when I update
the record and click submit the update isn't being executed either.
Kind regards,
Annet.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups
web2py
92 matches
Mail list logo