[Zope-dev] Security Strangeness

2000-07-22 Thread Johan Carlsson


Hi all,
I notised some strange behavior in the way Zope User Folders works.

First, you can't delegate the permissionto add and delete user except 
by assigning the user the role "manager".
IMHO this is to limiting.

Second, if you give a user the permission to Change Persmissions, that
user can change permissions that she doesn't have the right to manage
in the first place. In that way she can upgrade here permissions. 
That's no good.

Best Regards,
Johan Carlsson

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] ZODB : store and retrieve (more specific)

2000-07-25 Thread Johan Carlsson



> Hi, 
> 
> 
> I want to create a persistent List (I want to store data for a long time 
> without using a relational database). I have found source of such list but 
> I don't know how to use it. 
> 
> The things that I want to know are : 
> --> how could I use personnal object (in Python language)
> --> how could I store and retrieve these object ?
> 
> I Hope that anybody can help me thanks...
>

You can either use the PersistentMapping object that comes with Zope 
"from ZODB.PersistentMapping import PersistentMapping" or 
AndrewWilcox's http://www.zope.org/Members/AndrewWilcox/PersistentListDict. 
PersistentMapping is limited to string keys only, which is sufficient most of the 
time. 
Just create a PersistentMapping in your Zope class and use it as if it was 
a regular python dictionary. PersistentMapping takes care of setting 
the necessary attributes for it to be persistent.

Alternative you can use a TinyTable directly in Zope for storing a table.

Regards,
Johan Carlsson







___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] ZCatalog and ZEO

2000-07-25 Thread Johan Carlsson


I have started to use ZCatalog for a great deal of thing,
but I'm a little bit conserned about scalability.
If I whan to move my applications to a ZEO configuration
how will my ZCatalogs be distributed.
I use ZCatalogs alote and they may become quite large,
so what will happen when a ZCatalog is updated, for instance
if a new object registers it self and gets indexed.

1. The ZEO server sends expiration messages to all ZEO clients.
2. The ZEO clients then new to get updated ZCatalog from the server.

Does the clients have to get the all of the ZCatalog or just the indexes
thats been updated?
Does it have to get the whole index or can it just get the updated information?
Are there any "pattern/howto" to use when working with Catalog that will optimize
for scalability?

Regards,
Johan Carlsson






___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] Replacing a manage_ methods with a callable object

2000-08-19 Thread Johan Carlsson


Hi,
I'm trying to replace a manage_x method with a
object instanciated (x) in the class fo the object being
managed.

That seems to work alright but the management tabs get
when x is called.

What I realy want is a way to get the REQUEST as if the last
traversal was never occured. (unfortunatly it's not in my reach
because it's done in the parent of the "my_published_object" object).
It needs to be reverted one step maybe before calling 
self.aq_parent.manage_tabs (basicly its the only place I need it 
att this point).

Also are there any potential pitfall's in doing that I'm doing?

Best Regards,
Johan Carlsson

class my_manage_class(...):
"""doc sting"""
_isBeingUsedAsAMethod_=1   # this doesn't work the way I hope it would :-(
_isBeingUsedAsAMethod # what's the differense between the two?

index_html = HTMLFile(some default DTML calling manage_tabs)

def manage_tabs(self):
# doesn't realy change the REQUEST context, coold that be done?
return self.aq_parent.manage_tabs(self.aq_parent,self.REQUEST)  


class my_published_object(...):
"""doc sting"""
manage_main = my_manage_class()

manage_options=(this is the options i also want to use in manage_main)



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] ANN: ZWikiZC - A ZCatalog enabled ZWiki

2000-08-24 Thread Johan Carlsson


ZWikiZC is a ZCatalog based clone of the original ZWiki by Simon Michael

http://www.zope.org/Members/johanc/ZWikiZC/wiki/FrontPage

http://www.zope.org/Members/johanc/ZWikiZC/wiki/ZWikiZC

I need help with testing. 
There might be a alote of bugs in this first release so I wish to get feedback so I 
can fix them. 
Send your BugReports to me Johan Carlsson [EMAIL PROTECTED]

Regards,
Johan


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] Zope Content Management System

2000-08-25 Thread Johan Carlsson


> Hi there, I am working on a project and have been looking at the Zope  Content 
>Management 
>System as part of the solution. However, I have a couple of questions. From what I 
>have seen so 
> far, the page generation is all done through the Zope Management Interface, and the 
>content of the 
> page is done through a textarea requiring the user to have knowledge of the zope 
>system(DTML) 
> and HTML. With type type of solution I am looking for however, I need page content 
>to be 
> generated be users that have little or no knowledge of HTML. What I am wondering is 
>if it is 
> possible to integrate the Zope content management system with Cold Fusion as I can 
>allow users 
> with no knowledge of HTML to use an interface designed with Cold Fusion to create 
>page content. 
> I do not wish to build a content management system from scratch with Cold Fusion. 
>Any 
> suggestions and/or comments would be very helpful.

Troy,

If your looking for wysiwyg tools and your content managers exclusively uses
Internet Explorer 4++, I suggest you have a look at 
http://www.zope.org/Members/johanc/ZIE.

It's not a complete CMS solution but a vital component. At the moment it lacks support 
for images,
tables and links. Event though it can be solved by hand, it's not end-user proof.

To solve the linking and images part there's a need for a resource manager and 
resource browser
in Zope, which I been working on (ZCatalog base of cause). 

The HTML-table management problem have several possible solutions. 
I am looking at a sub-template, Zpattern-like solution, but there are 
easier ways out depending on your requirements.

With the release of Internet Explorer 5.5 Microsoft have removed the DTML Editing
Component (even if its still there it's "not supported") in favor for the DTML 
componenet
in Design Mode. The new DTML Component have some nice features as editable regions
but lacks in the html-table management when uses with Visual Basic or Scripting.
If it's used from C++ though it could be extensivly extended, and you could build 
your own Dreamweaver/FrontPage quite easily. As far as programming MFC/COM 
applications in C++ is easy.

Regards,
Johan Carlsson



> Thanks
> 
> Troy Coburn
> Programmer Analyst
> [EMAIL PROTECTED]
> 506.460.1280 (tel)
> 506.460.1289 (fax)

www.qtrain.net
Leaders in XML Architecture 

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] Re: ZWikiZC comments

2000-08-28 Thread Johan Carlsson

> Two substantive comments, and some editorial ones.
> 
> You write that you are thinking of different schemes for generating
> paths and ids.  I suggest one of the things you consider is whether
> your scheme will work if someone cuts the ZWikiZC and pastes it
> somewhere else in the tree.

Yes, I realized a that my current design storing a WikiName lookup
dictionary leads a need to update the dictionary from other object
as the are move or deleted, maybe also when their added.


> I'm not sufficiently versed in the different methods you discussed to
> understand their implications--they seem to involve yet more
> undocumented interfaces in Zope.

Not, really. They are discussed in the Zope 2.2 Wiki on zope.org.
They are very hard to find thou.

 
> It's hazardous to claim a performance advantage without benchmarks.

Yes, it should be scalability advantages.

//Johan




___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] Transaction question

2000-08-28 Thread Johan Carlsson

I just want to check if things work the way I think (hope) it does.

In a transaction, are objects attributes safe from other threads.

self._v_mytemp in my request does not conflict with other requests?

(I suppose the have to be otherwise REQUEST's would interfere with each other.)

I know that _v_* attributes aren't persistent but do they remain active in memory
and there by accessible to other requests after the transaction commit?

(I suppose class attributes needs to be protected to be thread-safe?
 Does anybody have an example how to do that?)

Regards,
Johan

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] Transaction question

2000-08-28 Thread Johan Carlsson

> > | >
> > | > I just want to check if things work the way I think (hope) it does.
> > | >
> > | > In a transaction, are objects attributes safe from other threads.
> > | >
> > | > self._v_mytemp in my request does not conflict with other requests?
> > |
> > | This is correct (or it's supposed to be.)
> > 
> > What do you mean by "supposed to be"?  Is it, or is it not correct?
> 
> It means that a correctly operating ZODB will behave this way.  I
> suspected that Johan may have been facing some kind of ZODB bug,
> therefore I qualified my statement.  The phrasing was designed to
> elicit a response if he were indeed facing a defect.

I haven't experienced any problems so far, but I havn't tested it yet either.
The reason I asked was to not make any stupied assumptions before starting
coding.
If I experience any problems I'll let you know, naturally :-)

Cheers,
JOhan



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] ANN: ZWikiZC version 0.7.3 alpha

2000-08-28 Thread Johan Carlsson

The ZWikiZC version 0.7.3 alpha completely rely on ZCatalog
for looking up WikiPages from WikiNames.

No references are stored in the ZWikiZG page letting cut&paste,
delete and other management actions ignore updating links.

I bellew this is a more scalable solution than in the version 0.7.2 alpha.
Bottle neck might be if a page contains alote of WikiNames.

I also cleaned it up a bit (remove some hacky stuff from the old ZWiki).

Also added are keywords, wiki_meta_types and author_ids.

http://www.zope.org/Members/johanc/ZWikiZG/wiki

Cheers,
Johan Carlsson


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] ANN: ZWikiZC version 0.7.3 alpha

2000-08-28 Thread Johan Carlsson

The ZWikiZC version 0.7.3 alpha completely rely on ZCatalog
for looking up WikiPages from WikiNames.

No references are stored in the ZWikiZG page letting cut&paste,
delete and other management actions ignore updating links.

I bellew this is a more scalable solution than in the version 0.7.2 alpha.
Bottle neck might be if a page contains alote of WikiNames.

I also cleaned it up a bit (remove some hacky stuff from the old ZWiki).

Also added are keywords, wiki_meta_types and author_ids.

http://www.zope.org/Members/johanc/ZWikiZG/wiki

Cheers,
Johan Carlsson


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] INSTANCE_HOME breaks cross products import

2000-10-17 Thread Johan Carlsson

Hi,
I'm using then the INSTANCE_HOME to have separate
Zope instances use a base zope installation and a shared 
products directory with symlink's to the instance product
folder. As described in the "How-To: Make your life easier 
with INSTANCE_HOME" by 4am.

Now the LoginManager can't import anything from the ZPattern module.


2000-10-17T21:59:14 ERROR(200) Zope Couldn't import Products.LoginManager
Traceback (innermost last):
  File /bigshare/zopeservers/Zope-2.2.2-base/lib/python/OFS/Application.py, line 397, 
in import_products
(Object: string)
  File /bigshare/zopeservers/unitedrings/Products/LoginManager/__init__.py, line 1, in 
?
  File /bigshare/zopeservers/unitedrings/Products/LoginManager/LoginManager.py, line 
9, in ?
ImportError: cannot import name SheetProviderContainer


Now this works fine if I start Zope from the base Zope installation.

So what goes wrong and why? 
Does I do anything wrong or should/could this be fixed in the product?
If so I guess it would be practical to document som product author guidelines.

Regards,
Johan Carlsson




___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] SkinScript Exceptions

2000-10-18 Thread Johan Carlsson


Using the following Rule:

WHEN eventspec STORE myattributelist USING storemyattributes() SAVING momentolist


How does failure to store an attribute get signaled back to the DataSkin?

Can I raise an exception in a SkinScript if a rule fails due to failure of the 
"WHEN eventspec"?


What I really is after is a way to control the change of states.

To enter one state (changing some attributes to some state)
the object needs to be in a precondition state (having some attributes set to some 
values).
The rule should fire when the state attributes are changed,
check the precondition and if true, change the state (the attributes) 
and if not notify the caller (raise exception).

Regards,
Johan Carlsson


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] Unique and Contant object IDs

2000-10-23 Thread Johan Carlsson

Hi Zen-guys,

Is there an unique object ID in the ZODB that remains constant in all times
through out the life time of the ZODB?
And if so, where is it created and how do I access it? In other word how do I use it?

I can vaguely recall seeing something called OID.

I need it to track discussions related to an object, but stored in a
SQL-database. I been pondering a traversal interface in the "commentable"
objects, that would give the illusion that the discussion items really are object
agregated in the "commentable".

I also guess this could be something ZPatterns could solve in the future?

Best Regards,
Johan Carlsson




___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] Unique and Contant object IDs

2000-10-24 Thread Johan Carlsson

> > 
> > Is there an unique object ID in the ZODB that remains constant in all times
> > through out the life time of the ZODB?
> > And if so, where is it created and how do I access it? In other word how do I use 
>it?
> > 
> > I can vaguely recall seeing something called OID.
> 
> You can (from python) access the _p_oid attribute of an object to get
> it's OID, but not all that useful. Given an oid, there's no way to get
> back to a useful object. I've thought about patching _setObject to store
> a "hard" parent pointer, thus making it possible to walk back up the
> tree and figure out how to create a properly wrapped version of the
> object as it it had been accessed via it's canonical path. There are
> complications like mountable storages though.
> 
> Unfortunately there are a lot of things that Zope just can't do because
> there is no way to get a persistent "ticket" for an object that can be
> handed out to some external system, and then later redeemed for the
> (properly wrapped) object. Pathnames are not useful, because they don't
> last for the object's lifetime.
> 
> I haven't tried it, but I'm almost positive the semantics of ZServer's FTP
> are a bit wonky because of this. For some other things I'd like to do,
> it's a fatal blow.
> 
Thanks Ty,
It really works for what I intend to do (at the moment anyway).

> > I need it to track discussions related to an object, but stored in a
> > SQL-database. I been pondering a traversal interface in the "commentable"
> > objects, that would give the illusion that the discussion items really are object
> > agregated in the "commentable".
> > 
> > I also guess this could be something ZPatterns could solve in the future?
> 
> For this type of use, ZPatterns can easily solve the problem.
> 
> One way to do this: Make your objects DataSkins-derived, and set up
> SkinScript rules so that when the sql_key property is accessed, a new
> key is generated and the object's sql_key is set to it.  Now, anytime
> you ask for object.sql_key, you either get one it was assigned
> previously (the SkinScript attribute providers are only used if a
> persistent attribute can't be found) or a new one is generated and
> stored in the (persistent) object for future use. 
> 
> Now you can write other SkinScript that keys off of self.sql_key to
> provide access and storage of whatever other attributes from/to SQL.

I was think more in the line of ObjectAttributes aggregated in a DataPlugin
(which in it's turn could use a RDBS for persistent storage).
The reason why I really want this is for letting write intensive persistent objects.
I'm not sure if this solve the problem but it one idea I been thinking about.

Regards,
Johan Carlsson






___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] Unique and Contant object IDs

2000-10-25 Thread Johan Carlsson

> Chris Withers wrote:
> 
> > > I suspect you will have to build this yourself. Store a sufficiently random
> > > id inside your objects when they are created, and use a ZCatalog to index
> > > them.

How about a ZCatalog that stores its schemas in a RDB?

> This is the normal way to keep references to objects.  I asked Jim Fulton at
> IPC8, and he basically said "don't use _p_oid", which means this is the only
> way.  Of course, once the observer interface is more well developed you
> won't need the Catalog part.

Why are the _p_oid depriciated? 
Are there any plans to come up with a cross storage Universal Object ID schema?
As I understand it _p_oid aren't cross storage?


> > CatalogAware is the work of the devil anyway ;-) ZPatterns has got to be
> > better for doing that kindof stuff ;-)

ZPatterns doesn't solve mapping of non Dataskinaware objects.
Does ZPatterns rule out an Universal Object ID solution or are
they complementary?

Regards,
JOhan




