Re: [Zope3-Users] Re: Applying permissions to users from LDAP

2007-02-16 Thread Alec Munro

On 2/13/07, Stephan Richter [EMAIL PROTECTED] wrote:

On Tuesday 13 February 2007 04:51, David Johnson wrote:
 I'm trying to understand this situation also since we face it
 frequently. The PAU has a Group Folder which works well in this
 regard. Would the idea of extending Groups in the PAU to include any
 person in the ldap directory be useful? It seems this would be
 easier and more flexible.

That's what I would do. I think LDAP permissions/roles/groups map best to our
concept of groups. To implement a group folder that gets its groups from LDAP
should not be that hard, given the existing ldappas implementation.

Regards,
Stephan
--
Stephan Richter
CBU Physics  Chemistry (B.S.) / Tufts Physics (Ph.D. student)
Web2k - Web Software Design, Development and Training


Hi All,

Thanks to all your excellent advice, I have gone ahead and extended
the existing Group folder to automatically import and periodically
synchronize it's groups with an LDAP directory. The functionality is
currently a bit crude, but it gets the job done. I'm talking to my
employer about open sourcing it, would anyone here be interested in
it?

Alec
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] Re: Applying permissions to users from LDAP

2007-02-13 Thread Alec Munro

Thanks Philipp! I suspect your first suggested solution will probably
be the one that makes sense for us, but I will have to do a little
experimentation to be sure. It's very useful that you are able to
actually pick out the interfaces and interface methods that are of
concern to me.

This reminds me that I have to pick up the new version of your book.

Alec

On 2/9/07, Philipp von Weitershausen [EMAIL PROTECTED] wrote:

Alec Munro wrote:
 I've just succeeded in getting Zope authenticating against my LDAP
 directory, using ldapadapter and ldappas. The directory itself is
 brand new, and is currently only being used for Zope.
 I am able to manually grant permissions to LDAP users, but I'm
 wondering if there's a way to automatically grant an LDAP user certain
 roles, depending on what groups he or she is in?

 I imagine this could probably be done by extending ldappas, but it
 seems like a common problem, so I thought it would be worth asking
 here to see if anyone has any other ideas (or has already extended
 ldappas themselves).

Alec,

roles are a concept only known to Zope 3's default security policy, they
aren't really a part of the authentication system.

While the authentication only identifies principals according by
matching login credentials to a user database, the security policy
actually decides whether a principal has a certain permission or not
(IInteraction.checkPermission). Zope's default security policy happens
to use an intermediary concept between principals and permissions called
role.

The default policy retrieves the roles and permissions of a principal by
adapting the current context object to IPrincipalRoleMap or
IPrincipalPermissionMap, respectively (from
zope.app.securitypolicy.interfaces). The default adapters for these
store the maps persistently in annotations. The Grant view uses the same
adapters to persistently modify this information. So, if you want your
LDAP users to automatically have certain roles or permissions, one way
to go would be to implement custom IPrincipalRoleMap or
IPrincipalPermissionMap adapters. This would be a way to adjust the
behaviour of the existing default security policy.

Another solution for your problem might be a custom security policy
(perhaps based on Zope's default one) that inherently knows about which
principals get which permissions / roles automatically. This coudl also
be made pluggable so that you wouldn't have to write a new security
policy every time those sets of permissions and roles change. From a
brief look, it seems that this is what the crowd concept of
schooltool.securitypolicy
(http://source.schooltool.org/svn/trunk/schooltool/src/schooltool/securitypolicy/README.txt)
seems to solve. It should be quite trivial to write an LDAP crowd
(representing all principals from the LDAP database) and then grant that
crowd the specified permissions.

HTH


--
http://worldcookery.com -- Professional Zope documentation and training
Next Zope 3 training at Camp5: http://trizpug.org/boot-camp/camp5

___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


[Zope3-Users] Applying permissions to users from LDAP

2007-02-09 Thread Alec Munro

Hi List,

I've just succeeded in getting Zope authenticating against my LDAP
directory, using ldapadapter and ldappas. The directory itself is
brand new, and is currently only being used for Zope.
I am able to manually grant permissions to LDAP users, but I'm
wondering if there's a way to automatically grant an LDAP user certain
roles, depending on what groups he or she is in?

I imagine this could probably be done by extending ldappas, but it
seems like a common problem, so I thought it would be worth asking
here to see if anyone has any other ideas (or has already extended
ldappas themselves).

Thanks,

Alec Munro
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


[Zope3-Users] Zope 3 PAM or /etc/passwd authentication?

2007-01-23 Thread Alec Munro

Hi List,

I'm wondering if anyone knows of a way to integrate Zope with
/etc/passwd? PAM was suggested, but I don't know too much about that.
I suppose I could probably write my own, but I would prefer to avoid
that if possible.

Anyone have any experience with this? It seems like it's probably a
fairly common requirement.

Thanks,

Alec
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


[Zope3-Users] Good event policy for operating on object hierarchies?

2007-01-16 Thread Alec Munro

Hi List,

I have an object hierarchy that I import from certain ODT files, and I
would like to determine the best way to handle events for importing
this hierarchy. Does it make sense to fire one create event for the
entire operation, for attaching the hierarchy to the existing object
structure, or should I attach the root of the new hierarchy first,
fire an event for that, and then repeat the process on it's
descendants?

I don't make particular use of events currently, but if there's any
best practices for this type of procedure, I would rather follow
those.

Thanks,

Alec Munro
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] Re: Intended scope of viewlets?

2006-10-11 Thread Alec Munro

Thanks again. I think I understand why I was having difficulty with
this. It seems that under this model, views are tied directly to
skins, and if you wish to change skins, you change the template
registration, and probably some CSS resource registrations, rather
than simply specifying another skin using ++skin++.

I suppose, however, that I could create a lower level layer that I did
all of my skin-independent view registrations on.

I think I will try to write up all of my experiences with viewlets and
post it somewhere, as it seems like they are very powerful once you
can understand how to properly separate concerns with them.

Alec

On 10/10/06, Jürgen Kartnaller [EMAIL PROTECTED] wrote:

Hi Alec.

Alec Munro wrote:
 One more thing. When using this masterpage idea, what is the pattern
 for creating new pages? For example, I would traditionally have:

 MyObject/SubjectOne.html
 MyObject/SubjectTwo.html
 MyObject/SubjectThree.html

 Registered with:

 page
for=IMyObject
name=SubjectOne.html
template=subjectone.pt
/

 ...

 Where subjectone.pt would probably start with something like the
 following:

 html metal:use-macro=views/standard_macros/view

 Obviously, the above no longer applies, so what's the equivalent? My
 initial thought, if I am sticking as close to the above paradigm as
 possible, would be to have registrations for each that all reference
 the same class, being the one that implements the interface my
 masterpage is registered for. Something like the following:

 page
for=IMyObject
name=SubjectOne.html
class=.MySkin.SimplePage
/

 page
for=IMyObject
name=SubjectTwo.html
class=.MySkin.SimplePage
/

 ...

 In some ways, this makes sense to me, but it leaves me unsure how to
 properly differentiate the content on each page, without implementing
 something on each ViewletManager that detects the name of the page
 requested, and returns the appropriate content. Unless of course I can
 register Viewlets or ViewletManagers to specific page names?

Thats what the view parameter in the viewlet directive is doing :)


 My guess is that the above pattern simply isn't applicable to the use
 of viewlets, and there is something else I should be using. I will
 investigate uses of viewlets, but if anyone knows the answer offhand,
 I would very much appreciate it.

