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

I don't know. I found these changes and I committed them.

This commit is contained in:
Steffo 2018-05-03 08:06:22 +02:00
parent 7ce44fc076
commit 3c9874f93f
2 changed files with 40 additions and 23 deletions

View file

@ -49,27 +49,27 @@ transactions_page = "Pagina <b>{page}</b>:\n" \
"{transactions}" "{transactions}"
# transactions.csv caption # transactions.csv caption
csv_caption = "E' stato generato un file .csv contenente tutte le transazioni archiviate nel database del bot.\n" \ csv_caption = "E' stato generato un 📄 file .csv contenente tutte le transazioni archiviate nel database del bot.\n" \
"E' possibile aprire questo file con altri programmi, come ad esempio LibreOffice Calc, per elaborare" \ "E' possibile aprire questo file con altri programmi, come ad esempio LibreOffice Calc, per elaborare" \
" i dati." " i dati."
# Conversation: the start command was sent and the bot should welcome the user # Conversation: the start command was sent and the bot should welcome the user
conversation_after_start = "Ciao!\n" \ conversation_after_start = "Ciao!\n" \
"Benvenuto su greed!\n" \ "Benvenuto su greed!\n" \
"Quella che vedi qui è la versione <b>Alpha</b> del software.\n" \ "Quella che vedi qui è la versione 🅰️ <b>Alpha</b> del software.\n" \
"Pertanto, funzioni potranno essere aggiunte o rimosse in qualsiasi momento," \ "Pertanto, funzioni potranno essere aggiunte o rimosse in qualsiasi momento," \
" e l'interfaccia utente potrebbe essere incompleta." " e l'interfaccia utente potrebbe essere incompleta."
# Conversation: to send an inline keyboard you need to send a message with it # Conversation: to send an inline keyboard you need to send a message with it
conversation_open_user_menu = "Cosa vorresti fare?\n" \ conversation_open_user_menu = "Cosa vorresti fare?\n" \
"Hai <b>{credit}</b> sul portafoglio.\n" \ "💰 Hai <b>{credit}</b> sul portafoglio.\n" \
"\n" \ "\n" \
"<i>Per selezionare un'operazione, premi un tasto nella tastiera in basso.\n" \ "<i>Per selezionare un'operazione, premi un tasto nella tastiera in basso.\n" \
"Se la tastiera non si è aperta, puoi aprirla premendo il tasto con quattro quadratini" \ "Se la tastiera non si è aperta, puoi aprirla premendo il tasto con quattro quadratini" \
" nella barra dei messaggi.</i>" " nella barra dei messaggi.</i>"
# Conversation: like above, but for administrators # Conversation: like above, but for administrators
conversation_open_admin_menu = "Sei un <b>amministratore</b> di greed!\n" \ conversation_open_admin_menu = "Sei un 💼 <b>Gestore</b> di questo negozio!\n" \
"Cosa vorresti fare?\n" \ "Cosa vorresti fare?\n" \
"\n" \ "\n" \
"<i>Per selezionare un'operazione, premi un tasto nella tastiera in basso.\n" \ "<i>Per selezionare un'operazione, premi un tasto nella tastiera in basso.\n" \
@ -94,7 +94,7 @@ conversation_cart_actions = "<i>Aggiungi prodotti al carrello scorrendo in su e
" premi il tasto Conferma.</i>" " premi il tasto Conferma.</i>"
# Conversation: confirm the cart contents # Conversation: confirm the cart contents
conversation_confirm_cart = "Il tuo carrello contiene questi prodotti:\n" \ conversation_confirm_cart = "🛒 Il tuo carrello contiene questi prodotti:\n" \
"{product_list}" \ "{product_list}" \
"Totale: <b>{total_cost}</b>\n" \ "Totale: <b>{total_cost}</b>\n" \
"\n" \ "\n" \
@ -104,7 +104,8 @@ conversation_confirm_cart = "Il tuo carrello contiene questi prodotti:\n" \
# Conversation: the user activated the live orders mode # Conversation: the user activated the live orders mode
conversation_live_orders_start = "Sei in modalità di <b>Ricezione Ordini</b>!\n" \ conversation_live_orders_start = "Sei in modalità di <b>Ricezione Ordini</b>!\n" \
"Tutti i nuovi ordini piazzati dai clienti ti appariranno in tempo reale in questa" \ "Tutti i nuovi ordini piazzati dai clienti ti appariranno in tempo reale in questa" \
" chat, e potrai segnarli come completati oppure rimborsare il credito al cliente.\n" \ " chat, e potrai segnarli come ✅ completati" \
" oppure ✴️ rimborsare il credito al cliente.\n" \
"\n" \ "\n" \
"<i>Premi il tasto Interrompi sotto a questo messaggio per interrompere la" \ "<i>Premi il tasto Interrompi sotto a questo messaggio per interrompere la" \
" ricezione.</i>" " ricezione.</i>"
@ -112,6 +113,10 @@ conversation_live_orders_start = "Sei in modalità di <b>Ricezione Ordini</b>!\n
# Conversation: help menu has been opened # Conversation: help menu has been opened
conversation_open_help_menu = "Che tipo di assistenza desideri ricevere?" conversation_open_help_menu = "Che tipo di assistenza desideri ricevere?"
# Conversation: switching to user mode
conversation_switch_to_user_mode = "Stai passando alla modalità 👤 Cliente.\n" \
"Se vuoi riassumere il ruolo di 💼 Gestore, riavvia la conversazione con /start."
# Notification: the conversation has expired # Notification: the conversation has expired
conversation_expired = "🕐 Non ho ricevuto messaggi da un po' di tempo, quindi per risparmiare energia" \ conversation_expired = "🕐 Non ho ricevuto messaggi da un po' di tempo, quindi per risparmiare energia" \
" ho chiuso la conversazione.\n" \ " ho chiuso la conversazione.\n" \
@ -148,7 +153,7 @@ menu_transactions = "💳 Elenco transazioni"
menu_edit_credit = "💰 Crea transazione" menu_edit_credit = "💰 Crea transazione"
# Admin menu: go to user mode # Admin menu: go to user mode
menu_user_mode = "👤 Passa alla modalità utente" menu_user_mode = "👤 Passa alla modalità cliente"
# Admin menu: add product # Admin menu: add product
menu_add_product = "✨ Nuovo prodotto" menu_add_product = "✨ Nuovo prodotto"
@ -236,25 +241,26 @@ ask_product_price = "Quanto deve costare il prodotto?\n" \
"Scrivi <code>X</code> se vuoi che il prodotto non sia ancora in vendita." "Scrivi <code>X</code> se vuoi che il prodotto non sia ancora in vendita."
# Add product: image? # Add product: image?
ask_product_image = "Che immagine vuoi che abbia il prodotto?\n" \ ask_product_image = "🖼 Che immagine vuoi che abbia il prodotto?\n" \
"\n" \ "\n" \
"<i>Invia la foto, o se preferisci lasciare il prodotto senza immagine premi il tasto Salta qui" \ "<i>Invia la foto, o se preferisci lasciare il prodotto senza immagine premi il tasto Salta qui" \
" sotto.</i>" " sotto.</i>"
# Order product: notes? # Order product: notes?
ask_order_notes = "Vuoi lasciare una nota insieme all'ordine?\n" \ ask_order_notes = "Vuoi lasciare una nota insieme all'ordine?\n" \
"Sarà visibile agli addetti del negozio.\n" \ "💼 Sarà visibile ai gestori del negozio.\n" \
"\n" \ "\n" \
"<i>Invia un messaggio con la nota che vuoi lasciare, oppure premi il pulsante Salta sotto a questo" \ "<i>Invia un messaggio con la nota che vuoi lasciare, oppure premi il pulsante Salta sotto a questo" \
" messaggio per non lasciare nulla.</i>" " messaggio per non lasciare nulla.</i>"
# Refund product: reason? # Refund product: reason?
ask_refund_reason = "Allega una motivazione a questo rimborso.\n" \ ask_refund_reason = "Allega una motivazione a questo rimborso.\n" \
"Sarà visibile al cliente." "👤 Sarà visibile al cliente."
# Edit credit: notes? # Edit credit: notes?
ask_transaction_notes = "Allega una nota a questa transazione.\n" \ ask_transaction_notes = "Allega una nota a questa transazione.\n" \
"Sarà visibile al cliente in seguito all'accredito / addebito e nel registro delle transazioni." "👤 Sarà visibile al cliente in seguito all'accredito / addebito" \
" e ai 💼 Gestori nel registro delle transazioni."
# Edit credit: amount? # Edit credit: amount?
ask_credit = "Di quanto vuoi modificare il credito del cliente?\n" \ ask_credit = "Di quanto vuoi modificare il credito del cliente?\n" \
@ -264,16 +270,16 @@ ask_credit = "Di quanto vuoi modificare il credito del cliente?\n" \
" oppure un segno </i><code>-</code><i> se vuoi dedurlo.</i>" " oppure un segno </i><code>-</code><i> se vuoi dedurlo.</i>"
# Edit admin: can edit products? # Edit admin: can edit products?
ask_edit_products = "Vuoi che l'amministratore sia autorizzato a modificare la configurazione dei prodotti?" ask_edit_products = "Vuoi che questo 💼 Gestore sia autorizzato a modificare la configurazione dei prodotti?"
# Edit admin: can receive orders? # Edit admin: can receive orders?
ask_receive_orders = "Vuoi che l'amministratore sia autorizzato a ricevere e gestire gli ordini?" ask_receive_orders = "Vuoi che questo 💼 Gestore sia autorizzato a ricevere e gestire gli ordini?"
# Edit admin: can create transactions? # Edit admin: can create transactions?
ask_create_transactions = "Vuoi che l'amministratore sia autorizzato a creare nuove transazioni?" ask_create_transactions = "Vuoi che questo 💼 Gestore sia autorizzato a creare nuove transazioni?"
# Edit admin: should be displayed on help # Edit admin: should be displayed on help
ask_display_on_help = "Vuoi che l'amministratore venga visualizzato nella sezione Contatta il negozio?" ask_display_on_help = "Vuoi che questo 💼 Gestore venga visualizzato nella sezione Contatta il negozio?"
# Thread has started downloading an image and might be unresponsive # Thread has started downloading an image and might be unresponsive
downloading_image = "Sto scaricando la tua foto!\n" \ downloading_image = "Sto scaricando la tua foto!\n" \
@ -303,7 +309,7 @@ payment_invoice_title = "Aggiunta di fondi"
# Payment: add funds invoice description # Payment: add funds invoice description
payment_invoice_description = "Pagando questa ricevuta verranno aggiunti {amount} al portafoglio.\n\n" \ payment_invoice_description = "Pagando questa ricevuta verranno aggiunti {amount} al portafoglio.\n\n" \
"Visto che sei nella versione Alpha del software, puoi effettuare pagamenti infiniti" \ "Visto che sei nella versione Alpha del software, puoi effettuare pagamenti infiniti" \
" con la carta di credito di prova `4242 4242 4242 4242`," \ " con la carta di credito di prova 4242 4242 4242 4242," \
" con qualsiasi CVV e una qualsiasi data di scadenza valida." " con qualsiasi CVV e una qualsiasi data di scadenza valida."
# Payment: label of the labeled price on the invoice # Payment: label of the labeled price on the invoice
@ -325,7 +331,7 @@ notification_order_refunded = "Un tuo ordine è stato rimborsato!\n" \
"{order}" "{order}"
# Notification: a manual transaction was applied # Notification: a manual transaction was applied
notification_transaction_created = "E' stata applicata una nuova transazione al tuo portafoglio:\n" \ notification_transaction_created = " E' stata applicata una nuova transazione al tuo portafoglio:\n" \
"{transaction}" "{transaction}"
# Refund reason # Refund reason
@ -339,8 +345,8 @@ bot_info = 'Questo bot utilizza <a href="https://github.com/Steffo99/greed">gree
'Il codice sorgente di questa versione è disponibile <i>qui</i>.\n' 'Il codice sorgente di questa versione è disponibile <i>qui</i>.\n'
# Help: guide # Help: guide
help_msg = "La guida del bot non è ancora disponibile.\n" \ help_msg = "La guida del bot sarà disponibile in futuro a questo indirizzo:\n" \
"Riprova più avanti!" "https://github.com/Steffo99/greed/wiki"
# Help: contact shopkeeper # Help: contact shopkeeper
contact_shopkeeper = "Attualmente, il personale disponibile ad offrire assistenza agli utenti è composto da:\n" \ contact_shopkeeper = "Attualmente, il personale disponibile ad offrire assistenza agli utenti è composto da:\n" \

