def _edit_impl(self): customer_id = self.request.matchdict.get('customer_id') customer = None if customer_id: customer = Customer.load(customer_id) self.forbid_if(not customer or customer.campaign.company.enterprise_id != self.enterprise_id) self._add_to_recent(customer) else: customer = Customer() customer.campaign = self.request.ctx.site.company.default_campaign return { 'customer' : customer, 'users' : util.select_list(Users.find_all(self.enterprise_id), 'user_id', ['fname', 'lname'], True), 'phases' : util.select_list(CustomerPhase.find_all(self.enterprise_id), 'phase_id', 'display_name', True), 'campaigns' : util.select_list(Campaign.find_all(self.enterprise_id), 'campaign_id', 'name') }
def contact(self): camp = self.request.ctx.campaign message = self.request.POST.get('message') email = self.request.POST.get('email') msg = "%s %s<br>(%s)<br><br>%s<br><br>%s" % (self.request.POST.get('fname'), self.request.POST.get('lname'), email, self.request.POST.get('phone'), message) if util.nvl(self.request.POST.get('save')): cust = Customer.find(email, camp) if not cust: cust = Customer() cust.campaign = camp cust.bind(self.request.POST) cust.phone = cust.phone[:20] if cust.phone else None # prevents people from putting in "904-716-7487 (mobile)" and it barfs cust.save() Status.add(cust, cust, Status.find_event(self.enterprise_id, cust, 'NOTE'), 'NOTE FROM CUSTOMER\n%s' % message) email_info = camp.get_email_info() mail = UserMail(camp) mail.send(email_info.email, 'SITE CONTACT FORM %s' % self.request.host, msg) return self.find_redirect()