示例#1
0
	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")
示例#2
0
	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)
示例#3
0
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())
示例#4
0
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)
示例#6
0
def getLimitArrayScript():
	client = memcache.Client()
	limitArrayScript = client.get("limitArrayScript")
	if limitArrayScript == None:
		updateZipCodeScript(ZipCodes.all().get())
	return client.get("limitArrayScript")
示例#7
0
def getCostArrayScript():
	client = memcache.Client()
	costArrayScript = client.get("costArrayScript")
	if costArrayScript == None:
		updateZipCodeScript(ZipCodes.all().get())
	return client.get("costArrayScript")