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
for city in cities.cities(): has_output = False if not city: continue obligees = get_obligee(city.name) count = obligees.count() if count == 0: # TODO: non existing obligees -- check script 'skript_nove_obce.py' continue if count == 1: obligee = obligees[0] official_post_obligee_zip = get_official_zip("{}, {}".format( obligee.street.decode('utf-8'), obligee.city.decode('utf-8'))) official_post_json_zip = get_official_zip("%s %s %s" % ( city.adresa_uradu_ulica, city.adresa_uradu_cislo_domu, city.adresa_uradu_mesto, )) zip_code = ZipCodes( obligee=obligee, json_zip=city.adresa_uradu_psc.replace(" ", ""), post_json_zip=official_post_json_zip, post_obligee_zip=official_post_obligee_zip, ) session.add(zip_code) session.commit() print("Total updates: %s" % updates)
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")