def post(self, prospect_id=None): prospect = db.get_prospect_from_prospect_id(prospect_id) prospect_employment_tags_form = ProspectEmploymentTagsForm().get_form(self.request.POST) if prospect_employment_tags_form.validate(): if prospect_employment_tags_form["employment_tags"].data is None: prospect.employment_tags = [] else: prospect_employment_tags_form.populate_obj(prospect) prospect.put() prospect_note = ProspectNote() prospect_note.prospect = prospect.key google_user = users.get_current_user() prospect_note.user = google_user prospect_note.note_type = "admin" prospect_tags_string = "" for tag in prospect.employment_tags: prospect_tags_string += tag + ", " # chop the last comma prospect_tags_string = prospect_tags_string[:-2] # escape underscores for markdown prospect_tags_string = prospect_tags_string.replace("_", "\_") if not prospect_tags_string: prospect_note.body = "Deleted employment tags" else: prospect_note.body = "Updated employment tags to: " + prospect_tags_string prospect_note.put() self.redirect("/admin/prospects/" + prospect.prospect_id)
def post(self, prospect_id=None, operation=None, key=None): prospect = db.get_prospect_from_prospect_id(prospect_id) prospect_note_form = ProspectNoteForm().get_form(self.request.POST) if prospect_note_form.validate(): prospect_note = None if operation == "add": prospect_note = ProspectNote() if operation == "edit": note_key = ndb.Key(urlsafe=key) prospect_note = note_key.get() prospect_note.prospect = prospect.key prospect_note_form.populate_obj(prospect_note) google_user = users.get_current_user() prospect_note.user = google_user prospect_note.put() # re calculate notes stats prospect.calculate_notes_stats() self.redirect("/admin/prospects/" + prospect.prospect_id) else: # validation failed self.render_details(prospect, prospect_note_form=prospect_note_form)
def post(self, prospect_id=None): prospect = db.get_prospect_from_prospect_id(prospect_id) prospect_employment_tags_form = ProspectEmploymentTagsForm().get_form( self.request.POST) if prospect_employment_tags_form.validate(): if prospect_employment_tags_form['employment_tags'].data is None: prospect.employment_tags = [] else: prospect_employment_tags_form.populate_obj(prospect) prospect.put() prospect_note = ProspectNote() prospect_note.prospect = prospect.key google_user = users.get_current_user() prospect_note.user = google_user prospect_note.note_type = 'admin' prospect_tags_string = "" for tag in prospect.employment_tags: prospect_tags_string += tag + ', ' # chop the last comma prospect_tags_string = prospect_tags_string[:-2] # escape underscores for markdown prospect_tags_string = prospect_tags_string.replace('_', '\_') if not prospect_tags_string: prospect_note.body = "Deleted employment tags" else: prospect_note.body = 'Updated employment tags to: ' + prospect_tags_string prospect_note.put() self.redirect('/admin/prospects/' + prospect.prospect_id)
def get(self, prospect_id = None): # set prospect if prospect_id: self.log_prospect(prospect_id) prospect = db.get_prospect_from_prospect_id(prospect_id) # check if the prospect actually signed up if prospect: provider = db.get_provider_from_email(prospect.email) if provider: language = prospect.language redirect_url = "/" + language + "/signup/provider" self.redirect(str(redirect_url)) else: # populate form with prospect info provider_signup_form2 = forms.user.ProviderSignupForm2().get_form(obj=prospect, request_webob=self.request) # check the agreement by default provider_signup_form2['terms_agreement'].data = True # on to the next step self.render_template('user/signup_provider_2.html', provider_signup_form2=provider_signup_form2) else: self.redirect('/en/signup/provider') else: self.redirect('/en/signup/provider')
def get(self, prospect_id=None): # set prospect if prospect_id: self.log_prospect(prospect_id) prospect = db.get_prospect_from_prospect_id(prospect_id) # check if the prospect actually signed up if prospect: provider = db.get_provider_from_email(prospect.email) if provider: language = prospect.language redirect_url = "/" + language + "/signup/provider" self.redirect(str(redirect_url)) else: # populate form with prospect info provider_signup_form2 = forms.user.ProviderSignupForm2( ).get_form(obj=prospect, request_webob=self.request) # check the agreement by default provider_signup_form2['terms_agreement'].data = True # on to the next step self.render_template( 'user/signup_provider_2.html', provider_signup_form2=provider_signup_form2) else: self.redirect('/en/signup/provider') else: self.redirect('/en/signup/provider')
def post(self, prospect_id=None, operation=None, key=None): prospect = db.get_prospect_from_prospect_id(prospect_id) prospect_note_form = ProspectNoteForm().get_form(self.request.POST) if prospect_note_form.validate(): prospect_note = None if operation == 'add': prospect_note = ProspectNote() if operation == 'edit': note_key = ndb.Key(urlsafe=key) prospect_note = note_key.get() prospect_note.prospect = prospect.key prospect_note_form.populate_obj(prospect_note) google_user = users.get_current_user() prospect_note.user = google_user prospect_note.put() # re calculate notes stats prospect.calculate_notes_stats() self.redirect('/admin/prospects/' + prospect.prospect_id) else: # validation failed self.render_details(prospect, prospect_note_form=prospect_note_form)
def display_single_email_get(self, campaign_key, prospect_id): campaign = db.get_from_urlsafe_key(campaign_key) prospect = db.get_prospect_from_prospect_id(prospect_id) logging.info('Displaying Email for prospect %s' % prospect) if prospect: self.render_campaign_details(campaign, prospect=prospect, show_modal='email') else: self.render_campaign_details(campaign, error_message='Prospect not found')
def mark_as_sent_post(self, campaign_key, prospect_id): campaign = db.get_from_urlsafe_key(campaign_key) prospect = db.get_prospect_from_prospect_id(prospect_id) logging.info('Marking email as sent for prospect %s' % prospect) if prospect: logging.info('POST %s' % self.request.POST) email_text = self.request.get("email_body") self.create_prospect_email_note(prospect, campaign, email_text) #prospect_url = '/admin/prospect' self.render_campaign_details(campaign, prospect=prospect, show_modal='email', modal_success_message='Email marked as sent and note created for <a href="/admin/prospects/%s">%s %s</a>' % (prospect.prospect_id, prospect.first_name, prospect.last_name)) else: self.render_campaign_details(campaign, error_message='Prospect not found')
def post(self, prospect_id=None): """ Edit the prospect """ # create form from POST edit_prospect_form = ProviderProspectEditForm().get_form(self.request.POST, request_webob=self.request) prospect = db.get_prospect_from_prospect_id(prospect_id) # validate if edit_prospect_form.validate(): ## save edit_prospect_form.populate_obj(prospect) prospect.put() self.render_details(prospect) else: self.render_details(prospect, edit_prospect_form=edit_prospect_form, edit="prospect")
def __call__(self, form, field): prospect_id = field.data if prospect_id: # try to fetch a provider with this email address prospect = db.get_prospect_from_prospect_id(prospect_id) if prospect: # taken raise ValidationError(self.message) else: #available pass
def get(self, prospect_id=None, operation=None, key=None): prospect = db.get_prospect_from_prospect_id(prospect_id) note_key = ndb.Key(urlsafe=key) if prospect: if operation == "delete": note_key.delete() self.redirect("/admin/prospects/" + prospect.prospect_id) if operation == "edit": if note_key: note = note_key.get() prospect_note_form = ProspectNoteForm().get_form(obj=note) self.render_details(prospect, prospect_note_form=prospect_note_form, edit="note", edit_key=key)
def post(self, prospect_id=None): prospect = db.get_prospect_from_prospect_id(prospect_id) add_to_campaign_form = ProspectAddToCampaignForm().get_form(self.request.POST) if add_to_campaign_form.validate(): campaign_urlsafe_key = add_to_campaign_form.campaign.data campaign = db.get_from_urlsafe_key(campaign_urlsafe_key) if prospect.key not in campaign.prospects: campaign.prospects.append(prospect.key) # TODO: create admin note campaign.put() else: error_message = "Prospect is already a member of the campaign %s" % campaign.name logging.error(error_message) self.redirect("/admin/prospects/" + prospect.prospect_id)
def post(self, prospect_id=None): ''' Edit the prospect ''' # create form from POST edit_prospect_form = ProviderProspectEditForm().get_form( self.request.POST, request_webob=self.request) prospect = db.get_prospect_from_prospect_id(prospect_id) # validate if edit_prospect_form.validate(): ## save edit_prospect_form.populate_obj(prospect) prospect.put() self.render_details(prospect) else: self.render_details(prospect, edit_prospect_form=edit_prospect_form, edit='prospect')
def post(self, prospect_id=None): prospect = db.get_prospect_from_prospect_id(prospect_id) add_to_campaign_form = ProspectAddToCampaignForm().get_form( self.request.POST) if add_to_campaign_form.validate(): campaign_urlsafe_key = add_to_campaign_form.campaign.data campaign = db.get_from_urlsafe_key(campaign_urlsafe_key) if prospect.key not in campaign.prospects: campaign.prospects.append(prospect.key) # TODO: create admin note campaign.put() else: error_message = 'Prospect is already a member of the campaign %s' % campaign.name logging.error(error_message) self.redirect('/admin/prospects/' + prospect.prospect_id)
def get(self, prospect_id=None, operation=None, key=None): prospect = db.get_prospect_from_prospect_id(prospect_id) note_key = ndb.Key(urlsafe=key) if prospect: if operation == 'delete': note_key.delete() self.redirect('/admin/prospects/' + prospect.prospect_id) if operation == 'edit': if note_key: note = note_key.get() prospect_note_form = ProspectNoteForm().get_form(obj=note) self.render_details(prospect, prospect_note_form=prospect_note_form, edit='note', edit_key=key)
def log_entry(self): google_user = users.get_current_user() user = self.get_current_user() # log request in database log_entry = SiteLog() log_entry.language = self.get_language() log_entry.page = self.request.path log_entry.ip = self.request.remote_addr log_entry.referer = self.request.referer if "X-AppEngine-Country" in self.request.headers: log_entry.gae_country = self.request.headers["X-AppEngine-Country"] if "X-AppEngine-Region" in self.request.headers: log_entry.gae_region = self.request.headers["X-AppEngine-Region"] if "X-AppEngine-City" in self.request.headers: log_entry.gae_city = self.request.headers["X-AppEngine-City"] if "X-AppEngine-CityLatLong" in self.request.headers: log_entry.gae_city_lat_long = self.request.headers["X-AppEngine-CityLatLong"] if user: log_entry.user_email = user.get_email() log_entry.user = user.key if google_user: log_entry.admin_email = google_user.email() if self.session.has_key('prospect_id'): prospect_id = self.session['prospect_id'] if prospect_id: prospect = db.get_prospect_from_prospect_id(prospect_id) if prospect_id: log_entry.prospect_id = prospect_id if prospect: log_entry.prospect = prospect.key log_entry.put_async()
def get(self, prospect_id = None): prospect = db.get_prospect_from_prospect_id(prospect_id) if prospect: if "X-AppEngine-Country" in self.request.headers: prospect.gae_country = self.request.headers["X-AppEngine-Country"] if "X-AppEngine-Region" in self.request.headers: prospect.gae_region = self.request.headers["X-AppEngine-Region"] if "X-AppEngine-City" in self.request.headers: prospect.gae_city = self.request.headers["X-AppEngine-City"] if "X-AppEngine-CityLatLong" in self.request.headers: prospect.gae_city_lat_long = self.request.headers["X-AppEngine-CityLatLong"] prospect.landing_hits += 1 prospect.put() self.session['prospect_id'] = prospect.prospect_id self.redirect(str(prospect.prospect_landing)) else: self.redirect("/")
def get(self, what=None, prospect_id=None): site_counter = db.get_site_counter() site_counter.blog_clicks += 1 language = util.DEFAULT_LANG # set prospect and redirect based on that if prospect_id: prospect = db.get_prospect_from_prospect_id(prospect_id) if prospect: self.log_prospect(prospect_id) language = prospect.language else: # default language to english for blog since there are more posts language = 'en' else: # figure out the language url_obj = urlparse.urlparse(self.request.url) path = url_obj.path if path: path_split = path.split('/') lang = path_split[1] if lang in util.LANGUAGES: logging.info('Setting lang from url %s' % lang) self.set_language(lang) language = self.get_language() if language == 'fr': site_counter.blog_clicks_fr += 1 self.redirect("http://blogue.veosan.com") else: site_counter.blog_clicks_en += 1 self.redirect("http://blog.veosan.com") site_counter.put_async() self.log_entry()
def get(self, what = None, prospect_id = None): site_counter = db.get_site_counter() site_counter.blog_clicks += 1 language = util.DEFAULT_LANG # set prospect and redirect based on that if prospect_id: prospect = db.get_prospect_from_prospect_id(prospect_id) if prospect: self.log_prospect(prospect_id) language = prospect.language else: # default language to english for blog since there are more posts language = 'en' else: # figure out the language url_obj = urlparse.urlparse(self.request.url) path = url_obj.path if path: path_split = path.split('/') lang = path_split[1] if lang in util.LANGUAGES: logging.info('Setting lang from url %s' % lang) self.set_language(lang) language = self.get_language() if language == 'fr': site_counter.blog_clicks_fr += 1 self.redirect("http://blogue.veosan.com") else: site_counter.blog_clicks_en += 1 self.redirect("http://blog.veosan.com") site_counter.put_async() self.log_entry()
def get_language(self): # parse path and look for potential vanity url url = self.request.url url_obj = urlparse.urlparse(url) path = url_obj.path if path: path_no_slash = path.replace('/','') provider_from_vanity_url = db.get_provider_from_vanity_url(path_no_slash) # parse url and look for potential language url_language = language.get_language_from_url(self.request.url) # look for a prospect prospect = None if self.session.has_key('prospect_id'): prospect_id = self.session['prospect_id'] if prospect_id: prospect = db.get_prospect_from_prospect_id(prospect_id) # set the best language based on information available to us in order of priority # 1. directly in URL # 2. from a logged in user # 3. from a provider's default language (if viewing their profile) # 4. from a prospect's preset language # 5. default system language if url_language: return url_language elif self.get_current_user(): return self.get_current_user().language elif provider_from_vanity_url and provider_from_vanity_url.profile_language: return provider_from_vanity_url.profile_language elif prospect: return prospect.language else: return util.DEFAULT_LANG
def log_prospect(self, prospect_id = None): prospect = db.get_prospect_from_prospect_id(prospect_id) if prospect: if "X-AppEngine-Country" in self.request.headers: prospect.gae_country = self.request.headers["X-AppEngine-Country"] if "X-AppEngine-Region" in self.request.headers: prospect.gae_region = self.request.headers["X-AppEngine-Region"] if "X-AppEngine-City" in self.request.headers: prospect.gae_city = self.request.headers["X-AppEngine-City"] if "X-AppEngine-CityLatLong" in self.request.headers: prospect.gae_city_lat_long = self.request.headers["X-AppEngine-CityLatLong"] self.set_language(prospect.language) prospect.landing_hits += 1 prospect.put() self.session['prospect_id'] = prospect.prospect_id return prospect
def get(self, prospect_id=None): prospect = db.get_prospect_from_prospect_id(prospect_id) self.render_details(prospect)
def get(self, prospect_id=None): prospect = db.get_prospect_from_prospect_id(prospect_id) if prospect: prospect.key.delete() self.redirect("/admin/prospects")
def get(self, prospect_id=None): prospect = db.get_prospect_from_prospect_id(prospect_id) if prospect: prospect.key.delete() self.redirect('/admin/prospects')