Simply derive a new view class from SimplePage and use that class when
registering a new page.

class AnotherPage(SimplePage):
pass

Now you can register a new page. Note taht we do not need to define the
template because it is already defined for SimplePage.

page
 for=IMyObject
 name=SubjectTwo.html
 class=.MySkin.AnotherPage
 permission=...
 /

You can now register your viewlets on that class (page) :
viewlet
 name=anotherViewlet
 for=IMyObject
 view=.MySkin.AnotherPage
 manager=...
 class=...
 layer=your skin
 permission=...
 /

Also note that all viewlets registered for SimplePage are also visible
in the new page. You register globally visible viewlets on your SimplePage.

Its simple and powerful, isn't it ?

The most important thing you must see is the ability to register a
viewlet on the context, the view, the manager and the request. This
gives you a lot of control over the viewlet.


Here is the code I'm using for my viewletmanager to have more control
over the visibility of viewlets. I use this manager im my main template.

class ContentViewletManager(WeightOrderedViewletManager):
 interface.implements(IContentViewletManager)

 def filter(self, viewlets):
 viewlets = super(ContentViewletManager, self).filter(viewlets)
 return [(name, viewlet) for name, viewlet in viewlets
   if getattr(viewlet, 'available', True)]

If the viewlet provides the property 'available' it can control if it is
visible or not. Among other things I use this often to have a dependency
on user login. IUnauthenticatedPrincipal.providedBy(self.request.principal)



 Thanks again,

 Alec Munro



 On 10/10/06, Alec Munro
 [EMAIL PROTECTED] wrote:
 You were correct, because my skin was inheriting from
 z3c.layer.minimal.IMinimalBrowserLayer, which as best I can tell,
 doesn't inherit from the default layer (there's probably a ZCML
 directive to set this somewhere though), my
 pages/templates/viewlets/etc weren't available to be looked up. I made
 my skin inherit from IDefaultBrowserLayer, and everything's peachy.

 Thanks everyone, for all your help so far.

 Alec


 On 10/7/06, [EMAIL PROTECTED]
 [EMAIL PROTECTED] wrote:
 
  I think the layer attribute may be missing.
 
  browser:page
  name=my.project.index.html
  for=*
  class=.myskin.SimplePage
  permission=zope.Public
  layer=.interfaces.MySkin
  /
 
  browser:template
  template=myskin_master.pt
  for=.interfaces.ISimplePage
  layer=.interfaces.MySkin
  /
 
  Kevin Smith
 
  - Original Message 
  From: Alec Munro [EMAIL

[Zope3-Users] Recursion using viewlets.

2006-10-11 Thread Alec Munro

Hi List,

After a very thorough schooling in the use of viewlets in my other
thread, I thought it might be better to start a new one for this
topic. What's the recommended practice for dealing with recursion
using viewlets?
In my case, I have a hierarchy of objects, each implementing
IContainSomething, and I want to display the entire hierarchy.

I'm sure this is a simple case, and there's probably even good example
code freely available somewhere, but I haven't yet found it.

Thanks again!

Alec
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] Re: Intended scope of viewlets?

2006-10-10 Thread Alec Munro

You were correct, because my skin was inheriting from
z3c.layer.minimal.IMinimalBrowserLayer, which as best I can tell,
doesn't inherit from the default layer (there's probably a ZCML
directive to set this somewhere though), my
pages/templates/viewlets/etc weren't available to be looked up. I made
my skin inherit from IDefaultBrowserLayer, and everything's peachy.

Thanks everyone, for all your help so far.

Alec


On 10/7/06, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:


I think the layer attribute may be missing.

browser:page
name=my.project.index.html
for=*
class=.myskin.SimplePage
permission=zope.Public
layer=.interfaces.MySkin
/

browser:template
template=myskin_master.pt
for=.interfaces.ISimplePage
layer=.interfaces.MySkin
/

Kevin Smith

- Original Message 
From: Alec Munro [EMAIL PROTECTED]
To: Jürgen Kartnaller [EMAIL PROTECTED]
Cc: zope3-users@zope.org
Sent: Friday, October 6, 2006 11:39:23 AM
Subject: Re: [Zope3-Users] Re: Intended scope of viewlets?

I think I must be missing something about the way skins work now. I've
created a master page that I can load when I don't specify a skin, but
when I do specify a skin (++skin++MySkin), it is unable to find the
page (404). Here's a rough approximation of my ZCML:

interface
interface=.interfaces.MySkin
type=zope.publisher.interfaces.browser.IBrowserSkinType
name=MySkin
/

browser:page
name=my.project.index.html
for=*
class=.myskin.SimplePage
permission=zope.Public
/

browser:template
template=myskin_master.pt
for=.interfaces.ISimplePage
/

There's lots more, and if any of it would be relevant, let me know,
but this seems like it's the crucial part. I know it is finding the
skin itself successfully, because the error message is not the
standard Rotterdam one. The skin I'm using is currently just inherits
from z3c.layer.minimal.

I'll keep on trying things, but it's all kind of a shot in the dark right now.

Thanks,

Alec


On 10/6/06, Alec Munro [EMAIL PROTECTED] wrote:
 Hi Jürgen,

 So, just to give a concrete example for my case, I might replace this
 (Metal-based):

 body

 div id=Navigation
   div metal:define-slot=navigation
 Nav tree needs a wee bit of work.
   /div
 /div

 div id=Content
   div metal:define-slot=body
