1
Fork 0
mirror of https://github.com/Steffo99/greed.git synced 2024-11-24 14:54:18 +00:00

Start work on live orders menu

This commit is contained in:
Steffo 2018-03-19 12:24:05 +01:00
parent 3ba6916ffe
commit 712fd29f6a
2 changed files with 29 additions and 4 deletions

View file

@ -60,6 +60,10 @@ conversation_confirm_cart = "Il tuo carrello contiene questi prodotti:\n" \
"Totale: {total_cost}\n" \
"Procedere?"
# Conversation: the user activated the live orders mode
conversation_live_orders_start = "Hai avviato la modalità Ordini Live!\n" \
"Per interrompere il flusso di ordini, manda un qualsiasi messaggio in chat."
# Notification: the conversation has expired
conversation_expired = "🕐 Il bot non ha ricevuto messaggi per un po' di tempo, quindi ha chiuso la conversazione.\n" \
"Per riavviarne una nuova, invia il comando /start."
@ -176,6 +180,12 @@ success_product_edited = "✅ Il prodotto è stato aggiunto/modificato con succe
# Success: product has been added/edited to the database
success_product_deleted = "✅ Il prodotto è stato eliminato con successo!"
# Order: set as complete
order_complete = "✅ Completa"
# Order: set as refunded
order_refund = "✴️ Rimborsa"
# Success: order has been created
success_order_created = "✅ L'ordine è stato inviato con successo!"
@ -196,7 +206,7 @@ error_payment_amount_under_min = "⚠️ Il minimo di fondi che possono essere a
error_invoice_expired = "⚠️ Questo pagamento è scaduto ed è stato annullato. Se vuoi ancora aggiungere fondi, usa l'opzione Aggiungi fondi del menu."
# Error: a product with that name already exists
error_duplicate_name = "️⚠ Esiste già un prodotto con questo nome."
error_duplicate_name = "️⚠ Esiste già un prodotto con questo nome."
# Error: not enough credit to order
error_not_enough_credit = " Non hai credito sufficiente per effettuare l'ordine."
error_not_enough_credit = " Non hai credito sufficiente per effettuare l'ordine."

View file

@ -42,6 +42,8 @@ class ChatWorker(threading.Thread):
self.queue = queuem.Queue()
# The current active invoice payload; reject all invoices with a different payload
self.invoice_payload = None
# Listening mode flag: if set, display the received orders in real time
self.listening_mode = False
def run(self):
"""The conversation code."""
@ -379,7 +381,8 @@ class ChatWorker(threading.Thread):
self.bot.send_message(admin.user_id, f"{strings.notification_order_placed.format(order=order.get_text(self.session))}")
def __order_status(self):
raise NotImplementedError()
"""Display the status of the sent orders."""
pass
def __add_credit_menu(self):
"""Add more credit to the account."""
@ -681,7 +684,19 @@ class ChatWorker(threading.Thread):
self.bot.send_message(self.chat.id, strings.success_product_deleted)
def __orders_menu(self):
raise NotImplementedError()
"""Display a live flow of orders."""
# Send a small intro message on the Live Orders mode
self.bot.send_message(self.chat.id, strings.conversation_live_orders_start)
# Create the order keyboard
order_keyboard = telegram.InlineKeyboardMarkup([[telegram.InlineKeyboardButton(strings.order_complete)],
[telegram.InlineKeyboardButton(strings.order_refund)]])
# Display the past pending orders
orders = self.session.query(db.Order).filter(db.Order.delivery_date == None).all()
# Create a message for every one of them
for order in orders:
# Send the created message
self.bot.send_message(self.chat.id, order.get_text(session=self.session), reply_markup=order_keyboard)
def __graceful_stop(self):
"""Handle the graceful stop of the thread."""