Exemple #1
0
 def do_POST(self):
     ctype, pdict = cgi.parse_header(self.headers.getheader(
         'content-type'))
     if ctype == 'multipart/form-data':
         postvars = cgi.parse_multipart(self.rfile, pdict)
     elif ctype == 'application/x-www-form-urlencoded':
         length = int(self.headers.getheader('content-length'))
         postvars = cgi.parse_qs(self.rfile.read(length), 
                                 keep_blank_values=1)
     else:
         postvars = {}
     postvars = dict((n, ' '.join(v)) for n, v in postvars.items())
     if 'singlesided' in postvars:
         maxpages = 100
         include_rego = False
     else:
         maxpages = 3
         include_rego = True
     self.send_response(200)
     self.send_header('Content-type', 'application/pdf')
     self.end_headers()
     fromaddr = postvars
     numfliers = min(maxpages, int(postvars['numfliers']))
     toaddrs = list(itertools.islice(voterstream, numfliers))
     vids = [a['SBOEID'] for a in toaddrs]
     doc = sheet.makedoc(self.wfile)
     pages = list(itertools.chain(*(
         sheet.addrsheet(fromaddr, toaddr, toaddr['boe'], include_rego)
         for toaddr in toaddrs)))
     doc.build(pages)
     log((self.client_address[0], 'FLIERS', fromaddr, vids))
     processed_voters.update(set(vids))
Exemple #2
0
def test_generation():
    numfliers = 100
    fromaddr = sheet.myaddr
    toaddrs = list(itertools.islice(
        # must be a generator expression, as voterstream is infinite!
        (v for v in voterstream if 'freeaddr' in v),
        numfliers))
    doc = sheet.makedoc('/tmp/tst.pdf')
    pages = list(itertools.chain(*(
        sheet.addrsheet(fromaddr, toaddr, toaddr['boe'])
        for toaddr in toaddrs)))
    doc.build(pages)