Some Content
   /div
 /div

 /body

 with this (viewlet-based):

 body

 div id=Navigation
 span tal:replace=structure provider:my.project.navigation
   Nav tree needs a wee bit of work.
 /span
 /div

 div id=Content
   span tal:replace=structure provider:my.project.content
 Some Content
   /span
 /div

 /body

 With seperate viewlet managers for navigation and content, or any
 other types of views I would expect to have on this page? Would a
 header viewlet manager also be sensible, say if I wanted a title
 that changed format depending on what type of content was being
 viewed?

 Finally, are there any best practices for packaging in viewlet-based
 templating? I'm currently creating this in my.project.browser.skin.
 How about the viewlet manager names, should they be my.project.*,
 my.project.browser.*, or something different?

 Probably some of these questions aren't relevant to the work you are
 doing on viewlets, but I find it helpful to try to follow industry
 practices as closely as possible, especially on something I don't have
 much experience with, so I am easily able to follow tutorials, and
 people who are helping me can more easily understand what I am trying
 to do.

 Thanks very much for your help so far, I am excited about implementing
 viewlets in our upcoming project.

 Alec

 On 10/5/06, Jürgen Kartnaller [EMAIL PROTECTED] wrote:
  Hi Alec.
 
  Alec Munro wrote:
   Hi List,
  
   I'm just getting up to speed with viewlets, having read a thread here
   and there in the past about them. I've installed the examples provided
   on this list, and while I believe I understand how they work, I don't
   understand in what circumstances they are most useful. The viewlets in
   the examples are all very small, such as retrieving an formatting a
   single piece of information about an object. However, from some of the
   posts to this list, I get the impression they are also being used for
   more complex items, like navigation menus.
 
  Menus are a perfect example for the use of viewlets.
  Have a look at z3c.menu. This package contains a base implementation for
  menus based on viewlets.
 
   Is there a recommended scope? Can they be described in a way such as
   develop your templates up to point X, then use a viewlet for
   development of further depth?.
  
   In my case, I am developing a new skin for a project, and my
   experience with metal says to make the entire HTML page a macro with
   slots for content and navigation. Is there a comparable viewlet-based
   paradigm?
 
  Yes there is one, see below
 
  
   Also, am I correct in stating that when working with viewlets, the
   only complete

Re: [Zope3-Users] Re: Intended scope of viewlets?

2006-10-10 Thread Alec Munro

One more thing. When using this masterpage idea, what is the pattern
for creating new pages? For example, I would traditionally have:

MyObject/SubjectOne.html
MyObject/SubjectTwo.html
MyObject/SubjectThree.html

Registered with:

page
   for=IMyObject
   name=SubjectOne.html
   template=subjectone.pt
   /

...

Where subjectone.pt would probably start with something like the following:

html metal:use-macro=views/standard_macros/view

Obviously, the above no longer applies, so what's the equivalent? My
initial thought, if I am sticking as close to the above paradigm as
possible, would be to have registrations for each that all reference
the same class, being the one that implements the interface my
masterpage is registered for. Something like the following:

page
   for=IMyObject
   name=SubjectOne.html
   class=.MySkin.SimplePage
   /

page
   for=IMyObject
   name=SubjectTwo.html
   class=.MySkin.SimplePage
   /

...

In some ways, this makes sense to me, but it leaves me unsure how to
properly differentiate the content on each page, without implementing
something on each ViewletManager that detects the name of the page
requested, and returns the appropriate content. Unless of course I can
register Viewlets or ViewletManagers to specific page names?

My guess is that the above pattern simply isn't applicable to the use
of viewlets, and there is something else I should be using. I will
investigate uses of viewlets, but if anyone knows the answer offhand,
I would very much appreciate it.

Thanks again,

Alec Munro



On 10/10/06, Alec Munro [EMAIL PROTECTED] wrote:

You were correct, because my skin was inheriting from
z3c.layer.minimal.IMinimalBrowserLayer, which as best I can tell,
doesn't inherit from the default layer (there's probably a ZCML
directive to set this somewhere though), my
pages/templates/viewlets/etc weren't available to be looked up. I made
my skin inherit from IDefaultBrowserLayer, and everything's peachy.

Thanks everyone, for all your help so far.

Alec


On 10/7/06, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:

 I think the layer attribute may be missing.

 browser:page
 name=my.project.index.html
 for=*
 class=.myskin.SimplePage
 permission=zope.Public
 layer=.interfaces.MySkin
 /

 browser:template
 template=myskin_master.pt
 for=.interfaces.ISimplePage
 layer=.interfaces.MySkin
 /

 Kevin Smith

 - Original Message 
 From: Alec Munro [EMAIL PROTECTED]
 To: Jürgen Kartnaller [EMAIL PROTECTED]
 Cc: zope3-users@zope.org
 Sent: Friday, October 6, 2006 11:39:23 AM
 Subject: Re: [Zope3-Users] Re: Intended scope of viewlets?

 I think I must be missing something about the way skins work now. I've
 created a master page that I can load when I don't specify a skin, but
 when I do specify a skin (++skin++MySkin), it is unable to find the
 page (404). Here's a rough approximation of my ZCML:

 interface
 interface=.interfaces.MySkin
 type=zope.publisher.interfaces.browser.IBrowserSkinType
 name=MySkin
 /

 browser:page
 name=my.project.index.html
 for=*
 class=.myskin.SimplePage
 permission=zope.Public
 /

 browser:template
 template=myskin_master.pt
 for=.interfaces.ISimplePage
 /

 There's lots more, and if any of it would be relevant, let me know,
 but this seems like it's the crucial part. I know it is finding the
 skin itself successfully, because the error message is not the
 standard Rotterdam one. The skin I'm using is currently just inherits
 from z3c.layer.minimal.

 I'll keep on trying things, but it's all kind of a shot in the dark right now.

 Thanks,

 Alec


 On 10/6/06, Alec Munro [EMAIL PROTECTED] wrote:
  Hi Jürgen,
 
  So, just to give a concrete example for my case, I might replace this
  (Metal-based):
 
  body
 
  div id=Navigation
div metal:define-slot=navigation
  Nav tree needs a wee bit of work.
/div
  /div
 
  div id=Content
div metal:define-slot=body
 Some Content
/div
  /div
 
  /body
 
  with this (viewlet-based):
 
  body
 
  div id=Navigation
  span tal:replace=structure provider:my.project.navigation
Nav tree needs a wee bit of work.
  /span
  /div
 
  div id=Content
span tal:replace=structure provider:my.project.content
  Some Content
/span
  /div
 
  /body
 
  With seperate viewlet managers for navigation and content, or any
  other types of views I would expect to have on this page? Would a
  header viewlet manager also be sensible, say if I wanted a title
  that changed format depending on what type of content was being
  viewed?
 
  Finally, are there any best practices for packaging in viewlet-based
  templating? I'm currently creating this in my.project.browser.skin.
  How about the viewlet manager names, should they be my.project.*,
  my.project.browser.*, or something different?
 
  Probably some of these questions aren't relevant to the work you are
  doing on viewlets, but I find it helpful to try

Re: [Zope3-Users] Re: Intended scope of viewlets?

2006-10-06 Thread Alec Munro

Hi Jürgen,

So, just to give a concrete example for my case, I might replace this
(Metal-based):

body

