t
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.o
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 list
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
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
|
| 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
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
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
econdition 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! *
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
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?
Reg
)
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/listinf
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
/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
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 list
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
pment
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 ;-)
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]
f 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
.
(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
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 t
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
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
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
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
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
You need to derive EmployX from DataSkin and some Zope persistent
class such as SimpleItem. Otherwise,
it won't be persistent.
Accualy I dont have to do that.
Looking more closely at DataSkins.py, I see that class DataSkin derives from
Persistent.
So, I was wrong -- please
/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
vstmannagatan 67
___
Zope-Dev
FileStorage but it doesn't
seem to support undos (not for me anyway)?
Johan Carlsson
From the ExternalMount product
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
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
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à
ZPatterns to do the mapping separating
the storage from the logic.
Regards,
Johan Carlsson
hfX)x7^!X+Yb~zhr,,+3zw(v)EZelib3j)fjb?^jywib3j)fjb?^
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
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
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
s 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,
Joha
hould 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
the ContainerItem Specialist
know what objects to return?
TIA,
Johan Carlsson
f^
ëæj)eËY¢züè¥ê+m§ÿåËlÎ^¢¸?¨¥©ÿ+-wèÿ:)yׯ6+¢Ë)¢Ël¢±Ó0·§rb^«^vX¬¶Èm¶ÿ+-³:)zàþf¢f§þX¬¶)ߣüè¥æ§§qèm¶ÿ+-³:)zàþf¢f§þX¬¶)ߣüè¥
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(
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 Zo
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Î^¢¸?¨¥©ÿ
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
ail
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/listinf
in_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
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
21/h1
/div
div metal:define-slot="bodySlot"
h1This is a H1 Header/h1
/div
/body
/html
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
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:
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
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 tem
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
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 72
(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
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
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
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
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
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
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
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
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
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
/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
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
'
)
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
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
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
.
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
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
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
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
(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
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
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
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
)
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
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
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
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
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
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
or ProxyRole. But I'm not sure?
I am willing to help with maintaining Xron, especially the part concerning
ZEO, because we really need it ...
Joachim
Excellent! :-)
Best Regards,
Johan Carlsson
--
Torped Strategi och Kommunikation AB
Johan Carlsson
[EMAIL PROTECTED]
Mail:
Birkagatan 9
SE
several times for the same occurrence.
This wouldn't be perfect because volatile attributes are thread specific
but it could prevent the object from going stall.
Best Regards,
Johan Carlsson
--
Torped Strategi och Kommunikation AB
Johan Carlsson
[EMAIL PROTECTED]
Mail:
Birkagatan 9
SE-113 36
of course you can call everything FROM DTML ..
Yes. I also see at least one pre-built events like a DBPackEvent and
possibly more.
Events may need to be restricted to only be created in the Scehduler.
Not sure that we need this one. Just an idea that pop by :-)
Regards,
Johan Carlsson
--
Torped
.
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.easypublisher.com
-ly
Not until Python 2.2 :-(
But with Python 2.2 it works fine.
The downside is that Zope doesn't support Python 2.2 officially.
Regards,
Johan Carlsson
--
Torped Strategi och Kommunikation AB
Johan Carlsson
[EMAIL PROTECTED]
Mail:
Birkagatan 9
SE-113 36 Stockholm
Sweden
Visit:
Västmannagatan
that stores some parts
in the file system (for instance External Files).
But due to the persistent nature of ZODB these methods doesn't work as usual.
Is this at all possible with the current Zope/ZODB?
Regards,
Johan Carlssons
--
Torped Strategi och Kommunikation AB
Johan Carlsson
[EMAIL PROTECTED
will be None. Because Persistent isn't a
Product it self
it can't be explicitly added to be refreshed?
I will try to reproduce this in a smaller package (I have a refresh bug
product I'm tryning to
pin down this problem in).
Best Regards,
Johan Carlsson
--
Easy Publisher Developers Team
Johan
86 matches
Mail list logo