def get(self): stats_map = {} # get hits to any page stats_map['page_hit_count'] = SiteLog.query(SiteLog.page == '/', SiteLog.admin_email == None).count() # get hits to home page stats_map['homepage_hit_count'] = SiteLog.query(SiteLog.page == '/', SiteLog.admin_email == None).count() # get hits to provider signup page stats_map['provider_signup_hit_count'] = SiteLog.query(SiteLog.page == '/signup/provider', SiteLog.admin_email == None).count() # get total # of providers stats_map['provider_total_count'] = Provider.query().count() # get hits from Internet Explorer stats_map['internet_explorer_count'] = db.get_site_counter().internet_explorer_hits # number of times exiting site to blog stats_map['blog_clicks'] = db.get_site_counter().blog_clicks stats_map['click_full_button'] = db.get_site_counter().click_full_button stats_map['click_preview_button'] = db.get_site_counter().click_preview_button stats_map['signup_full_button'] = db.get_signup_from_origin('full') stats_map['signup_preview_button'] = db.get_signup_from_origin('preview') stats_map['paid_full_button'] = db.get_paid_from_origin('full') stats_map['paid_preview_button'] = db.get_paid_from_origin('preview') self.render_template('admin/dashboard.html', stats_map=stats_map)
def get_site_logs_for_prospect(prospect): ''' returns all the log events for a user ''' if prospect: return SiteLog.query(SiteLog.prospect == prospect.key).order( -SiteLog.access_time).fetch() else: return None
def calculate_sitelog_stats(self): ''' Calculates all stats related to sitelogs and stores them in ndb properties ''' logging.info('Calculating sitelog stats for %s. Last update was %s UTC' % (self.prospect_id, self.sitelog_calculation_timestamp)) latest_site_visit = SiteLog.query(SiteLog.prospect == self.key).order(-SiteLog.access_time).get() if latest_site_visit: self.last_site_visit_timestamp = latest_site_visit.access_time # update calculation time self.sitelog_calculation_timestamp = datetime.utcnow() self.put()
def get_site_logs(self): return SiteLog.query(SiteLog.prospect == self.key).order(-SiteLog.access_time).fetch(100)
def get_profile_views_total(self): page = '/' + self.vanity_url return SiteLog.query(SiteLog.page == page).count()
def get_profile_views_past_30_days(self): page = '/' + self.vanity_url today_minus_30_days = datetime.today() - timedelta(days=30) return SiteLog.query(SiteLog.page == page, SiteLog.access_time > today_minus_30_days).count()
def get_site_logs_for_prospect(prospect): ''' returns all the log events for a user ''' if prospect: return SiteLog.query(SiteLog.prospect == prospect.key).order(-SiteLog.access_time).fetch() else: return None
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_profile_views_past_30_days(self): page = '/' + self.vanity_url today_minus_30_days = datetime.today() - timedelta(days=30) return SiteLog.query( SiteLog.page == page, SiteLog.access_time > today_minus_30_days).count()