示例#1
0
    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)
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
 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')
示例#5
0
    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')
示例#6
0
    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)
示例#7
0
 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')
示例#8
0
 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')
示例#9
0
 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")
示例#10
0
 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
示例#11
0
    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)
示例#12
0
    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)
示例#13
0
 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')
示例#14
0
    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)
示例#15
0
    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)
示例#16
0
    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()
示例#17
0
    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("/")
示例#18
0
    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()
示例#19
0
文件: static.py 项目: deltron/veosan
    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()
示例#20
0
    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 
示例#21
0
 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
示例#22
0
 def get(self, prospect_id=None):
     prospect = db.get_prospect_from_prospect_id(prospect_id)
     self.render_details(prospect)
示例#23
0
    def get(self, prospect_id=None):
        prospect = db.get_prospect_from_prospect_id(prospect_id)
        if prospect:
            prospect.key.delete()

        self.redirect("/admin/prospects")
示例#24
0
 def get(self, prospect_id=None):
     prospect = db.get_prospect_from_prospect_id(prospect_id)
     self.render_details(prospect)
示例#25
0
    def get(self, prospect_id=None):
        prospect = db.get_prospect_from_prospect_id(prospect_id)
        if prospect:
            prospect.key.delete()

        self.redirect('/admin/prospects')