div id=Navigation
 div metal:define-slot=navigation
   Nav tree needs a wee bit of work.
 /div
/div

div id=Content
 div metal:define-slot=body
  Some Content
 /div
/div

/body

with this (viewlet-based):

body

div id=Navigation
   span tal:replace=structure provider:my.project.navigation
 Nav tree needs a wee bit of work.
   /span
/div

div id=Content
 span tal:replace=structure provider:my.project.content
   Some Content
 /span
/div

/body

With seperate viewlet managers for navigation and content, or any
other types of views I would expect to have on this page? Would a
header viewlet manager also be sensible, say if I wanted a title
that changed format depending on what type of content was being
viewed?

Finally, are there any best practices for packaging in viewlet-based
templating? I'm currently creating this in my.project.browser.skin.
How about the viewlet manager names, should they be my.project.*,
my.project.browser.*, or something different?

Probably some of these questions aren't relevant to the work you are
doing on viewlets, but I find it helpful to try to follow industry
practices as closely as possible, especially on something I don't have
much experience with, so I am easily able to follow tutorials, and
people who are helping me can more easily understand what I am trying
to do.

Thanks very much for your help so far, I am excited about implementing
viewlets in our upcoming project.

Alec

On 10/5/06, Jürgen Kartnaller [EMAIL PROTECTED] wrote:

Hi Alec.

Alec Munro wrote:
 Hi List,

 I'm just getting up to speed with viewlets, having read a thread here
 and there in the past about them. I've installed the examples provided
 on this list, and while I believe I understand how they work, I don't
 understand in what circumstances they are most useful. The viewlets in
 the examples are all very small, such as retrieving an formatting a
 single piece of information about an object. However, from some of the
 posts to this list, I get the impression they are also being used for
 more complex items, like navigation menus.

Menus are a perfect example for the use of viewlets.
Have a look at z3c.menu. This package contains a base implementation for
menus based on viewlets.

 Is there a recommended scope? Can they be described in a way such as
 develop your templates up to point X, then use a viewlet for
 development of further depth?.

 In my case, I am developing a new skin for a project, and my
 experience with metal says to make the entire HTML page a macro with
 slots for content and navigation. Is there a comparable viewlet-based
 paradigm?

Yes there is one, see below


 Also, am I correct in stating that when working with viewlets, the
 only complete HTML page will be the primary skin file, with all
 viewlets based on snippets of HTML?

Thats exacly what we at Lovely Systems do and it works perfectly :)

We have one base template which is used for all pages. Instead of
defining slots to be filled by other templates it contains viewlet managers.
We then provide different view classes to be able to register our
viewlets for the pages of the application.
The view classes are empty classes they are just providing the class
name or if they provide additional functionality they also provide an
interface.
It is then possible to register the viewlets for specific pages.
The most important thing on viewlets is that they are adapters on the
*context*, the *request*, the *view* and the *manager*.

The viewlet solution is an extremely productive way to implement a
complex application.

Make sure you read this :
http://blogs.lovelysystems.com/srichter/2006/09/20/the-skin-browser-and-lovely-systems-new-development-workflow/

Stephan Richter describes here our use of the viewlet concept and our
development workflow. The most important part was the development of the
package z3c.viewtemplate. This package makes it possible to separate the
  development of the HTML page from the implementation of the python
view class. The package is not yet perfect but gives us what we need
right now but it needs a better integration into forms and viewlets.
Expect more in the near future!

In our applications really everything is done using viewlets, there is
no single use of fill-slot in the hole application!


 My questions are fairly broad-ranging, I know, but I have thus far
 been unable to find a straightforward explanation of viewlets, in
 terms of how they relate to general site development.

All I can tell you now is : USE VIEWLETS, USE VIEWLETS, USE VIEWLETS,


Jürgen

___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] Re: Intended scope of viewlets?

2006-10-06 Thread Alec Munro

I think I must be missing something about the way skins work now. I've
created a master page that I can load when I don't specify a skin, but
when I do specify a skin (++skin++MySkin), it is unable to find the
page (404). Here's a rough approximation of my ZCML:

interface
   interface=.interfaces.MySkin
   type=zope.publisher.interfaces.browser.IBrowserSkinType
   name=MySkin
   /

browser:page
   name=my.project.index.html
   for=*
   class=.myskin.SimplePage
   permission=zope.Public
   /

browser:template
   template=myskin_master.pt
   for=.interfaces.ISimplePage
   /

There's lots more, and if any of it would be relevant, let me know,
but this seems like it's the crucial part. I know it is finding the
skin itself successfully, because the error message is not the
standard Rotterdam one. The skin I'm using is currently just inherits
from z3c.layer.minimal.

I'll keep on trying things, but it's all kind of a shot in the dark right now.

Thanks,

Alec


On 10/6/06, Alec Munro [EMAIL PROTECTED] wrote:

Hi Jürgen,

So, just to give a concrete example for my case, I might replace this
(Metal-based):

body

div id=Navigation
  div metal:define-slot=navigation
Nav tree needs a wee bit of work.
  /div
/div

div id=Content
  div metal:define-slot=body
   Some Content
  /div
/div

/body

with this (viewlet-based):

body

div id=Navigation
span tal:replace=structure provider:my.project.navigation
  Nav tree needs a wee bit of work.
/span
/div

div id=Content
  span tal:replace=structure provider:my.project.content
Some Content
  /span
/div

/body

With seperate viewlet managers for navigation and content, or any
other types of views I would expect to have on this page? Would a
header viewlet manager also be sensible, say if I wanted a title
that changed format depending on what type of content was being
viewed?

Finally, are there any best practices for packaging in viewlet-based
templating? I'm currently creating this in my.project.browser.skin.
How about the viewlet manager names, should they be my.project.*,
my.project.browser.*, or something different?

Probably some of these questions aren't relevant to the work you are
doing on viewlets, but I find it helpful to try to follow industry
practices as closely as possible, especially on something I don't have
much experience with, so I am easily able to follow tutorials, and
people who are helping me can more easily understand what I am trying
to do.

Thanks very much for your help so far, I am excited about implementing
viewlets in our upcoming project.

Alec

