예제 #1
0
파일: admin.py 프로젝트: Vladis466/Homework
 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')
예제 #2
0
 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')
예제 #3
0
	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')
예제 #4
0
파일: admin.py 프로젝트: hardesc/CS-496
    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')
예제 #5
0
    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')