class AdminPage(BasePage): """Class to handle requests to the admin directory.""" def RenderAdminPage(self): """Renders the admin page""" logging.info('RenderAdminPage called') self.template_values['title'] = self.userprefs.site_title+" gallery admin" self.template_values['album_name'] = "admin" self.template_values['logout_url'] = users.create_logout_url('/') if users.get_current_user() != self.userprefs.user: self.template_values['current_user'] = users.get_current_user() self.template_values['user'] = self.userprefs self.template_values['settings'] = settings self.template_values['debug'] = settings.DEBUG backend = self.userprefs.GetPhotoBackend() try: albums = backend.GetAllAlbums() except: albums = [] album_list = [] featured_albums = self.userprefs.featured_albums for a in albums: if a['title'] in featured_albums: a['featured'] = True else: a['featured'] = False album_list.append(a) album_list.append({'id': 'all', 'title': 'all', 'featured': ('all' in featured_albums)}) self.template_values['all_albums'] = album_list path = os.path.join(os.path.dirname(__file__), 'admin.html') self.response.out.write(template.render(path, self.template_values)) def InitializeUser(self): # Get the owner of the app self.userprefs = UserPrefs.all().get() if not self.userprefs: # Create the owner of the app self.userprefs = UserPrefs(user=users.get_current_user()) self.userprefs.put() def get(self): """Default method called upon entry to the app.""" self.InitializeUser() # Reset template values with every new request. self.template_values = { } self.RenderAdminPage() def post(self): """Save the admin settings.""" self.InitializeUser() self.template_values = { } # Get the admin settings and save them try: if self.request.get('clear-cache'): backend = self.userprefs.GetPhotoBackend() backend.ClearCache() self.template_values['cache_cleared'] = True else: self.userprefs.photo_backend = int(self.request.get('backend')) self.userprefs.SetUsername(self.request.get('backend-id')) self.userprefs.site_title = self.request.get('site-title').strip() self.userprefs.site_header = self.request.get('site-header').strip() self.userprefs.thumb_size = int(self.request.get('thumb-size')) if self.userprefs.photo_backend == settings.PHOTO_BACKEND_FLICKR: self.userprefs.thumb_size = 75 elif self.userprefs.photo_backend == settings.PHOTO_BACKEND_PICASA and self.userprefs.thumb_size == 75: self.userprefs.thumb_size = 72 self.userprefs.thumb_cropped = bool(self.request.get('thumb-cropped')) self.userprefs.full_size = int(self.request.get('full-size')) self.userprefs.homepage_size = int(self.request.get('homepage-size')) backend = self.userprefs.GetPhotoBackend() homepage_album = self.request.get('homepage-album').strip() for album in backend.GetAllAlbums(): if album['title'] == homepage_album: self.userprefs.homepage_album = homepage_album featured_albums = self.request.get('featured-album', allow_multiple=True) self.userprefs.featured_albums = featured_albums self.userprefs.merchant_id = self.request.get('merchant-id') self.userprefs.analytics_id = self.request.get('analytics-id') self.userprefs.put() self.template_values['saved'] = True except (TypeError, ValueError), e: self.template_values['error'] = True self.template_values['error_message'] = str(e) self.RenderAdminPage()
def get(self): #timeout = 0.2 # logging.debug("a cold beer in the sun") user = users.get_current_user() if user: auth_url = users.create_logout_url(self.request.uri) auth_url_linktext = "Log Out" # storing the user to UserPrefs if we haven't already user_id = user.user_id() # pic = user.pic() googles innebygde userklasse har ikke pic, det er det din klasse som har. q = UserPrefs.all() user_object = q.filter("user_id =",user_id).get() # pic = user_object.pic() not callable # pic = user_object.nickname() if not user_object: user_object = UserPrefs() #need a new name, like UserObject. # else: # if user_object.pic: user_object.user_id = user_id user_object.nickname = user.nickname() user_object.email = user.email() user_object.put() # logging.debug("usr: %s", usr) # if False: # pass # # if usr: # # user_id = usr.user_id() # # nickname = usr.nickname() # # email = usr.email() # # auth_url = users.create_logout_url(self.request.uri) # # auth_url_linktext = "Logout" # # q = UserPrefs.all() # # q = q.filter("user_id =",user_id) # # # try: # if machine restarts, there will be nothing on localhost # # [u] = q.fetch(1) # #you need the try except or something similar because the db might be empty (restart machine local). # # nick = u.nickname # else, it's "" from above # # # except: # # # u = # # keys = u.companies # # companies = [] # # for key in keys: # # company = Company.get_by_id(int(key.id())) # # companies.append(company) # # duplicates = [] # # for company in u.companies: # # if company in duplicates: # # u.companies.remove(company) # # else: # # duplicates.append(company) # else: # auth_url = users.create_login_url(self.request.uri) # auth_url_linktext = "Login" # # q = Company.all() #you'll need a 'more' button to display more than these 20 # # companies = q.fetch(1000) #fetch can't be async for now. # nick = "" # # u = UserPrefs() # # u.user_id = user_id # # u.nickname = nickname # # u.email = email # # u.put() # # company = Company() # # company.name = "Google Inc" # # company.name_lower = "google inc" # # company.ticker = "GOOG" # # company.ticker_lower = "goog" # # company.exchange = "NASDAQ" # # company.put() # # company = Company() # # company.name = "Apple Inc" # # company.name_lower = "apple inc" # # company.ticker = "AAPL" # # company.ticker_lower = "aapl" # # company.exchange = "NASDAQ" # # company.put() # # company = Company() # # company.name = "Facebook Inc" # # company.name_lower = "facebook inc" # # company.ticker = "FB" # # company.ticker_lower = "fb" # # company.exchange = "NASDAQ" # # company.put() # # u.companies = [] # # u.put() # #dev only: # # c = Company.all().filter("ticker =","IBM").get() # # u.companies.remove(c.key()) # # u.companies = [] # # u.put() # # dupe check for subscribed companies: # # if u.companies == []: # # apple = Company.all().filter("name =","Apple Inc").get() # # if apple == None: # # apple = Company() # # apple.name = "Apple Inc" # # apple.name_lower = "apple inc" # # apple.ticker = "AAPL" # # apple.ticker_lower = "aapl" # # apple.exchange = "NASDAQ" # # apple.exchange_lower = "nasdaq" # # apple.put() # # else: # # u.companies.append(apple.key()) # # google = Company.all().filter("name =","Google Inc").get() # # if google == None: # # google = Company() # # google.name = "Google Inc" # # google.name_lower = "google inc" # # google.ticker = "GOOG" # # google.ticker_lower = "goog" # # google.exchange = "NASDAQ" # # google.exchange_lower = "nasdaq" # # google.put() # # else: # # u.companies.append(google.key()) # # facebook = Company.all().filter("name =","Facebook Inc").get() # # if facebook == None: # # facebook = Company() # # facebook.name = "Facebook Inc" # # facebook.name_lower = "facebook inc" # # facebook.ticker = "FB" # # facebook.ticker_lower = "fb" # # facebook.exchange = "NASDAQ" # # facebook.exchange_lower = "nasdaq" # # facebook.put() # # else: # # u.companies.append(facebook.key()) # # u.put() # # company_names = [] # # for company_key in u.companies: # # company = Company.get_by_id(company_key.id()) # # # try: # in case there are zombie ids for that user: # # company_names.append(company.name) # # # except: # # # continue # # # # displaying all companies for debugging only: # # comp_keys_names = [] # # for company in companies: # # # her sjekker du en variabel som returneres av menyvalget. defaulten her er også week. # # # resultatet bestemmer hvilken ctr som blir ctr; if scope == "day": (pos_ctr = pos_ctr_day, neg_ctr = neg_ctr_day). # # # articles = [article for article in company.articles if article.clean] # # # [pos_rat,neg_rat] = utils.sentiment_count(articles) # # if company.pos_ctr > 0: # # pos_arrow = "↑ " # # pos_str = str(company.pos_ctr) # # else: # # pos_arrow = "" # # pos_str = "" # # if company.neg_ctr > 0: # # neg_arrow = "↓ " # # neg_str = str(company.neg_ctr) # # else: # # neg_arrow = "" # # neg_str = "" # # comp_keys_names.append([company.key(), company.ticker, pos_arrow, pos_str, neg_arrow, neg_str]) # # # ##############db.delete(companies) don't do this either! # # # # you need a check here, to see what companies are already # # # # user companies! # # free_companies = ["Apple Inc", "Google Inc", "Facebook Inc"] # # for company in companies: # # if company.ticker == "GE": # # # company.name = "International Business Machines Corp." # # # company.name_lower = "international business machines corp." # # # company.ticker = "IBM" # # # company.ticker_lower = "ibm" # # company.exchange = "NYSE" # # company.put() # # if comp.name in free_companies and comp.key() not in u.companies: # # u.companies.append(comp.key()) # # # # comp.user = u #why can't this be usr? usr is a UserPrefs object, isn't it???? No, it's a in-built user object. # # company.put() # # u.put() # # q = article_objects = Article.all() # should be articles = company.articlestod # # q = q.order("-datetime") # # q = q.filter("clean =",True) # # article_objects = q.fetch(100) # # # article_objects = q # debug only # # ####db.delete(article_objects) stop doing this - delete attributes instead, run scripts to add new attributes # # keys_names = zip(u.companies,company_names) # # self.response.out.write(""" # # <form action="/sign?%s" enctype="multipart/form-data" method="post"> # # <div><textarea name="content" rows="3" cols="60"></textarea></div> # # <div><input type="submit" value="Sign Guestbook"></div> # # </form> # # <hr> # # <form>Guestbook name: <input value="%s" name="guestbook_name"> # # <div><label>Avatar:</label></div> # # <div><input type="file" name="img"/></div> # # <input type="submit" value="switch"></form> # # </body> # # </html>""" % (urllib2.urlencode({'guestbook_name': guestbook_name}), # # cgi.escape(guestbook_name))) template_values = { # 'nick' : nick, # 'pic' : user_object.pic, # 'pic' : user_object.key().id(), 'user_key' : user_object.key(), 'auth_url' : auth_url, 'auth_url_linktext' : auth_url_linktext, } # if no user: else: auth_url = users.create_login_url(self.request.uri) auth_url_linktext = "Login" template_values = { 'auth_url' : auth_url, 'auth_url_linktext' : auth_url_linktext, } template = jinja_environment.get_template('index.html') self.response.out.write(template.render(template_values))