67 lines
2.3 KiB
Python
Executable File
67 lines
2.3 KiB
Python
Executable File
#!/usr/bin/python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import random
|
|
import sys
|
|
import traceback
|
|
|
|
from .conf import config
|
|
from .helpers import *
|
|
from .menus import *
|
|
|
|
random.seed()
|
|
|
|
def main():
|
|
if not config.getboolean('general', 'stop_allowed'):
|
|
signal.signal(signal.SIGQUIT, signal.SIG_IGN)
|
|
|
|
if not config.getboolean('general', 'stop_allowed'):
|
|
signal.signal(signal.SIGTSTP, signal.SIG_IGN)
|
|
|
|
main = MainMenu('Dibbler main menu',
|
|
items=[BuyMenu(),
|
|
ProductListMenu(),
|
|
ShowUserMenu(),
|
|
UserListMenu(),
|
|
AdjustCreditMenu(),
|
|
TransferMenu(),
|
|
AddStockMenu(),
|
|
Menu('Add/edit',
|
|
items=[AddUserMenu(),
|
|
EditUserMenu(),
|
|
AddProductMenu(),
|
|
EditProductMenu(),
|
|
AdjustStockMenu(),
|
|
CleanupStockMenu(), ]),
|
|
ProductSearchMenu(),
|
|
Menu('Statistics',
|
|
items=[ProductPopularityMenu(),
|
|
ProductRevenueMenu(),
|
|
BalanceMenu(),
|
|
LoggedStatisticsMenu()]),
|
|
FAQMenu(),
|
|
PrintLabelMenu()
|
|
],
|
|
exit_msg='happy happy joy joy',
|
|
exit_confirm_msg='Really quit Dibbler?')
|
|
if not config.getboolean('general', 'quit_allowed'):
|
|
main.exit_disallowed_msg = 'You can check out any time you like, but you can never leave.'
|
|
while True:
|
|
# noinspection PyBroadException
|
|
try:
|
|
main.execute()
|
|
except KeyboardInterrupt:
|
|
print('')
|
|
print('Interrupted.')
|
|
except:
|
|
print('Something went wrong.')
|
|
print(f'{sys.exc_info()[0]}: {sys.exc_info()[1]}')
|
|
if config.getboolean('general', 'show_tracebacks'):
|
|
traceback.print_tb(sys.exc_info()[2])
|
|
else:
|
|
break
|
|
print('Restarting main menu.')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main() |