___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] Unique and Contant object IDs

2000-10-25 Thread Johan Carlsson




> Johan Carlsson wrote:
> 
> > Why are the _p_oid depriciated?
> 
> Not depreciated, just "don't use them."

But I want too, why shouldn't I?
They solves my problems with mapping relational data to objects.

If I were to use my own random id generator I would need a global
registry for my UID. I really want that to be a feature in the ZODB.

//Johan




___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] Local Factories in Products

2000-11-15 Thread Johan Carlsson

Zopers,

In ZClasses it is possible to control where a ZClass instance
should be permitted to be added, in other words show up
in the factory listing in a ObjectManagers manage_main view.
(I this correct by the way?)

What I need to do is someway restrict in what Containers (myContainer 
subclass od ObjectManage ) my Zope Product Instances (myClass) 
should be abled to be added (show up in the factory list).

When registerClass "myClass" in the initialize method of __init__.py
it seems that the "myClass" gets addable everywhere.

I have temporary solved this by removing the objects registration
from the initialize method and adding manual add factories in the
myContainer. This is bad though because the meta_types doesn't
get registered and maybe some other problems as well.

So how could I control dependencies for adding Zope Classes in 
other Zope Classes?

Regards,
Johan Carlsson





___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] SQL-Methods Through-the-FileSystem

2000-11-26 Thread Johan Carlsson


Hi all,
Does anybody have a good suggestion how to
develope SQL Method ftfs (through the filesystem)
rather than ttw.

Perferably in someway similare to the HTMLFile way 
to include DTML methods in Zope classes.

Regards,
Johan


(One problem I recently discovered was the fact that
SQl methods makes "hardlinks" to SQL connection when 
changed. So if I move the SQL connection to some other
place in the aq-path I need to update the methods. 
This make it hard because the SQL method seems to
point to the right connection but it doesn't, in other
words been very confusing for users.)


torped
johan carlsson
birkagatan 9
113 36 stockholm
[EMAIL PROTECTED]
www.torped.se
voice +46-(0)-8-32 31 23
mobil +46-(0)-70-558 25 24

workshop
västmannagatan 67



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] SQL-Methods Through-the-FileSystem

2000-11-26 Thread Johan Carlsson

> Seb:
> > Does anybody have a good suggestion how to
> > develope SQL Method ftfs (through the filesystem)
> > rather than ttw.
> > 
> > Perferably in someway similare to the HTMLFile way 
> 
> try something like this:
> 
>   from Products.ZSQLMethods.SQL import SQL
>   import PoPy
> 
>   def manage_add_user(self,email,password):
> 
> conn = 'PoPy_database_connection'
> self.sql_add_user=SQL('sql_add_user', '', conn, 'email password', _sql_add_user)
> 
> _sql_add_user = """
> insert into tbl_users(email,password)
> values (
>   ,
>   
> )
> """

Hi Seb,

I guess I could skip putting it in a method and create the SQL instance 
as a attribute of the class (that I currently would be working on)?

Why do I need to import the database module?
Couldn't I just try to locate/create a DA when my class is instantiated?

Would it be poor design to create a DA connection as an attribute of the class?
Or would it be perferd to create it in the __init__ as a instance attribute?

Thanks,
Johan 





___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] SQL-Methods Through-the-FileSystem

2000-11-26 Thread Johan Carlsson

> Johan Carlsson wrote:
> > 
> > > Seb:
> > > > Does anybody have a good suggestion how to
> > > > develope SQL Method ftfs (through the filesystem)
> > > > rather than ttw.
> > > >
> > > > Perferably in someway similare to the HTMLFile way
> > >
> > > try something like this:
> > >
> > >   from Products.ZSQLMethods.SQL import SQL
> > >   import PoPy
> > >
> > >   def manage_add_user(self,email,password):
> > >
> > > conn = 'PoPy_database_connection'
> > > self.sql_add_user=SQL('sql_add_user', '', conn, 'email password', 
>_sql_add_user)
> > >
> > > _sql_add_user = """
> > > insert into tbl_users(email,password)
> > > values (
> > >   ,
> > >   
> > > )
> > > """
> > 
> > Hi Seb,
> > 
> > I guess I could skip putting it in a method and create the SQL instance
> > as a attribute of the class (that I currently would be working on)?
> 
> yes
> 
> > Why do I need to import the database module?
> 
> sql methods are bound to database connections, you could instantiate one
> without, but than you wouldn't be able to use it. 

What I mean is that if I acquired the DA connection, the import would be unnecessary?
 
> > Couldn't I just try to locate/create a DA when my class is instantiated?
> 
> you could, the search routine in /lib/python/Products/ZSQLMethods/SQL.py
> is a good starting point

Yes, I know, for ones I turned to zope-dev before diving into the source ;-)
 
> > Would it be poor design to create a DA connection as an attribute of the class?
> > Or would it be perferd to create it in the __init__ as a instance attribute?
> 
> do you really want to create a new db connection for every instance of
> your class?

I might, if each instance should connect to  its own database.
For instance I could have different databases (with different user identities)
for different customers sharing the same host machine.

Thanks Seb and Ender, I really got a head start.
Johan




___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] Class attributes and Presistence

2000-12-07 Thread Johan Carlsson


Hi,

I'm using a class attribute _v_label_index to store
an index of my managetab options (in a multi managementtabs 
mixin product).

To create _v_label_index i use a module level method that
I run in the class scope, like this:


def initIndex(manage_options,...): ...

class myclass(...):
  ...
  manage_options = (...)

  _v_label_index = initIndex(manage_options)



Now this work but the implementor needs to have the row
"_v_label_index = initIndex(manage_options)" in his sub class.

Is this "good" design?
Does class attributes get saved to the ZODB? I use the "_v_..."
notation just in case.

Cheers,
Johan Carlsson




___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] ANN: Extended ManagementTabs Mixin for Python Product Developers

2000-12-10 Thread Johan Carlsson

Hi,
I just uploaded my Extended ManagementTabs Mixin Product you can find it at:

http://www.zope.org/Members/johanc/ExtendedManagmentTabs/ExtendedManagmentTabsMixin/
<http://www.zope.org/Members/johanc/ExtendedManagmentTabs/ExtendedManagmentTabsMixin/>

It's should supply any Python Product with multi-level management tabs
without breaking existing code (peppar peppar). If not please let me know.

It probably would be a good idea to write some UnitTests here.

Cheers,
Johan Carlsson






___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] ANN: Extended ManagementTabs Mixin for Python Product Developers

2000-12-10 Thread Johan Carlsson

> Michael Bernstein.
> Sounds interesting. Can you add a few screenshots to the
> product page?
> 

Ok, 
have a look at this
(Click Edit, MyMenu1 and MyMenu4 to see how they behave.)

http://www.zope.org/Members/johanc/ExtendedManagmentTabs/ExtendedManagmentTabsMixin/screamshots
<http://www.zope.org/Members/johanc/ExtendedManagmentTabs/ExtendedManagmentTabsMixin/screamshots>

Cheers,
Johan Carlsson



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] When to use Rack , Folders w/Customize, etc.

2001-01-09 Thread Johan Carlsson

Hi,
Reading up on ZPatterns I'm still confused about some thing's (sometimes more, 
sometimes less).

I wonder:
When to use Rack, Folders w/Customize, attribute provider, sheetproviders etc.

In which solution do I get ZODB dependens.
One important aspect for some of my applications are to be as "virtual" as possible.

(I hope this question is clear enough :-)

Regards,
Johan Carlsson

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




[Zope-dev] ZPatterns Non-TTW developement

2001-01-09 Thread Johan Carlsson

Hi again,

1. Are there any parts of the ZPattern that demands TTW developement?
After reading alote of intresting discussions I find that there is alote
of talk about ZClasses, but as I understand it they can be Python 
subclasses of ZPattern base classes as well?

2. If I want to write a default implementation for an application storing
data in a SQL database could I just subclass DataPlugins and add
my SQL-methods in that class?

Cheers,
Johan Carlsson


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] Debugging Zope with Komodo

2001-01-12 Thread Johan Carlsson

> Andy McKay wrote:
> > 
> > Sorry wrong mail list. Move along, nothing to see here.
> 
> Too late ;-)
> 
> What's Komodo?

First, it'ss:
"Komodo is ActiveState's cross-platform, multi-language Integrated Development 
Environment (IDE). Komodo supports Perl, Python, and JavaScript development 
on Windows, Linux, and Unix."
http://www.activestate.com/Products/Komodo/

And second, it's a National Park in Bali.
"Komodo National Park | Komodo Island"
Google says so anyway ;-)

Regards,
Johan Carlsson

Brilliant marketing-by-accident ;-)


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] MountedFileStorage

2001-01-18 Thread Johan Carlsson

 
> http://www.zope.org/Members/hathawsh/ExternalMount
> 

Sound interesting.
Is it possible to mount a read-only database from several different Zope-clients?

Regards,
Johan 



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] MountedFileStorage

2001-01-19 Thread Johan Carlsson


> > > http://www.zope.org/Members/hathawsh/ExternalMount
> > >
> > 
> > Sound interesting.
> > Is it possible to mount a read-only database from several different Zope-clients?
> 
> Yes.  The database should be inside a ZEO storage server.  ExternalMount
> can mount ZEO ClientStorages (that's how www.zope.org/Wikis works) and
> AFAIK you have the opportunity to provide a "read-only" parameter to the
> storage or the database.
> 
> In fact, when you mix in ZEO you can mount the database on one client
> while using it as the root database on another client.  That way you can
> get around the lack of undo.

Is it possible to mix a local storage (a filestorage as the root) and mount a ZEO
server storage as a "mounted storage".

What I really want is several independent Zope servers sharing a mounted
database (containing shared resources, eg. template files, design elements etc.). 
If that is possible I suppose it could be either read-write or read-only.
In that way all clients could share an application, for instance a webbshop or
a user tracking application or a browser tracking application.

Cheers,
Johan Carlsson



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] Old to new registerClass

2001-01-24 Thread Johan Carlsson

> Brian Lloyd
> etc. I don't know what 'lang_' does, so I'm not sure what 
> to advise you there...
> 

Hi Andy, 
As far as I can see the land_ directory doesn't seam to do anything.
You could try to just remove it.
(It wasn't me that put it there.)

As for the most part of the Images defined in the misc_ structure,
I suppose all of the except the IEMethod.gif (needed outside) 
could be defined in the IEMethod class instead of the module level. 
They are really not so useful outside the scope of the IEMethod object itself.
This should apply to the JavaScript-files and CSS-files as well.
(Well it was me who put those files there, but that was a long time ago ;-)

Regards,
Johan Carlsson

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )




Re: [Zope-dev] Q: Specialists, Racks, and ZCatalogs?

2001-02-05 Thread Johan Carlsson

> A Specialist manages objects that play a particular role in your application.
> You will usually have one Specialist for each role in your application; try
> listing all the roles, and what they do, and that's a good start for thinking
> about what specialists you need.

Hi Steve,
I'm a bit confused in regard to the roles. 
What exactly is a role in this context?

At first I thought of a rola as "a role of an Actor", but
as you described it it's more like the role of the class
(GoPlayers)?

How should I look at roles in ZPatterns?

Regards,
Johan Carlsson


 
> A Rack manages the storage for a particular class of objects.
> Therefore, you will have different racks for different classes
> of object. You will also have different racks for different
> ways of storing the same class of object.
> 
> For example, let's say I have a Specialist "GoPlayers", which manages
> objects that represent people who play the board-game Go with other people.
> 
> I have two implementation classes: AmateurGoPlayer and ProfessionalGoPlayer.
> Objects of these classes have exactly the same interface to the rest of the 
>application.
> However, the implementation of some of the methods varies.
> 
> So, I'll need two racks in my GoPlayers specialist: one for 
> AmateurGoPlayers and one for ProfessionalGoPlayers.
> 
> Let's complicate things by saying that I have the records for some 
> ProfessionalGoPlayers in a relational database, but the rest of the 
> ProfessionalGoPlayers are stored in the ZODB. All the AmateurGoPlayers 
> are stored in the ZODB.
> 
> So, I need three Racks altogether:
> 
>AmateurGoPlayers (stored in ZODB)
>ProGoPlayers_zodb (stored in ZODB)
>ProGoPlayers_rdbms (from legacy rdbms)
> 
> I'm indexing all the players that are stored in the ZODB using a 
> ZCatalog called Catalog, in the GoPlayers specialist.
> 
> Now, when I want to answer a query such as "return all go players called 
> 'bill'", I need to do the following:
> 
> * create a PythonScript in GoPlayers called list_players_by_name(name)
> * implement this method as follows:
>- query the ZCatalog for players who have that name
>- query the RDBMS using an SQL query for players who have that name
>- return the union of the results of both queries
> 
> In this scenario, I'd put the SkinScript to catalog AmateurGoPlayers in 
> the AmateurGoPlayers rack, and likewise for the ProGoPlayers_zodb rack.
> 
> I'm not indexing the players from the rdbms in a ZCatalog because, in 
> this example, other systems external to Zope can independently update 
> the RDBMS.
> If this wasn't the case, and the all changes to data in the RDBMS go 
> through Zope, then I could put one set of cataloging skinscript as a 
> data-plugin in the Specialist, and make the list_players_by_name(name) 
> method just return the results from a ZCatalog search.
> 
> The rest of my application uses the interface provided by the 
> Specialist, and can remain ignorant of where a particular GoPlayer's 
> records are stored.
> 
> Note that the specialist provides exactly the methods that the rest of 
> the application requires; ideally no more, and no fewer.
> 
> Beware when returning results from a ZCatalog query that you are only 
> returning Catalog Brains -- simple objects that record the meta-data 
> archived when the original object was cataloged. Where speed of 
> execution is not an issue, you should return a list of actual GoPlayer 
> objects rather than a list of CatalogBrains.
> An alternative is to return a list of string ids.
> Often, a better plan is to determine exactly what information is needed 
> by the part of your application that requires the 
> list_players_by_name(name) method call; then provide exactly that 
> information.
> 
> --
> Steve Alexander
> Software Engineer
> Cat-Box limited
> http://www.cat-box.net
> 
> 
> 
> 
> 
> 
> 
> ___
> Zope-Dev maillist  -  [EMAIL PROTECTED]
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists - 
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )
> 


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] Q: Specialists, Racks, and ZCatalogs?

2001-02-05 Thread Johan Carlsson

> ...
> When you're thinking about a system, it is often helpful to think about
> just a part of the system rather than the system as a whole. To do this, 
> you define a limited "scope" around a particular subsystem.
> In this case, an Actor represents the role something from outside your
> subsystem plays when interacting with something inside your subsystem.
> 
> The "something" can be an object, a person, a separate computer system,
> a corporation...
> 

Thanks Steve,
You cleared up my confusion.
 
> > How should I look at roles in ZPatterns?
> 
> This is all standard object-oriented stuff, and is not specific to ZPatterns.
> Get the Coad book, read it, and things should get clearer :-)

It's on my ToReadList :-)
 

> Also, the Catalysis method puts an emphasis on defining interactions and 
> collaborations between objects in terms of roles. You might want to take
> a look at that.

Is Catalysis method a pattern in Coads book?

Regards,
Johan Carlsson


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] Subproducts in a Zope Python Product

2001-02-08 Thread Johan Carlsson

Hi,

I want to create a sub modul in one of my Python Products,
because it gets more manageble.
Accualy I have a bunch of Plugins I which files I want to manage
in sub directories of the original Python Product.

