You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.6 KiB
92 lines
2.6 KiB
3 years ago
|
import os
|
||
|
from flask import render_template
|
||
|
|
||
|
from statuspengguna.helper import (
|
||
|
IsZipUploaded,
|
||
|
CurrentDistribusi,
|
||
|
IsDistribusiLive,
|
||
|
)
|
||
|
|
||
|
from forms.uploadform import UploadForm
|
||
|
from forms.distribusiform import DistribusiForm
|
||
|
from forms.themeform import ThemeForm
|
||
|
from forms.editorform import EditorForm
|
||
|
from forms.selectorform import SelectorForm
|
||
|
|
||
|
|
||
|
def EditCss():
|
||
|
editorform = EditorForm()
|
||
|
current_distribusi = CurrentDistribusi()
|
||
|
if editorform.validate_on_submit():
|
||
|
ValidateEditCssForm(editorform, current_distribusi)
|
||
|
return RenderDistribusiTemplate(current_distribusi)
|
||
|
|
||
|
return RenderEditorTemplate(editorform, current_distribusi)
|
||
|
|
||
|
|
||
|
def ValidateEditCssForm(editorform, current_distribusi):
|
||
|
newcssfolder = os.path.join("themes/userstyles", current_distribusi)
|
||
|
if not os.path.exists(newcssfolder):
|
||
|
os.mkdir(newcssfolder)
|
||
|
cssfilename = "{}.css".format(editorform.cssname.data)
|
||
|
with open(os.path.join(newcssfolder, cssfilename), "w") as cssfile:
|
||
|
cssfile.write(editorform.css.data)
|
||
|
cssfile.close
|
||
|
|
||
|
|
||
|
def RenderDistribusiTemplate(current_distribusi):
|
||
|
uploadform = UploadForm()
|
||
|
distribusiform = DistribusiForm()
|
||
|
themeform = ThemeForm()
|
||
|
selectorform = SelectorForm()
|
||
|
|
||
|
files_uploaded = IsZipUploaded(current_distribusi)
|
||
|
distribusi_live = IsDistribusiLive(current_distribusi)
|
||
|
css_selected = True
|
||
|
selectorvisible = False
|
||
|
|
||
|
template = render_template(
|
||
|
"distribusi.html",
|
||
|
uploadform=uploadform,
|
||
|
distribusiform=distribusiform,
|
||
|
themeform=themeform,
|
||
|
selectorform=selectorform,
|
||
|
files_uploaded=files_uploaded,
|
||
|
distribusi_live=distribusi_live,
|
||
|
css_selected=css_selected,
|
||
|
selectorvisible=selectorvisible,
|
||
|
)
|
||
|
return template
|
||
|
|
||
|
|
||
|
def RenderEditorTemplate(editorform, current_distribusi):
|
||
|
htmlplaceholder = HtmlPlaceholder()
|
||
|
|
||
|
cssplaceholder = CssPlaceholder()
|
||
|
editorform.css.data = cssplaceholder
|
||
|
|
||
|
files_uploaded = IsZipUploaded(current_distribusi)
|
||
|
distribusi_live = IsDistribusiLive(current_distribusi)
|
||
|
template = render_template(
|
||
|
"editor.html",
|
||
|
files_uploaded=files_uploaded,
|
||
|
distribusi_live=distribusi_live,
|
||
|
editorform=editorform,
|
||
|
htmlplaceholder=htmlplaceholder,
|
||
|
)
|
||
|
return template
|
||
|
|
||
|
|
||
|
def CssPlaceholder():
|
||
|
cssplaceholder = "Try out your CSS here"
|
||
|
with open("themes/editor/placeholder.css") as f:
|
||
|
cssplaceholder = f.read()
|
||
|
return cssplaceholder
|
||
|
|
||
|
|
||
|
def HtmlPlaceholder():
|
||
|
htmlplaceholder = "Write some test HTML here"
|
||
|
with open("themes/editor/placeholder.html") as f:
|
||
|
htmlplaceholder = f.read()
|
||
|
return htmlplaceholder
|