distribusi-verse/verse/distribusikan/themeselector.py

68 lines
2.3 KiB
Python
Raw Normal View History

2022-03-19 16:19:51 +01:00
import os
import shutil
2024-04-21 20:44:08 +02:00
2024-04-24 23:05:36 +02:00
from flask import render_template
2024-04-28 13:04:07 +02:00
from distribusikan.distribusisinfo import DistribusisInfo
2022-03-19 16:19:51 +01:00
from forms.distribusiform import DistribusiForm
2022-03-19 17:08:04 +01:00
from forms.publicthemeform import PublicThemeForm
2022-03-19 16:19:51 +01:00
from forms.selectorform import SelectorForm
2024-04-21 20:44:08 +02:00
from forms.themeform import ThemeForm
from forms.uploadform import UploadForm
from statuspengguna.helper import UserHelper
2022-03-19 16:19:51 +01:00
def ThemeSelector():
2024-05-28 23:02:17 +02:00
themeform = ThemeForm()
publicthemeform = PublicThemeForm()
publicthemeform.publicthemes.choices = DistribusisInfo.publicthemes()
current_distribusi = UserHelper.current_distribusi()
if themeform.validate_on_submit():
copycssfile = os.path.join(
"themes",
f"{themeform.theme.data}.css",
)
MoveCssToUserFolder(current_distribusi, copycssfile)
if publicthemeform.validate_on_submit():
copycssfile = os.path.join(
"themes/publicthemes/",
f"{publicthemeform.publicthemes.data}.css",
)
MoveCssToUserFolder(current_distribusi, copycssfile)
return RenderDistribusiTemplate(
themeform, publicthemeform, current_distribusi
)
2022-03-19 17:08:04 +01:00
2022-03-19 16:19:51 +01:00
2022-03-19 17:08:04 +01:00
def MoveCssToUserFolder(current_distribusi, copycssfile):
2024-05-28 23:02:17 +02:00
newcssfolder = os.path.join("themes/userthemes", current_distribusi)
if not os.path.exists(newcssfolder):
os.mkdir(newcssfolder)
shutil.copy(copycssfile, newcssfolder)
2022-03-19 16:19:51 +01:00
2022-03-19 17:08:04 +01:00
def RenderDistribusiTemplate(themeform, publicthemeform, current_distribusi):
2024-05-28 23:02:17 +02:00
uploadform = UploadForm()
distribusiform = DistribusiForm()
selectorform = SelectorForm()
2022-03-19 16:19:51 +01:00
2024-05-28 23:02:17 +02:00
files_uploaded = UserHelper.is_zip_uploaded(current_distribusi)
distribusi_live = UserHelper.is_distribusi_live(current_distribusi)
css_selected = UserHelper.is_css_selected(current_distribusi)
selectorvisible = False
limit_reached = UserHelper.distribusi_limit_reached()
template = render_template(
"distribusi.html",
uploadform=uploadform,
distribusiform=distribusiform,
themeform=themeform,
publicthemeform=publicthemeform,
selectorform=selectorform,
files_uploaded=files_uploaded,
distribusi_live=distribusi_live,
css_selected=css_selected,
selectorvisible=selectorvisible,
limit_reached=limit_reached,
)
return template