e.g. ./Products/MyProduct/PluginKind1 etc...

How do I setup the Zope registration procedure.
I just had a look at ZPattern and the only thing 
it seem I have to do is import the module form MyProducts __ini__.py

Is this assuption correct?

Regards,
Johan Carlsson

By the way.
Are there any reasons I shouldn't use necesting Plugins (Plugins that
can have Plugins)?





___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] Plugins as Dataskins

2001-02-09 Thread Johan Carlsson

Hi,
Can use Plugins as Dataskins?
If so, do I need to put them inside a Customizer?
And how does customizes play with Specialists, 
or should they even do that in the first place?

Regards,
Johan Carlsson


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] Plugins as Dataskins

2001-02-09 Thread Johan Carlsson

> Johan Carlsson wrote:
> 
> > Hi,
> > Can use Plugins as Dataskins?
> 
> The PlugIns product is separate from the ZPatterns/DataSkins product.
> ZPatterns requires that PlugIns be installed, though.
> 
> There's some experimental support for having Dataskins as plug-ins.
> However, I can't think of why I'd need to do that.
> PlugIns and DataSkins are there for different purposes.
> They solve different problems.

Yes, what much I know.
I find Plugins really useful for dynamically assigning content and behavior
to objects at run-time.
What I want to do is to make plugins created inside regular ZODB objects,
delegate there storage to ZPatterns.
As I see it might be possible to have both ZODB-based plugins (subclassed 
from PlugIn) or virtual plugin objects (subclassed from PlugInBase) getting 
attributes and/or properties from a Customizer.
So is it worth a shot?

Johan Carlsson


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] Python Based DataSkins and Propertysheets

2001-02-11 Thread Johan Carlsson

Hi, 
I am trying to figure out ZPatterns and because I rather work with Python Products 
when with Zclasses I am trying to convert the EmployZ product to Python.
So far I got half the way there, the Rack recognizes the DataSkin
And on newItem in the Specialist it a new slot gets created and I can see them and 
their ID.

Now the problem is creating a Propertysheet in the DataSkin that gets stored in the 
Rack.

I packet my work so far and put it on Zope.org: 
http://www.zope.org/Members/johanc/ZPatterns/EmployX/EmployX-0.0.1.tgz

I look at the ZPattern Products that I know are out there, but they don't seem 
help me any futher.

Regards,
Johan



Here's my to classes:

< EmployX (DataSkin)>

__doc__ = """EmployX product module.

See README.txt for more details."""


__version__ = '0.0.1'

from Globals import HTMLFile
from Globals import MessageDialog
from Globals import Persistent

import OFS.SimpleItem
import Acquisition
import AccessControl.Role

from Products.ZPatterns.DataSkins import DataSkin
#from Products.ZPatterns.PropertySheets import VirtualSheets


manage_addEmployXForm = HTMLFile('dtml/EmployXAdd', globals()) 

def manage_addEmployX(self, id, title='', REQUEST=None):
"""Add a EmployX to a folder."""
self._setObject(id, EmployX(id, title))
if REQUEST is not None:
return self.manage_main(self, REQUEST)


class EmployX(
DataSkin,
#VirtualSheets,
): 
"""EmployX object. 
"""

meta_type = 'EmployX'

# Necessary?
_isRackMountable = 1

#_properties=(
# {'id':'first', 'type': 'string'},
# {'id':'last', 'type': 'string'},
# {'id':'emp_id', 'type': 'string'},
# {'id':'salary', 'type': 'string'}, 
#)


manage_options = ( 
{'label': 'Edit',   'action': 'manage_main' },
{'label':'Debug','action':'debug'},
{'label': 'View',   'action': 'index_html'}, 
{'label': 'Security',   'action': 'manage_access'},
) 


_v_manage_options_label_index = 
ExtendedManagmentTabs.createManageIndex(manage_options=manage_options)

__ac_permissions__=( 
('View management screens', ('debug','manage_tabs','manage_main')),
('Change permissions',  ('manage_access',)   ),
('Change EmployX' , ('manage_edit',) ),
('View EmployX',('',)),
)

def __init__(self,id): 
"""initialise a new instance of BeingBoring"""
DataSkin.__init__(self,id)



def debug(self):
""" Print object's __dict__ """
result = ""
for k, v in self.__dict__.items():
result = "%s\n%s : %s" % (result, repr(k), repr(v))
return result


manage_main = HTMLFile('dtml/EmployXEdit', globals()) 

def manage_edit(self, title, REQUEST=None): 
"""does this really need a doc string?"""
self.title = title
if REQUEST is not None:
return self.manage_main(self,REQUEST,management_view='Edit')


editInstance = HTMLFile('editInstance', globals()) 
editInstanceForm = HTMLFile('editInstanceForm', globals()) 
index_html  = HTMLFile('index_html', globals()) 


def initialize(context): 
"""Initialize the EmployX product.
"""


context.registerClass(
EmployX, 
constructors = ( 
manage_addEmployXForm, 
manage_addEmployX), 
icon = 'www/item.gif'
)
# We need this so that this class will show up in the list of classes
# Customizers can customize. (Thanks Steve)
context.registerBaseClass(EmployX)


< EmployXManager(Specialist)>

__doc__ = """EmployXManager product module.

See README.txt for more details."""


__version__ = '0.0.1'


from Globals import HTMLFile
#from Globals import MessageDialog
#from Globals import Persistent



from Products.ZPatterns.Specialists import Specialist


manage_addEmployXManagerForm = HTMLFile('EmployXManagerAdd', globals()) 

def manage_addEmployXManager(self, id, title='', REQUEST=None):
"""Add a EmployXManager to a folder."""
self._setObject(id, EmployXManager(id, title))
if REQUEST is not None:
return self.manage_main(self, REQUEST)


class EmployXManager(Specialist):
"""Thing that manages EmployX"""

meta_type = "EmployXManager" 

newItemForm = HTMLFile('newItemForm', globals()) 
index_html  = HTMLFile('index_html_manager', globals()) 

def addNewItem(self,emp_id,REQUEST=None):
"""ttw"""
ob = self.newItem(emp_id)
#ob.addPropertySheet('Basic')
#ob.propertysheets.Basic.manage_changeProperties(REQUEST=REQUEST)

#if REQUEST.has_key('first'): ob

Re: [Zope-dev] Python Based DataSkins and Propertysheets

2001-02-12 Thread Johan Carlsson

> > Hi, 
> > I am trying to figure out ZPatterns and because I rather work with Python Products 
>when with Zclasses I am trying to convert the EmployZ product to Python.
> > So far I got half the way there, the Rack recognizes the DataSkin
> > And on newItem in the Specialist it a new slot gets created and I can see them and 
>their ID.
> > 
> > Now the problem is creating a Propertysheet in the DataSkin that gets stored in 
>the Rack.
> 
> The attributes of a Persistent DataSkin will get stored in the Rack without too much 
>extra work.
> 
> 
> > class EmployX(
> > DataSkin,
> > #VirtualSheets,
> > ): 
> 
> You need to derive EmployX from DataSkin and some 
> Zope persistent class such as SimpleItem. Otherwise,
> it won't be persistent.

Accualy I don´t have to do that.
Have a look at Itamar Shtull-Traurings and Heiko Stoermers
FlatDatabase:

class EntryDataSkin(DataSkin):
""" 
Flat Database entry.
"""

meta_type = "Entry DataSkin"

...

def manage_change(self, REQUEST, RESPONSE):
""" Change properties """
for prop in self.database_properties.propertyMap():
name=prop['id']
if REQUEST.has_key(name):
if 'w' in prop.get('mode', 'wd'):
value=REQUEST.get(name)
setattr(self, name, value) 
RESPONSE.redirect(REQUEST.URL1)


But as I noticed the "properties" was saved as
attributes not as properties in a propertysheet.

I can live with that, but I still would like to know if and 
how to use propertysheets provided by a DataManager
inside a Pyhton DataSkin?

Johan





___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] Python Based DataSkins and Propertysheets

2001-02-12 Thread Johan Carlsson

> > But as I noticed the "properties" was saved as
> > attributes not as properties in a propertysheet.
> 
> That's another way of doing it. It is a bit less transparent.
> I find it more straightforward to make my classes SimpleItems
> and PropertyManagers, as it means I can just call
> manage_changeProperties() without writing extra methods.


Ah, I see. 
But why do I need SimpleItems, isn't PropertyManagers sufficient?
 
 
> There are two kinds of PropertySheet in Zope:
>   DAV propertysheets
>   Propertysheets that go with ZClasses
> 
> There are also Properties for objects that are PropertyManagers,
> such as DTML Documents.
> 
> There is an important difference in how these different types of 
> properties work:
> 
>   DAV Propertysheets are independent Persistent objects
> 
>   Propertysheets that go with ZClasses and also
>   PropertyManager propertysheets are stored as attributes
>   in the objects they belong to.
> 
> Therefore, in ZPatterns, you use AttributeProviders to do stuff
> with PropertyManager properties and ZClass-style propertysheets.
> 
> You use SheetProviders to do stuff with DAV Propertysheets.
> 
> If you're using ZClass-style propertysheets, you need to use
> DataSkin Attribute Propertysheets, rather than the default
> Common Instance Propertysheets.
> 
> 
> In your case, I suggest making your class Persistent, and using
> PropertyManager properties.

But making it presistent doesn't that lock the objects to be stored in the ZODB?
I may want to change storage to SQL later.

 
> The reason to use ZClass-style propertysheets is if you want to 
> easily partition your properties into sets of properties with
> different permissions.


Still confused but on a higher level ;-)
Johan



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] Python Based DataSkins and Propertysheets

2001-02-12 Thread Johan Carlsson

> >>> You need to derive EmployX from DataSkin and some Zope persistent 
> >>> class such as SimpleItem. Otherwise,
> >>> it won't be persistent.
> >> 
> >> Accualy I don´t have to do that.
> 
> Looking more closely at DataSkins.py, I see that class DataSkin derives from 
> Persistent.
> 
> So, I was wrong -- please ignore what I said about needing to derive from 
> Persistent :-)

Whoooha!
I added PropertyManager to EmployX and it saves properties?

Is this correct?
- The objects are stored presistently in the Racks storage (BTree).

- The attributes (and the propertysheet which is a attribute) are
  managed by the "PersistentAttributes" attribute provider.
  (Can I verify this by some kind of inspection?)
 
- If I would create Attribute Providers (with SkinScripts) they
 could redirect the storage to what ever storage i like.


Hm, I realize that I'm still very confused and the only way out of that 
is "doing stuff" and see what happens.

Johanc

PS. I uploaded the latest version of EmployX if anybody want to
have a look. Its working now and should do basicly the same
thing EmployZ does (except minor cahnges).
http://www.zope.org/Members/johanc/EmployX




___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] Python Based DataSkins and Propertysheets

2001-02-12 Thread Johan Carlsson

> > Ah, I see. 
> > But why do I need SimpleItems, isn't PropertyManagers sufficient?
> 
> It makes your class play nicely with Zope.
> 
> So, it can work with DAV, be copied and pasted, properly work
> with traversal, work with ZDOM, be Owned, support undo, work
> with Acquisition, and manage roles.

Which isn't a bad thing.
At the moment I'm aiming at the lest amount of functionality.

Next thing I want to do is adding Zope-awareness and put
objects in a Folder/wCustomizer .
How hard is it to move a Simple Item DataSkin to a Customizer?

BTW. After I have done that successfully I intend to make the DataSkins
Plugins instead of Zope Items. That's the my goal at this point.

 
> Take a look at the source to lib/python/OFS/SimpleItem.py

> You can omit some of this if you know for sure in advance that you
> will be using instances of your class only with Specialists in 
> Racks.
> 
> However, ZPatterns is set up so you can use the same DataSkin class
> with instances stored in a Rack or stored as normal Persistent objects
> in the ZODB.
> 
> 
> >> In your case, I suggest making your class Persistent, and using
> >> PropertyManager properties.
> >
> > But making it presistent doesn't that lock the objects to be stored in the ZODB?
> > I may want to change storage to SQL later.
> 
> No it doesn't tie the object to the ZODB if you're using a Specialist.
> That's the magic of ZPatterns.

Ahhh, good.
Magic is a wonderful thing, but it also makes understanding a bit harder ;-)


About the ZClass still of propertysheets, is that when I add a 
OFS.PropertySheets.PropertySheets attribute to my object?
Can I use the OFS.PropertySheets.PropertySheets for that and
does it play with ZPatterns?

I use PropertySheets for allot of multi language support, storing
properties in separate languages PropertySheets.

Johanc


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] EmployX 0.0.2

2001-02-12 Thread Johan Carlsson


I've put up the latest version of my DataSkin as Python Laboration Product 
I have done 2/3 of my goal, that is to have Plugin/DataSkins.
(the next 4/3 will probably be to let a SQL-server take care of the attributes.)

If anybody would have a peek it's at:

http://www.zope.org/Members/johanc/ZPatterns/EmployX/EmployX-0.0.2.tgz/view

Many thanks to Steve.

Johan



torped
johan carlsson
birkagatan 9
113 36 stockholm
[EMAIL PROTECTED]
www.torped.se
voice +46-(0)-8-32 31 23
mobil +46-(0)-70-558 25 24

workshop
västmannagatan 67



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] EmployX 0.0.2

2001-02-12 Thread Johan Carlsson

> What does it do?

Nothing really.
It's just example code of DataSkins in Python,
I kind of lacked that myself some days ago.

It's basically a Dataskin that stores 4 properties
and 2 computed attributes supplied from the Rack
or the Customizer (subclassed Folder w/Cust and
subclassed Specialist included making it 3 Zope Items
all together)

It is a freely translated version of the EmployZ product
(which uses ZClasses).

Regards,
Johan Carlsson

> 
> I've put up the latest version of my DataSkin as Python Laboration Product
> I have done 2/3 of my goal, that is to have Plugin/DataSkins.
> (the next 4/3 will probably be to let a SQL-server take care of the
> attributes.)
> 
> If anybody would have a peek it's at:
> 
> http://www.zope.org/Members/johanc/ZPatterns/EmployX/EmployX-0.0.2.tgz/view
> 
> Many thanks to Steve.
> 
> Johan
> 
> 
> 
> torped
> johan carlsson
> birkagatan 9
> 113 36 stockholm
> [EMAIL PROTECTED]
> www.torped.se
> voice +46-(0)-8-32 31 23
> mobil +46-(0)-70-558 25 24
> 
> workshop
> västmannagatan 67
> 
> 
> 
> ___
> Zope-Dev maillist  -  [EMAIL PROTECTED]
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists -
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )
> 
> 


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] ThreadSafeCounter

2001-02-13 Thread Johan Carlsson

> Would anyone volunteer to write a mounting HOWTO?  This is a FAQ.

The ExternalMount product is kind of self instructing,
but a general Mounting HOWTO would be a good thing.

> > FileStorage is what the standard Data.fs is, and it supports undo.

Just one thing, ExternalMount product uses FileStorage but it doesn't
seem to support undos (not for me anyway)?

Johan Carlsson



Create an external method that opens a storage and returns a ZODB.DB
object.  Enter the module and function name below, along with the path to
traverse within the database to reach the object to be mounted.

An example external method:

import ZODB
from ZODB.FileStorage import FileStorage