View file

@ -83,6 +83,8 @@ class ChatWorker(threading.Thread):
display_on_help=True, display_on_help=True,
is_owner=True, is_owner=True,
live_mode=False) live_mode=False)
# Add the admin to the transaction
self.session.add(self.admin)
# Commit the transaction # Commit the transaction
self.session.commit() self.session.commit()
# Capture exceptions that occour during the conversation # Capture exceptions that occour during the conversation
@ -115,6 +117,12 @@ class ChatWorker(threading.Thread):
# Wait for the thread to stop # Wait for the thread to stop
self.join() self.join()
def update_user(self) -> db.User:
"""Update the user data.
Note that this method will cause crashes if used in different threads with sqlite databases."""
self.user = self.session.query(db.User).filter(db.User.user_id == self.chat.id).one_or_none()
return self.user
# noinspection PyUnboundLocalVariable # noinspection PyUnboundLocalVariable
def __receive_next_update(self) -> telegram.Update: def __receive_next_update(self) -> telegram.Update:
"""Get the next update from the queue. """Get the next update from the queue.
@ -297,7 +305,7 @@ class ChatWorker(threading.Thread):
strings.menu_add_credit, strings.menu_bot_info, strings.menu_add_credit, strings.menu_bot_info,
strings.menu_help]) strings.menu_help])
# After the user reply, update the user data # After the user reply, update the user data
self.user = self.session.query(db.User).filter(db.User.user_id == self.chat.id).one_or_none() self._update_user()
# If the user has selected the Order option... # If the user has selected the Order option...
if selection == strings.menu_order: if selection == strings.menu_order:
# Open the order menu # Open the order menu
@ -667,7 +675,7 @@ class ChatWorker(threading.Thread):
# Loop used to return to the menu after executing a command # Loop used to return to the menu after executing a command
while True: while True:
# Create a keyboard with the admin main menu based on the admin permissions specified in the db # Create a keyboard with the admin main menu based on the admin permissions specified in the db
keyboard = [[strings.menu_user_mode]] keyboard = []
if self.admin.edit_products: if self.admin.edit_products:
keyboard.append([strings.menu_products]) keyboard.append([strings.menu_products])
if self.admin.receive_orders: if self.admin.receive_orders:
@ -675,6 +683,7 @@ class ChatWorker(threading.Thread):
if self.admin.create_transactions: if self.admin.create_transactions:
keyboard.append([strings.menu_edit_credit]) keyboard.append([strings.menu_edit_credit])
keyboard.append([strings.menu_transactions, strings.menu_csv]) keyboard.append([strings.menu_transactions, strings.menu_csv])
keyboard.append([strings.menu_user_mode])
# Send the previously created keyboard to the user (ensuring it can be clicked only 1 time) # Send the previously created keyboard to the user (ensuring it can be clicked only 1 time)
self.bot.send_message(self.chat.id, strings.conversation_open_admin_menu, self.bot.send_message(self.chat.id, strings.conversation_open_admin_menu,
reply_markup=telegram.ReplyKeyboardMarkup(keyboard, one_time_keyboard=True), reply_markup=telegram.ReplyKeyboardMarkup(keyboard, one_time_keyboard=True),
@ -697,6 +706,8 @@ class ChatWorker(threading.Thread):
self.__create_transaction() self.__create_transaction()
# If the user has selected the User mode option... # If the user has selected the User mode option...
elif selection == strings.menu_user_mode: elif selection == strings.menu_user_mode:
# Tell the user how to go back to admin menu
self.bot.send_message(self.chat.id, strings.conversation_switch_to_user_mode)
# Start the bot in user mode # Start the bot in user mode
self.__user_menu() self.__user_menu()
# If the user has selected the Transactions option... # If the user has selected the Transactions option...
@ -804,7 +815,7 @@ class ChatWorker(threading.Thread):
# noinspection PyTypeChecker # noinspection PyTypeChecker
product = db.Product(name=name, product = db.Product(name=name,
description=description, description=description,
price=int(price), price=int(price) if price is not None else None,
deleted=False) deleted=False)
# Add the record to the database # Add the record to the database
self.session.add(product) self.session.add(product)