def post(self): self.response.headers['Content-Type'] = 'text/html' action = self.request.get('button') if action == 'Add GPU': name = self.request.get('name') manufacturer = self.request.get('manufacturer') dateIssued = datetime.strptime(self.request.get("dateIssued"), '%Y-%m-%d') geometryShader = self.request.get('geometryShader') == 'on' tesselationShader = self.request.get('tesselationShader') == 'on' shaderInt16 = self.request.get('shaderInt16') == 'on' sparseBinding = self.request.get('sparseBinding') == 'on' textureCompressionETC2 = self.request.get( 'textureCompressionETC2') == 'on' vertexPipelineStoresAndAtomics = self.request.get( 'vertexPipelineStoresAndAtomics') == 'on' user = users.get_current_user() mygpu_key = ndb.Key('Gpu', name) mygpu = mygpu_key.get() if mygpu == None: new_details = Gpu( id=name, name=name, manufacturer=manufacturer, dateIssued=dateIssued, geometryShader=geometryShader, tesselationShader=tesselationShader, shaderInt16=shaderInt16, sparseBinding=sparseBinding, textureCompressionETC2=textureCompressionETC2, vertexPipelineStoresAndAtomics= vertexPipelineStoresAndAtomics) new_details.put() self.redirect('/') else: template_values = {'error': 'Gpu already in datastore'} template = JINJA_ENVIRONMENT.get_template('mainpage.html') self.response.write(template.render(template_values)) elif action == 'Delete': index = int(self.request.get('index')) user = users.get_current_user() myuser_key = ndb.Key('MyUser', user.user_id()) myuser = myuser_key.get() del myuser.details[index] myuser.put() self.redirect('/')
def post(self): self.response.headers['Content-Type'] = 'text/html' # If the user clicks on the Add button if self.request.get('button') == 'Add': check = self.request.get('gpu_device') myuser_key = ndb.Key('Gpu', check) gpu = myuser_key.get() # Add the gpu if it doesn't already exists if gpu == None: gpu = Gpu(id=check) gpu.geometryShader = self.request.get('gpu_geometryShader') gpu.tesselationShader = self.request.get( 'gpu_tesselationShader') gpu.shaderInt16 = self.request.get('gpu_shaderInt16') gpu.sparseBinding = self.request.get('gpu_sparseBinding') gpu.textureCompressionETC2 = self.request.get( 'gpu_textureCompressionETC2') gpu.vertexPipelineStoresAndAtomics = self.request.get( 'gpu_vertexPipelineStoresAndAtomics') gpu.put() self.redirect('/main') # If gpu exists else: logout = users.create_logout_url('/') error_message = 'A gpu with this name exists' # generate a map that contains everything that we need to pass to the template template_values = { 'logout': logout, 'error_message': error_message } # asking jinja to render the template files with the template values template = JINJA_ENVIRONMENT.get_template('add.html') self.response.write(template.render(template_values)) # If the user clicks on the Cancel button elif self.request.get('button') == 'Cancel': self.redirect('/main')
def post(self, gname): self.response.headers['Content-Type'] = 'text/html' action = self.request.get('button') user = users.get_current_user() if user == None: self.redirect('/') myuser_key = ndb.Key('MyUser', user.user_id()) myuser = myuser_key.get() error = "" gkey = ndb.Key('Gpu', gname) gpu = gkey.get() if gpu == None: self.redirect('/') if action == 'Update': name = self.request.get('name') manufacturer = self.request.get('manufacturer') dateissued = self.request.get('dateissued') geometryShader = self.request.get('geometryShader') == 'on' tesselationShader = self.request.get('tesselationShader') == 'on' shaderInt16 = self.request.get('shaderInt16') == 'on' sparseBinding = self.request.get('sparseBinding') == 'on' textureCompressionETC2 = self.request.get( 'textureCompressionETC2') == 'on' vertexPipelineStoresAndAtomics = self.request.get( 'vertexPipelineStoresAndAtomics') == 'on' if name and dateissued: dateissued = datetime.strptime(dateissued, '%Y-%m-%d') if name != gpu.name: nkey = ndb.Key('Gpu', name) if nkey.get(): error = "gpu with the name already exist." else: gpu.key.delete() gpu = Gpu(id=name, name=name) if error == "": gpu.populate(manufacturer=manufacturer, dateissued=dateissued, geometryShader=geometryShader, tesselationShader=tesselationShader, shaderInt16=shaderInt16, sparseBinding=sparseBinding, textureCompressionETC2=textureCompressionETC2, vertexPipelineStoresAndAtomics= vertexPipelineStoresAndAtomics) if gpu.put(): error = 'gpu updated' else: error = 'gpu not updated' else: error = 'name OR dateissued cannot be empty' template_values = { 'logout_url': users.create_logout_url(self.request.uri), 'gpu': gpu, 'error': error } template = JINJA_ENVIRONMENT.get_template('edit.html') self.response.write(template.render(template_values))