Exemple #1
0
    def get_compare(self):
        params = self.request.params
        if len(params) > 0 and 'gpu1' not in params or 'gpu2' not in params:
            # logging.info(self.request.params['gpu_name'])
            self.redirect('/')
            return
        gpu1_key = ndb.Key('GpuModel', params['gpu1'])
        Gpu1 = gpu1_key.get()

        gpu2_key = ndb.Key('GpuModel', params['gpu2'])
        Gpu2 = gpu2_key.get()

        if not Gpu1 or not Gpu2:
            self.redirect("/")
            return
        user = User.get_user(self)
        data = {
            "gpu1": Gpu1,
            "gpu2": Gpu2,
            'url': user["url"],
            'url_string': user['url_string'],
        }
        template = template_engine.JINJA_ENVIRONMENT.get_template(
            'layouts/gpu/compare.html')
        self.response.write(template.render(data))
Exemple #2
0
 def index(self):
     template = template_engine.JINJA_ENVIRONMENT.get_template(
         'layouts/home.html')
     user = User.get_user(self)
     data = {
         'url': user["url"],
         'url_string': user['url_string'],
     }
     self.response.write(template.render(data))
Exemple #3
0
 def get_search(self):
     template = template_engine.JINJA_ENVIRONMENT.get_template(
         'layouts/gpu/search.html')
     user = User.get_user(self)
     self.response.write(
         template.render({
             'url': user["url"],
             'url_string': user['url_string']
         }))
Exemple #4
0
 def new_gpu_get(self):
     params = self.request.params
     if len(params) > 0 and 'gpu_name' not in params:
         # logging.info(self.request.params['gpu_name'])
         self.redirect('/')
         return
     user = User.get_user(self)
     template = template_engine.JINJA_ENVIRONMENT.get_template(
         'layouts/gpu/new.html')
     self.response.write(
         template.render({
             'url': user["url"],
             'url_string': user['url_string']
         }))
Exemple #5
0
 def gpu_list(self):
     template = template_engine.JINJA_ENVIRONMENT.get_template(
         'layouts/gpu/index.html')
     query = GpuModel.query()
     gpus = query.fetch()
     logging.info(query.fetch(projection=[GpuModel.name]))
     for val in query.fetch(projection=[GpuModel.name]):
         logging.info(val.name)
     user = User.get_user(self)
     data = {
         "gpus": gpus,
         'url': user["url"],
         'url_string': user['url_string'],
     }
     self.response.write(template.render(data))
Exemple #6
0
 def edit_gpu_get(self):
     template = template_engine.JINJA_ENVIRONMENT.get_template(
         'layouts/gpu/edit.html')
     query = GpuModel.query(
         GpuModel.name == self.request.params['gpu_name'])
     gpu = query.fetch()
     logging.info(gpu)
     if len(gpu) == 0:
         self.redirect('/')
         return
     user = User.get_user(self)
     data = {
         "gpu": gpu[0],
         'url': user["url"],
         'url_string': user['url_string'],
     }
     logging.info(gpu[0].name)
     self.response.write(template.render(data))
Exemple #7
0
    def post_search(self):
        params = []
        error = ""
        if self.request.get('geometryShader'):
            params.append(GpuModel.geometryShader == True)

        if self.request.get('tesselationShader'):
            params.append(GpuModel.tesselationShader == True)

        if self.request.get('shaderInt16'):
            params.append(GpuModel.shaderInt16 == True)

        if self.request.get('sparseBinding'):
            params.append(GpuModel.sparseBinding == True)

        if self.request.get('textureCompressionETC2'):
            params.append(GpuModel.textureCompressionETC2 == True)

        if self.request.get('vertexPipelineStoresAndAtomics'):
            params.append(GpuModel.vertexPipelineStoresAndAtomics == True)

        result = []
        if len(params) == 0:
            error = "Please select an option"
        else:
            query = GpuModel.query(*params)
            result = query.fetch()
            if len(result) == 0:
                error = "There is no GPU available with this selection"
        user = User.get_user(self)
        template = template_engine.JINJA_ENVIRONMENT.get_template(
            'layouts/gpu/search.html')
        self.response.write(
            template.render({
                "results": result,
                "errors": error,
                'url': user["url"],
                'url_string': user['url_string']
            }))