def createDB():
return ZODB.DB(FileStorage('/usr/local/zodbs/db1.fs'))


 
> 
> > Andy McKay wrote:
> >
> > >> A simpler solution is to use a mounted storage that doesn't do undo,
> and
> > >> stores changes in place.
> > >
> > > You are the second person to answer with that. Would anyone care to give
> a
> > > quick how-to on how to mount a non-undoing storage, such as 
> >
> > FileStorage is what the standard Data.fs is, and it supports undo.
> >
> > > since this doesnt seem immediately obvious to me.
> >
> > Take a look at ExternalMount, and at what's used in the
> CoreSessionTracking product.
> >
> > I can't find a URL for ExternalMount at the moment. I'm using it though,
> so it *definitely* exists!
> >
> >
> > Also, see lib/python/ZODB/dbmStorage.py
> >
> > """Very Simple dbm-based ZODB storage
> >
> > This storage provides for use of dbm files as storages that
> > don't support versions or Undo.  This may be useful when implementing
> > objects like hit counters that don't need or want to participate
> > in undo or versions.
> > """
> >
> > --
> > Steve Alexander
> > Software Engineer
> > Cat-Box limited
> > http://www.cat-box.net
> >
> >
> >
> > ___
> > Zope-Dev maillist  -  [EMAIL PROTECTED]
> > http://lists.zope.org/mailman/listinfo/zope-dev
> > **  No cross posts or HTML encoding!  **
> > (Related lists -
> >  http://lists.zope.org/mailman/listinfo/zope-announce
> >  http://lists.zope.org/mailman/listinfo/zope )
> >
> 
> 
> ___
> Zope-Dev maillist  -  [EMAIL PROTECTED]
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists - 
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )
> 
h¥àÞ¾f¢–X¬µš)x7¯ÎŠ^¢¸!¶ÚþX¬¶Ìè¥ê+ƒùšŠYšŸùb²Ø§~ó¢—zóhrº,²š,¶Ê+3zw(v)àEéZµçeŠËl†Ûiÿùb²Û3¢—¨®æj)fjåŠËbú?Ί^jyèºw†Ûiÿùb²Û3¢—¨®æj)fjåŠËbú?Ί^


Re: [Zope-dev] Re: ThreadSafeCounter

2001-02-14 Thread Johan Carlsson

> > That would work, however I just dont think that fits neatly into the ZODB in
> > any way since all objects are appended.
> 
> Small confusion here:  "ZODB" is a higher-level abstraction than
> "FileStorage";  it is quite feasible to have one or more storages
> inside your Zope which are "packless" / "undo-less", and which
> then have the space efficiencies you are looking for (often at a
> non-trivial time cost).

Is where anyway to pack an ExternalMount without having to unmount it first?
Could it be setup to do inside Zope?

How does DC handle this on zope.org (I believe the wikis are on a ExternalMount,
if I'm not mistaken)
Johan

¢—ƒzùšŠYb²Öh¥àÞ¿:)zŠà†Ûiÿùb²Û3¢—¨®æj)fjåŠËbú?Ί^uëÍ¡Êè²Êh²Û(¬tÌ-éܡا¥jם–+-²m§ÿåŠËlΊ^¢¸?™¨¥™©ÿ–+-Šwèÿ:)y©ç¢éÜzm§ÿåŠËlΊ^¢¸?™¨¥™©ÿ–+-Šwèÿ:)


[Zope-dev] Extending propertysheets

2001-02-17 Thread Johan Carlsson

Hi,
I have a strong desire to be able to extend propertysheets
with more types possibly adding checking for them.

For instance be able to specify URLs, email addresses, ISBN-number etc.

Is this good idea at all? 
What would be the risks?

Cheers,
Johan Carlsson
¢—ƒzùšŠYb²Öh¥àÞ¿:)zŠà†Ûiÿùb²Û3¢—¨®æj)fjåŠËbú?Ί^uëÍ¡Êè²Êh²Û(¬tÌ-éܡا¥jם–+-²m§ÿåŠËlΊ^¢¸?™¨¥™©ÿ–+-Šwèÿ:)y©ç¢éÜzm§ÿåŠËlΊ^¢¸?™¨¥™©ÿ–+-Šwèÿ:)


[Zope-dev] Mapping groups of users to local roles

2001-02-18 Thread Johan Carlsson

Hi,
I have the need to make a group extension to the
permission system in Zope.
I need to make so kind of folder or acl_extender
that can know about groups of users and map
them to local roles.

As I understand the security system user get their
role mapping through a UserManager (acl_users).
But what I want is to have a central UserManager
(possibly LoginManager or using the PTK member system),
but on a branch level extend the it with user-group-role 
mapping.

Any ideas on how to solve this problem?
Maybe someone already have thought about this?

I anticipate using ZPatterns to do the mapping separating 
the storage from the logic.

Regards,
Johan Carlsson

h¥àÞ¾f¢–X¬µš)x7¯ÎŠ^¢¸!¶ÚþX¬¶Ìè¥ê+ƒùšŠYšŸùb²Ø§~ó¢—zóhrº,²š,¶Ê+3zw(v)àEéZµçeŠËl†Ûiÿùb²Û3¢—¨®æj)fjåŠËbú?Ί^jyèºw†Ûiÿùb²Û3¢—¨®æj)fjåŠËbú?Ί^


[Zope-dev] Re: [Zope-PTK] PTK and Usability

2001-02-18 Thread Johan Carlsson

> > A setup with 5-15 novice users, let them use the PTK and what
> > there doing without interfering or helping, might give you
> > valuable information for changing some UI and scenarios.
> 
> I expect to be getting such feedback from our admin and sales
> folks, who will be "eating our dogfood" over the next few weeks.
> :)

That's good. But remember actually seeing people doing the software
is much more educational (for a developer/interface designer) that just
getting opinions. (ok I will stop my nagging now ;-)


> 
> We have an existing effort underway to tackle the "DTML snippet"
> problem for Zope in general:
> 
>   http://www.zope.org//Wikis/DevSite/Projects/ZPT
> 
> In particular, ZPT makes pages back into "wholes", editable
> using GoLive, Dreamweaver, etc. (GoLive has better WebDAV
> support, and is working with the current test version;  DW may
> take longer, as they have only broken WebDAV support, and won't
> commit to fixing it).

Couldn't it be done with plain FTP access or does it involve accessing
DAV properties?

Regards,
Joahn


h¥àÞ¾f¢–X¬µš)x7¯ÎŠ^¢¸!¶ÚþX¬¶Ìè¥ê+ƒùšŠYšŸùb²Ø§~ó¢—zóhrº,²š,¶Ê+3zw(v)àEéZµçeŠËl†Ûiÿùb²Û3¢—¨®æj)fjåŠËbú?Ί^jyèºw†Ûiÿùb²Û3¢—¨®æj)fjåŠËbú?Ί^


[Zope-dev] Re: [Zope-PTK] PTK and Usability

2001-02-18 Thread Johan Carlsson

> FTP will work;  Paul reminds me that the other thing ZPT needs
> is good XHTML support, which DreamWeaver (apparently) still
> lacks.

Ah.

 
> FWIW, we originally favored DW as a candidate ZPT editor, and
> only reluctantly dropped it, after getting less-than-helpful
> replies from the MacroMedia folks.

Well I have recently realized that DW isn't half that great that i should be.
Accually a plain disaster in some configurations.

Are there any tools that excel on XHTML today?

Also will the new XHTML templates work with common browsers?
or does it convert to HTML?

I done some repackaging attempts with DW and javascript for CMF 
to night, but it dw doesn't seem to be able to deliver what I expect at
some point. (trying to do fake dtml-var includes)

Regards,
Johanc
h¥àÞ¾f¢–X¬µš)x7¯ÎŠ^¢¸!¶ÚþX¬¶Ìè¥ê+ƒùšŠYšŸùb²Ø§~ó¢—zóhrº,²š,¶Ê+3zw(v)àEéZµçeŠËl†Ûiÿùb²Û3¢—¨®æj)fjåŠËbú?Ί^jyèºw†Ûiÿùb²Û3¢—¨®æj)fjåŠËbú?Ί^


[Zope-dev] ZCatalog Lazy Results

2001-02-20 Thread Johan Carlsson

Hi,
I need to check an assumption I have made on the
ZCatalog Brains and Lazy Results from reading the source.

1. The Brains gets its schema from the ZCatalog and this
schema is basicly fixed. E.g. a search result always has
the attributes defined by the Meta Data in the ZCatalog?

I would rather be able to construct a Brain Schema at search time
equivalent to the way theSELECT statement sets up the result attributes
in SQL. 
Example: 
resultset = Catalog.searchResults(query,schema=('id','title','keywords'))


2. The laziness of the ZCatalog search result means it's batched?

Regards,
Johan Carlsson



torped
johan carlsson
birkagatan 9
113 36 stockholm
[EMAIL PROTECTED]
www.torped.se
voice +46-(0)-8-32 31 23
mobil +46-(0)-70-558 25 24

workshop
västmannagatan 67



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] ZCatalog Lazy Results

2001-02-20 Thread Johan Carlsson

> > 
> > I would rather be able to construct a Brain Schema
> > at search time
> > equivalent to the way theSELECT statement sets up
> > the result attributes
> > in SQL. 
> > Example: 
> > resultset =
> > Catalog.searchResults(query,schema=('id','title','keywords'))
> 
> Why is this important? I would suggest not putting big
> stuff in the meta-data that might warrant this. Just
> use the nifty new (v2.3) getObject method of the brain
> to access whatever properties/methods of the actual
> object you might need.

If I have allot of MetaDatas and do allot of searches,
one for each page hit, I assume it would use up allot of
memory and do allot of copying of attributes?
I want to use ZCatalog for dynamic linking.


> > 2. The laziness of the ZCatalog search result means
> > it's batched?
> Lazy sequences work by not loading the result items in
> memory until they are actually accessed.

Ok, suppose I should have known that. Thanks.
Johan

¢—ƒzùšŠYb²Öh¥àÞ¿:)zŠà†Ûiÿùb²Û3¢—¨®æj)fjåŠËbú?Ί^uëÍ¡Êè²Êh²Û(¬tÌ-éܡا¥jם–+-²m§ÿåŠËlΊ^¢¸?™¨¥™©ÿ–+-Šwèÿ:)y©ç¢éÜzm§ÿåŠËlΊ^¢¸?™¨¥™©ÿ–+-Šwèÿ:)


Re: [Zope-dev] ZCatalog Lazy Results

2001-02-20 Thread Johan Carlsson

> How many is "a lot" of meta datas?

At least 20-30.
Johan


> Catalog.searchResults(query,schema=('id','title','keywords'))
> > > 
> > > Why is this important? I would suggest not putting
> > big
> > > stuff in the meta-data that might warrant this.
> > Just
> > > use the nifty new (v2.3) getObject method of the
> > brain
> > > to access whatever properties/methods of the
> > actual
> > > object you might need.
> > 
> > If I have allot of MetaDatas and do allot of
> > searches,
> > one for each page hit, I assume it would use up
> > allot of
> > memory and do allot of copying of attributes?
> > I want to use ZCatalog for dynamic linking.
> > 
> > 
> > > > 2. The laziness of the ZCatalog search result
> > means
> > > > it's batched?
> > > Lazy sequences work by not loading the result
> > items in
> > > memory until they are actually accessed.
> > 
> > Ok, suppose I should have known that. Thanks.
> > Johan
> > 
> > 

h¥àÞ¾f¢–X¬µš)x7¯ÎŠ^¢¸!¶ÚþX¬¶Ìè¥ê+ƒùšŠYšŸùb²Ø§~ó¢—zóhrº,²š,¶Ê+3zw(v)àEéZµçeŠËl†Ûiÿùb²Û3¢—¨®æj)fjåŠËbú?Ί^jyèºw†Ûiÿùb²Û3¢—¨®æj)fjåŠËbú?Ί^


Re: [Zope-dev] ZCatalog Lazy Results

2001-02-22 Thread Johan Carlsson

> Casey Duncan <[EMAIL PROTECTED]> wrote:
> > 
> > Yes, you always get all the meta-data. However, does
> > anyone know how the "used" argument of
> > ZCatalog.searchResults works, or why you would use it?
> 
> 'used' tells you the names of the indexes which actually
> participated in the search (as distinct from those you
> asked for).

What does this meen?

Example, What's the different between:

  searchResults(used=(index1,index2), index1='kalle', index2='kaviar')

and;

  searchResults(index1='kalle', index2='kaviar')


(Are used supposed to be a tuple?)

TIA,
Johan Carlsson


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] LoginUser and Dictionaries

2001-03-06 Thread Johan Carlsson

Hi,
I'm working on a User object that will support
Groups and Groups-to-Roles mappings.

I modeled it a bit and come up with this model:
(I use Coad's constraints notion, putting constraints with the item the constrain)

User -n--n- Role
   | n
   |
   | 1
GroupRoleItem  -1- n-  Role (*same as the other role above)
   | 1 
   |
   | n
Group

To make it as simple as possible I whan to keep 
Group and GroupRoleItem in a dictionary inside the User instance.
E.g. {'groupname': ('rolename','rolename',), ... }

In my LM implementation I want to store GroupRoleItems in a SQL table
and Groups in another SQL table (which records awailable groups).

The LoginUser object should have a attribute grouproles_dict that gets
its data from the GroupRoleItems table.

Here's some code:
class GroupLoginUser(LoginUser):
...
def getGroupRoles(self):
# group_list contains the following brains from the LoginManager 
(Skinscript/SQL method):
# (brains.username)
# brains.rolename
# brains.groupname
#
groups = ()
grouproles = {}
if self.group_list:
for g in self.group_list:
if g.groupname in groups:
grouproles[g.groupname].append(g.rolename)
else:
grouproles[g.groupname] = [g.rolename]
groups = groups + (g.groupname,)
return grouproles

The GroupLoginUser is not stored persitently in my implementation,
but I like to cache the grouproles for as long as possible. 
For example I'm planning a method "getGroups" in the GroupLoginUser
which could just return grouproles.keys().

So because GroupLoginUser is a virtual dataskin I'm not sure
where I should save the grouproles. In self._v_grouproles or
as a skinscripted attribute?
E.g. WITH self.getGroupRoles() COMPUTE grouproles = RESULT


I might be thinking wrong in the model as well, so any hints and tips
for corrections are welcome.

Regards,
Johan Carlsson


¢—ƒzùšŠYb²Öh¥àÞ¿:)zŠà†Ûiÿùb²Û3¢—¨®æj)fjåŠËbú?Ί^uëÍ¡Êè²Êh²Û(¬tÌ-éܡا¥jם–+-²m§ÿåŠËlΊ^¢¸?™¨¥™©ÿ–+-Šwèÿ:)y©ç¢éÜzm§ÿåŠËlΊ^¢¸?™¨¥™©ÿ–+-Šwèÿ:)


[Zope-dev] Implementing ZPattern: Containment

2001-03-06 Thread Johan Carlsson

Hi,
How could containment be implemented with ZPatterns.

Container -n-1- ContainedItem -n-1- ContainedSubItem

I suppose there would be a Containter Specialist
containing a ContainerItem Specialist. 
But Specialists retrieve objects by IDs so there would 
also be a list of ContainerItem ID in the Container object.

Are there any other way to do it, for instance keeping a
list of object references that would be retrieve from the
ContainerItem Specialist by a attribute provider in
the Containter Specialist? But I still need the list of
IDs don't I or how else would the ContainerItem Specialist 
know what objects to return?

