def get(self): template_values = {} user = getUser(self) if user != None: template_values["user"] = user template = jinja_environment.get_template("templates/webshop/christmasLunch.html") self.printPage("Karácsonyi ebéd", template.render(template_values), True, True)
def post(self): if(not isUserAdmin(self)): self.session[LOGIN_NEXT_PAGE_KEY] = self.URL self.redirect("/") return admin = getUser(self) userKey = self.request.get("userKey") user = User.get(userKey) taskId = self.request.get("taskId") actualTime = datetime.datetime.now(timeZone) taskList = user.taskList newTaskList = [] doneTask = None for task in taskList: if task.encode('ascii','ignore').startswith(str(taskId) + " "): doneTask = task else: newTaskList.append(task) if doneTask != None: actualTime = datetime.datetime.now(timeZone) parts = doneTask.split(" ", 4) updatedTaskString = parts[0] + " " + parts[1] + " " + actualTime.strftime("%Y-%m-%d_%H:%M") + " " + str(admin.key()) + " " + parts[4] doneTasks = user.doneTasks doneTasks.append(updatedTaskString) user.taskList = newTaskList user.doneTasks = doneTasks user.put() self.redirect(CRMUserDetails.URL + "?userKey=" + str(user.key()))
def logInfo(handler, url, message): template_values_for_logging = { "user":getUser(handler), "url":url, "message":message, 'now':datetime.datetime.now(timeZone) } loggingTemplate = jinja_environment.get_template('templates/log/basic_message.txt') logging.info(loggingTemplate.render(template_values_for_logging))
def post(self): if(not isUserAdmin(self)): self.session[LOGIN_NEXT_PAGE_KEY] = self.URL self.redirect("/") return admin = getUser(self) userKey = self.request.get("userKey") message = self.request.get("historyText") user = User.get(userKey) actualTime = datetime.datetime.now(timeZone) history = user.contactHistory history.append(str(len(history)) + " " + actualTime.strftime("%Y-%m-%d_%H:%M") + " " + str(admin.key()) + " " + message) user.contactHistory = history user.lastContact = actualTime user.put() self.redirect(CRMUserDetails.URL + "?userKey=" + str(user.key()))
def post(self): if(not isUserAdmin(self)): self.session[LOGIN_NEXT_PAGE_KEY] = self.URL self.redirect("/") return admin = getUser(self) userKey = self.request.get("userKey") user = User.get(userKey) message = self.request.get("task") if len(message) == 0: message = "Nincs feladat ?!" actualTime = datetime.datetime.now(timeZone) taskList = user.taskList taskList.append(str(len(taskList)) + " " + actualTime.strftime("%Y-%m-%d_%H:%M") + " NOT_DONE " + str(admin.key()) + " " + message) user.taskList = taskList user.put() self.redirect(CRMUserDetails.URL + "?userKey=" + str(user.key()))
def get(self): if not isUserLoggedIn(self): self.session[LOGIN_NEXT_PAGE_KEY] = self.URL self.redirect("/") return user = getUser(self) if (user!=None): orders = user.webshopOrders orderedOrders = sorted(orders, key=lambda order: order.orderDate, reverse=True) orders = [] for order in orderedOrders: order.addressString = order.address.zipNumCode + " " + order.address.street + " " + order.address.streetNumber order.price = order.item.price * order.orderQuantity orders.append(order) template_values = { 'orders':orders } template = jinja_environment.get_template('templates/webshop/userOrderList.html') self.printPage("Rendelések", template.render(template_values), True, True) else: print "Error, no logged in user"
def post(self): if(not isUserAdmin(self)): self.redirect("/") return # Save user userKey=self.request.get("userKey") if userKey!=None and userKey!="": userToChange=User.get(userKey) user=getUser(self) # Can't change own account for safety reasons if user.key() == userToChange.key(): self.redirect("/userList") return else: userToChange.activated = self.request.get("activated")=="on" roleKey=self.request.get("role") if roleKey!=None and roleKey != "": userToChange.role=Role.get(roleKey) else: userToChange.role=None userToChange.put() self.redirect("/userList")
def post(self): # Get addresses and comments and save them to the proper day # Works only for a singe week view if(not isUserLoggedIn(self)): self.redirect("/") return firstOrderableDay=getFirstOrderableDate(self); week = None for field in self.request.arguments(): if ((field[:8]=="address_") or (field[:8]=="comment_")): day=datetime.datetime.strptime(field[8:], "%Y-%m-%d").date() if day < firstOrderableDay: continue if week == None: user = getUser(self) monday = getMonday(day) weeks = user.weeks.filter("monday = ", monday) if weeks.count() == 1: week = weeks.get() # If no week was determined, continue, nothing to save here if week == None: continue if field[:8]=="address_": address=Address.get(self.request.get(field)) if day.weekday() == 0: week.mondayAddress = address elif day.weekday() == 1: week.tuesdayAddress = address elif day.weekday() == 2: week.wednesdayAddress = address elif day.weekday() == 3: week.thursdayAddress = address elif day.weekday() == 4: week.fridayAddress = address elif day.weekday() == 5: week.saturdayAddress = address elif day.weekday() == 6: week.sundayAddress = address if (field[:8]=="comment_"): comment = self.request.get(field) if day.weekday() == 0: week.mondayComment = comment elif day.weekday() == 1: week.tuesdayComment = comment elif day.weekday() == 2: week.wednesdayComment = comment elif day.weekday() == 3: week.thursdayComment = comment elif day.weekday() == 4: week.fridayComment = comment elif day.weekday() == 5: week.saturdayComment = comment elif day.weekday() == 6: week.sundayComment = comment if week != None: week.put() logInfo(self, self.URL, "MODIFY_ADDRESS_ON_PERSONAL_MENU") self.redirect("/personalMenu")
def get(self): if(not isUserLoggedIn(self)): self.redirect("/") return day = getOrderBaseDate(self) monday = getMonday(day) firstOrderableDay = getFirstOrderableDate(self); user = getUser(self) weeks = user.weeks.filter("monday = ", monday) days=[] for i in range(0,5): actualDayObject={} orderedPrice = 0 actualDay=monday+datetime.timedelta(days=i) if actualDay < firstOrderableDay: actualDayObject["changable"] = False else: actualDayObject["changable"] = True daysOrderItems = getOrderedItemsFromWeekData(weeks, actualDay) actualDayObject['orderedItems'] = daysOrderItems for orderedItem in daysOrderItems: try: orderedPrice = orderedPrice + orderedItem['price'] * orderedItem['orderedQuantity'] except: pass actualDayObject['day']=dayNames[i] actualDayObject['date'] = actualDay actualDayObject["orderedPrice"] = orderedPrice if daysOrderItems != None and len(daysOrderItems)>0: if (weeks.count() > 0): week = weeks.get() else: week = UserWeekOrder() address = getOrderAddress(week, actualDay) comment = getOrderComment(week, actualDay) if address == None: address = user.addresses.get() actualDayObject['address'] = address actualDayObject['comment'] = comment actualDayObject["deliveryCost"] = getZipBasedDeliveryCost(address.zipNumCode, orderedPrice) days.append(actualDayObject) # A single dish with editable ingredient list prevMonday=monday + datetime.timedelta(days=-7) nextMonday=monday + datetime.timedelta(days=7) today=datetime.date.today() actualMonday = getMonday(today) availableAddresses = [] for address in user.addresses: address.deliveryCost = getZipBasedDeliveryCost(address.zipNumCode, 0) address.deliveryLimit = getZipBasedDeliveryLimit(address.zipNumCode) availableAddresses.append(address) template_values = { 'days':days, 'addresses':availableAddresses, } if nextMonday <= actualMonday + datetime.timedelta(days=FURTHEST_DAY_DISPLAYED): template_values['next'] = nextMonday if prevMonday >= actualMonday: template_values['prev'] = prevMonday # A single dish with editable ingredient list template = jinja_environment.get_template('templates/reviewOrderedMenu.html') logInfo(self, self.URL, "REVIEW_PERSONAL_MENU") self.printPage(str(day), template.render(template_values), False, True)
def get(self): actualOrder=self.session.get(ACTUAL_ORDER,{}) day=getBasketBaseDate(actualOrder, self) monday = getMonday(day) if (len(actualOrder) > 0): orderedMenuItemKeys=[] for key in actualOrder.keys(): orderedMenuItemKeys.append(key) mayBeNullOrderedItems=db.get(orderedMenuItemKeys) orderedItems=[] composits=[] for item in mayBeNullOrderedItems: if item != None: if type(item) == MenuItem: orderedItems.append(item) else: composits.append(item) userOrders={} userKey = self.session.get(USER_KEY,None) if (userKey != None): user = User.get(userKey) #Organize into days menu=[] actualOrder=self.session.get(ACTUAL_ORDER,[]) dishCategories=getDishCategories() dayTotal = [0,0,0,0,0] menuItems=sorted(orderedItems, key=lambda item:item.dish.title) for category in dishCategories: actualCategoryObject={} actualCategoryObject['category']=category items=[] orderedPrice=[0,0,0,0,0,0,0] itemsInRows=0 for i in range(0,5): actualDay=monday+datetime.timedelta(days=i) actualDayObject={} actualDayObject["day"]=dayNames[i] actualDayObject["date"]=actualDay #Filter menu items actualMenuItems=[] actualComposits=[] for menuItem in menuItems: try: menuItem.dish.category except ReferencePropertyResolveError: continue if str(menuItem.dish.category.key())==category['key'] and menuItem.day==actualDay: try: if (actualOrder!=None) and (str(menuItem.key()) in actualOrder) and int(actualOrder[str(menuItem.key())]) != 0: # Create an object to append to the UI menuItemObject = getMenuItem(str(menuItem.key())) menuItemObject['inCurrentOrder']=actualOrder[menuItemObject['key']] try: menuItemObject['basketprice'] = int(menuItemObject['inCurrentOrder']) * menuItemObject['price'] except TypeError: menuItemObject['basketprice'] = 0 try: menuItemObject['orderedQuantity'] = userOrders[menuItemObject['key']] try: orderedPrice[i] = orderedPrice[i] + menuItem['price'] * int(userOrders[menuItemObject['key']]) except: pass except: menuItemObject['orderedQuantity'] = 0 dayTotal[i] = dayTotal[i] + menuItemObject['basketprice'] menuItemObject['orderable']=True actualMenuItems.append(menuItemObject) itemsInRows=itemsInRows+1 except ValueError: pass for composit in composits: if str(composit.category.key())==category['key'] and composit.day==actualDay: try: if (actualOrder!=None) and (str(composit.key()) in actualOrder) and int(actualOrder[str(composit.key())]) != 0: # Create an object to append to the UI compositObject = getComposit(str(composit.key())) compositObject['inCurrentOrder']=actualOrder[compositObject['key']] try: compositObject['basketprice'] = int(compositObject['inCurrentOrder']) * compositObject['price'] except TypeError: compositObject['basketprice'] = 0 dayTotal[i] = dayTotal[i] + compositObject['basketprice'] compositObject['orderable']=True try: compositObject['orderedQuantity'] = userOrders[compositObject['key']] try: orderedPrice[i] = orderedPrice[i] + menuItem['price'] * int(userOrders[compositObject['key']]) except: pass except: compositObject['orderedQuantity'] = 0 actualComposits.append(compositObject) itemsInRows=itemsInRows+1 except ValueError: pass actualDayObject["menuItems"]=actualMenuItems actualDayObject["composits"]=actualComposits items.append(actualDayObject) actualCategoryObject["days"]=items if (itemsInRows > 0): menu.append(actualCategoryObject) days=[] # Adds header information user = getUser(self) for i in range(0,5): actualDayObject={} actualDate=monday+datetime.timedelta(days=i) actualDayObject["day"] = dayNames[i] actualDayObject["date"] = actualDate actualDayObject["total"] = dayTotal[i] days.append(actualDayObject) # Add addresses # A single dish with editable ingredient list prevMonday=monday + datetime.timedelta(days=-7) nextMonday=monday + datetime.timedelta(days=7) today=datetime.date.today() actualMonday = getMonday(today) template_values = { 'days':days, 'user':user, 'menu':menu } if nextMonday <= actualMonday + datetime.timedelta(days=FURTHEST_DAY_DISPLAYED): template_values['next'] = nextMonday if prevMonday >= actualMonday: template_values['prev'] = prevMonday # A single dish with editable ingredient list template = jinja_environment.get_template('templates/reviewPendingOrder.html') self.printPage(str(day), template.render(template_values), True) else: template = jinja_environment.get_template('templates/noOrder.html') logInfo(self, self.URL, "DISPLAY_BASKET") self.printPage(None, template.render(), True)
def printPage(self, title, content, forAnonymus=False, forLoggedIn=False): if (title != None and title != ""): title = "Diet futar - " + title else: title="Diet futar" template_params={ "pageTitle":title } ret=jinja_environment.get_template('templates/headers/header_part_zero.html').render(template_params) topMenu=[] user = getUser(self) if (user != None): user.lastPageAccess = datetime.datetime.now(timeZone) user.put() if isUserAdmin(self): dailyMenu={} dailyMenu["label"]="Napi menu" dailyMenu["target"]="/menuEdit" topMenu.append(dailyMenu) weeklyMenu={} weeklyMenu["label"]="Heti menu" weeklyMenu["target"]="/menuWeekEdit" topMenu.append(weeklyMenu) payingOrders={} payingOrders["label"]="Rendelt" payingOrders["target"]="/chefReviewOrders" topMenu.append(payingOrders) toDeliver={} toDeliver["label"]="Szállitandó" toDeliver["target"]="/deliveryReviewOrders" topMenu.append(toDeliver) webShop={} webShop["label"]="Termékek" webShop["target"]="/itemList" topMenu.append(webShop) webShopOrder={} webShopOrder["label"]="WebShop" webShopOrder["target"]="/usersOrders" topMenu.append(webShopOrder) ingredients={} ingredients["label"]="Alapanyagok" ingredients["target"]="/ingredient" topMenu.append(ingredients) categories={} categories["label"]="Ketegoriák" categories["target"]="/ingredientCategory" topMenu.append(categories) recepies={} recepies["label"]="Receptek" recepies["target"]="/dish" topMenu.append(recepies) dishCategories={} dishCategories["label"]="Fogások" dishCategories["target"]=DISH_CATEGORY_URL topMenu.append(dishCategories) userList={} userList["label"]="Felhasználók" userList["target"]="/userList" topMenu.append(userList) agent={} agent["label"]="Ajánlott" agent["target"]="/referred" topMenu.append(agent) siteAdmin={} siteAdmin["label"]="Adminisztració" siteAdmin["target"]="/siteAdmin" topMenu.append(siteAdmin) viewLogs={} viewLogs["label"]="Logok" viewLogs["target"]="/viewLogs" topMenu.append(viewLogs) crm={} crm["label"]="CRM" crm["target"]="/crmMainPage" topMenu.append(crm) onsiteIncome={} onsiteIncome["label"]="Facebook látogatók" onsiteIncome["target"]="/weeklyFacebookVisits" topMenu.append(onsiteIncome) dataDownload={} dataDownload["label"]="Adatok letöltése" dataDownload["target"]="/dataDownloadPage" topMenu.append(dataDownload) newsLetter={} newsLetter["label"]="Hírlevél" newsLetter["target"]="/newsletter" topMenu.append(newsLetter) elif isUserCook(self): dailyMenu={} dailyMenu["label"]="Menu osszeallitas" dailyMenu["target"]="/menuEdit" topMenu.append(dailyMenu) weeklyMenu={} weeklyMenu["label"]="Menu attekintes" weeklyMenu["target"]="/menuWeekEdit" topMenu.append(weeklyMenu) payingOrders={} payingOrders["label"]="Rendelt" payingOrders["target"]="/chefReviewOrders" topMenu.append(payingOrders) ingredients={} ingredients["label"]="Alapanyagok" ingredients["target"]="/ingredient" topMenu.append(ingredients) categories={} categories["label"]="Ketegoriak" categories["target"]="/ingredientCategory" topMenu.append(categories) recepies={} recepies["label"]="Receptek" recepies["target"]="/dish" topMenu.append(recepies) dishCategories={} dishCategories["label"]="Fogasok" dishCategories["target"]=DISH_CATEGORY_URL topMenu.append(dishCategories) elif isUserDelivery(self): toDeliver={} toDeliver["label"]="Szallitando" toDeliver["target"]="/deliveryReviewOrders" topMenu.append(toDeliver) elif isUserAgent(self): agent={} agent["label"]="Ajanlott" agent["target"]="/referred" topMenu.append(agent) if len(topMenu) > 0: template_params={ "menuItems":topMenu } ret=ret + jinja_environment.get_template('templates/admin/adminMenu.html').render(template_params) ret=ret + jinja_environment.get_template('templates/headers/header_part_one.html').render() #Set menu items menuItems=[] weeklyOrderMenu={} weeklyOrderMenu["label"]="Heti ajánlat" weeklyOrderMenu["target"]="/order" menuItems.append(weeklyOrderMenu) aboutUsMenu={} aboutUsMenu["label"]="Rólunk" aboutUsMenu["target"]="/about" menuItems.append(aboutUsMenu) servicesMenu={} servicesMenu["label"]="Szolgáltatások" servicesMenu["target"]="/services" menuItems.append(servicesMenu) glutenMenu={} glutenMenu["label"]="Gluténérzékenység" glutenMenu["target"]="/gluten" menuItems.append(glutenMenu) aboutDelivery={} aboutDelivery["label"]="Rendelési feltételek" aboutDelivery["target"]="/aboutDelivery" menuItems.append(aboutDelivery) faqMenu={} faqMenu["label"]="GY.I.K." faqMenu["target"]="/faq" #menuItems.append(faqMenu) template_params={ "menuItems":menuItems } ret=ret+jinja_environment.get_template('templates/menu.html').render(template_params) ret=ret+getUserBox(self) ret=ret+jinja_environment.get_template('templates/headers/header_part_two.html').render() if forAnonymus or isUserLoggedIn(self): ret=ret+content else: ret=ret + "A tartalom nem jelenitheto meg" ret=ret+"</div>" ret=ret+jinja_environment.get_template('templates/headers/footer.html').render() self.response.out.write(ret)
def post(self): if not isUserLoggedIn(self): self.redirect("/") return user = getUser(self) aMenuQuantity = int(self.request.get("aMenu")) bMenuQuantity = int(self.request.get("bMenu")) makosQuantity = int(self.request.get("makos")) diosQuantity = int(self.request.get("dios")) addressKey = self.request.get("address") address = Address.get(addressKey) message = self.request.get("message") if aMenuQuantity > 0: aMenuItems = WebshopItem.all().filter("code = ", CHRISTMAS_LUNCH_A) aMenuItem = None if aMenuItems.count() == 1: aMenuItem = aMenuItems.get() christmasOrder = WebshopOrderItem() christmasOrder.address = address christmasOrder.orderDate = datetime.datetime.now() christmasOrder.orderQuantity = aMenuQuantity christmasOrder.item = aMenuItem christmasOrder.user = user if message != None and message != "": christmasOrder.comments = [message] christmasOrder.commentAuthors = ["Én"] christmasOrder.commentDates = [datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")] christmasOrder.put() if bMenuQuantity > 0: bMenuItems = WebshopItem.all().filter("code = ", CHRISTMAS_LUNCH_B) bMenuItem = None if bMenuItems.count() == 1: bMenuItem = bMenuItems.get() christmasOrder = WebshopOrderItem() christmasOrder.address = address christmasOrder.orderDate = datetime.datetime.now() christmasOrder.orderQuantity = bMenuQuantity christmasOrder.item = bMenuItem christmasOrder.user = user if message != None and message != "": christmasOrder.comments = [message] christmasOrder.commentAuthors = ["Én"] christmasOrder.commentDates = [datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")] christmasOrder.put() if makosQuantity > 0: makosItems = WebshopItem.all().filter("code = ", MAKOS_BEIGLI) makosItem = None if makosItems.count() == 1: makosItem = makosItems.get() christmasOrder = WebshopOrderItem() christmasOrder.address = address christmasOrder.orderDate = datetime.datetime.now() christmasOrder.orderQuantity = makosQuantity christmasOrder.item = makosItem christmasOrder.user = user if message != None and message != "": christmasOrder.comments = [message] christmasOrder.commentAuthors = ["Én"] christmasOrder.commentDates = [datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")] christmasOrder.put() if diosQuantity > 0: diosItems = WebshopItem.all().filter("code = ", DIOS_BEIGLI) diosItem = None if diosItems.count() == 1: diosItem = diosItems.get() christmasOrder = WebshopOrderItem() christmasOrder.address = address christmasOrder.orderDate = datetime.datetime.now() christmasOrder.orderQuantity = diosQuantity christmasOrder.item = diosItem christmasOrder.user = user if message != None and message != "": christmasOrder.comments = [message] christmasOrder.commentAuthors = ["Én"] christmasOrder.commentDates = [datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")] christmasOrder.put() self.redirect("/userOrderList")