Either that or do it the way that I do - which is edit the source file in ~mailman/data./...
Jon Carnes ----- Original Message ----- From: "Kirez Korgan" <[EMAIL PROTECTED]> To: "Jon Carnes" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> Sent: Monday, February 25, 2002 4:30 PM Subject: [Mailman-Users] Re: Config for moderator to edit posts in admindb > This should have been incorporated into v2.0.8... unless there's some danger > or problem with it (so I'm concerned there may be). > > I'm not intense enough to manage my lists on forked code, and I want to be > forward-compatible with coming versions of Mailman, so... should I take my > question to mailman-developers? > > Kirez > > > ----- Original Message ----- > From: "Jon Carnes" <[EMAIL PROTECTED]> > To: "Kirez Korgan" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> > Sent: Monday, February 25, 2002 2:24 PM > Subject: Re: [Mailman-Users] Config for moderator to edit posts in admindb > > > > Google search turned up: > > > > > http://mail.python.org/pipermail/mailman-developers/2001-October/009686.html > > > > This was written for Mailman v2.0.6 > > === > > *** Mailman/Cgi/admindb.py.orig Wed Oct 10 13:31:46 2001 > > --- Mailman/Cgi/admindb.py Wed Oct 10 18:30:25 2001 > > *************** > > *** 270,275 **** > > --- 270,277 ---- > > continue > > # get the action comment and reasons if present > > commentkey = 'comment-%d' % request_id > > + headerskey = 'headers-%d' % request_id > > + contentskey = 'fulltext-%d' % request_id > > preservekey = 'preserve-%d' % request_id > > forwardkey = 'forward-%d' % request_id > > forwardaddrkey = 'forward-addr-%d' % request_id > > *************** > > *** 278,285 **** > > --- 280,293 ---- > > preserve = 0 > > forward = 0 > > forwardaddr = '' > > + headers = '' > > + contents = '' > > if cgidata.has_key(commentkey): > > comment = cgidata[commentkey].value > > + if cgidata.has_key(headerskey): > > + headers = cgidata[headerskey].value > > + if cgidata.has_key(contentskey): > > + contents = cgidata[contentskey].value > > if cgidata.has_key(preservekey): > > preserve = cgidata[preservekey].value > > if cgidata.has_key(forwardkey): > > *************** > > *** 290,296 **** > > # handle the request id > > try: > > mlist.HandleRequest(request_id, v, comment, > > ! preserve, forward, forwardaddr) > > except (KeyError, Errors.LostHeldMessage): > > # that's okay, it just means someone else has already > updated > > the > > # database, so just ignore this id > > --- 298,304 ---- > > # handle the request id > > try: > > mlist.HandleRequest(request_id, v, comment, > > ! preserve, forward, forwardaddr, headers, > > contents) > > except (KeyError, Errors.LostHeldMessage): > > # that's okay, it just means someone else has already > updated > > the > > # database, so just ignore this id > > *** Mailman/ListAdmin.py.orig Wed Oct 10 13:31:46 2001 > > --- Mailman/ListAdmin.py Wed Oct 10 18:40:27 2001 > > *************** > > *** 122,133 **** > > return type > > > > def HandleRequest(self, id, value, comment=None, preserve=None, > > ! forward=None, addr=None): > > self.__opendb() > > rtype, data = self.__db[id] > > if rtype == HELDMSG: > > status = self.__handlepost(data, value, comment, preserve, > > ! forward, addr) > > else: > > assert rtype == SUBSCRIPTION > > status = self.__handlesubscription(data, value, comment) > > --- 122,133 ---- > > return type > > > > def HandleRequest(self, id, value, comment=None, preserve=None, > > ! forward=None, addr=None, headers=None, > > contents=None): > > self.__opendb() > > rtype, data = self.__db[id] > > if rtype == HELDMSG: > > status = self.__handlepost(data, value, comment, preserve, > > ! forward, addr, headers, contents) > > else: > > assert rtype == SUBSCRIPTION > > status = self.__handlesubscription(data, value, comment) > > *************** > > *** 172,178 **** > > data = time.time(), sender, msgsubject, reason, filename, > msgdata > > self.__db[id] = (HELDMSG, data) > > > > ! def __handlepost(self, record, value, comment, preserve, forward, > > addr): > > # For backwards compatibility with pre 2.0beta3 > > if len(record) == 5: > > ptime, sender, subject, reason, filename = record > > --- 172,178 ---- > > data = time.time(), sender, msgsubject, reason, filename, > msgdata > > self.__db[id] = (HELDMSG, data) > > > > ! def __handlepost(self, record, value, comment, preserve, forward, > > addr, headers, contents): > > # For backwards compatibility with pre 2.0beta3 > > if len(record) == 5: > > ptime, sender, subject, reason, filename = record > > *************** > > *** 181,186 **** > > --- 181,202 ---- > > # New format of record > > ptime, sender, subject, reason, filename, msgdata = record > > path = os.path.join(mm_cfg.DATA_DIR, filename) > > + # Handle editing > > + if len(headers)+len(contents): > > + fp = open(path) > > + unixfrom = fp.readline() > > + rest = fp.read() > > + # Parse headers and body > > + parts = string.split(rest,'\n\n') > > + if len(headers) == 0: > > + headers = parts[0] > > + if len(contents) == 0: > > + contents = parts[1] > > + fp.close > > + # Now write the changed result > > + fp = open(path,'w') > > + fp.write(unixfrom + headers + '\n\n' + contents) > > + fp.close > > # Handle message preservation > > if preserve: > > parts = string.split(os.path.split(path)[1], '-') > > > > > > > > === > > ----- Original Message ----- > > From: "Kirez Korgan" <[EMAIL PROTECTED]> > > To: "Jon Carnes" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> > > Sent: Monday, February 25, 2002 2:21 PM > > Subject: Re: [Mailman-Users] Config for moderator to edit posts in admindb > > > > > > > How do I find and install, or re-create, this patch that someone else > made > > > to allow the admin to edit the copy of the message and then replace the > > > original message with the copy? > > > > > > Kirez > > > > > > > > > ----- Original Message ----- > > > From: "Jon Carnes" <[EMAIL PROTECTED]> > > > To: "Kirez Korgan" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> > > > Sent: Monday, February 25, 2002 1:02 PM > > > Subject: Re: [Mailman-Users] Config for moderator to edit posts in > admindb > > > > > > > > > > Yes. Mailman is open source software and is very easy to modify. > > Someone > > > > has already made a patch that does exactly that (allows the admin to > > > > view/edit the copy of the message, and then replaces the original > > message > > > > with the copy). > > > > > > > > The original message is in ~mailman/held/.. > > > > Each message is stored in a file of the form: heldmsg-<list_name>-xxxx > > > > > > > > If you don't want to hack Mailman, you can let your admins edit the > > files > > > > directly. You can link this directory to a common access point and > give > > > > your admins rights to it (or you can mount it via samba...). Then > your > > > > admins can easily edit the messages directly. > > > > > > > > Jon Carnes > > > > ----- Original Message ----- > > > > From: "Kirez Korgan" <[EMAIL PROTECTED]> > > > > To: <[EMAIL PROTECTED]> > > > > Sent: Monday, February 25, 2002 1:34 PM > > > > Subject: [Mailman-Users] Config for moderator to edit posts in admindb > > > > > > > > > > > > > It seems that Mailman makes a copy of a message appear in the > admindb, > > > for > > > > > moderators to process (accept or reject). > > > > > > > > > > My moderators want to EDIT the message, however. > > > > > > > > > > Is it possible to config Mailman so that they can edit the message > > > through > > > > > the admindb / viewer? > > > > > > > > > > cheers, > > > > > Kirez > > > > > > > > > > > > > > > ------------------------------------------------------ > > > > > Mailman-Users maillist - [EMAIL PROTECTED] > > > > > http://mail.python.org/mailman/listinfo/mailman-users > > > > > > > > > > ------------------------------------------------------ > > Mailman-Users maillist - [EMAIL PROTECTED] > > http://mail.python.org/mailman/listinfo/mailman-users > > > ------------------------------------------------------ > Mailman-Users maillist - [EMAIL PROTECTED] > http://mail.python.org/mailman/listinfo/mailman-users ------------------------------------------------------ Mailman-Users maillist - [EMAIL PROTECTED] http://mail.python.org/mailman/listinfo/mailman-users