TIA,
Johan Carlsson
fŠ^
ëæj)eŠËY¢—ƒzüè¥ê+‚m§ÿåŠËlΊ^¢¸?™¨¥™©ÿ–+-Šwèÿ:)yׯ6‡+¢Ë)¢Ël¢±Ó0·§r‡bž^•«^vX¬¶Èm¶Ÿÿ–+-³:)zŠàþf¢–f§þX¬¶)ߣüè¥æ§ž‹§qèm¶Ÿÿ–+-³:)zŠàþf¢–f§þX¬¶)ߣüè¥


Re: [Zope-dev] Implementing ZPattern: Containment

2001-03-06 Thread Johan Carlsson

> Hi Johan,
> 
>Have a look at http://www.zope.org/Members/sspickle/DumbZPatternsExample
> 
> The best way I've found is to provide a method (or methods) in the 
> Specialist of the contained item to get ids of those instances satisfying certain 
> criteria... 
> 
> e.g., getToDoIdsForDoer( aDoer )
> 
> (the contained item keeps a reference to the id of its container.)

Thanks Steve,
I like that because the container doesn't know about it's Content,
but how does that comply to the Who I Know pattern?

TIA/Johan
h¥àÞ¾f¢–X¬µš)x7¯ÎŠ^¢¸!¶ÚþX¬¶Ìè¥ê+ƒùšŠYšŸùb²Ø§~ó¢—zóhrº,²š,¶Ê+3zw(v)àEéZµçeŠËl†Ûiÿùb²Û3¢—¨®æj)fjåŠËbú?Ί^jyèºw†Ûiÿùb²Û3¢—¨®æj)fjåŠËbú?Ί^


[Zope-dev] Re: [Zope-PTK] Announcement: CMF 1.0 beta released

2001-03-06 Thread Johan Carlsson

Tres,
The link to http://cmf.zope.org/Members/jshell/security_info.patch
seems to be broken in the http://cmf.zope.org/download/CMF-1.0beta/README.txt.

Regrads,
Johan Carlsson


> We are pleased to "release version 1.0 beta",
>  http://cmf.zope.org/download/CMF-1.0beta of the Zope Content
> Management Framework (CMF).
> 
> Please review the "release notes":../README.txt and the "known
> issues":../ISSUES.txt.
> 
> >From the README:
> 
>   What is the CMF?
> 
> The Zope Content Management Framework provides a set of
> services and content objects useful for building highly
> dynamic, content-oriented portal sites.  As packaged, the
> CMF generates a site much like the Zope.org site.  The CMF is
> intended to be easily customizable, in terms of both the
> types of content used and the policies and services it
> provides.
> 
>   Resources
> 
> * The CMF "dogbowl" site, "http://cmf.zope.org":http://cmf.zope.org.
> 
> * The mailing list, [EMAIL PROTECTED]  List information and
>   online signup are available at:
>   http://lists.zope.org/mailman/listinfo/zope-ptk.  Archives
>   of the list are at: http://lists.zope.org/pipermail/zope-ptk.
> 
> Tres.
> -- 
> ===
> Tres Seaver[EMAIL PROTECTED]
> Digital Creations "Zope Dealers"   http://www.zope.org
> 
> 
> ___
> Zope-PTK maillist  -  [EMAIL PROTECTED]
> http://lists.zope.org/mailman/listinfo/zope-ptk
> 
> See http://www.zope.org/Products/PTK/Tracker for bug reports and feature requests
> 
¢—ƒzùšŠYb²Öh¥àÞ¿:)zŠà†Ûiÿùb²Û3¢—¨®æj)fjåŠËbú?Ί^uëÍ¡Êè²Êh²Û(¬tÌ-éܡا¥jם–+-²m§ÿåŠËlΊ^¢¸?™¨¥™©ÿ–+-Šwèÿ:)y©ç¢éÜzm§ÿåŠËlΊ^¢¸?™¨¥™©ÿ–+-Šwèÿ:)


[Zope-dev] Attribute providers for Specialists

2001-03-06 Thread Johan Carlsson

Hi,
As I understand it Specialist can't get there attributes from a provider?

For instance, the LoginManager knows about roles and domains,
I would like to get this from attributes but I don't want to be able 
to get them from an attribute provider.
In that way I can make a GUI interface that doesn't know about
the storage, and it could be changes as easy as rewrite my Skinscripts.
Well almost anyway.

So is there a way to get Specialists, and specially LoginManager to 
get there attribute from a provider?

TIA/Johan Carlsson

fŠ^
ëæj)eŠËY¢—ƒzüè¥ê+‚m§ÿåŠËlΊ^¢¸?™¨¥™©ÿ–+-Šwèÿ:)yׯ6‡+¢Ë)¢Ël¢±Ó0·§r‡bž^•«^vX¬¶Èm¶Ÿÿ–+-³:)zŠàþf¢–f§þX¬¶)ߣüè¥æ§ž‹§qèm¶Ÿÿ–+-³:)zŠàþf¢–f§þX¬¶)ߣüè¥


[Zope-dev] FYI. I've removed my Base64 MIME encoding

2001-03-07 Thread Johan Carlsson

FYI. 
I've removed my Base64 MIME encoding.
Thanks to Dieter for alerting me to the problem.

Regards,
Johan Carlsson


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] Saving attributes for a DataSkin

2001-03-07 Thread Johan Carlsson

Hi,
I'm having some trouble figuring out how to write a method
and a skinscript to save attributes of a DataSkin.

Specialist is the LoginManager.

DataSkin is:

class EasyGroupUser(LoginUser):
...
def getRoles(self):
...
def getDomains(self):
...
def authenticate(self, password, request):
...

SkinScripts are:
WITH QUERY 
sql_getUserFor(username=self.id)
COMPUTE 
username, 
password, 
challenge_question, 
challenge_answer, 
admin_email

WHEN OBJECT CHANGED STORE 
password, 
challenge_question, 
challenge_answer, 
admin_email
USING
sql_changeUser(
username=self.id,
newpassword=password, 
challenge_question=challenge_question, 
challenge_answer=challenge_answer, 
admin_email=admin_email,
oldpassword=OLD['oldpassword']
)
SAVING
oldpassword = password

Current Attribute Handling:
admin_email 
Getters: SkinScript, line 1
Setters: SkinScript, line 10
Deleters: SkinScript, line 10
challenge_answer 
Getters: SkinScript, line 1
Setters: SkinScript, line 10
Deleters: SkinScript, line 10
challenge_question 
Getters: SkinScript, line 1
Setters: SkinScript, line 10
Deleters: SkinScript, line 10
password 
Getters: SkinScript, line 1
Setters: SkinScript, line 10
Deleters: SkinScript, line 10


The getter works alright, but when trying to set attributes (that
supposedly would be handle by the setter) with the following
Script (Python) I get the following error:

## Script (Python) "changeUser"
##bind container=container
##bind context=context
##bind namespace=self
##bind script=script
##bind subpath=traverse_subpath
##parameters=username,password,challenge_question,challenge_answer,admin_email
##title=
##
user = context.getItem(username)
user.password=password
user.challenge_question=challenge_question
user.challenge_answer=challenge_answer
user.admin_email=admin_email

ERROR MESSAGE:
Error Type: TypeError
Error Value: attribute-less object (assign or del)

So what am I doing wrong here?
Any clues appreciated.
TIA/Johan Carlsson



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] Saving attributes for a DataSkin

2001-03-09 Thread Johan Carlsson

> 
> Hi Johan,
> 
>Could you give a more complete traceback? It's hard to tell
> from just the error type.. 
> 
> thanks!
> -steve

Of course, here it comes.
Regards,
Johan

Traceback (innermost last):
  File /bigshare/zopeservers/Zope-2.3.0-src/lib/python/ZPublisher/Publish.py, line 
222, in publish_module
  File /bigshare/zopeservers/Zope-2.3.0-src/lib/python/ZPublisher/Publish.py, line 
187, in publish
  File /bigshare/zopeservers/Zope-2.3.0-src/lib/python/Zope/__init__.py, line 221, in 
zpublisher_exception_hook
(Object: ProviderContainer)
  File /bigshare/zopeservers/Zope-2.3.0-src/lib/python/ZPublisher/Publish.py, line 
171, in publish
  File /bigshare/zopeservers/Zope-2.3.0-src/lib/python/ZPublisher/mapply.py, line 160, 
in mapply
(Object: changeUser)
  File /bigshare/zopeservers/Zope-2.3.0-src/lib/python/ZPublisher/Publish.py, line 
112, in call_object
(Object: changeUser)
  File /bigshare/zopeservers/Zope-2.3.0-src/lib/python/Shared/DC/Scripts/Bindings.py, 
line 324, in __call__
(Object: changeUser)
  File /bigshare/zopeservers/Zope-2.3.0-src/lib/python/Shared/DC/Scripts/Bindings.py, 
line 353, in _bindAndExec
(Object: changeUser)
  File 
/bigshare/zopeservers/Zope-2.3.0-src/lib/python/Products/PythonScripts/PythonScript.py,
 line 330, in _exec
(Object: changeUser)
(Info: ({'script': , 'context': , 'container': , 'self': 
, 'traverse_subpath': []}, ('a', 'a', 'a', 'a', 'a'), 
{}, None))
  File Script (Python), line 3, in changeUser
  File 
/bigshare/zopeservers/Zope-2.3.0-src/lib/python/Products/PythonScripts/zbytecodehacks/VSExec.py,
 line 429, in __setattr__
TypeError: (see above)




> >>>>> "JC" == Johan Carlsson <[EMAIL PROTECTED]> writes:
> 
> JC> Hi, I'm having some trouble figuring out how to write a method
> JC> and a skinscript to save attributes of a DataSkin.
> 
> JC> Specialist is the LoginManager.
> 
> JC> DataSkin is:
> 
> JC> class EasyGroupUser(LoginUser): ...  def getRoles(self): ...
> JC> def getDomains(self): ...  def authenticate(self, password,
> JC> request): ...
> 
> JC> SkinScripts are: WITH QUERY sql_getUserFor(username=self.id)
> JC> COMPUTE username, password, challenge_question,
> JC> challenge_answer, admin_email
> 
> JC> WHEN OBJECT CHANGED STORE password, challenge_question,
> JC> challenge_answer, admin_email USING sql_changeUser(
> JC> username=self.id, newpassword=password,
> JC> challenge_question=challenge_question,
> JC> challenge_answer=challenge_answer, admin_email=admin_email,
> JC> oldpassword=OLD['oldpassword'] ) SAVING oldpassword = password
> 
> JC> Current Attribute Handling: admin_email Getters: SkinScript,
> JC> line 1 Setters: SkinScript, line 10 Deleters: SkinScript, line
> JC> 10 challenge_answer Getters: SkinScript, line 1 Setters:
> JC> SkinScript, line 10 Deleters: SkinScript, line 10
> JC> challenge_question Getters: SkinScript, line 1 Setters:
> JC> SkinScript, line 10 Deleters: SkinScript, line 10 password
> JC> Getters: SkinScript, line 1 Setters: SkinScript, line 10
> JC> Deleters: SkinScript, line 10
> 
> 
> JC> The getter works alright, but when trying to set attributes
> JC> (that supposedly would be handle by the setter) with the
> JC> following Script (Python) I get the following error:
> 
> JC> ## Script (Python) "changeUser" ##bind container=container
> JC> ##bind context=context ##bind namespace=self ##bind
> JC> script=script ##bind subpath=traverse_subpath
> JC> 
>##parameters=username,password,challenge_question,challenge_answer,admin_email
> JC> ##title= ## user = context.getItem(username)
> JC> user.password=password
> JC> user.challenge_question=challenge_question
> JC> user.challenge_answer=challenge_answer
> JC> user.admin_email=admin_email
> 
> JC> ERROR MESSAGE: Error Type: TypeError Error Value:
> JC> attribute-less object (assign or del)
> 
> JC> So what am I doing wrong here?  Any clues appreciated.
> JC> TIA/Johan Carlsson
> 
> 
> 
> JC> ___ Zope-Dev
> JC> maillist - [EMAIL PROTECTED]
> JC> http://lists.zope.org/mailman/listinfo/zope-dev ** No cross
> JC> posts or HTML encoding!  ** (Related lists -
> JC> http://lists.zope.org/mailman/listinfo/zope-announce
> JC> http://lists.zope.org/mailman/listinfo/zope )
> 


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] Page Templates and nested templates

2001-04-01 Thread Johan Carlsson

After playing with Page Templates I have one question/idee.

Would it be completely stupid to be able to nest Macros.
That is, you would have one MainMacroTemplate defining
several Slots/SubMacros and then make several SubMacrosTemplates
that inherents from the MainMacroTemplate, defining the Slots/SubMacros
as new Macro definitions.
This would give you an hierarcy of templates and make it possible
to factor out common stuff higher up in the hierarcy and leaving the
sub templates to handle specialisation.


Just my 25-ören,
Johan Carlsson


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] Page Templates and nested templates

2001-04-02 Thread Johan Carlsson

> There's a Tracker linked from the main ZPT Wiki page.  You should be able to
> add it there.  On the other hand, I'd like to know how exactly you've tried
> to nest macros, and how it failed for you.
> 
> Cheers,
> 
> Evan @ digicool & 4-am
> 

Here is an examples:


ID: here/master

http://xml.zope.org/namespaces/tal"
  xmlns:metal="http://xml.zope.org/namespaces/metal"
  metal:define-macro="master">
   
 sss title
 
   
   
 
   This is a macro 21
 
 
   This is a H1 Header
 
   






Now notice this if I state use-macro for the METAL statement
in the HTML-tag, all subsequent metal:define-macro statements
gets replaced with the use-macro="here/master/macros/master>"

ID: here/Page1 (version1)

http://xml.zope.org/namespaces/tal" 
xmlns:metal="http://xml.zope.org/namespaces/metal">
   
 sss title
 
   
   
 
   This is a macro 21
 
 
   This is a H1 Header
 
   



But if I instead apply the use-macro on the body and the head
this are working perfectly, subsequent define-macros in the inner
div gets turned in to use-macro="here/master/macros/body" though.

ID: here/Page1  (version2)

http://xml.zope.org/namespaces/tal" 
xmlns:metal="http://xml.zope.org/namespaces/metal">
   
 sss title
 
   
   
 
   This is a macro 21
 
 
   This is a H1 Header
 
   


 
How I would want it to work is that if a higher level
of macro is set to use-macro the subsequent level 
would remain unchanged (e.g. as define-macro) until
I explicitly change it in to use-macro. 
I would then be able to set it to any macro definition,
e.g. use-macro="here/master/macros/bodymacro" or
use-macro="/macros/" etc.

I think what would make allot of sense and that's probably how it 
supposed to work, right?

Best regards,
Johan Carlsson




___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] Page Templates: Any plan how to use PT's for I18n and browser dependant templates etc?

2001-04-02 Thread Johan Carlsson

Hi,
Are there any plan for how Page Templates would
handle Internationalization and browser dependent templates.

As fas as I can see the METAL definitions are inside the template.
That would mean one would some external service to route it
to the correct template.

For instance:

use-macro="portalskins/macros/useme"

portalskin in this case would return a template based
on the HTTP_USER_AGENT, REQUEST.portal_skin and 
HTTP_ACCEPT_LANGUAGE (and others of course).

How would this effect the page cooking and template cache?

TIA/Johan

PS. Page Templates are great but I have yet to figure out
how to use them with the "Content is folderish" pattern.



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] Page Templates: Any plan how to use PT's for I18n and browser dependant templates etc?

