Pfadharmonisierungen für Docker und Native
This commit is contained in:
parent
b6a1db63bc
commit
a5c664b9ae
@ -7,8 +7,8 @@ services:
|
||||
environment:
|
||||
- PYTHONUNBUFFERED=1
|
||||
volumes:
|
||||
- /home/alexander/Dokumente/Python/Zeiterfassung/lib:/app/lib
|
||||
- /home/alexander/Dokumente/Python/Zeiterfassung/main.py:/app/main.py
|
||||
#- /home/alexander/Dokumente/Python/Zeiterfassung/lib:/app/lib
|
||||
#- /home/alexander/Dokumente/Python/Zeiterfassung/main.py:/app/main.py
|
||||
- /home/alexander/Dokumente/Python/Zeiterfassung/docker-work/users:/users
|
||||
- /home/alexander/Dokumente/Python/Zeiterfassung/docker-work/backup:/backup
|
||||
- /home/alexander/Dokumente/Python/Zeiterfassung/docker-work/settings:/settings
|
21
lib/admin.py
21
lib/admin.py
@ -1189,7 +1189,7 @@ def page_admin():
|
||||
ui.notify("Benutzer gelöscht")
|
||||
|
||||
with ui.dialog() as dialog, ui.card():
|
||||
ui.label(f"Soll der Benutzer *{current_user.username}* gelöscht werden?")
|
||||
ui.markdown(f"Soll der Benutzer *{current_user.username}* gelöscht werden?")
|
||||
ui.label("Dies kann nicht rückgängig gemacht werden?").classes('text-bold')
|
||||
with ui.row():
|
||||
ui.button("Löschen", on_click=del_definitely)
|
||||
@ -1446,6 +1446,9 @@ def page_admin():
|
||||
with ui.tab_panel(backups):
|
||||
|
||||
try:
|
||||
if is_docker():
|
||||
backupfolder = "/backup"
|
||||
else:
|
||||
backupfolder = load_adminsettings()["backup_folder"]
|
||||
except KeyError:
|
||||
pass
|
||||
@ -1564,7 +1567,7 @@ def page_admin():
|
||||
if is_docker():
|
||||
folder_to_delete = "/users"
|
||||
else:
|
||||
folder_to_delete = os.path.join(scriptpath, userfolder)
|
||||
folder_to_delete = userfolder
|
||||
for file_path in os.listdir(folder_to_delete):
|
||||
delete_item = os.path.join(folder_to_delete, file_path)
|
||||
if os.path.isfile(delete_item) or os.path.islink(delete_item):
|
||||
@ -1572,17 +1575,13 @@ def page_admin():
|
||||
elif os.path.isdir(delete_item):
|
||||
shutil.rmtree(delete_item)
|
||||
|
||||
with zipfile.ZipFile(os.path.join(scriptpath, backupfolder, f'{file}.zip'), 'r') as source:
|
||||
if not is_docker():
|
||||
source.extractall(scriptpath)
|
||||
os.unlink(os.path.join(scriptpath, "app_version.txt"))
|
||||
else:
|
||||
with zipfile.ZipFile(os.path.join(backupfolder, f'{file}.zip'), 'r') as source:
|
||||
user_target = userfolder.strip("users")
|
||||
filelist = source.namelist()
|
||||
print(filelist)
|
||||
for file_list_item in filelist:
|
||||
if file_list_item.startswith("users"):
|
||||
source.extract(file_list_item, "/")
|
||||
source.extract("settings.json", "/settings/")
|
||||
source.extract(file_list_item, user_target)
|
||||
source.extract("settings.json", scriptpath)
|
||||
with ui.dialog() as confirm_dialog, ui.card():
|
||||
ui.label("Das Backup wurde wiederhergestellt. Um Änderungen anzuzeigen, muss die Seite neu geladen werden.")
|
||||
with ui.grid(columns=2):
|
||||
@ -1613,7 +1612,7 @@ def page_admin():
|
||||
n = ui.notification("Backup wird erzeugt...")
|
||||
compress = zipfile.ZIP_DEFLATED
|
||||
filename = os.path.join(searchpath, datetime.datetime.now().strftime(date_format) + '.zip')
|
||||
folder = userfolder
|
||||
folder = userfolder.replace(f'{scriptpath}/', '')
|
||||
with zipfile.ZipFile(filename, 'w', compress) as target:
|
||||
for root, dirs, files in os.walk(folder):
|
||||
for file in files:
|
||||
|
@ -543,7 +543,7 @@ def backup_api(api_key: str):
|
||||
def make_backup():
|
||||
compress = zipfile.ZIP_DEFLATED
|
||||
filename = os.path.join(searchpath, datetime.now().strftime(date_format) + '.zip')
|
||||
folder = userfolder
|
||||
folder = userfolder.replace(f"{scriptpath}/")
|
||||
with zipfile.ZipFile(filename, 'w', compress) as target:
|
||||
for root, dirs, files in os.walk(folder):
|
||||
for file in files:
|
||||
|
@ -17,10 +17,11 @@ def is_docker():
|
||||
if is_docker():
|
||||
scriptpath = "/settings"
|
||||
backupfolder = "/backup"
|
||||
userfolder = "/users"
|
||||
else:
|
||||
scriptpath = str(Path(os.path.dirname(os.path.abspath(__file__))).parent.absolute())
|
||||
backupfolder = str(os.path.join(scriptpath, "backup"))
|
||||
userfolder = "users"
|
||||
userfolder = os.path.join(scriptpath, "users")
|
||||
|
||||
# Dateinamen
|
||||
|
||||
|
@ -21,7 +21,7 @@ from lib.definitions import userfolder, scriptpath, usersettingsfilename, photof
|
||||
class user:
|
||||
def __init__(self, name):
|
||||
if not is_docker():
|
||||
self.userfolder = os.path.join(scriptpath, userfolder, name)
|
||||
self.userfolder = os.path.join(userfolder, name)
|
||||
else:
|
||||
self.userfolder = os.path.join("/users", name)
|
||||
self.settingsfile = os.path.join(self.userfolder, usersettingsfilename)
|
||||
@ -134,9 +134,9 @@ class user:
|
||||
|
||||
pathcheck = self.userfolder
|
||||
if not is_docker():
|
||||
pathcheck = pathcheck.removeprefix(os.path.join(scriptpath, userfolder))
|
||||
pathcheck = pathcheck.removeprefix(os.path.join(userfolder))
|
||||
if pathcheck != self.username:
|
||||
os.rename(self.userfolder, os.path.join(scriptpath, userfolder, self.username))
|
||||
os.rename(self.userfolder, os.path.join(userfolder, self.username))
|
||||
else:
|
||||
pathcheck = pathcheck.removeprefix("/users")
|
||||
if pathcheck != self.username:
|
||||
|
4
main.py
4
main.py
@ -54,10 +54,6 @@ def main():
|
||||
ui.toggle.default_props('rounded')
|
||||
ui.row.default_classes('items-baseline')
|
||||
|
||||
#if not os.path.exists(os.path.join(scriptpath, "favicon.svg")):
|
||||
# with open(os.path.join(scriptpath, "favicon.svg"), 'w') as favicon_file:
|
||||
# favicon_file.write(favicon)
|
||||
|
||||
ui.run(favicon='⏲', port=port, storage_secret=secret, language='de-DE', show_welcome_message=False)
|
||||
|
||||
if __name__ in ("__main__", "__mp_main__"):
|
||||
|
Loading…
x
Reference in New Issue
Block a user