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('/')
Exemplo n.º 2
0
    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')
Exemplo n.º 3
0
    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))