def post(self): self.session[LOGIN_NEXT_PAGE_KEY] = self.URL if not isUserAdmin(self): self.session[LOGIN_NEXT_PAGE_KEY] = self.URL self.redirect("/") return codes = {} for field in self.request.arguments(): code = field[:4] if not codes.has_key(code): codeObj = {} else: codeObj = codes[code] if (field[4:8]=="_cst"): codeObj['cost'] = int(self.request.get(field)) else: codeObj['limit'] = int(self.request.get(field)) codes[code] = codeObj sortedCodes = sorted(codes.keys()) deliveryCosts = [] for code in sortedCodes: updateZipCodeEntry(code, codes.get(code)['cost'], codes.get(code)['limit']) deliveryCosts.append(code + " " + str(codes.get(code)['cost']) + " " + str(codes.get(code)['limit'])) rawCodes = ZipCodes.all().get() if (rawCodes == None): rawCodes = ZipCodes() rawCodes.deliveryCosts = deliveryCosts rawCodes.put() updateZipCodeScript(rawCodes) self.redirect("/editZipCodes")
def get(self): if not isUserAdmin(self): self.session[LOGIN_NEXT_PAGE_KEY] = self.URL self.redirect("/") return rawCodes = ZipCodes.all().get() if (rawCodes == None): rawCodes = ZipCodes() zipCodeList = createZipCodeList() rawCodes.deliveryCosts = zipCodeList rawCodes.put() codes = [] for code in rawCodes.deliveryCosts: parts=code.rsplit(" ") codes.append( { 'code':parts[0], 'cost':parts[1], 'limit':parts[2] }) template_values = { 'codes':codes } template = jinja_environment.get_template('templates/admin/zipCodeEditor.html') self.printPage("dashboard", template.render(template_values), False, False)
def updateZipCodeEntry(code, cost, limit): client = memcache.Client() key = "zip_code_cost_" + str(code) client.add(key, { 'cost':cost, 'limit':limit }) updateZipCodeScript(ZipCodes.all().get())
def getZipCodeEntry(code): client = memcache.Client() costs = client.get("zip_code_cost_" + str(code)) # If not in memcache, does nothing if costs != None: return costs else: rawCodes = ZipCodes.all().get() if (rawCodes == None): return None ret = None for code in rawCodes.deliveryCosts: parts=code.rsplit(" ") key = "zip_code_cost_" + parts[0] costs = { 'cost':int(parts[1]), 'limit':int(parts[2]) } client.add(key, costs) if parts[0] == str(code): ret = costs return ret
def getLimitArrayScript(): client = memcache.Client() limitArrayScript = client.get("limitArrayScript") if limitArrayScript == None: updateZipCodeScript(ZipCodes.all().get()) return client.get("limitArrayScript")
def getCostArrayScript(): client = memcache.Client() costArrayScript = client.get("costArrayScript") if costArrayScript == None: updateZipCodeScript(ZipCodes.all().get()) return client.get("costArrayScript")