mirror of
https://github.com/Steffo99/greed.git
synced 2024-11-22 05:54:18 +00:00
stuff
This commit is contained in:
parent
3e1f8dfb3a
commit
0eaa0188b9
3 changed files with 71 additions and 5 deletions
13
strings.py
13
strings.py
|
@ -269,17 +269,20 @@ ask_credit = "Di quanto vuoi modificare il credito del cliente?\n" \
|
|||
"Metti un segno </i><code>+</code><i> se vuoi aggiungere credito all'account del cliente," \
|
||||
" oppure un segno </i><code>-</code><i> se vuoi dedurlo.</i>"
|
||||
|
||||
# Header for the edit admin message
|
||||
admin_properties = "<b>Permessi di {name}:</b>"
|
||||
|
||||
# Edit admin: can edit products?
|
||||
ask_edit_products = "Vuoi che questo 💼 Gestore sia autorizzato a modificare la configurazione dei prodotti?"
|
||||
prop_edit_products = "Modifica prodotti"
|
||||
|
||||
# Edit admin: can receive orders?
|
||||
ask_receive_orders = "Vuoi che questo 💼 Gestore sia autorizzato a ricevere e gestire gli ordini?"
|
||||
prop_receive_orders = "Gestisci ordini"
|
||||
|
||||
# Edit admin: can create transactions?
|
||||
ask_create_transactions = "Vuoi che questo 💼 Gestore sia autorizzato a creare nuove transazioni?"
|
||||
prop_create_transactions = "Crea transazioni"
|
||||
|
||||
# Edit admin: should be displayed on help
|
||||
ask_display_on_help = "Vuoi che questo 💼 Gestore venga visualizzato nella sezione Contatta il negozio?"
|
||||
# Edit admin: show on help message?
|
||||
prop_display_on_help = "Assistenza cliente"
|
||||
|
||||
# Thread has started downloading an image and might be unresponsive
|
||||
downloading_image = "Sto scaricando la tua foto!\n" \
|
||||
|
|
5
utils.py
5
utils.py
|
@ -6,6 +6,7 @@ from strings import currency_format_string, currency_symbol
|
|||
import typing
|
||||
import os
|
||||
import sys
|
||||
import strings
|
||||
|
||||
if config["Error Reporting"]["sentry_token"] != \
|
||||
"https://00000000000000000000000000000000:00000000000000000000000000000000@sentry.io/0000000":
|
||||
|
@ -211,3 +212,7 @@ class DuckBot:
|
|||
return self.bot.send_document(*args, **kwargs)
|
||||
|
||||
# More methods can be added here
|
||||
|
||||
|
||||
def boolmoji(boolean: bool):
|
||||
return strings.emoji_yes if boolean else strings.emoji_no
|
||||
|
|
58
worker.py
58
worker.py
|
@ -1126,6 +1126,64 @@ class ChatWorker(threading.Thread):
|
|||
# Delete the created file
|
||||
os.remove(f"transactions_{self.chat.id}.csv")
|
||||
|
||||
def __add_admin(self):
|
||||
"""Add an administrator to the bot."""
|
||||
# Let the admin select an administrator to promote
|
||||
user = self.__user_select()
|
||||
# Check if the user is already an administrator
|
||||
admin = self.session.query(db.Admin).filter_by(user_id=user.user_id).one_or_none()
|
||||
if admin is None:
|
||||
# Create the keyboard to be sent
|
||||
keyboard = telegram.ReplyKeyboardMarkup([[strings.emoji_yes, strings.emoji_no]])
|
||||
# Ask for confirmation
|
||||
self.bot.send_message(self.chat.id, strings.conversation_confirm_admin_promotion, reply_markup=keyboard)
|
||||
# Wait for an answer
|
||||
selection = self.__wait_for_specific_message([strings.emoji_yes, strings.emoji_no])
|
||||
# Proceed only if the answer is yes
|
||||
if selection == strings.emoji_no:
|
||||
return
|
||||
# Create a new admin
|
||||
admin = db.Admin(user=user,
|
||||
edit_products=False,
|
||||
receive_orders=False,
|
||||
create_transactions=False,
|
||||
is_owner=False,
|
||||
display_on_help=False)
|
||||
# Send the empty admin message and record the id
|
||||
message = self.bot.send_message(self.chat.id, strings.admin_properties.format(name=str(admin.user)))
|
||||
# Start accepting edits
|
||||
while True:
|
||||
# Create the inline keyboard with the admin status
|
||||
inline_keyboard = telegram.InlineKeyboardMarkup([
|
||||
[telegram.InlineKeyboardButton(f"{utils.boolmoji(admin.edit_products)} {strings.prop_edit_products}",
|
||||
callback_data="toggle_edit_products")],
|
||||
[telegram.InlineKeyboardButton(f"{utils.boolmoji(admin.receive_orders)} {strings.prop_receive_orders}",
|
||||
callback_data="toggle_receive_orders")],
|
||||
[telegram.InlineKeyboardButton(
|
||||
f"{utils.boolmoji(admin.create_transactions)} {strings.prop_create_transactions}",
|
||||
callback_data="toggle_create_transactions")],
|
||||
[telegram.InlineKeyboardButton(
|
||||
f"{utils.boolmoji(admin.display_on_help)} {strings.prop_display_on_help}",
|
||||
callback_data="toggle_display_on_help")],
|
||||
[telegram.InlineKeyboardButton(strings.menu_done, callback_data="cmd_done")]
|
||||
])
|
||||
# Update the inline keyboard
|
||||
self.bot.edit_message_reply_markup(message, reply_markup=inline_keyboard)
|
||||
# Wait for an user answer
|
||||
callback = self.__wait_for_inlinekeyboard_callback()
|
||||
# Toggle the correct property
|
||||
if callback.data == "toggle_edit_products":
|
||||
admin.edit_products = not admin.edit_products
|
||||
elif callback.data == "toggle_receive_orders":
|
||||
admin.receive_orders = not admin.receive_orders
|
||||
elif callback.data == "toggle_create_transactions":
|
||||
admin.create_transactions = not admin.create_transactions
|
||||
elif callback.data == "toggle_display_on_help":
|
||||
admin.display_on_help = not admin.display_on_help
|
||||
elif callback.data == "cmd_done":
|
||||
break
|
||||
self.session.commit()
|
||||
|
||||
def __graceful_stop(self, stop_trigger: StopSignal):
|
||||
"""Handle the graceful stop of the thread."""
|
||||
# If the session has expired...
|
||||
|
|
Loading…
Reference in a new issue