[Zope] ZClasses vs Products (extending UserFolder)

Bjorn Stabell Bjorn Stabell <bjorn@stabell.priv.no>
Thu, 23 Sep 1999 19:45:20 +0800


Hi guys,

There are a lot of ways of extending Zope;  Pros and cons of Products,
ZClasses, PythonMethods, ExternalMethods, just to my feeble knowledge.
Maybe too many.  I'm not sure which ways are best in which cases.
Anyone identified the pros and cons?

Specifically we have an application in mind.  It and our design
decisions are described below:

        An HR application, letting users register their resume
        and personalia, and while browsing job ads, just attach
        a cover letter to apply (your resume is already in your
        user record).

        The HR person should be able to post/unpost as well as
        add/edit/delete job applications, as well as review
        job applications (resume/personalia/cover letter).

From an OO perspective, it seems natural to extend UserFolders by just
adding resume information to the User objects.  That way we'll inherit
all the user registration code.  I guess the job ads should be
implemented as objects in a folder.

The design decisions we're faced with are:

1 UserFolder vs ZClasses
1a.     Should/can we easily extend the UserFolder as described above.
        That would essentially mean making a new product called
        ResumeUserFolder that would inherit from UserFolder and extend
        the relevant functions.  Looking at the code for UserFolder,
        however, it seems it's pretty hardcoded to support only the
        properties it already supports.  If we add any properties, how
        do we make sure they'll be persistent?

1b.     Should we perhaps use ZClasses and create our own Applicant,
        Application, and JobAd classes.  Then, is it still easy to do
        all the logging in?  Do we need PythonMethods?

2 Login/Logout - provide user-friendly path for new user
        We're struggling to see how to best implement logging in.  We
        don't like the browser's own authentication popup window
        asking you to fill in a username and password as most users
        will be scared by it, particularly since it doesn't say how to
        actually register.  Still, I like that the authentication is
        externalized in this way instead of being spread throughout
        the site in the form of small login boxes.  But, is it
        possible to have our own web page show up instead of the
        browser login box?  Difference being our login page would have
        explanations on how to become a new user.

Kind regards,
-- 
Bjorn Stabell <bjorn@stabell.priv.no>