2001-04-03 Thread Johan Carlsson

> > How would this effect the page cooking and template cache?
> Cooking isn't affected.  You would naturally want to make your cache
> sensitive to the same REQUEST parameters as the switching script.

Hm. ok.
 
> > PS. Page Templates are great but I have yet to figure out
> > how to use them with the "Content is folderish" pattern.
> 
> You can acquire a template into a content folder, then use "here/" paths to
> access bits of content.  Is that the sort of thing you mean?

You mean like having a "global" index_html template and
tal:content="here/my_content" to get the content?
That would probably work.

Now comes the tricky thing, case I want to render with the tal tags
intact. I just tested that and they are intact after render. Jippi!

The next step I want to do is to save the template back to Zope
and extract some of the tal:content tags and save them back to 
my_content.

I noticed that I can access the macros of a METAL template
after its been cooked (or used anyway). 
Is there anyway to parse a TAL template to extract part form it,
preferably from Python?

TIA/Johan

PS. All this is for my IEMethod product which would benefit 
enormously from TAL


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] Page Templates: Any plan how to use PT's for I18n and browser dependant templates etc?

2001-04-03 Thread Johan Carlsson

> From: "Johan Carlsson" <[EMAIL PROTECTED]>
> > Now comes the tricky thing, case I want to render with the tal tags
> > intact. I just tested that and they are intact after render. Jippi!
> 
> This will be optional in ZPT 1.1, most likely.
> 
> > The next step I want to do is to save the template back to Zope
> > and extract some of the tal:content tags and save them back to
> > my_content.
> 
> Wha?  You want to parse out the rendered contents of some tags and save
> them?  Will the user be editing the rendered page somehow?

Yes. With the DHTML Editing Component I can turn element
in to editable by setting the contenteditable property while
setting all non editable elements to unselectable (to not 
mess with the current selection while using the UI).
 
> > I noticed that I can access the macros of a METAL template
> > after its been cooked (or used anyway).
> > Is there anyway to parse a TAL template to extract part form it,
> > preferably from Python?
> 
> You could use the same code that TAL itself does, I guess.  What are you
> trying to accomplish?

A WYSIWYG editor in IE5.5 based on DHTML Editing Component.

Regards,
Johan, whos apperently sleeping with the devil


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] _.min and _.max still used by ZMI

2004-01-10 Thread Johan Carlsson
Since the new security release for Zope 2.6.3 (and 2.7) the _.min and 
_.max doesn't work any more.
But they are still used by the ZMI in the following places:

OFS\dtml\properties.dtml(140): size="">
OFS\dtml\properties.dtml(152): size="">
OFS\dtml\propertyType.dtml(93): size="">
OFS\dtml\renameForm.dtml(27): "_.max(40,_.len(getId())+4)">" 
value="&dtml-id;" />

This breaks at least "multiple selection" properties.

Are there a work around for DTML files using these features?

Best Regards,
Johan Carlsson
--
Johan Carlsson  Tel: + 46 8 31 24 94
Colliberty  Mob: + 46 70 558 25 24
Torsgatan 72Email: [EMAIL PROTECTED]
SE-113 37 STOCKHOLM Skype: colliberty


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] _.min and _.max still used by ZMI

2004-01-11 Thread Johan Carlsson
Dirk wrote:
Hi Johan,

maybe the patch can fix your problem.
Thanks!



--
Johan Carlsson  Tel: + 46 8 31 24 94
Colliberty  Mob: + 46 70 558 25 24
Torsgatan 72Email: [EMAIL PROTECTED]
SE-113 37 STOCKHOLM Skype: colliberty


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )


[Zope-dev] manage_access patch

2004-03-24 Thread Johan Carlsson
Hi,
I've made a patch to manage_access (and 
AccessControl.Role.permission_settings)
that displays the current effective security
setting (something that have been bugging me
for ages).

It also uses a small javascript and disabled
property of the checkboxes (with potential
problems with old browsers that don't support
the disabled property).
So where should I send the patch, I'm not currently
active as a Zope contributor.
Regards,
Johan Carlsson


--
Johan Carlsson  Tel: + 46 8 31 24 94
Colliberty  Mob: + 46 70 558 25 24
Torsgatan 72Email: [EMAIL PROTECTED]
SE-113 37 STOCKHOLM Skype: colliberty


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )


[Zope-dev] Multi-part export files

2004-09-22 Thread Johan Carlsson
Hi Y'all,
I have currently implemented a object repository which
uses dynamic Acquisition wrapping to create an illusion
of a object hierarchy.
This means that sub object isn't contained in there parents
rather in the repository and this effectively breaks export/import
behavior and other behavior that rely in it such as CopySupport.
After doing some testing I've noticed that I can "stack"
export files in the same file by just keeping the file
open between the calls to exportFile (and the same for importFile).
In this way I could stack a number of export files in one file
(this could be used to export a set of object in a Folder in one
file so it might be useful for Zope Core as well).
Now the problem is that the import has no way to know where
to create the object, in my case I can let the repository
handle this using meta data in the objects. The repository
has a fixed structure, but in regular OFS the structure might
vary from system to system. It could be used to import all
object to the current folder, if name collision are taken care of.
Any thought on this?
Anybody done something remotely similar?
Could this be a useful feature in Zope core someway?
Best Regards,
Johan Carlsson

--
Johan Carlsson  Tel: + 46 8 31 24 94
Colliberty  Mob: + 46 70 558 25 24
Torsgatan 72Email: [EMAIL PROTECTED]
SE-113 37 STOCKHOLM
___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )


[Zope-dev] NOT operator in Unindex.

2004-09-23 Thread Johan Carlsson
Hi,
I've been hacking FieldIndex and KeywordIndex to allow it to take the 
operator not to exclude object that matches from the result.

As it seems to me it would be possible to patch the Unindex with the 
changes I've made.
Is this something that could be added to the core?

Examples of special not-enabled indexes:
http://zope.org/Members/Colliberty/Easy%20Pieces/EasyIndexes/EasyIndexes-0-0-1.tgz 

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] NOT operator in Unindex.

2004-09-23 Thread Johan Carlsson
Andreas Jung wrote:
Why don't you use AdvancedQuery+ManageableIndes by DM?
Sure. Why would that be preferred?
And is there any chance of AdvancedQuery+ManageableIndes will
make it to the Zope Core?
My exampel extends Field- and KeywordIndex and any other index
based on Unindex without changing backward compatability.
I don't see a reason why this couldn't be included to the
Zope Core in a short term.
Regards,
Johan Carlsson
--
Johan Carlsson  Tel: + 46 8 31 24 94
Colliberty  Mob: + 46 70 558 25 24
Torsgatan 72Email: [EMAIL PROTECTED]
SE-113 37 STOCKHOLM
___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] serving BLOBs

2004-10-11 Thread Johan Carlsson
Alan Milligan wrote:
Hi,
I know serving large BLOBs is rather frowned up using Z2, but I have a
requirement to use the zope security machinery prior to serving a blob
circa 500Mb.
I thought I'd just wrap it in an ExternalFile and it would simply stream
to the client.  In fact I was even anticipating taking advantage of
chunked transfer encoding for HTTP1.1 clients.
However, I'm getting out of memory exceptions thrown by the server.
This would indicate that no intermediate buffer flushing is occuring at 
all!

What am I missing?
I've looked at the code of the latest release of ExternalFile
and I can't find the new streming interface being used at all?
I'm also intrested in this, but I haven't had the time to as
anyone about it, yet.
Regards,
Johan
PS. I'm cc:ing [EMAIL PROTECTED] because I think this is more of
an user issue.
--
Johan Carlsson  Tel: + 46 8 31 24 94
Colliberty  Mob: + 46 70 558 25 24
Torsgatan 72Email: [EMAIL PROTECTED]
SE-113 37 STOCKHOLM
___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Re: serving BLOBs

2004-10-11 Thread Johan Carlsson
What exactly is the filestream_iterator that the FileCacheManager uses?
As I understand it this is a new feature?
Johan
--
Johan Carlsson  Tel: + 46 8 31 24 94
Colliberty  Mob: + 46 70 558 25 24
Torsgatan 72Email: [EMAIL PROTECTED]
SE-113 37 STOCKHOLM
___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Re: serving BLOBs

2004-10-11 Thread Johan Carlsson
Johan Carlsson wrote:
What exactly is the filestream_iterator that the FileCacheManager uses?
As I understand it this is a new feature?
Of course the answer was in Chris' presentation you just sent :-)
--
Johan Carlsson  Tel: + 46 8 31 24 94
Colliberty  Mob: + 46 70 558 25 24
Torsgatan 72Email: [EMAIL PROTECTED]
SE-113 37 STOCKHOLM
___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Re: serving BLOBs

2004-10-11 Thread Johan Carlsson
Tres Seaver wrote:
Johan Carlsson wrote:
What exactly is the filestream_iterator that the FileCacheManager uses?
As I understand it this is a new feature?

For Zope >= 2.7.2, ZPublisher defines an interface, 
ZPublisher.Iterators.IStreamIterator.  An application can return an 
object implementing this interface to the publisher, instead of a 
string;  if so, the publisher hands it directly to medusa, and frees up 
the application thread / database connection.  medusa will use the 
iterator to send the response back to the user, without first converting 
it to a single big string.
That's actually brilliant.
If I understand ExternalFile could benefit from using the 
IStreamIterator interface instead of RESPONSE.write?
For instance, for someone that don't want to store blobs
in the database temporarily :-)

Johan
--
Johan Carlsson  Tel: + 46 8 31 24 94
Colliberty  Mob: + 46 70 558 25 24
Torsgatan 72Email: [EMAIL PROTECTED]
SE-113 37 STOCKHOLM
___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )


[Zope-dev] RFC: Date property requiers valid date (no more)

2001-10-03 Thread Johan Carlsson

Hi,
We currently want to use date-properties in the regular property sheet.
The current date-property doesn't accept an empty value.
We want to be able to submit an empty string and set a NullDate value
indicating. Also a NullDate value should return an empty string when the
"manage_propertiesForm" is rendered, e.g. showing an empty field.

We have currently chosen a empty string "", to represent the NullDate value.
(We haven't found any NullDate representation in DateTime and have concluded
that it doesn't exist?)
Choosing None as the NullDate value would have been preferred but it
generates
issues with the rendering of  "manage_propertiesForm".


Question:

Is there anything better then an empty string for the NullDate value?

Best Regards,
Johan Carlsson
www.torped.se


[Here's our hot-patch]

from ZPublisher import Converters

def fixedfield2date(v):
print "Fixed field2date conversion", fixedfield2date, v
from DateTime import DateTime
if hasattr(v,'read'): v=v.read()
else: v=str(v)
if v=='':
   return v
return DateTime(v)

Converters.field2date = fixedfield2date
Converters.type_converters['date'] = fixedfield2date

print "ZPublisher.Converters.field2date patched."




___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] manage_changePropertyTypes

2003-07-13 Thread Johan Carlsson
Has any work been done on the manage_changePropertyTypes interface of 
the PropertyManager? It's appearently pending community input.

I have found and fixed a couple of bugs.

--
Johan Carlsson  Tel: + 46 8 31 24 94
Colliberty  Mob: + 46 70 558 25 24
Torsgatan 72Email: [EMAIL PROTECTED]
SE-113 37 STOCKHOLM


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )


[Zope-dev] Suggestion for DT_In

2003-07-18 Thread Johan Carlsson


Hi,
I found a small change that can solve a problem with
sort_expr in dtml-in.
There is no way to let the dtml-in not sort when
using sort_expr. This would be a good thing if you
want to be able to choose the default order of
the sequence:
A small patch to DT_In enables the dtml-in to
ignore sorting if the result of the expression is None.
if self.sort_expr is not None:
self.sort=self.sort_expr.eval(md)
-   sequence=self.sort_sequence(sequence, md)
-   elif self.sort is not None:
+   if self.sort is not None:
sequence=self.sort_sequence(sequence, md)
This patch needs to be done in to places:
renderwb and renderwob as far as I can see.
--
Johan Carlsson  Tel: + 46 8 31 24 94
Colliberty  Mob: + 46 70 558 25 24
Torsgatan 72Email: [EMAIL PROTECTED]
SE-113 37 STOCKHOLM


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )


[Zope-dev] unrestrictedTraverse unable to access the root object

2001-11-09 Thread Johan Carlsson [Torped]

Hi all,
The collector seems to still be offline?

I just realized that the unrestrictedTraverse returns self
for the empty-string url: ''
I did expect it to return the root object because the empty-string
is equal to the path tuple ('',).

Is there any reason for the current behaviour?
Does anybody know any bad things that might happen if I
change this behaviour?

Best Regards,
Johan Carlsson


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] RFC: Date property requiers valid date (no more)

2001-10-07 Thread Johan Carlsson [Torped]

> Johan -
> 
> I have done a similiar hotfix by using None - which I think is a
> better alternative than ''.
> 
> If you want to see all of the source, download the following Product,
> http://www.zope.org/Members/natsukashi/Products/CMFPropertyCore, and
> look inside the file CMFPropertyCore/LinkPropertyManager.py
> 

Thanks Joseph,
Great input.
Regards,
Johan Carlsson



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] The future of ZPatterns and LoginManager

2002-03-10 Thread Johan Carlsson [Torped]

Hi everybody,
(I did ask this question to the ZPatterns list, but without any answer. So 
I hope one better luck here.)

I finally got the opportunity to use ZPatterns in a project
and am quite please with the result (after the mandatory wrestling :)
Anyway, I would like to use both ZPatterns again, as well as LoginManager,
but I feel somewhat of a doubt what they will be around in the future and 
in Zope 3.
So, are they?
Or what I really want to know, is it safe to base my applications on ZP 
and/or LM or is it
something I'm going to regret?
Best Regards,
Johan Carlsson




torped strategi och kommunikation ab
johan carlsson
[EMAIL PROTECTED]
birkagatan 9
113 36 stockholm
västmannagatan 67
http://www.torped.se
http://easypublisher.torped.se


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] range:min bug in ZCatalogs fo Zope 2.3.2

2002-03-21 Thread Johan Carlsson [Torped]

Hi,
I have encountered a strange problem with ZCatalogs in Zope 2.3.2.

We have objects having DateTime arguments effective_date and expiration_date
that gets indexed in different ZCatalogs. (The index is a field index).

We then tries to get all published objects that have not yet been archived:

now=_.DateTime()
Service.searchResults(
 effective_date =now, effective_date_usage='range:max'
 , expiration_date =now, expiration_date_usage='range:min'
)


Now this works fine, until one day when result searchResults returns an 
empty result list
which is not expected.
It seems to be that some days the range:min statement doesn't work correctly.
(I tried with different range:* combinations and the only thing I found not 
working
is the range:min statement (some days).

If I instead use a different value for now:

now2 = _.DateTime(now.Date())  # now.Date()  returns somethong like 
"2002/03/21" which in turn makes the now2 equal to the DateTime value 
"2002/03/21 00:00:000 GMT+1" (GMT+1 is my local TimeZone)

Now using now2 in:

Service.searchResults(
 effective_date =now, effective_date_usage='range:max'
 , expiration_date =now2, expiration_date_usage='range:min'
)

will always result in a list (all though it gets quantized to midnight the 
resulting list will be somewhat biased).

What I don't seem to understand is that DateTime() and 
DateTime(DateTime().Date) gets so different results.

Have anyone seen something like this before?

Best Regards,
Johan Carlsson




-- 
Johan Carlsson, Torped AB

http://www.torped.se -- http://easypublisher.torped.se


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] Re: [Zope] range:min bug in ZCatalogs fo Zope 2.3.2