On 10/5/06, Jürgen Kartnaller [EMAIL PROTECTED] wrote:
 Hi Alec.

 Alec Munro wrote:
  Hi List,
 
  I'm just getting up to speed with viewlets, having read a thread here
  and there in the past about them. I've installed the examples provided
  on this list, and while I believe I understand how they work, I don't
  understand in what circumstances they are most useful. The viewlets in
  the examples are all very small, such as retrieving an formatting a
  single piece of information about an object. However, from some of the
  posts to this list, I get the impression they are also being used for
  more complex items, like navigation menus.

 Menus are a perfect example for the use of viewlets.
 Have a look at z3c.menu. This package contains a base implementation for
 menus based on viewlets.

  Is there a recommended scope? Can they be described in a way such as
  develop your templates up to point X, then use a viewlet for
  development of further depth?.
 
  In my case, I am developing a new skin for a project, and my
  experience with metal says to make the entire HTML page a macro with
  slots for content and navigation. Is there a comparable viewlet-based
  paradigm?

 Yes there is one, see below

 
  Also, am I correct in stating that when working with viewlets, the
  only complete HTML page will be the primary skin file, with all
  viewlets based on snippets of HTML?

 Thats exacly what we at Lovely Systems do and it works perfectly :)

 We have one base template which is used for all pages. Instead of
 defining slots to be filled by other templates it contains viewlet managers.
 We then provide different view classes to be able to register our
 viewlets for the pages of the application.
 The view classes are empty classes they are just providing the class
 name or if they provide additional functionality they also provide an
 interface.
 It is then possible to register the viewlets for specific pages.
 The most important thing on viewlets is that they are adapters on the
 *context*, the *request*, the *view* and the *manager*.

 The viewlet solution is an extremely productive way to implement a
 complex application.

 Make sure you read this :
 
http://blogs.lovelysystems.com/srichter/2006/09/20/the-skin-browser-and-lovely-systems-new-development-workflow/

 Stephan Richter describes here our use of the viewlet concept and our
 development workflow. The most important part

[Zope3-Users] Intended scope of viewlets?

2006-10-05 Thread Alec Munro

Hi List,

I'm just getting up to speed with viewlets, having read a thread here
and there in the past about them. I've installed the examples provided
on this list, and while I believe I understand how they work, I don't
understand in what circumstances they are most useful. The viewlets in
the examples are all very small, such as retrieving an formatting a
single piece of information about an object. However, from some of the
posts to this list, I get the impression they are also being used for
more complex items, like navigation menus.
Is there a recommended scope? Can they be described in a way such as
develop your templates up to point X, then use a viewlet for
development of further depth?.

In my case, I am developing a new skin for a project, and my
experience with metal says to make the entire HTML page a macro with
slots for content and navigation. Is there a comparable viewlet-based
paradigm?

Also, am I correct in stating that when working with viewlets, the
only complete HTML page will be the primary skin file, with all
viewlets based on snippets of HTML?

My questions are fairly broad-ranging, I know, but I have thus far
been unable to find a straightforward explanation of viewlets, in
terms of how they relate to general site development.

Thanks,

Alec
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] Re: Simple Sources tutorial?

2006-09-07 Thread Alec Munro

On 9/7/06, Philipp von Weitershausen [EMAIL PROTECTED] wrote:

Fred Drake wrote:
 On 9/6/06, Stephan Richter
 [EMAIL PROTECTED] wrote:
 I still use vocabularies. I still don't get sources. Vocabularies have
 not
 been deprecated yet. I think sources have to become much more
 developer-friendly before finding wide-spread support.

 Odd that you should mention this.  ;-)  We have a component that
 should make many of the common cases *much* easier to work with for
 sources.  I expect it will be ZPLed, but don't know when.

I think I got sources, but I agree with Stephan: They're hard to work
with in the common case. It would be great if they became easier. I'm
looking forward to the open-sourcing of that component!

Philipp

___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users



Interesting. I'll probably revert to vocabularies, but keep a close
eye on Fred's component. I never particularly had a problem with
vocabularies, but I did think there were probably ways to streamline
their use, and I kind of assumed that's what sources would do.

Thanks!

Alec
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


[Zope3-Users] Simple Sources tutorial?

2006-08-25 Thread Alec Munro

Anyone have a simple reference on the usage of sources? I'm in need of
a vocabulary-like thing, and my understanding is that vocabularies
have been replaced by sources, but I am unable to find any
documentation on their use. There are numerous discussions on specific
details of sources, but I haven't found any real tutorials that cover
how you register them, how you reference them, and real-world examples
of their use.

Thanks,

Alec
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


[Zope3-Users] Uploading and extracting a zip file.

2006-05-10 Thread Alec Munro

Hi List,

This seems like it should be relatively easy to solve, but I haven't
been able to find a solution so far.
I want to upload a zip file to a certain component, and have the
component automatically extract and process the contents of the zip
file.
In this case, I'm uploading an odt file, and I want to extract the
content.xml and process it.

The tricky part is actually accessing the zip file. I get the raw data
all right, but ZipFile requires a file-like object or path. I tried
using StringIO to wrap the data, and passing that to ZipFile, but then
I get BadZipfile: File is not a zip file.

Thanks for any help.

Alec Munro
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


[Zope3-Users] Re: Uploading and extracting a zip file.

2006-05-10 Thread Alec Munro

Hi again,

As it turns out, the data is available as a FileUpload object, which I
can use just like a file, and that works quite well.

Thanks for reading,

Alec

On 5/10/06, Alec Munro [EMAIL PROTECTED] wrote:

Hi List,

This seems like it should be relatively easy to solve, but I haven't
been able to find a solution so far.
I want to upload a zip file to a certain component, and have the
component automatically extract and process the contents of the zip
file.
In this case, I'm uploading an odt file, and I want to extract the
content.xml and process it.

The tricky part is actually accessing the zip file. I get the raw data
all right, but ZipFile requires a file-like object or path. I tried
using StringIO to wrap the data, and passing that to ZipFile, but then
I get BadZipfile: File is not a zip file.

Thanks for any help.

Alec Munro


___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] Re: Please Guido, pick me, pick me!

2006-02-03 Thread Alec Munro
On 2/3/06, Tonico Strasser [EMAIL PROTECTED] wrote:
 Alen Stanisic wrote:
  On Fri, 2006-02-03 at 11:54 +0100, Lennart Regebro wrote:
  On the name change idea, I think it's just gonna make things more confused.
 
  What, there is now Zope 2, Zope 3 AND Zope Zingo?
 
 
  I think the idea was Zope 3.2 Zingo, Zope 3.4 Bingo, not Zope Zingo :)
  This way it would be clear it is Zope 3.  I guess something like Ubuntu
  5.10 Breezy.

 Hehe, I'm +1 for funny code names and -1 for renaming.

 Tonico


This has been an interesting thread. My feeling is that the Ubuntu
style code names are a very good idea. I know the fixed-length release
cycles are still fairly new, but making them a bit sexier seems like a
good idea in this case. Ideally, it would go along with a new website,
or perhaps some wiki pages, with a roadmap. Among geeks, new releases
are exciting business. Of course, the people actually making the
releases are already so busy, I have no idea who would maintain and
update such a roadmap.

But, on the other hand, I'm just fine with Zope's current level of advocacy.

Alec Munro
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


[Zope3-Users] Looking up the schema of an adapter?

