Ethan Furman writes:
Is there a way to require new users to answer a questionnaire when they subscribe?
You could have it in the Postorius signup page template itself (see discussion below), but there currently is no way in Mailman to communicate that information to the moderator.
Without modifying Mailman, you could have a separate signup page that invokes a Python program that notifies the admins and collects arbitrary data, as well as passing the normal subscription information to Mailman core for the normal address validation and moderator approval process. I have not done this myself, but a number of organizations have reported successfully creating alternative signup mechanisms (I haven't heard of this one). Such a signup page is the approach I'd recommend if the questions you have in mind would get free-form responses.
Unfortunately, I do not believe the questionnaire responses could be displayed in the normal list admin interface without patching both Postorius and Mailman core, so this communication would have to be outside the normal procedure (but you would still use Postorius/core for the email validation and moderator approval steps). Perhaps one of the other devs has an idea about integrating it with the normal interface without patching.
I suspect that one of the lists I manage is getting a lot of subscribers who don't understand what that particular list is for, and having to answer a question or two would allow me to direct them to better resources.
I'm not sure how you want this to work. I guess you're getting this suspicion because new posters are posting a lot of off-topic stuff? So you want to have a subscription process where the moderators approve all subscriptions, and they would see the questionnaire responses in the subscription approval request? Not sure how well a simple questionnaire would capture this problem (see below), but it could help a lot, too.
An alternative that doesn't inform the moderators is to modify the signup page template to (1) require the user check off the description of the list point by point (like a TOS notice, this is obviously not an improvement from the well-informed subscriber's point of view, though) and (2) provide links to commonly suggested alternative resources in the page template (these might be useful even to well-informed subscribers). The page templates are standard Django, so I'm sure that there's some facility for this.
For example, if you were talking about python-dev, you could have
Do you want to participate in implementation-focused discussions
about work in progress to improve the Python language and its
standard library?
( ) yes ( ) no
If you answered 'yes', welcome! Do note that the focus is
narrowly on implementation, and Python provides <a>many other
venues</a> for new <a>ideas</a> and special interests like
<a>distribution</a> and <a>documentation</a>.
If you answered 'no', consider others of our <a>many lists</a> and
our <a>Discourse channels</a>.
- Do you want to discuss the best way to write a program in Python?
( ) yes ( ) no
If you answered 'yes', <a>python-list</a> is probably a better
venue for that.
- Do you have a bug to report?
( ) yes ( ) no
If you answered 'yes', please report it on the <a>issue
tracker</a>. Discussion will take place there in any case, and
you can attach a patch there if you have one.
- Do you want to discuss a new idea to include in the Python
language or standard library?
( ) yes ( ) no
If you answered 'yes' but don't have a complete patch yet,
<a>python-ideas</a> is probably a better venue for you. If you do
have a patch, you should post it as a merge request on
<a>GitHub</a>, too.
This approach could get REALLY tedious (core-mentorship, scads of SIGs, etc). I think you'd have to add your own Javascript if you wanted to hide each recommendation until the new subscriber checks 'yes', but that would alleviate the annoyance quite a bit, I think.
The only hitch is that I'm not sure Postorius wouldn't glitch on the extra information from the page, but even if so, that can probably be dealt with (a form without a submit button?)
Regards, Steve