def feedback(self): if self.last_command.current_menu == constants.feedback: Feedback.objects.create(user=self.user, text=self.update.message.text) text = constants.messages[self.get_lang()][constants.feedback_succeed_msg] self.bot.sendMessage(self.update.message.chat_id, text=text, reply_markup=markups.home_markup(self.get_lang())) command_logging(user=self.user, message_id=self.update.message.message_id, text=self.update.message.text, from_menu=constants.home, to_menu=constants.home) elif self.last_command.from_menu == constants.home: text = constants.messages[self.get_lang()][constants.feedback_send_msg] self.bot.sendMessage(self.update.message.chat_id, text=text, reply_markup=markups.back_markup(self.get_lang())) command_logging(user=self.user, message_id=self.update.message.message_id, text=self.update.message.text, from_menu=constants.home, current_menu=constants.feedback, to_menu=constants.home)
def language_select(self): if self.last_command.to_menu == constants.language and \ any(self.update.message.text in x for x in markups.languages): self.user.language = self.update.message.text self.user.save() text = constants.messages[self.get_lang()][constants.lang_select_msg] self.bot.sendMessage(self.update.message.chat_id, text=text, reply_markup=markups.home_markup(self.get_lang())) command_logging(user=self.user, message_id=self.update.message.message_id, text=self.update.message.text, from_menu=constants.home, to_menu=constants.home) elif self.last_command.from_menu == constants.home: self.bot.sendMessage(self.update.message.chat_id, text='Choose your language:', reply_markup=markups.languages_markup) command_logging(user=self.user, message_id=self.update.message.message_id, text=self.update.message.text, from_menu=constants.home, to_menu=constants.language)
def go_back(self): self.bot.sendMessage(self.update.message.chat_id, text='Back', reply_markup=markups.home_markup(self.get_lang())) command_logging(user=self.user, message_id=self.update.message.message_id, text=self.update.message.text, from_menu=constants.home, to_menu=constants.home)
def start(self): text = 'Welcome {}!\n'.format( self.user.first_name if self.user.first_name else 'User') self.bot.sendMessage(self.update.message.chat_id, text=text, reply_markup=markups.home_markup(self.get_lang())) command_logging(user=self.user, message_id=self.update.message.message_id, text=self.update.message.text, from_menu=constants.home, to_menu=constants.home)
def finish_order(self): order = Order(user=self.user) order.save() order.cart.set(self.cart) self.cart.delete() self.bot.sendMessage(self.update.message.chat_id, text=constants.messages[self.get_lang()][constants.finished_message], reply_markup=markups.home_markup(self.get_lang())) command_logging(user=self.user, message_id=self.update.message.message_id, text=self.update.message.text, from_menu=constants.finish_order, to_menu=constants.home)
def cart_check(self): cart_items = self.cart.all() if not cart_items.exists(): self.bot.sendMessage(self.update.message.chat_id, text=constants.messages[self.get_lang()][constants.empty_cart_msg], reply_markup=markups.home_markup(self.get_lang())) command_logging(user=self.user, message_id=self.update.message.message_id, text=self.update.message.text, from_menu=constants.home, current_menu=constants.home, to_menu=constants.home) else: pcs = cart_items.values_list('quantity', flat=True) prods = cart_items.values_list('product__name', flat=True) zipped = zip(pcs, prods) items_str = '' for i, j in zipped: items_str += (str(i) + ' x ' + j + '\n') total = self.cart.aggregate(Total=Sum(F('price'))) text = '{}\n{}\nTotal: {}'.format(constants.messages[self.get_lang()][constants.in_your_cart], items_str, total['Total']) self.bot.sendMessage(self.update.message.chat_id, text=text, reply_markup=markups.finish_order_markup(self.get_lang())) command_logging(user=self.user, message_id=self.update.message.message_id, text=self.update.message.text, from_menu=constants.home, current_menu=constants.finish_order, to_menu=constants.home)