2006-01-07 Thread Alec Munro
Hi List,

I'm building an e-commerce system, and within it, I have Deliverable
objects, and ProductOrder objects. A ProductOrder is currently
treated as an adapter to a Deliverable, it represents an order for
that Deliverable. There are a number of different Deliverable types,
most with corresponding ProductOrder types (I use ZCML to register
each ProductOrder as an adapter to each Deliverable type). The
ProductOrder types have common properties, such as quantity of items
ordered, and unique properties, such as color, or language.
What I want to be able to do is lookup the schema of a ProductOrder
from the context of the corresponding Deliverable, for the purpose of
creating an add form for that ProductOrder. Currently, I can
accomplish this by actually instantiating a ProductOrder as an adapter
to the Deliverable, and then looking at __implemented__.declared, but
then the ProductOrder get discarded, and reinstantiated when the Add
Form is submitted.

I would like a straightforward way to lookup the schema and create the
Add Form without having to instantiate the ProductOrder.
Alternatively, if anyone can suggest any modifications to my overall
system that will allow me the same functionality, that would be great.

Thanks,

Alec Munro
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] Permission required for renaming?

2006-01-05 Thread Alec Munro
Hi Stephan,

Actually, my users don't have that role(permission?), because I got
the impression that having it would give them access to a number of
things I don't want them to see, such as the metadata and introspector
tabs. Is that strictly required for any kind of
renaming/copying/pasting? Is there an easy way to change that?

Thanks for your response,

Alec


On 1/4/06, Stephan Richter [EMAIL PROTECTED] wrote:
 On Wednesday 14 December 2005 12:40, Alec Munro wrote:
  Any ideas where I can go with this? It seems like there's probably a
  simple step I'm missing in the creation of my components, but so far
  I've had no luck figuring it out.

 Are you sure your user has the zope.ManageContent role?

 (BTW, please always post responses to the list as well.)

 Regards,
 Stephan
 --
 Stephan Richter
 CBU Physics  Chemistry (B.S.) / Tufts Physics (Ph.D. student)
 Web2k - Web Software Design, Development and Training

___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


[Zope3-Users] Large project organization?

2005-12-15 Thread Alec Munro
Hi List,

I'm trying to ensure the most efficient organization of my projects,
and I'm wondering what the best practices are. I try to divide things
up into modules when it seems appropriate, but where should those
modules be located? What's the logic for deciding if a module should
be inside another module, vs. on it's own?

So far, I haven't had any problems with anything I've tried, but I do
prefer to plan ahead as much as possible.

Thanks,

Alec Munro
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] Permission required for renaming?

2005-12-13 Thread Alec Munro
Thanks for the response.

They are local users, and it's specific to every container type that
I've created, I haven't had the chance to test with regular folders.
The containers that I have inherit from OrderedContainer or
BTreeContainer, and tend to be fairly minor customizations, simply
adding a couple properties or methods.

Hope that helps. I can do a little more testing tomorrow if you have any leads.

Thanks again,

Alec

On 12/13/05, Stephan Richter [EMAIL PROTECTED] wrote:
 On Wednesday 30 November 2005 16:16, Alec Munro wrote:
  My users are unable to rename things, seemingly everywhere. They can
  add, remove, but not rename, or cut/copy. I'm not sure how to set the
  permission for this.

 I think we need some more specific background information to help you out
 here. For example: Are those local or global users? Is this a specific
 container, or is it also true for a folder? ...

 Regards,
 Stephan
 --
 Stephan Richter
 CBU Physics  Chemistry (B.S.) / Tufts Physics (Ph.D. student)
 Web2k - Web Software Design, Development and Training
 ___
 Zope3-users mailing list
 Zope3-users@zope.org
 http://mail.zope.org/mailman/listinfo/zope3-users

___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] logout feature with zope3

2005-12-06 Thread Alec Munro
Hi Jane,

I'm not an expert, but having run into a similar situation myself, you
may be out of luck. The HTTP Auth (what generates the popup window) is
almost entirely separate from other browser functionality, and once
the authentication is complete, I don't know of any way you could
access the password. It's possible that you could create a custom
authentication method that combined Basic HTTP with cookie based
Authentication, but it might be simpler to setup a login form for your
users, if that's an option, and use the standard cookie based auth.

Actually, a third option might be to use the Basic HTTP auth, and then
use request.principal to lookup the actual principal information,
including login and password. I believe Zope is currently storing
passwords plain text, so this might work for your purposes. This seems
rather unclean to me, but it might get the job done.

As I said, I am not an expert, but I hope this is at least somewhat helpful.

Alec Munro

On 12/6/05, Jing Song [EMAIL PROTECTED] wrote:

 Hi,

 I have problems to implement my zope logout feature. Since the Basic HTTP
 Authentication does not funcition properly, I'm trying to work around by
 using Philipp's cookie based authentication solution showing in the
 Worldcookery example. But if I only use the default pop-up login window
 without using a customized login form, how could I get the user name and the
 password to set the cookie so that the logout can also function.

 Any idea or example would be very much appreciated. Thank you in advance!

 Jane

  
  Yahoo! Personals
  Let fate take it's course directly to your email.
  See who's waiting for you Yahoo! Personals


 ___
 Zope3-users mailing list
 Zope3-users@zope.org
 http://mail.zope.org/mailman/listinfo/zope3-users



___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] Permission required for renaming?

2005-12-01 Thread Alec Munro
As far as I can tell they do, the objects containers primary interface
inherits from IContainer, and they have set_schema on that interface.
Additionally, they can add new containers, and their contents, but
still be unable to rename the contents.

Thanks,

Alec

On 12/1/05, Chris Withers [EMAIL PROTECTED] wrote:
 Alec Munro wrote:
  My users are unable to rename things, seemingly everywhere. They can
  add, remove, but not rename, or cut/copy. I'm not sure how to set the
  permission for this.

 Do they have the necessary permissions on the objects container rather
 than the object itself?

 cheers,

 Chris

 --
 Simplistix - Content Management, Zope  Python Consulting
 - http://www.simplistix.co.uk


___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


[Zope3-Users] Permission required for renaming?

2005-11-30 Thread Alec Munro
Hi List,

My users are unable to rename things, seemingly everywhere. They can
add, remove, but not rename, or cut/copy. I'm not sure how to set the
permission for this.

Thanks,

Alec
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


[Zope3-Users] Recommended policy for extension of the built-in skins and macros?

2005-11-12 Thread Alec Munro
Hi All,

