web2py for possible SAAS project?

36 views
Skip to first unread message

Darcy Clark

unread,
Dec 8, 2009, 1:11:14 AM12/8/09
to web2py-users
We have a project that we previously developed in Plone - we are
considering rewriting it in web2py. It turns out Plone was a good
choice *at the time* but better, more productive frameworks now exist.
Anyway there are few things that Plone does well that I'm not sure how
to address using web2py:

1. state-based workflow
2. versioning of content objects
3. indexing and searching of binary formats (word, pdf, excel etc...)
4. full-text search of all content objects
5. customer subdomains (customer1.example.com, customer2.example.com)

Actually those are pretty core requirements for this project, so maybe
staying with Plone is the way to go ;) But seriously, if you've made
web2py do any of the above, I'd be interested to hear about it.

regards,
Darcy

mdipierro

unread,
Dec 8, 2009, 2:32:25 AM12/8/09
to web2py-users
I do not know Plone well enough to make a comparison so I am not 100%
sure what the items means. Let me try to address them:

5. customer subdomains (customer1.example.com, customer2.example.com)

yes. Via routes.

2. versioning of content objects

Yes. http://www.web2pyslices.com/main/slices/take_slice/35

4. full-text search of all content objects

yes, except for blobs. Full text search requires a relational database
and does not work on GAE

3. indexing and searching of binary formats (word, pdf, excel etc...)

I am not sure what this means. If you could point us some description
of what Plone does in this respect I will take a look.

1. state-based workflow

I am not completely sure. In web2py you can save a state in the
session and force a workflow based on that but there is no special
API. If you point us to the Plone description or show us an example we
can tel you how to do it in web2py.

Massimo

Darcy Clark

unread,
Dec 8, 2009, 2:49:26 AM12/8/09
to web2py-users
On Dec 8, 5:32 pm, mdipierro <mdipie...@cs.depaul.edu> wrote:
> I do not know Plone well enough to make a comparison so I am not 100%
> sure what the items means. Let me try to address them:
>
> 5. customer subdomains (customer1.example.com, customer2.example.com)
>
> yes. Via routes.

can this be programmatically adjusted from within web2py or do routes
have to be manually modified ?

> 2. versioning of content objects
>
> Yes.http://www.web2pyslices.com/main/slices/take_slice/35

cool !

> 4. full-text search of all content objects
>
> yes, except for blobs. Full text search requires a relational database
> and does not work on GAE

Plone uses Zope's Catalog tool which isn't relational - it builds
indexes that are searchable....somehow, I don't pretend to know it
works ;)

> 3. indexing and searching of binary formats (word, pdf, excel etc...)
>
> I am not sure what this means. If you could point us some description
> of what Plone does in this respect I will take a look.

http://plone.org/documentation/kb/enable-full-text-indexing-of-word-documents-and-pdfs-in-plone-3-0-gnu-linux

> 1. state-based workflow
>
> I am not completely sure. In web2py you can save a state in the
> session and force a workflow based on that but there is no special
> API. If you point us to the Plone description or show us an example we
> can tel you how to do it in web2py.

http://plone.org/documentation/kb/creating-workflows-in-plone/defining-workflow-states

Plone is a dedicated CMS, so it's optimised for this sort of thing. It
might be that we should stick with it for the time being, but I am
still curious whether we could replace it with web2py.

Julio

unread,
Dec 9, 2009, 12:01:03 PM12/9/09
to web2py-users
Hi Darcy,

I've worked with Zope for at least 10 years and Plone for about 5 (and
yet I converted to web2py almost on a "weekend" :), I think I know
where you coming from as far as your questions, here's the info I
think it might be of interest to you:

1. web2py does not have a workflow system in the same sense as Plone
has, you have to define your own depending on your application, this
may seem like "a lot" but web2py is such a rapid development tool that
customizing your workflow to your application it actually a *good*
thing imo.

2. The concept of "objects" in web2py is more in line with "python"
objects rather than "plone" (or zope) objects, remember that Plone and
Zope handle all this internally due to its Object Database, web2py
uses no such approach, in constrast, web2py allows you to seamless use
any database back-end of your choosing, so either you version your
"objects" via serialization or just use a SQL backend for this
purpose.

3. No such thing, in this respect web2py behaves as any other web
frameworks in which you have to implement your own methods to index
binary content.

4. Basically same as #2

5. Massimo defined this clearly.

Now, Plone/Zope makes a lot of things very easy, for instance,
authentication, folder/object traversal, acquisition (despite many
people hating it is a powerful thing) and other goodies, web2py,
however, allows for super fast prototyping and development, a very
concise and straight-forward approach and literally pure python for
the program's "logic". I am maintaining a lot of Zope 2 sites still
but all my new work is based on web2py now, and the rate of
productivity/delivery has only go up..

mdipierro

unread,
Dec 9, 2009, 12:21:40 PM12/9/09
to web2py-users
On Dec 8, 1:49 am, Darcy Clark <d4r...@gmail.com> wrote:
> On Dec 8, 5:32 pm, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > I do not know Plone well enough to make a comparison so I am not 100%
> > sure what the items means. Let me try to address them:
>
> > 5. customer subdomains (customer1.example.com, customer2.example.com)
>
> > yes. Via routes.
>
> can this be programmatically adjusted from within web2py or do routes
> have to be manually modified ?

You have programmatically write the routes.py and force web2py to
reload it without restarting the server.

> > 2. versioning of content objects
>
> > Yes.http://www.web2pyslices.com/main/slices/take_slice/35
>
> cool !
>
> > 4. full-text search of all content objects
>
> > yes, except for blobs. Full text search requires a relational database
> > and does not work on GAE
>
> Plone uses Zope's Catalog tool which isn't relational - it builds
> indexes that are searchable....somehow, I don't pretend to know it
> works ;)
>
> > 3. indexing and searching of binary formats (word, pdf, excel etc...)
>
> > I am not sure what this means. If you could point us some description
> > of what Plone does in this respect I will take a look.
>
> http://plone.org/documentation/kb/enable-full-text-indexing-of-word-d...

Basically Plone uses a PDF/Word to Text converter and then indexes the
data.
You can theoretically use the same converter in web2py and store the
converted text in a readable/writable=False 'text' field. You would
then be able to search all documents using the db.table.field.like
(...) operator.

> > 1. state-based workflow
>
> > I am not completely sure. In web2py you can save a state in the
> > session and force a workflow based on that but there is no special
> > API. If you point us to the Plone description or show us an example we
> > can tel you how to do it in web2py.
>
> http://plone.org/documentation/kb/creating-workflows-in-plone/definin...
>
> Plone is a dedicated CMS, so it's optimised for this sort of thing. It
> might be that we should stick with it for the time being, but I am
> still curious whether we could replace it with web2py.

You can do the same but in a different way. There is no centralized
place where workflow is stored (although one could define it). You
have actions that correspond to pages and contain forms. For each form
you can specify where to go after submission (next). For each action/
table/record/action you can use role based access control to specify
who has access (membership requirements). You can store all "next"
actions and "membership requirements" in a database or simply a
dictionary and you will have the workflow implemented in a single
place.

Darcy Clark

unread,
Dec 9, 2009, 5:07:39 PM12/9/09
to web2py-users
Thanks for replies guys - this has given some ideas to try out. I'm
also looking forward to the plugin spec being finalised as I can
imagine some of the functions that I've listed here could be delivered
generically via plugins.
Reply all
Reply to author
Forward
0 new messages