[Mailman-Users] hide lists from listinfo page only (leaveonadmin page)

Mark Sapiro msapiro at value.net
Mon Oct 10 17:36:27 CEST 2005

Xiaoyan Ma wrote:

>On Fri, 7 Oct 2005 10:12:48 -0700
>  Mark Sapiro <msapiro at value.net> wrote:
>>>for name in listnames:(but not in notshowns)
>Thank you. I just started learning python, so I wanted to find out if I am on the right track 
>first.  I have spent 2 hours on these few lines of code, but have not got it to work yet.  I tried 
>to run the listinfo.py file alone to debug and got the following message (either running the 
>original file that came with the package or what I have modified):
>  python /var/mailman/Mailman/Cgi/listinfo.py
>Traceback (most recent call last):
>   File "/var/mailman/Mailman/Cgi/listinfo.py", line 25, in ?
>     from Mailman import mm_cfg
>ImportError: No module named Mailman
>What did I miss?

By default, Python will only access modules in the Python libraries and
the directory that contains the current module. Modules in the bin/
directory for example get around this by importing 'paths' which is
the bin/paths.py file which sets some additional directories in the
search paths.

The easiest way to make this work for testing purposes is just to store
your test file in the $prefix directory, i.e. the directory that
contains the Mailman/, bin/, etc. directories.

>> Presumably this is pseudocode. It's not Python. Python might be
>> for name in listnames:
>>      if name in notshowns:
>>          continue
>>>      mlist = MailList.MailList(name, lock=0)
>>>         if mlist.advertised:

A key thing in Python code is indentation because that's how Python
determines block structure. It is critical that things be indented
consistently and that either tabs or spaces but not a mixture be used
for indentation. The above snippet, properly indented looks like

 for name in listnames:
      if name in notshowns:
      mlist = MailList.MailList(name, lock=0)
         if mlist.advertised:

It is critical that "if name in notshowns:" is indented exactly the
same amount as "mlist = MailList.MailList(name, lock=0)" and that
other indentation be preserved exactly as in the original.

>Tha goal is to avoid clutter and subscription attempts.  I think modify the admin.py file as you 
>suggested might be a better option.  Maybe require authentication to access the admin page.

Presumably you will have the lists' subscribe_policy set to 'Require
approval'. I am only guessing, but I think that not showing the lists
on the listinfo page would reduce the spurious subscription attempts
to a level where manually rejecting them would not be too burdensome.
I would guess there would certainly be no more subscription requests
than non-member posts.

What I'm saying here is that authenticating access to the admin
overview page could be tricky (what password(s) would be used?) and
may not be worth the trouble.

Mark Sapiro <msapiro at value.net>       The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan

More information about the Mailman-Users mailing list