I've managed to dip my toes rather deeply in Zope3 without ever
approaching the skins/layers aspect of it. I'm finally in a position
to do that, and most of the examples I find extend the Rotterdam skin,
and simply override it's macros.
Is this simply for convenience, as there is a lot of useful
functionality provided by these macros? Or is there some grander
reason for using the existing with simple customizations?
The main thing I could think of was that by doing this, you will can
generally ensure consistent macro naming across different sites, which
I suppose is helpful.
I'm a very minimalist guy as far as HTML goes, so my initial
inclination is generally to start with with the simplest thing
possible, and expand it when necessary.
What are people's experiences with this (keeping in mind that I am
likely misunderstanding some large part of the way skins and layers
are supposed to work :) ?

Thanks,

Alec Munro
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] Disappearing dictionary. Upon restart, dictionary resets.

2005-09-26 Thread Alec Munro
Woohoo!

This is precisely the advice I needed.

I think where I got tripped up is that I rarely use class attributes
outside of Zope (setting everything up in __init__), so I actually
stopped treating them as class attributes, and pretended they were
simply part of the initilization.

I think I'm going to examine all my code this morning, see if I'm
sinning in this fashion anywhere else.

Thanks Chris, and everyone else who replied.

Alec

On 9/26/05, Chris Withers [EMAIL PROTECTED] wrote:
 Alec Munro wrote:
  class SomeObj:
  some_dictionary = PersistentDict({})

 ouch, never use mutables for class attributes, for exactly the reasons
 you've found.

 two points:

 1. the dict will get newly created every time this code runs, ie: each
 time Zope starts.

 2. the object is never seated into the ZODB. It's an attribute of the
 class, not any instance of the class, and it's only instances of the
 class that are persisted by zodb.

 cheers,

 Chris

 --
 Simplistix - Content Management, Zope  Python Consulting
 - http://www.simplistix.co.uk

___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] Disappearing dictionary. Upon restart, dictionary resets.

2005-09-25 Thread Alec Munro
Well, I narrowed it down a little bit more.

I've been initializing the dictionary in the class declaration, like
the following:

class SomeObj:
some_dictionary = PersistentDict({})

Now, for some reason, each time Zope was started, it called this, and
whenever I tried to access the some_dictionary propery on any of my
objects, it returned the newly created one. Is this what should be
happening?

Alec

On 9/26/05, Alec Munro [EMAIL PROTECTED] wrote:
 I've tried it with PersistentDicts and PersistentMappings, and no luck.
 It's very odd, I think there must be some fundamental step towards the
 use of a mapping in Zope that I'm missing.

 Alec

 On 9/21/05, Lennart Regebro [EMAIL PROTECTED] wrote:
  On 9/20/05, Alec Munro [EMAIL PROTECTED] wrote:
   I have a content component that has a property that is a dictionary,
   the keys of which are objects (content components themselves). The
   values are lists of strings. I've tried implementing this a couple
   different ways, but each time I restart, the dictionary comes up
   empty.
 
  You need to use a PersistentDictionary. Ordinary dictionaries do not
  detect that they have changed, and so do not get written to the ZODB.
 
  --
  Lennart Regebro, Nuxeo http://www.nuxeo.com/
  CPS Content Management http://www.cps-project.org/
 

___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] Confusion about PAU usage.

2005-08-26 Thread Alec Munro
Hi Garrett,

Thanks for the response.
So far, I have subclassed InternalPrinciple, because I was looking to
create a container based principal source, and PrincipalFolder seemed
like the obvious choice to subclass at the time. Because
PrincipalFolder contains InternalPrincipals, I subclassed
InternalPrincipal to create my principal classes (I have three, each
representing different types of users). I'm sure that this was the
wrong way to do things, but it gave me quick satisfaction, by allowing
me to use the ZMI add menu to add each of my three types of principals
and Authenticate against them.
So having three types of users was one of my requirements. The
differences between these users are relatively small, but having them
in separate classes seems to allow me quite a lot of control.
Another requirement,as mentioned, each of these principles has
properties, which would ideally be editable by a manager at any
time(at least during development), or the users themselves, once
logged in.
What is the preferred way to do this?
I'm not entirely attached to subclassing to differentiate my
principles, but it does allow me to use Principal Annotations in a way
that is very clear to me.
Thanks for your help,

Alec

On 8/26/05, Garrett Smith [EMAIL PROTECTED] wrote:
 The PAU mechanisms involving InternalPrincipal and PrincipalInfo are internal 
 to its workings. From what I can see, these shouldn't impact what you're 
 doing. If you want the grimy details, look at the README.txt doctest file in 
 zope/app/authentication. However, these mainly apply to plugin developers.
 
 To store additional information for a principal, use the principal annotation 
 utility. E.g. were you in a browser view:
 
   util = zapi.getUtility(IPrincipalAnnotationUtility)
   annotations = util.getAnnotations(self.request.principal)
 
 I would strongly discourage you from subclassing InternalPrincipal -- it's, 
 well, internal :-)
 
 If annotations aren't working for you, give me the specifics and I'll see if 
 I can help.
 
  -- Garrett
 
  -Original Message-
  From: [EMAIL PROTECTED]
  [mailto:[EMAIL PROTECTED] On Behalf Of Alec Munro
  Sent: Tuesday, August 23, 2005 10:06 AM
  To: [EMAIL PROTECTED]
  Cc: zope3-users@zope.org
  Subject: Re: [Zope3-Users] Confusion about PAU usage.
 
  On 8/22/05, Christoph Frick [EMAIL PROTECTED] wrote:
   On Mon, Aug 22, 2005 at 11:47:40AM -0300, Alec Munro wrote:
  
In my situation, I am trying to create principals with additional
properties, and initially I did that by extending
  InternalPrincipal.
That worked fine, until I realised that when I
  authenticated, I was
getting back a PrincipalInfo instance, which does not contain the
additional properties. Additionally, I wish to have
  multiple types of
users, so I had extended InternalPrincipal a couple of times, to
create a few different classes, the distinction of which
  is obviousy
lost when authenticating ATM.
  
   i guess what you really want here are annotations of
  principals. have a
   look in the zope3 book you can download from zc's site.
  there is AFAIR a
   section adressing this problem with lots of examples and i think the
   section also sheds some light on the whole principal and
  annotation in
   general.
  
   --
   cu
  
  
  
  I've given this a try, and right now I am having a problem figuring
  out what I am supposed to attach the annotation information to. My
  specific principals are extensions of IInternalPrincipal, which
  doesn't have an ID, and as such, doesn't work for principalannotations
  as I have experienced them so far.
  This is one of the reasons why I would like a guide on the differences
  between InternalPrincipals, PrincipalInfo's, and Principal's. The
  standard Principal Folder contains InterrnalPrincipals, so I assumed
  that was the type I should be extending. I imagine that if I were to
  log in as one of these principals, I might then have access to the
  annotations. However, at least for testing purposes, I would prefer to
  have access to them when doing site management.
 
  Anyone have any advice on how to proceed with this?
 
  Thanks,
 
  Alec
  ___
  Zope3-users mailing list
  Zope3-users@zope.org
  http://mail.zope.org/mailman/listinfo/zope3-users
 

___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] Everything printing as ASCII?