2002-03-22 Thread Johan Carlsson [Torped]

At 06:08 2002-03-21 -0500, you wrote:
>Try to reproduce the same problem under 2.5.X.
>Or upgrade to 2.5.X.
>Andreas

The problem is reproducible in Zope 2.3.2 but doesn't appear in Zope 2.5.0.

What I have tested is a OOBTree with DateTime values (or None) as keys and
IITreeSet or integers as values (as in the case with FieldIndexes).
The OOBTrees items method gets called with one argument (a DateTime)
resulting in a list of sets containing items with keys larger than the passed
DateTime value.
When tested on Zope 2.3.2 some dates result in a empty list.

So, upgrading our software to 2.5.0 would take some time and I need
a quick fix. Would it be possible to run the BTree code from
Zope 2.5.0 in Zope 2.3.2?

Best Regards,
Johan Carlsson





> > Hi,
> > I have encountered a strange problem with ZCatalogs in Zope 2.3.2.
> >
> > We have objects having DateTime arguments effective_date and
>expiration_date
> > that gets indexed in different ZCatalogs. (The index is a field index).
> >
> > We then tries to get all published objects that have not yet been
>archived:
> >
> > now=_.DateTime()
> > Service.searchResults(
> >  effective_date =now, effective_date_usage='range:max'
> >  , expiration_date =now, expiration_date_usage='range:min'
> > )
> >
> >
> > Now this works fine, until one day when result searchResults returns an
> > empty result list
> > which is not expected.
> > It seems to be that some days the range:min statement doesn't work
>correctly.
> > (I tried with different range:* combinations and the only thing I found
>not
> > working
> > is the range:min statement (some days).
> >
> > If I instead use a different value for now:
> >
> > now2 = _.DateTime(now.Date())  # now.Date()  returns somethong like
> > "2002/03/21" which in turn makes the now2 equal to the DateTime value
> > "2002/03/21 00:00:000 GMT+1" (GMT+1 is my local TimeZone)
> >
> > Now using now2 in:
> >
> > Service.searchResults(
> >  effective_date =now, effective_date_usage='range:max'
> >  , expiration_date =now2, expiration_date_usage='range:min'
> > )
> >
> > will always result in a list (all though it gets quantized to midnight the
> > resulting list will be somewhat biased).
> >
> > What I don't seem to understand is that DateTime() and
> > DateTime(DateTime().Date) gets so different results.
> >
> > Have anyone seen something like this before?
> >
> > Best Regards,
> > Johan Carlsson
> >
> >
> >
> >
> > --
> > Johan Carlsson, Torped AB
> >
> > http://www.torped.se -- http://easypublisher.torped.se
> >
> >
> > ___
> > Zope maillist  -  [EMAIL PROTECTED]
> > http://lists.zope.org/mailman/listinfo/zope
> > **   No cross posts or HTML encoding!  **
> > (Related lists -
> >  http://lists.zope.org/mailman/listinfo/zope-announce
> >  http://lists.zope.org/mailman/listinfo/zope-dev )
> >


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] Re: [Zope] range:min bug in ZCatalogs fo Zope 2.3.2

2002-03-22 Thread Johan Carlsson [Torped]

At 05:45 2002-03-22 -0500, you wrote:
>BTrees were rewritten in 2.4.0 so I assume you will run into
>problems. Please check the release notes for the latest 2.3.X
>version if there were some fixes for your problem since 2.3.2.
>
>-aj



The interface seems to be equal with the old one?

Comparing the Components/BTree folder there doesn't seem to be
an enormous amount of changes.
Has it been rewritten or has it only been fixed?
Reading the Change files from 2.4.0 and forth indicates 3 bug fixes related 
to BTree?
It seems to be possible to compile the BTree extention module and just 
replace that.
Are there any "don't thats" I should be where of? Like changes in python 
extensions
between Python 1.5.2 and Python 2.1.2?

Regards,
Johan Carlsson


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] Re: [Zope] range:min bug in ZCatalogs fo Zope 2.3.2

2002-03-25 Thread Johan Carlsson [Torped]

At 05:45 2002-03-22 -0500, Andreas Jung wrote:
>BTrees were rewritten in 2.4.0 so I assume you will run into
>problems. Please check the release notes for the latest 2.3.X
>version if there were some fixes for your problem since 2.3.2.
>
>-aj

Problem solved by replacing BTree with Z 2.5.0 version.

Thanks,
Johan Carlsson




___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] ts_regex in Zope 2.5.1

2002-04-25 Thread Johan Carlsson [Torped]

Hi,

It ts_regex that comes with Zope 2.5.1 seems to rely on regex.
Is re thread safe?

Also, Plugins from ZPatterns uses ts_regex, is there a later version
of Plugins that dones use it?

Thanks in advance,
Johan Carlsson



-- 
Torped Strategi och Kommunikation AB
Johan Carlsson -- [EMAIL PROTECTED]

Birkagatan 9   -- SE-113 36  Stockholm   -- Sweden
Phone +46-(0)8-32 31 23   -- Fax +46-(0)8-32 31 83   -- Mobil +46-(0)70-558 
25 24

http://www.torped.se -- http://easypublisher.torped.se



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] What happend to sessionapi-prog.stx?

2002-04-27 Thread Johan Carlsson [Torped]


What happend to sessionapi-prog.stx?
I found it in the http://cvs.zope.org/Products/Sessions/help/Attic/

Is there a replacement?

Regards,
Johan


-- 
Torped Strategi och Kommunikation AB
Johan Carlsson
[EMAIL PROTECTED]

Mail:
Birkagatan 9
SE-113 36  Stockholm
Sweden

Visit:
Västmannagatan 67, Stockholm, Sweden

Phone +46-(0)8-32 31 23
Fax +46-(0)8-32 31 83
Mobil +46-(0)70-558 25 24
http://www.torped.se
http://easypublisher.torped.se



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] NOT in Field and Keyword Indexes

2002-07-06 Thread Johan Carlsson [Torped]


Hi,
I'm messing around with a Plugable Index that can take an NOT operator.
(regular field/keyword indexes can just do AND or OR (and of course range).

I intend to release my code on zope.org, but first I though I'd write some 
unit tests.

EasyKeywordIndex (as it's currently called) extends keywordIndex and adds
three operators 'not', 'notor', 'notand'. ('not' == 'notor')

It works by first doing range (i.a.), then doing AND/OR and finally (an the 
only new stuff)
diff it agains all indexed documents.

To be able to make the diff at the end I have added a index attribute 
self._all that is
a IISet of all indexed documentIds.

Now to the question(s): (I allready answered one of the writting this 
e-mail ;-)

If a document doesn't have the attribute it's index it still is included in 
the index
(as an unindex entry).
Why does it work this way, I would have thought that if a document doesn't
have the indexing attribute it should be not be included in the index?
This would free up allot of references to documents that will never be 
search through the
index, at least in an application where the ZCatalog has allot of indexes 
that index
allot of classes with quite different types of meta-data.

For the NOT-aware index it would mean a great different.
Instead of returning all documentIds that ever been through the ZCatalog
that doesn't match, it would return a much smaller result list.
Of course the not index will most probably be combined with other
query operators (such as a field of meta_data in my case) but returning
a smaller result list would make not indexes more effective, right?

I love to get this accepted as a patch for the unindex, I might also have
a look at TextIndex and PathIndex, while I'm at it :-)

(
   TextIndexes does partially do NOT with the 'andnot', 'ornot' opertators, but
   they require that the first search argument is not not (e.g. "first AND 
NOT second",
   not "NOT first AND second")
)

Best Regards,
Johan Carlsson



-- 
Torped Strategi och Kommunikation AB
Johan Carlsson
[EMAIL PROTECTED]

Mail:
Birkagatan 9
SE-113 36  Stockholm
Sweden

Visit:
Västmannagatan 67, Stockholm, Sweden

Phone +46-(0)8-32 31 23
Fax +46-(0)8-32 31 83
Mobil +46-(0)70-558 25 24
http://www.torped.se
http://www.easypublisher.com



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] NOT in Field and Keyword Indexes

2002-07-06 Thread Johan Carlsson [Torped]

At 11:04 2002-07-06 +0200, Johan Carlsson [Torped] said:

>I intend to release my code on zope.org, but first I though I'd write some 
>unit tests.

Ok, writing the UnitTest took more time that writing the Index :-)

Here it is any way:

http://www.zope.org/Members/johanc/EasyIndexes

Usage:

Not 'a' in foo:

 record = { 'foo' : { 'query'  : ['a']
, 'operator' : 'not'
}
  }


Not ( 'b' or 'e' ) in foo:

 record = { 'foo' : { 'query'  : ['b','e']
, 'operator' : 'notor'
}
  }


Not ( 'b' and 'e' ) in foo:

 record = { 'foo' : { 'query'  : ['b','e']
, 'operator' : 'notand'
}
  }




-- 
Torped Strategi och Kommunikation AB
Johan Carlsson
[EMAIL PROTECTED]

Mail:
Birkagatan 9
SE-113 36  Stockholm
Sweden

Visit:
Västmannagatan 67, Stockholm, Sweden

Phone +46-(0)8-32 31 23
Fax +46-(0)8-32 31 83
Mobil +46-(0)70-558 25 24
http://www.torped.se
http://www.easypublisher.com



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] __record_schema__ of Brains (Was: Record.pyd)

2002-08-09 Thread Johan Carlsson [Torped]


Hi,
I'm back on the Brain track :-)
What function does the __record_schema__ attribute of the Brains have?

Does it do anything else when provide the has_key feature?
 def has_key(self, key):
 return self.__record_schema__.has_key(key)


Best Regards,
Johan Carlsson




-- 
Torped Strategi och Kommunikation AB
Johan Carlsson
[EMAIL PROTECTED]

Mail:
Birkagatan 9
SE-113 36  Stockholm
Sweden

Visit:
Västmannagatan 67, Stockholm, Sweden

Phone +46-(0)8-32 31 23
Fax +46-(0)8-32 31 83
Mobil +46-(0)70-558 25 24
http://www.torped.se
http://www.easypublisher.com


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] __record_schema__ of Brains (Was: Record.pyd)

2002-08-10 Thread Johan Carlsson [Torped]

At 08:59 2002-08-09 -0400, Casey Duncan said:
>__record_schema__ is simply a dictionary which maps field names to column
>positions (ints) so that the record knows the index of each field in the
>record tuples.
>
>See line 154 of Catalog.py to see how it is initialized to the Metadata 
>schema
>plus a few extra columns for catalog rid and scores.


Hi Casey (and zope-dev),
Thanks!
After some experimenting I realized that :-)

One of the reasons I was because I am thinking about
how to implement a "SELECT col1 as 'name', ... "type
of feature for ZCatalogs.

I'm not entirely sure it's an good idea to start with,  but
I'm thinking in the line of large ZCatalogs (by large I mean
allot of columns in the self.data structure).
If all columns are copied the brains would grow larger as well
and by selecting explicitly which columns should be copied to
the brain they would be lighter.

Now that I understand how the data tuples are copied to the brain
I'm not at all sure adding a filter when copying the tuple will optimize
thing, because of the overhead in the filter process.

(The way that I "solved" the group/calc part of my "project", I don't think
it will lead to memory bloat. I'm going to implement a LacyGroupMap
which take an extra parameter (a list of IISet). Each brain created
in the LacyMap will have methods for calculations directly on the self.data
in the Catalog. The data it self will not be stored.
There will most probably be a pre calculate method that calculate all
variables that are applicable and caches the result.)

One way to reduce memory consumption in wide Catalogs would be
to have LacyBrains (vertical lacyness, there might be reasons
why that would be a bad idea, which I'm not aware of)

Another way would be to have multiple data attributes in the Catalog, like
tables, and to join the tuples from them with a "from table1, table2" 
statement.
In this way it would be possible to control the width of the brains.
It would also be possible for the object indexing it self to tell the catalog
in which "tables" it should store meta data.

There have been some proposals (ObjectHub et al) which I read some
time ago. I didn't feel then that we what I was looking for.
Please tell me if there's been any proposals or discussions regarding this.

Regards,
Johan Carlsson




-- 
Torped Strategi och Kommunikation AB
Johan Carlsson
[EMAIL PROTECTED]

Mail:
Birkagatan 9
SE-113 36  Stockholm
Sweden

Visit:
Västmannagatan 67, Stockholm, Sweden

Phone +46-(0)8-32 31 23
Fax +46-(0)8-32 31 83
Mobil +46-(0)70-558 25 24
http://www.torped.se
http://www.easypublisher.com


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] __record_schema__ of Brains (Was: Record.pyd)

2002-08-11 Thread Johan Carlsson [Torped]

At 21:28 2002-08-10 -0400, Casey Duncan said:
>On Saturday 10 August 2002 11:25 am, Johan Carlsson [Torped] wrote:
> > Now that I understand how the data tuples are copied to the brain
> > I'm not at all sure adding a filter when copying the tuple will optimize
> > thing, because of the overhead in the filter process.
>
>This occurs lazily so the savings would be heavily dependant on the
>application. For most web apps presenting small batches of records, the
>savings in limiting columns returned would be pretty minimal.

But there must be some though implementing Record.pyd i C, but off course
I suppose Record.pyd was first used for ZSQL?

An easy filter would be to let __record_schema__ control which columns to
save, as it works to day __record_schema__  must point on a sequence starting
with 0, so I can't specify indexes into the tuple like this:

__record_schema__= {'hey':12, 'dude': 22}

Maybe this is "easy" to change in the record.pyd, or I just implement it
in a special brain base class?

After revisited Record.c I realized that the tuple from the catalogs self.data
is stored as a tuple (or as a C-array I suppose?) in a Record or as attributes
depending on what you provide to the constructor.
I suppose coping data to a C-array is much faster than creating
attributes on each brain, but if the array is large and the number attributes
needed to be set is small it might be the other way around.
I have no idea where they would break even.

Maybe I just will settle with having two different brain base classes and use
one that suits the current need.

>The general usage is to put a minimal set of columns in metadata, only enough
>to create a results page and load the objects in cases where either large,
>dynamic or otherwise arbitrary data elements are needed.

Yes, and that is somewhat restricting.
My current applications use several different catalogs to get the
width of the meta_data down. The downside of this approach  is
that I end up with allot of catalogs and that it's a multitude time more
things to do for management, e.g. I must reindex all catalogs instead
of just one.

My primary goals are:
1. Get a general ZCatalog that can be used for all ZCatalog requirement 
(not only site searches),
2. Implement feature that removes the need for external RDBS (for instance
report generation is hard with ZCatalogs because of the lack of 
grouping/statistics).
3. Make ZCatalogs easier to manage, for instance the need of updating 
indexes and meta_data
definitions every time you change your applications data structure is 
annoying, especially at
development time. Objects could tell the ZCatalog which meta_data and 
indexes it wants removing
the need to manually add them. Off course you will need to clean up the 
ZCatalog from time to time.


