1
Fork 0
mirror of https://github.com/Steffo99/greed.git synced 2024-11-21 21:44:19 +00:00

Unfinished stuff

This commit is contained in:
Steffo 2018-04-30 16:14:02 +02:00
parent 12da94eea2
commit d552b88166
3 changed files with 51 additions and 24 deletions

View file

@ -194,9 +194,9 @@ class Admin(TableDeclarativeBase):
user_id = Column(BigInteger, ForeignKey("users.user_id"), primary_key=True)
user = relationship("User")
# Permissions
edit_products = Column(Boolean, default=True)
receive_orders = Column(Boolean, default=True)
create_transactions = Column(Boolean, default=True)
edit_products = Column(Boolean, default=False)
receive_orders = Column(Boolean, default=False)
create_transactions = Column(Boolean, default=False)
display_on_help = Column(Boolean, default=False)
is_owner = Column(Boolean, default=False)
# Live mode enabled

View file

@ -210,6 +210,12 @@ emoji_completed = "✅"
# Emoji: refunded order
emoji_refunded = "✴️"
# Emoji: yes
emoji_yes = ""
# Emoji: no
emoji_no = "🚫"
# Text: unprocessed order
text_not_processed = "in sospeso"
@ -257,6 +263,18 @@ 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>"
# Edit admin: can edit products?
ask_edit_products = "Vuoi che l'amministratore sia autorizzato a modificare la configurazione dei prodotti?"
# Edit admin: can receive orders?
ask_receive_orders = "Vuoi che l'amministratore sia autorizzato a ricevere e gestire gli ordini?"
# Edit admin: can create transactions?
ask_create_transactions = "Vuoi che l'amministratore sia autorizzato a creare nuove transazioni?"
# Edit admin: should be displayed on help
ask_display_on_help = "Vuoi che l'amministratore venga visualizzato nella sezione Contatta il negozio?"
# Thread has started downloading an image and might be unresponsive
downloading_image = "Sto scaricando la tua foto!\n" \
"Potrei metterci un po'... Abbi pazienza!\n" \

View file

@ -250,6 +250,34 @@ class ChatWorker(threading.Thread):
# Return the callbackquery
return update.callback_query
def __user_select(self) -> typing.Union[db.User, CancelSignal]:
"""Select an user from the ones in the database."""
# Find all the users in the database
users = self.session.query(db.User).order_by(db.User.user_id).all()
# Create a list containing all the keyboard button strings
keyboard_buttons = [[strings.menu_cancel]]
# Add to the list all the users
for user in users:
keyboard_buttons.append([user.identifiable_str()])
# Create the keyboard
keyboard = telegram.ReplyKeyboardMarkup(keyboard_buttons, one_time_keyboard=True)
# Keep asking until a result is returned
while True:
# Send the keyboard
self.bot.send_message(self.chat.id, strings.conversation_admin_select_user, reply_markup=keyboard)
# Wait for a reply
reply = self.__wait_for_regex("user_([0-9]+)", cancellable=True)
# Allow the cancellation of the operation
if reply == strings.menu_cancel:
return CancelSignal()
# Find the user in the database
user = self.session.query(db.User).filter_by(user_id=int(reply)).one_or_none()
# Ensure the user exists
if not user:
self.bot.send_message(self.chat.id, strings.error_user_does_not_exist)
continue
return user
def __user_menu(self):
"""Function called from the run method when the user is not an administrator.
Normal bot actions should be placed here."""
@ -924,27 +952,8 @@ class ChatWorker(threading.Thread):
def __create_transaction(self):
"""Edit manually the credit of an user."""
# Find all the users in the database
users = self.session.query(db.User).order_by(db.User.user_id).all()
# Create a list containing all the keyboard button strings
keyboard_buttons = [[strings.menu_cancel]]
# Add to the list all the users
for user in users:
keyboard_buttons.append([user.identifiable_str()])
# Create the keyboard
keyboard = telegram.ReplyKeyboardMarkup(keyboard_buttons, one_time_keyboard=True)
# Send the keyboard
self.bot.send_message(self.chat.id, strings.conversation_admin_select_user, reply_markup=keyboard)
# Wait for a reply
reply = self.__wait_for_regex("user_([0-9]+)", cancellable=True)
# Allow the cancellation of the operation
if reply == strings.menu_cancel:
return
# Find the user in the database
user = self.session.query(db.User).filter_by(user_id=int(reply)).one_or_none()
# Ensure the user exists
if not user:
self.bot.send_message(self.chat.id, strings.error_user_does_not_exist)
# Make the admin select an user
user = self.__user_select()
# Create an inline keyboard with a single cancel button
cancel = telegram.InlineKeyboardMarkup([[telegram.InlineKeyboardButton(strings.menu_cancel,
callback_data="cmd_cancel")]])