Beispiel #1
0
    def send_msg(self, i, wyrform, pform=None):
        pol = self.pol
        captcha_src = (not i.get('captcha')) and get_captcha_src(pol)
        if captcha_src:
            set_captcha(wyrform, captcha_src)
            msg = 'Please fill in the captcha verification below'
            helpers.set_msg(msg, msg_type='note')
            raise CaptchaException

        email = '*****@*****.**' % (self.msg_id)
        try:
            msg_sent = writerep(pol=pol,
                        prefix=i.prefix, lname=i.lname, fname=i.fname,
                        addr1=i.addr1, addr2=i.addr2, city=i.city,
                        zipcode=i.zipcode, zip4=i.zip4,
                        phone=web.numify(i.phone), email=email, subject=i.ptitle, msg=i.msg,
                        captcha=i.get('captcha', ''))
        except:
            msg_sent = False
                            
        if not pform: update_user_details(i)
        return msg_sent
Beispiel #2
0
 def POST(self):
     def pol_link(polid):
         p = db.select('politician', what='firstname, middlename, lastname',
                         where='id=$polid', vars=locals())[0]
         return '<a href="/p/%s">%s %s %s</a>' % (polid, p.firstname or '',
                         p.middlename or '', p.lastname or '')
             
 	i = web.input()
 	wf = forms.wyrform()
 	pols = getpols(i.zip5, i.zip4, i.addr1+i.addr2)
 	captcha_needed = require_captcha(i, pols)
 	if not wf.validates(i) or captcha_needed:
         if captcha_needed: wf.valid, wf.note = False, 'Please fill the captcha below'
 	    wf.fill(i)
 	    return self.GET(wf)
 	else:
 	    uid = auth.assert_login(i)
 	    update_user_details(i, uid)
 	    env = simplejson.loads(i.get('captcha_env', '{}'))
 	    status = writerep.send_msgs(uid, i, source_id='wyr', pols=pols, env=env)
 	    pol_str = ", ".join([pol_link(p) for p in pols])
 	    helpers.set_msg('Your message has been sent to %s' % pol_str)
 	    raise web.seeother('/')