Exemple #8
0
 def gpu_selection(self):
     template = template_engine.JINJA_ENVIRONMENT.get_template(
         'layouts/gpu/selection.html')
     query = GpuModel.query(projection=[GpuModel.name])
     logging.info(query)
     form = self.request.get('form')
     gpu1 = self.request.get('gpu1')
     gpu2 = self.request.get('gpu2')
     error = []
     if form:
         if gpu1 == gpu2:
             error.append("Please select two types of GPUs to compare")
         else:
             self.redirect('/gpu/compare?' + "gpu1=" + gpu1 + "&" +
                           "gpu2=" + gpu2)
             return
     user = User.get_user(self)
     data = {
         "gpus": query,
         "errors": error,
         'url': user["url"],
         'url_string': user['url_string'],
     }
     self.response.write(template.render(data))
Exemple #9
0
    def new_gpu_post(self, form_name):
        GpuPage.errors = []

        geometryShader = False
        if self.request.get('geometryShader'):
            geometryShader = True

        tesselationShader = False
        if self.request.get('tesselationShader'):
            tesselationShader = True

        shaderInt16 = False
        if self.request.get('shaderInt16'):
            shaderInt16 = True

        sparseBinding = False
        if self.request.get('sparseBinding'):
            sparseBinding = True

        textureCompressionETC2 = False
        if self.request.get('textureCompressionETC2'):
            textureCompressionETC2 = True

        vertexPipelineStoresAndAtomics = False
        if self.request.get('vertexPipelineStoresAndAtomics'):
            vertexPipelineStoresAndAtomics = True

        name = self.request.get('name')
        if form_name != "edit_gpu" and Validation.is_empty(name):
            GpuPage.errors.append('GPU name can not be empty')

        if form_name == "edit_gpu":
            name = self.request.params['gpu_name']

        manufacturer = self.request.get('manufacturer')
        if Validation.is_empty(manufacturer):
            GpuPage.errors.append('Manufacturer name can not be empty')

        date = self.request.get('date')
        if Validation.is_empty(date):
            GpuPage.errors.append('Manufactured date can not be empty')
        if form_name == "edit_gpu":
            GpuModel_key = ndb.Key('GpuModel', name)
            Gpu = GpuModel_key.get()
            if Gpu == None:
                self.redirect("/")
        if len(GpuPage.errors) == 0:
            GpuModel_key = ndb.Key('GpuModel', name)
            Gpu = GpuModel_key.get()
            if form_name == "new_gpu" and Gpu != None:
                GpuPage.errors.append("This GPU already exists")
            else:
                newGpu = GpuModel(
                    id=name,
                    name=name,
                    manufacturer=manufacturer,
                    date=datetime.datetime.strptime(date, '%Y-%m-%d'),
                    geometryShader=geometryShader,
                    tesselationShader=tesselationShader,
                    shaderInt16=shaderInt16,
                    sparseBinding=sparseBinding,
                    textureCompressionETC2=textureCompressionETC2,
                    vertexPipelineStoresAndAtomics=
                    vertexPipelineStoresAndAtomics)

                newGpu.put()
        user = User.get_user(self)
        message = ""
        if form_name == "new_gpu":
            template = template_engine.JINJA_ENVIRONMENT.get_template(
                'layouts/gpu/new.html')
            if not GpuPage.errors:
                message = "GPU saved successfully"
            data = {
                "errors": GpuPage.errors,
                'url': user["url"],
                'url_string': user['url_string'],
                'message': message
            }
        else:
            query = GpuModel.query(
                GpuModel.name == self.request.params['gpu_name'])
            gpu = query.fetch()
            if not GpuPage.errors:
                message = "GPU updated successfully"
            data = {
                "gpu": gpu[0],
                "errors": GpuPage.errors,
                'url': user["url"],
                'url_string': user['url_string'],
                'message': message
            }
            template = template_engine.JINJA_ENVIRONMENT.get_template(
                'layouts/gpu/edit.html')

        self.response.write(template.render(data))