You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(277) |
Nov
(3) |
Dec
(15) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(1) |
Feb
(5) |
Mar
(45) |
Apr
|
May
|
Jun
(1) |
Jul
(6) |
Aug
(2) |
Sep
(2) |
Oct
|
Nov
|
Dec
|
From: Myroslav O. <My...@or...> - 2002-03-20 13:15:26
|
Hi, It look like view-filter looks much better this time ;) Attached is sample page, view-filter.dtml itself and addition to cmf.css. It looks perfect in Mozilla and it looks not too bad in IE... Regards, Myroslav |
From: Morten W. P. <mo...@th...> - 2002-03-20 11:19:05
|
On Tue, Mar 19, 2002 at 11:57:28PM +0200, Myroslav Opyr wrote: > Morten W. Petersen wrote: > > > >OK, that's a bit different; for the code in CVS they can add and list any > >meta type from the same page, while for the proposition they have to select > >something first (and go to a new page), and then add afterwards.. guess > >that's OK. > > > For object creation my proposal is one click less and one page reload > more. For slow-links it is possible to have small add button (maybe > image) for each metatype. OK. -Morten |
From: Myroslav O. <My...@or...> - 2002-03-19 22:50:20
|
Hi, What if there will be some way to convert wf-based aplication to UML and back? I was analysing my actions. First I've drawn a UML schema then I silly translated it into Python code. Adding only functions limiting datasets (discussed in "Q: Dynamic queries" thread) and functions generating vatious titles of objects... This process could be more or less automatic. I am not sure it is worth efforts implementing right now... I am discussing just hypotetical possibility (having Zope3 in mind). m. P.S. I've found render_class_hierarchy method what other interesting things are there? |
From: Myroslav O. <My...@or...> - 2002-03-19 22:36:27
|
Morten W. Petersen wrote: >On Mon, Mar 18, 2002 at 12:26:07PM +0200, Myroslav Opyr wrote: > >>It look like one major assumption in WarpFramework is that IDs have to >>be unique throughout the application, isn't it. >> >>Why is that done for? I am not sure but it look like for simplyfying the >>life. First, there is no problem with instantiation in containers. >>Second, it is possible to have references from object to object via >>Catalog through unique id. >> >>Friendly URLs are part of what is essential. Thus I was trying to find a >>replacement for a concept above. >> >Why are friendly URLs essential? > It is human-factor. 1. When I look at friendly url I can guess what is going on even when I know nothing about the system. 2. Statistical analysis (webalizer output) of application (for usability improvements) is much easier if I see readable URLs. 3. There is no need to use extra tools for crash analysis except logs with friendly URLs. 4. Other options I have no imagination now, but they exists. Zope offers not only URL but also descriptive title for majority objects (including DTML methors and Python Scripts which do not need it at all, for documentation and eplanation purposes). Regards, Myroslav Opyr P.S. here is real URL trapped as referer. http://tools.adsdb.google.com/cgi-bin/adstooedit.py?do=testcreative&id=865329 I was able to recreate a lot out of it. Imagine all literals converted with numbers what then? |
From: Myroslav O. <My...@or...> - 2002-03-19 22:05:53
|
Morten W. Petersen wrote: >On Tue, Mar 19, 2002 at 09:47:22PM +0200, Myroslav Opyr wrote: > >>Morten W. Petersen wrote: >> >>>I agree that this would be 'user friendlier'; one question though, how >>>are users supposed to be able to (directly) add an object of each >>>meta type? >>> >>Switch to a tab of that meta-type and press Add. >> >OK, that's a bit different; for the code in CVS they can add and list any >meta type from the same page, while for the proposition they have to select >something first (and go to a new page), and then add afterwards.. guess >that's OK. > For object creation my proposal is one click less and one page reload more. For slow-links it is possible to have small add button (maybe image) for each metatype. m. |
From: Myroslav O. <My...@or...> - 2002-03-19 22:05:51
|
Morten W. Petersen wrote: > On Tue, Mar 19, 2002 at 11:06:03PM +0200, Myroslav Opyr wrote: > >> Today I got strange (for me at least) compatibility problems. I tried >> to move warp-framework based application from one Zope instance to >> another one. Additionally it was platform change, I moved from Win32 >> to FreeBSD4. I used zexp for "migration". I partly solved the problem >> with * * thread_safe_counter (recreated it's file in var dir) and >> having updated Catalog. But I got stuck with problems appearing when >> instance of any object is created. It just refuses to render the page >> (object_manager_index containing the object). Object is creatred and >> deleting it from ZMI solves the problem. >> > What if you create a new instance on FreeBSD4 and add data to it, does > that work? > Hadn't tried it. I'll do it tomorrow. >> Proposal: Is that possible to log errors inside comments in HTML >> (together with statement of regret) >> > Errors are currently logged with zLOG (output in the file specified > in the enviroment variable STUPID_LOG_FILE, set it in start or z2.py). > > I don't see any good reason to log errors in two places... > STUPID_LOG_FILE is huge and on production servers it is not enabled. Thus sometimes it is necessary to know the source. It is possible to ask customer to "View Source", Copy, Paste and mail it to me. And having several errors on one page sometimes it is difficult to distiguish single one necessary out of log. Myroslav |
From: Morten W. P. <mo...@th...> - 2002-03-19 21:37:50
|
On Mon, Mar 18, 2002 at 12:26:07PM +0200, Myroslav Opyr wrote: > Hi, > > It look like one major assumption in WarpFramework is that IDs have to > be unique throughout the application, isn't it. > > Why is that done for? I am not sure but it look like for simplyfying the > life. First, there is no problem with instantiation in containers. > Second, it is possible to have references from object to object via > Catalog through unique id. > > Friendly URLs are part of what is essential. Thus I was trying to find a > replacement for a concept above. Why are friendly URLs essential? -Morten |
From: Morten W. P. <mo...@th...> - 2002-03-19 21:35:28
|
On Mon, Mar 18, 2002 at 02:53:37PM +0200, Myroslav Opyr wrote: > Ok. It works. I just wanted to ask if from design point code is proper... > > class customer: > > [snip] > > properties_ = properties.properties() > properties_.set_property(properties.multiple_reference_factory( > 'default_contacts', data="get_contacts", widget_type='checkbox')) > > [snip] > > def get_contacts(self): > return map(lambda x: (x.getId(), x.get_object_title()), \ > self.get_objects(meta_type='contact')) > Looks good. :) -Morten |
From: Morten W. P. <mo...@th...> - 2002-03-19 21:32:04
|
On Tue, Mar 19, 2002 at 11:06:03PM +0200, Myroslav Opyr wrote: > Today I got strange (for me at least) compatibility problems. I tried to > move warp-framework based application from one Zope instance to another > one. Additionally it was platform change, I moved from Win32 to > FreeBSD4. I used zexp for "migration". I partly solved the problem > with * * thread_safe_counter (recreated it's file in var dir) and having > updated Catalog. But I got stuck with problems appearing when instance > of any object is created. It just refuses to render the page > (object_manager_index containing the object). Object is creatred and > deleting it from ZMI solves the problem. What if you create a new instance on FreeBSD4 and add data to it, does that work? > Proposal: Is that possible to log errors inside comments in HTML > (together with statement of regret) Errors are currently logged with zLOG (output in the file specified in the enviroment variable STUPID_LOG_FILE, set it in start or z2.py). I don't see any good reason to log errors in two places... -Morten |
From: Morten W. P. <mo...@th...> - 2002-03-19 21:18:07
|
On Tue, Mar 19, 2002 at 09:47:22PM +0200, Myroslav Opyr wrote: > Morten W. Petersen wrote: > >I agree that this would be 'user friendlier'; one question though, how > >are users supposed to be able to (directly) add an object of each > >meta type? > > > Switch to a tab of that meta-type and press Add. OK, that's a bit different; for the code in CVS they can add and list any meta type from the same page, while for the proposition they have to select something first (and go to a new page), and then add afterwards.. guess that's OK. -Morten |
From: Myroslav O. <My...@or...> - 2002-03-19 21:11:58
|
Hi, Today I got strange (for me at least) compatibility problems. I tried to move warp-framework based application from one Zope instance to another one. Additionally it was platform change, I moved from Win32 to FreeBSD4. I used zexp for "migration". I partly solved the problem with * * thread_safe_counter (recreated it's file in var dir) and having updated Catalog. But I got stuck with problems appearing when instance of any object is created. It just refuses to render the page (object_manager_index containing the object). Object is creatred and deleting it from ZMI solves the problem. Any ideas? Sorry that I have not all information... WF should log error to a logfile, but I hadn't extracted it yet. I'll make more experiments and I'll know more. Proposal: Is that possible to log errors inside comments in HTML (together with statement of regret) Myroslav |
From: Myroslav O. <My...@or...> - 2002-03-19 21:11:57
|
Hi, I've asked about IDs pnce but got no reply. Question was: Can we avoid Zope ID dependency? And there was prposal to avoid it for several reasons. I do not provide it here another time but we can discuss it (no problem to give them another time, vision is more and more refined already). Regards, Myroslav |
From: Myroslav O. <My...@or...> - 2002-03-19 19:48:08
|
Morten W. Petersen wrote: >On Tue, Mar 19, 2002 at 02:15:02AM +0200, Myroslav Opyr wrote: > >>>Situation after proposed change incorporated: >>> >>> Available meta_types will be always visible on the page. Number of >>> corresponding elements too. Changing filter would be only one click >>> on the corresponding tab. Creating another instance of object will >>> be max. two clicks and max two page reloads. >>> >>>Does that sound reasonable? >>> >>Just a proof of concept. Attached is the modified view_filter.html it >>looks ugly (i did nothing with styles yet) but is functional. >> >>Comments? >> >I agree that this would be 'user friendlier'; one question though, how >are users supposed to be able to (directly) add an object of each >meta type? > Switch to a tab of that meta-type and press Add. Myroslav |
From: Morten W. P. <mo...@th...> - 2002-03-19 12:17:56
|
On Tue, Mar 19, 2002 at 02:15:02AM +0200, Myroslav Opyr wrote: > >Situation after proposed change incorporated: > > > > Available meta_types will be always visible on the page. Number of > > corresponding elements too. Changing filter would be only one click > > on the corresponding tab. Creating another instance of object will > > be max. two clicks and max two page reloads. > > > >Does that sound reasonable? > > Just a proof of concept. Attached is the modified view_filter.html it > looks ugly (i did nothing with styles yet) but is functional. > > Comments? I agree that this would be 'user friendlier'; one question though, how are users supposed to be able to (directly) add an object of each meta type? -Morten |
From: Morten W. P. <mo...@th...> - 2002-03-19 12:15:42
|
On Tue, Mar 19, 2002 at 01:09:08AM +0200, Myroslav Opyr wrote: > > What is the reason for Zope to do that? Sequrity risk? Other side-effects? I'm not sure.. -Morten |
From: Myroslav O. <My...@or...> - 2002-03-19 00:19:02
|
Myroslav Opyr wrote: > Take a look here. It should be really little work but usability should > improve. What if view_filter.dtml would generate tabs instead of > combobox and add button? Tabs similar to ones in standard_html_header? > > Situation before proposed change was: > > to click on combobox to see what is there select item ad then click > view or add for respective action. Either way it was one page reload. > > Situation after proposed change incorporated: > > Available meta_types will be always visible on the page. Number of > corresponding elements too. Changing filter would be only one click > on the corresponding tab. Creating another instance of object will > be max. two clicks and max two page reloads. > > Does that sound reasonable? Just a proof of concept. Attached is the modified view_filter.html it looks ugly (i did nothing with styles yet) but is functional. Comments? Myroslav |
From: Myroslav O. <My...@or...> - 2002-03-18 23:47:49
|
Hi, Take a look here. It should be really little work but usability should improve. What if view_filter.dtml would generate tabs instead of combobox and add button? Tabs similar to ones in standard_html_header? Situation before proposed change was: to click on combobox to see what is there select item ad then click view or add for respective action. Either way it was one page reload. Situation after proposed change incorporated: Available meta_types will be always visible on the page. Number of corresponding elements too. Changing filter would be only one click on the corresponding tab. Creating another instance of object will be max. two clicks and max two page reloads. Does that sound reasonable? Myroslav |
From: Myroslav O. <My...@or...> - 2002-03-18 23:20:16
|
Morten W. Petersen wrote: >On Mon, Mar 18, 2002 at 11:55:47PM +0200, Myroslav Opyr wrote: > >>I tried to create integer property named HTTP_port. It looked like it >>works except that it refused to get stored to object during update. I am >>not sure why, but it is possible that it is conflicting with HTTP_port >>element of REQUEST. I didn't dig too deep here, I just renamed property >>to make it working but it looks ugly. Any clues? >> >It's Zope's way of handling 'special names'; from >ZPublisher/HTTPRequest.py line 504-505: > ># Filter out special names from form: >if CGI_name(key) or key[:5]=='HTTP_': > continue > What is the reason for Zope to do that? Sequrity risk? Other side-effects? Regards, Myrosalav |
From: Morten W. P. <mo...@th...> - 2002-03-18 22:20:48
|
On Mon, Mar 18, 2002 at 11:55:47PM +0200, Myroslav Opyr wrote: > I tried to create integer property named HTTP_port. It looked like it > works except that it refused to get stored to object during update. I am > not sure why, but it is possible that it is conflicting with HTTP_port > element of REQUEST. I didn't dig too deep here, I just renamed property > to make it working but it looks ugly. Any clues? It's Zope's way of handling 'special names'; from ZPublisher/HTTPRequest.py line 504-505: # Filter out special names from form: if CGI_name(key) or key[:5]=='HTTP_': continue -Morten |
From: Morten W. P. <mo...@th...> - 2002-03-18 22:15:06
|
On Mon, Mar 18, 2002 at 10:42:35PM +0200, Myroslav Opyr wrote: > line failed. I understand why... Question is: Can we avoid exec() as > much as possible? IMHO, yes. we have access to __dict__ and others, why > not write a code instead of interpreted chunks of code. And leave exec() > only in places where it is impossible to avoid it. Sure, if you can change to code so that exactly the same behaviour is achieved with for example __dict__, go ahead. :) -Morten |
From: Myroslav O. <myr...@zo...> - 2002-03-18 22:07:14
|
Hi, I tried to create integer property named HTTP_port. It looked like it=20 works except that it refused to get stored to object during update. I am=20 not sure why, but it is possible that it is conflicting with HTTP_port=20 element of REQUEST. I didn't dig too deep here, I just renamed property=20 to make it working but it looks ugly. Any clues? Regards, Myroslav --=20 Myroslav Opyr zope.net.ua <http://zope.net.ua/> =9C Ukrainian Zope Hosting e-mail: myr...@zo... <mailto:myr...@zo...> cell: +380 50.3174578 |
From: Myroslav O. <My...@or...> - 2002-03-18 20:53:43
|
Hi, It look like names of the properties can be only legal python dentifiers. I've tried to create property with the name "admin-c" and WF let me do that but when I tried to instantiate an object a exec("instance.%s = factory.create()" % key) line failed. I understand why... Question is: Can we avoid exec() as much as possible? IMHO, yes. we have access to __dict__ and others, why not write a code instead of interpreted chunks of code. And leave exec() only in places where it is impossible to avoid it. Regards, Myroslav |
From: Myroslav O. <My...@or...> - 2002-03-18 12:55:07
|
Morten W. Petersen wrote: >On Mon, Mar 18, 2002 at 11:36:06AM +0200, Myroslav Opyr wrote: > >>Another question emerged. I've come to the need that I'd like to have >>dynamic queries within multiple_reference property. Or to be able to >>feed multiple_reference with objects I want. Or to filter whole set to >>limit them to set necessary. >> >>Is that possible now? I do not really know how... >> > >Yes, it's possible. Reference properties get their data from either >query or data arguments. The query (as you know) argument is a >dictionary which provides keywords arguments for a catalog call while >data is a string (an attribute name). The attribute is looked up >at runtime, and can be: > > A sequence of length-of-two-sequences, for example: > > ( > ('1001', 'Thing'), > ('1002', 'Thang'), > ) > > A method that returns a sequence of length-of-two-sequences, > for example (untested): > > class test: > """Simple test class.""" > properties_ = properties.properties() > properties_.set_property(properties.reference_factory('test', > data='get_reference_data')) > properties_.set_property(properties.integer_factory('number')) > > def get_reference_data(self): > """Provides data dynamically, depending on the state of the > object.""" > if self.number == 0: > return (('1003', 'Waa'), ('1004', 'Waawaa')) > else: > return (('1005', 'Waa'), ('1006', 'Test')) > Ok. It works. I just wanted to ask if from design point code is proper... class customer: [snip] properties_ = properties.properties() properties_.set_property(properties.multiple_reference_factory( 'default_contacts', data="get_contacts", widget_type='checkbox')) [snip] def get_contacts(self): return map(lambda x: (x.getId(), x.get_object_title()), \ self.get_objects(meta_type='contact')) Regards, Myroslav |
From: Morten W. P. <mo...@th...> - 2002-03-18 12:11:16
|
On Mon, Mar 18, 2002 at 11:36:06AM +0200, Myroslav Opyr wrote: > > Another question emerged. I've come to the need that I'd like to have > dynamic queries within multiple_reference property. Or to be able to > feed multiple_reference with objects I want. Or to filter whole set to > limit them to set necessary. > > Is that possible now? I do not really know how... Yes, it's possible. Reference properties get their data from either query or data arguments. The query (as you know) argument is a dictionary which provides keywords arguments for a catalog call while data is a string (an attribute name). The attribute is looked up at runtime, and can be: A sequence of length-of-two-sequences, for example: ( ('1001', 'Thing'), ('1002', 'Thang'), ) A method that returns a sequence of length-of-two-sequences, for example (untested): class test: """Simple test class.""" properties_ = properties.properties() properties_.set_property(properties.reference_factory('test', data='get_reference_data')) properties_.set_property(properties.integer_factory('number')) def get_reference_data(self): """Provides data dynamically, depending on the state of the object.""" if self.number == 0: return (('1003', 'Waa'), ('1004', 'Waawaa')) else: return (('1005', 'Waa'), ('1006', 'Test')) -Morten |
From: Myroslav O. <My...@or...> - 2002-03-18 10:27:36
|
Hi, It look like one major assumption in WarpFramework is that IDs have to be unique throughout the application, isn't it. Why is that done for? I am not sure but it look like for simplyfying the life. First, there is no problem with instantiation in containers. Second, it is possible to have references from object to object via Catalog through unique id. Friendly URLs are part of what is essential. Thus I was trying to find a replacement for a concept above. About second, references. What if unigue generator would generate ID and it become as a part of base_item (let's name it warp_id) during object creation time. Catalog would contain FieldIndex on warp_id and any linkage (referencing) would be via warp_id. My way for the first issue is to generate unique IDs for objects within container not application-wide. Second - prefix numeral id with abbreviation of meta_type (for example my host_maintanance_zone whould have hmz as prefix and IDs would be generated in sequence hmz1, hmz2, hmz3...) This should be default behavior and any class could replace this default policy. Regards, Myroslav |