2005-08-10 Thread Alec Munro
I think it was using StringIO.
My default python encoding was ASCII, so I changed that, and it ended
up solving my problems, so I haven't looked further into this, but I
assume that while all of the pieces were unicode to start with, Python
was converting some of them to ASCII earlier on.
I believe I'm getting the hang of this encoding thing, but don't quote
me on that.

Alec

On 8/10/05, Stephan Richter [EMAIL PROTECTED] wrote:
 On Tuesday 09 August 2005 14:17, Alec Munro wrote:
  I've been having some unicode troubles, so I put a print statement in
  the StringIO class, and it seems that everything is type 'str', rather
  than unicode. Is this how it is supposed to be?
 
 cStringIO only supports str, not unicode. Use StringIO instead.
 
 Regards,
 Stephan
 --
 Stephan Richter
 CBU Physics  Chemistry (B.S.) / Tufts Physics (Ph.D. student)
 Web2k - Web Software Design, Development and Training

___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


[Zope3-Users] Allowing an other value in choice fields sourced from vocabularies.

2005-08-04 Thread Alec Munro
Hi List,

We want to allow a choice field with an other option, that allows
them to type in an arbitrary value. So far, we have this working up
until the point of validation. At the point of validation, it notices
that the other value is not in the vocabulary, and raises
ConstraintNotSatisfied.
My initial thought is to create a new field type for
SuggestedChoice, that simply doesn't perform the checking against
the vocabulary values. Has anyone else run up against this?

Thanks,

Alec Munro
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


[Zope3-Users] Multi-directional adapters.

2005-07-27 Thread Alec Munro
I'm sure I'm using the wrong terminology, so here's what I'm trying to do.
I have a generic container type (someContainer), and a specific object
type (objA). objA can only be contained within AContainer (or
containers that implement IAContainer), so in order to add objA to
someContainer, we would need an adapter between IAContainer and
IsomeContainer. To complicate the mix, there is no such adapter
(because I don't want objA stored in someContainer). However, there is
an adapter between IBContainer, and IsomeContainer. There is also an
adapter between IobjA and IobjB.

Multi-directional adapter seems appropriate, because in order for
things to work, both the container and the object to be contained.

Is this common practice, or even possible? It seems like it would
probably work, but I still have much to learn, so please advise.

Thanks,

Alec Munro
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


[Zope3-Users] Providing schema information to Flash

2005-07-21 Thread Alec Munro
Hi List,

We're building a fairly sophisticated application that uses Flash as
it's primary front end. I would really like to keep the specific data
logic in Flash as simple as possible. I have a good communication
setup using JSON-RPC (thanks to Jim Washington!), and now I want to
expand on it, and figure out a good way to provide Flash with
information about what types of data it should expect. I'm not sure
how to accomplish this. My initial idea was to provide information
about the interfaces to Flash, and allow Flash to interpret those.

Any advice on the best way to proceed would be very helpful.

Thanks,

Alec
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


[Zope3-Users] Self-updating components?

2005-07-20 Thread Alec Munro
Hi List,

I'm finally getting into the swing of Zope 3 development, and I've
been doing a bit of thinking on how to integrate everything with
Subversion.
The general process I've settled on is as follows (this is all
happening on a development server):

1.SVN Update Code locally
2.Edit Code
3.Test Code on local Zope
4.SVN Check-in Code from local
5.SVN Check-out/Update code on development server
6.Test Code on development Zope
1.If successful, restart development Zope.
2.If unsuccessful?

The problem I have is how to automate steps 5 and on. I could put
hooks into Subversion, but without some tricks, it seems like it would
result in a lot of processing and restarts on the development server.

Another idea I had, and the one that intrigues me the most at the
moment, is making each component capable of updating itself. I really
have no idea how it should work, if it's at all feasible, or
advisable. Any hints or suggestions on this?
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


[Zope3-Users] Recommend way to ..(question inside)

2005-07-11 Thread Alec Munro
Sorry for the vague subject, but I wasn't sure how to summarize this.
It's not exactly a Zope question, but perhaps Zope has some tricks to
make it easier.

In a couple of situations, I want to have a collection of objects, and
allow users to select from those objects, and personalize them. The
way I was thinking about this was that I would have a second class of
objects that contained the additional properties as well as a property
containing the personalized object. This seems to be similar to the
way adapters operate. However, generally an adapter is created when
used, and discarded, correct? What is the recommended way to go about
this?

Hopefully that is enough information, and someone can confirm my speculations.
Thanks,

Alec Munro
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] Re: Zope 3.1.0 Zope3 Developer's Book

2005-06-21 Thread Alec Munro
On 6/18/05, Stephan Richter [EMAIL PROTECTED] wrote:
 On Saturday 18 June 2005 15:19, Corey wrote:
  Question: with all these new changes since 3.0 ( which all look very good!
  ), approximately how much of the Zope3 Dev Book becomes
  misleading/incorrect/obsolete? Primarily I'm wondering whether it is still
  possible to use the Zope3 dev book , follow along with it's
  examples/excersises without constantly running into troubles?
 
 Yeah, I think that most of it will still work just fine. I think someone
 reported that step 7 or 8 of the messageboard product was still working on
 the trunk, which is impressive. Before the final release I will take some
 time and make sure that all the packages will still work without
 modification.
 
  Right off the bat, I can see that the stuff on Services will be a point of
  hassle and confusion for many people starting off w/ Zope 3.1 and the
  current Zope3 dev guide.
 
 Right, this cannot be avoided. But I already talk very little about services
 in the book.
 
  Are there prospective plans to keep the book updated with the releases, or
  are there simply not enough resources/time available at this point to do
  so?
 
 I am not sure how much time I will have. I am very booked till school starts
 again. I would need at least a week to get everything updated, not to mention
 covering new features.
 
 Regards,
 Stephan
 --
 Stephan Richter
 CBU Physics  Chemistry (B.S.) / Tufts Physics (Ph.D. student)
 Web2k - Web Software Design, Development and Training
 ___
 Zope3-users mailing list
 Zope3-users@zope.org
 http://mail.zope.org/mailman/listinfo/zope3-users
 

I would be very interested in attempting to provide an update to the
book, to cover new features in 3.1. I still have a lot to learn, but I
thought that perhaps it would be helpful to pick a section in the book
that has changed (for example, I believe Chapter 20, on workflow), and
attempt to document the appropriate way to handle it in 3.1. As I
said, I do have a lot to learn, but as long as someone points me in
the right direction, I would feel comfortable attempting this.

Is this something that would be helpful?

Alec
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users