def post(self): #returns value of a queryURL or POST argument with the given name. action = self.request.get('action') if action == 'add_channel': k = ndb.Key(db_defs.Channel, self.app.config.get('default-group')) chan = db_defs.Channel(parent=k) chan.name = self.request.get('channel-name') # construct a key from a URL safe string chan.classes = [ ndb.Key(urlsafe=x) for x in self.request.get_all('classes[]') ] chan.active = True chan.put() # How to save a channel! self.template_values[ 'message'] = 'Added time study ' + chan.name + ' to the database' elif action == 'add_class': k = ndb.Key(db_defs.ChannelClass, self.app.config.get('default-group')) c = db_defs.ChannelClass(parent=k) c.name = self.request.get('class-name') c.put() self.template_values[ 'message'] = 'Added class ' + c.name + 'to the database.' elif action == 'del_class': k = ndb.Key(db_defs.ChannelClass, self.app.config.get('default-group')) c = db_defs.ChannelClass(parent=k) c.name = self.request.get('class-name') self.template_values[ 'message'] = 'Deleted Procedure ' + c.name + ' from the database' db_defs.ChannelClass(parent=k).key.delete() else: self.template_values[ 'message'] = 'Action ' + action + ' is unknown' self.render('admin.html')
def post(self, icon_key=None): action = self.request.get('action') if action == 'add_channel': #key: type + id k = ndb.Key(db_defs.Channel, self.app.config.get('default-group')) chan = db_defs.Channel(parent=k) chan.name = self.request.get('channel-name') chan.classes = [ ndb.Key(urlsafe=x) for x in self.request.get_all('classes[]') ] chan.active = True chan.icon = icon_key # put saves, returns to key chan.put() self.template_values[ 'message'] = 'Added ' + chan.name + ' to the database.' elif action == 'add_class': k = ndb.Key(db_defs.ChannelClass, self.app.config.get('default-group')) c = db_defs.ChannelClass(parent=k) c.name = self.request.get('class-name') c.put() self.template_values[ 'message'] = 'Added ' + c.name + ' to the database.' else: self.template_values[ 'message'] = 'Action ' + action + ' is unknown.' #self.template_values['classes'] = db_defs.ChannelClass.query(ancestor=ndb.Key(db_defs.ChannelClass, self.app.config.get('default-group'))).fetch() self.render('admin.html')
def post(self): action=self.request.get('action') if action=='add_channel': k=ndb.Key(db_defs.Channel,self.app.config.get('default-group')) chan=db_defs.Channel(parent=k) chan.name=self.request.get('channel-name') chan.url=self.request.get('url_name') chan.age=self.request.get('age_num') chan.check=self.request.get('check') chan.classes=[ndb.Key(urlsafe=x) for x in self.request.get_all('classes[]')] chan.active=True chan.put() self.template_values['message']='Added ' + chan.name + ' to the database.' elif action=='add_class': k=ndb.Key(db_defs.ChannelClass, self.app.config.get('default-group')) c=db_defs.ChannelClass(parent=k) c.name=self.request.get('class-name') c.put() self.template_values['message']='Added genre' + c.name + ' to the database.' else: self.template_values['message']='Action ' + action + ' is unknown' self.template_values['classes'] = db_defs.ChannelClass.query( ancestor=ndb.Key(db_defs.ChannelClass, self.app.config.get('default-group'))).fetch() self.render('admin.html')
def post(self, icon_key=None): # action is the name of the hidden input in admin.html action = self.request.get('action') if action == 'add_channel': # Key([Type], [Identifier]) # Type = Channel # Id = 'base-data' in main.py (could have just hardcoded instead of passing function) # Parent key for all of the channels k = ndb.Key(db_defs.Channel, self.app.config.get('default-group')) # New channel, call constructor for channel # Only way to guarantee consistency when updating is to have everything be descendants of the same parent # Knows everything in that group needs to be updated and retrieved as a group # It is possible to save a channel, attempt to immediately display it via call to fetch from database # and not get it back from the database because it has not propagated throughout the database yet # Put it all underneath the same parent key lets us get at it all at once # (at some point, it will be consistent but may not be right now) chan = db_defs.Channel(parent=k) # Set name of channel from form chan.name = self.request.get('channel-name') # Construct a key from a urlsafe string (does this for every checkbox we check) chan.classes = [ ndb.Key(urlsafe=x) for x in self.request.get_all('classes[]') ] chan.active = True # Set to passed in icon_key chan.icon = icon_key # Save the channel by returning the key to this specific instance of a channel chan.put() self.template_values[ 'message'] = 'Added channel ' + chan.name + ' to the database.' elif action == 'add_class': k = ndb.Key(db_defs.ChannelClass, self.app.config.get('default-group')) c = db_defs.ChannelClass(parent=k) c.name = self.request.get('class-name') c.put() self.template_values[ 'message'] = 'Added class ' + c.name + ' to the database.' else: self.template_values[ 'message'] = 'Action ' + action + ' is unknown.' # template_values['classes'] = db_defs.ChannelClass.query().fetch() self.template_values['classes'] = db_defs.ChannelClass.query( ancestor=ndb.Key(db_defs.ChannelClass, self.app.config.get('default-group'))).fetch() self.render('admin.html')
def post(self): #returns value of a queryURL or POST argument with the given name. action = self.request.get('action') if action == 'add_channel': k = ndb.Key(db_defs.Channel, 'default') chan = db_defs.Channel(parent=k) chan.name = self.request.get('channel-name') # construct a key from a URL safe string if chan.name == "": self.template_values['message'] = 'Invalid Value, Please try again.' else: chan.classes = [ndb.Key(urlsafe=x) for x in self.request.get_all('classes[]')] chan.active = True chan.put() # How to save a channel! self.template_values['message'] = 'Added time study ' + chan.name + ' to the database' elif action == 'del_channel': self.template_values['channels'] = [{'name': x.name, 'key': x.key.urlsafe()} for x in db_defs.Channel.query( ancestor=ndb.Key(db_defs.Channel, 'default')).fetch()] Tkey = [d['key'] for d in self.template_values['channels'] if d['name'] == self.request.get('channel-name')] if Tkey: self.template_values['message'] = 'Succesfully deleted' ndb.Key(urlsafe=str(Tkey)).delete() else: self.template_values['message'] = 'Procedure not found. Deletion failed.' # # # elif action == 'add_class': k = ndb.Key(db_defs.ChannelClass, 'default') c = db_defs.ChannelClass(parent=k) c.name = self.request.get('class-name') if c.name == "": self.template_values['message'] = 'Invalid Value, Please try again.' else: self.template_values['message'] = 'Added procedure ' + c.name + ' to the database.' c.put() #Query all the different procedures currently in the database #Isolate the entity matching the class name selected #Delete that entity elif action == 'del_class': self.template_values['classes'] = [{'name': x.name, 'key': x.key.urlsafe()} for x in db_defs.ChannelClass.query().fetch()] Tkey = [d['key'] for d in self.template_values['classes'] if d['name'] == self.request.get('class-name')] if Tkey: self.template_values['message'] = 'Succesfully deleted' ndb.Key(urlsafe=str(Tkey)).delete() else: self.template_values['message'] = 'Procedure not found. Deletion failed.' elif action == 'login': self.template_values['message'] = 'Welcome!' else: self.template_values['message'] = ' '# + action + ' is unknown' self.render('admin.html')