> > (The way that I "solved" the group/calc part of my "project", I don't think
> > it will lead to memory bloat. I'm going to implement a LacyGroupMap
> > which take an extra parameter (a list of IISet). Each brain created
> > in the LacyMap will have methods for calculations directly on the self.data
> > in the Catalog. The data it self will not be stored.
> > There will most probably be a pre calculate method that calculate all
> > variables that are applicable and caches the result.)
>
>Sounds like a pretty good solution. However, I would be hesitant in creating
>direct dependancies on the internal Catalog data structures if you can help
>it (sometimes you can't though).

I could "soften" the dependency by providing the catalog with an interface for
calculations and give the brain an reference to the catalog it self and
use the interface on that reference.


> > One way to reduce memory consumption in wide Catalogs would be
> > to have LacyBrains (vertical lacyness, there might be reasons
> > why that would be a bad idea, which I'm not aware of)
>
>That would pretty much require a rewrite of the Catalog as the data 
>structures
>would need to be completely different. It would introduce significant
>database overhead since each metadata field would need to be loaded
>individually. I think that would negate whatever performance benefit metadata
>might have over simply loading the objects.

I'm not sure that it would be necessary to change the data structure, the 
brain could
use the same method as the LacyMap uses to load the data.
But LacyBrain would need to save all applicable data at once to be efficient.
The different would be that the brain will not fetch any data before the first
attribute has been called. When the first is called all applicable data will
be copied to the attribute according to __record_schema__.

This would probably not be more efficient for regular use of brains, but for
calculated group brains they wouldn&#x

[Zope-dev] PythonWin/Textpad, external import of Zope module andPersistence

2002-08-14 Thread Johan Carlsson [Torped]


Hi,
I'm trying to setup to run with either TextPad, which can run external 
program like python scripts
and then parse the result and making Traceback lines linked to the 
line/file where the error occurred.
Or try using Python which has an build in debugger which I like to be able 
to use.

The first problem I encounter in both scenarios is that when a file "import 
Globals"
which in its turn "from Persistence import Persistent", this fails.
Mostly because Persistence is "hot patched" by ZODB.
Is there any smart way to setup a "virtual Zope" environment without 
importing Zope
(which mounts the Data.fs) or by importing Zope by in a light way without 
mounting
a storage or just mounting a lights storage.
The only thing I want to do in this first phase is to be able to make 
syntax/sanity checks.

Regards,
Johan Carlsson


-- 
Torped Strategi och Kommunikation AB
Johan Carlsson
[EMAIL PROTECTED]

Mail:
Birkagatan 9
SE-113 36  Stockholm
Sweden

Visit:
Västmannagatan 67, Stockholm, Sweden

Phone +46-(0)8-32 31 23
Fax +46-(0)8-32 31 83
Mobil +46-(0)70-558 25 24
http://www.torped.se
http://www.easypublisher.com


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] PythonWin/Textpad, external import of Zope module and Persistence

2002-08-14 Thread Johan Carlsson [Torped]


>>
>> > The only thing I want to do in this first phase is to be able to make
>> > syntax/sanity checks.
>> >
>>
>>I use something like this for writing and testing external methods, 
>>having TextPad run the same python zope uses:


Thanks for you tips.

Here's another one I just published on the Zope.org.

Textpad tool for parsing Stupid Log files to make traceback print outs 
clickable

Additional details:
TextPad from Helios Software Solutions (http://textpad.com) is an excellent 
tool for working with Python and Zope-files. Besides support for text 
coloring of common Python and Zope syntaxes it is possible to setup "Tools" 
that run a program or a script. The output from such a execution can be 
conneced to a RegExp that makes lines hyperlinks to Files and Lines 
according to the output.

http://www.zope.org/Memebers

http://www.zope.org/Members/johanc/Tips_and_HowTos/textpad_tooltips_howto

Regards,
Johan Carlsson


-- 
Torped Strategi och Kommunikation AB
Johan Carlsson
[EMAIL PROTECTED]

Mail:
Birkagatan 9
SE-113 36  Stockholm
Sweden

Visit:
Västmannagatan 67, Stockholm, Sweden

Phone +46-(0)8-32 31 23
Fax +46-(0)8-32 31 83
Mobil +46-(0)70-558 25 24
http://www.torped.se
http://www.easypublisher.com


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] to __of__ or not to __of__ ?

2002-08-15 Thread Johan Carlsson [Torped]


>At 23:38 2002-08-14 -0400, Casey Duncan said:
>>The Item class mixes in Traversable, which is probably responsible for 
>>making
>>this work TTW. It also gives you a bunch of other stuff that many Zope
>>classes need, like DAV support, copy support, ZMI tab support and security.
>>It doen't mix-in acquisition tho.
>>
>>If you need support for acquistion machinery (including __of__ which creates
>>wrappers), then you need to mix-in Acquisition.Implicit. The SimpleItem 
>>class
>>mixes this and Persistence in for you (along with Item), so many Zope 
>>classes
>>derive form SimpleItem. You need Persistence to store instances of your 
>>class
>>in the ZODB, and implicit acquisition is the standard for Zope objects.
>>
>>In short I would recommend mixing in SimpleItem or you may find that your
>>objects are not stored properly in the ZODB.
>>
>>-Casey


You also might want to wrap the object before returning them,
because the are stored in _item and not in the AixtraTableProduct.

 def getItem(self,key): #{{{
 "returns item"
 data = self._items
 if data.has_key(key):
 item = self._items[key]
 if not hasattr(item,'key'):
 setattr(item,'key',key)
     return item.__of__(self)  <--- wrap the item before returned

Regards,
Johan Carlsson




-- 
Torped Strategi och Kommunikation AB
Johan Carlsson
[EMAIL PROTECTED]

Mail:
Birkagatan 9
SE-113 36  Stockholm
Sweden

Visit:
Västmannagatan 67, Stockholm, Sweden

Phone +46-(0)8-32 31 23
Fax +46-(0)8-32 31 83
Mobil +46-(0)70-558 25 24
http://www.torped.se
http://www.easypublisher.com


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] PythonWin/Textpad, external import of Zope module and Persistence

2002-08-15 Thread Johan Carlsson [Torped]

At 10:54 2002-08-15 +0100, Chris Withers wrote:
>Johan Carlsson [Torped] wrote:
>>I'm trying to setup to run with either TextPad, which can run external 
>>program like python scripts
>>and then parse the result and making Traceback lines linked to the 
>>line/file where the error occurred.
>
>No sure exactly what you're trying to do here, can you privde more detail?

Well, I solved "the problem" another way, when I realized that I could parse
the Stupid Log File and make traceback's clickable in that file:

I added a small python script that only gives me the latest stuff in the SLF,
and it works quite nice. Now when I get an error I just press CTRL-1 inside
Textpad and I get the traceback, click on the error rows and it will 
automatically
open the correct file and scroll to the row where the error occured.

For anyone using TextPad on Windows this should quite a time saver.
(I know that I forgot to implement a check for if the SLF has been reseted,
something my Zope start-up script does everytime I restart the server.

http://www.zope.org/Members/johanc/Tips_and_HowTos/textpad_tooltips_howto

It's almost like having a RAD tool for Zope. Well not really, but it's an 
improvement.


It should also be possible to make a small script that takes a input file
with REQUEST information and then make the HTTP request to the development 
server
and return any traceback messages from the reply to TextPad.
(SLF only shows error messages when a product is refreshed, this way it 
should be
possible to retrieve traceback from the running code.

(Interactive debugging has to wait, but in Windows it would be terrific to 
use PythonWin
for the task. But starting Zope from within PythonWin usually has the effect of
PythonWin hangling. I might be because I have a really slow laptop :-)

>>Or try using Python which has an build in debugger which I like to be 
>>able to use.
>>The first problem I encounter in both scenarios is that when a file 
>>"import Globals"
>>which in its turn "from Persistence import Persistent", this fails.
>>Mostly because Persistence is "hot patched" by ZODB.
>>Is there any smart way to setup a "virtual Zope" environment without 
>>importing Zope
>>(which mounts the Data.fs) or by importing Zope by in a light way without 
>>mounting
>>a storage or just mounting a lights storage.
>
>'import Zope' is the only sane thing I can think you'd want to do. Zope 
>has lots of magic that happens when you do that, and unless you do that, 
>things won't behave as you expect.
>You will need to mount the ZODB, but if you use ZEO then this isn't a 
>problem as your webserver can mount the same storage.

I think I have a look at how unit test does this, when I have the time. It 
would probably solve my problems.
Running UnitTest from within TextPad or PythonWin would be a nice way to 
develop thing in.
(Unfortunately I'm not up in speed with writing UnitTests)

Thanks.
Johan

>cheers,
>Chris

-- 
Torped Strategi och Kommunikation AB
Johan Carlsson
[EMAIL PROTECTED]

Mail:
Birkagatan 9
SE-113 36  Stockholm
Sweden

Visit:
Västmannagatan 67, Stockholm, Sweden

Phone +46-(0)8-32 31 23
Fax +46-(0)8-32 31 83
Mobil +46-(0)70-558 25 24
http://www.torped.se
http://www.easypublisher.com


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] Proxy Object / __getattr__ / Acquisition

2002-08-29 Thread Johan Carlsson [Torped]

At 14:28 2002-08-29 -0700, [EMAIL PROTECTED] said:
>I am trying to implement a proxy class (specifically for the purposes of
>multi-versioned document objects (folderish proxies that contain the object

Hi Sean,
We've been "stealing" some code from CMFCore.Skinnable to
do similar things (multi-language objects):
Skinnable gets the skins when the objects is being wrapped (e.g.
in the objects __of__ method) and overrides __getattr__ which
uses the skins or falls back to an unbound superGetAttr method
that points to the inherited __getattr__.
(The superGetAttr have pussled us because it seams like superGetAttr is None,
but everything still work as expected.)

We replace the skin with a VeryTinyDataWrapper which (of course) implements 
Acquisition.Implicit.

Would this work better that the way your doing it?
We currently implementing this so I don't know for sure that it
is faster, but it's from CMF (a key part to) so it shouldn't be to slow or?



 def setupCurrentLanguageData(self):
 #the request part is a rest from Skinnable, I don't think it can 
be removed.
 request=self.request
 #replace this with anything that returns
 lang_code=self.EasyLanguageService.getCurrentLanguage()
 ob = self._current_language.get(lang_code, VerySmallData())
 self._v_c_language = (request, ob, {})

 def __getattr__(self, name, marker=None):
 # OK, see if we can find the language service:
 if not name.startswith('_') and not name.startswith('aq_'):
 cl = self._v_c_language
 if cl is not None:
 request, ob, ignore = cl
 if not ignore.has_key(name):
 subob = getattr(ob, name, _marker)
 if subob is not _marker:
 # Return it in context of self, forgetting
 # its location and acting as if it were located
 # in self.
 return aq_base(subob)
 else:
 ignore[name] = 1
 if superGetAttr is None:
 raise AttributeError, name
 return superGetAttr(self, name)

 def __of__(self, parent):
 '''
 Sneakily sets up the current language then returns the wrapper
 that Acquisition.Implicit.__of__() would return.
 '''
 w_self = ImplicitAcquisitionWrapper(aq_base(self), parent)
 try:
 w_self.setupCurrentLanguageData()
 except:
 # This shouldn't happen, even if the requested current language
 # does not exist.
 import sys
 from zLOG import LOG, ERROR
 LOG('CMFCore', ERROR, 'Unable to setupCurrentLanguageData()',
     error=sys.exc_info())
 return w_self

Regards,
Johan Carlsson


-- 
Torped Strategi och Kommunikation AB
Johan Carlsson
[EMAIL PROTECTED]

Mail:
Birkagatan 9
SE-113 36  Stockholm
Sweden

Visit:
Västmannagatan 67, Stockholm, Sweden

Phone +46-(0)8-32 31 23
Fax +46-(0)8-32 31 83
Mobil +46-(0)70-558 25 24
http://www.torped.se
http://www.easypublisher.com


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] WebDAV Redirects or overriding IDs duing creation

2002-09-19 Thread Johan Carlsson [Torped]


Hi gurus,
I'll try this question on this list as well (a part form [EMAIL PROTECTED]).

Is it possible to make a redirect during a WebDAV request.
For instance I have a PROPFIND one an object that has been renamed
and I whan the PROPFIND to access the object with the new ID.

I have tried to return a prop result with the information from the renamed 
object,
but the client seems to ignore that (no kidding its MS Web Folder, so what 
did I expect ;-)

Is there a correct way to do this.
What I want to do is for the server to override the requested ID on any 
object or
collection that is being created with something more appropriate
like the created objects/collections meta_type.
MS WebFolders defaults to "New Folder" for collections.

Best Regards,
Johan Carlsson



-- 
Torped Strategi och Kommunikation AB
Johan Carlsson
[EMAIL PROTECTED]

Mail:
Birkagatan 9
SE-113 36  Stockholm
Sweden

Visit:
Västmannagatan 67, Stockholm, Sweden

Phone +46-(0)8-32 31 23
Fax +46-(0)8-32 31 83
Mobil +46-(0)70-558 25 24
http://www.torped.se
http://www.easypublisher.com


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] __getattr__ and Acquisition

2002-09-23 Thread Johan Carlsson [Torped]

At 16:29 2002-09-23 +, Florent Guillaume said:
>You didn't look a the code I pointed to you. Look at CMFCore/Skinnable
>to be precise (not everything is to be used of course).
>
>* In __of__ you store the parent in a volatile attribute,
>* in __getattr__ you lookup the volatile attribute
>
>This works as long as your object is not used in several different
>acquisition contexts.

Hi Florent,
Would you care to elaborate on that last sentence? :-)
Could you give an example when it wouldn't work?
Best Regards,
Johan Carlsson



-- 
Torped Strategi och Kommunikation AB
Johan Carlsson
[EMAIL PROTECTED]

Mail:
Birkagatan 9
SE-113 36  Stockholm
Sweden

Visit:
Västmannagatan 67, Stockholm, Sweden

Phone +46-(0)8-32 31 23
Fax +46-(0)8-32 31 83
Mobil +46-(0)70-558 25 24
http://www.torped.se
http://www.easypublisher.com


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



Re: [Zope-dev] http://cvs.zope.org/Products/Scheduler vs Xron for cron-like functionality. Advice?

2002-10-04 Thread Johan Carlsson [Torped]

 > > The Xron product release is almost a year old,
 > > but Scheduler seems to be only available via CVS.

 > > Can anyone comment as to the maturity/stability
 > > of these products?  Any advice would be much appreciated.

 > I can't vouch for either of the products you mentioned, but I've had
 > good luck with cron on linux teamed with wget :-)

 > There doesn't seem to be much support in Zope for use cases
 > where an action is not event driven, ie not a request/response pair.

 > *** Vaporware Follows***
 > What *I* want, (but haven't written yet) is a product that can do
 > continuous low level scraping of legacy data sources and feed this
 > data into an RDBMS or the ZODB. A kind of "helper daemon". How
 > each instance is scheduled would be one of many adjustable per
 > instance config options :-) However, assuming that I do get around
 > to building this product, I don't know where on the scale between
 > ugly hack and elegant, reusable solution it will fall. This will also
 > determine whether you ever see it on "zope.org" :-)
 > Adam

Hi All,
I'm interested in starting to maintain Xron, if it has potential to be a
stable products.
 From the code it doesn't seem to do any strange things, but I would
like to know if anybody has experience of using it in a production
environment, or any other experiences and that would recommend not
using it in a production environment.

The central feature I'm interested in is the ability to setup packing
policies inside Zope.
I know many people uses Cron or Scheduler but I like to have one
platform independent solution and preferably inside the Zope process.

Regards,
Johan Carlsson


___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



  1   2   >