Added update base

This commit is contained in:
Ross Mountjoy 2020-01-30 21:54:46 -05:00
parent 14821e7481
commit 416dcdcd72
6 changed files with 98 additions and 33 deletions

View File

@ -1,12 +1,12 @@
import os
from flask import request
from flask_restful import Resource
from dashmachine.version import tcmachine_version
from dashmachine.version import version
class GetVersion(Resource):
def get(self):
return {"Version": tcmachine_version}
return {"Version": version}
class ServerShutdown(Resource):

View File

@ -5,6 +5,8 @@ from dashmachine.user_system.forms import UserForm
from dashmachine.main.utils import read_config, row2dict
from dashmachine.main.models import Files, TemplateApps
from dashmachine.paths import backgrounds_images_folder, icons_images_folder
from dashmachine.update import check_needed, update_dashmachine
from dashmachine.version import version
from dashmachine.settings_system.utils import load_files_html
settings_system = Blueprint("settings_system", __name__)
@ -21,12 +23,15 @@ def settings():
t_apps = TemplateApps.query.all()
for t_app in t_apps:
template_apps.append(f"{t_app.name}&&{t_app.icon}")
update_need = check_needed()
return render_template(
"settings_system/settings.html",
config_form=config_form,
files_html=files_html,
user_form=user_form,
template_apps=",".join(template_apps),
version=version,
update_need=update_need,
)
@ -59,3 +64,9 @@ def get_app_template():
if key not in ["id", "name"]:
template += f"{key} = {value}<br>"
return template
@settings_system.route("/settings/update", methods=["GET"])
def update():
update_dashmachine()
return "ok"

View File

@ -66,4 +66,14 @@ $( document ).ready(function() {
}
});
$("#update-btn").on('click', function(e) {
$.ajax({
url: $(this).attr('data-url'),
type: 'GET',
success: function(data){
M.toast({html: 'DashMachine Updated'});
}
});
});
});

View File

@ -253,37 +253,56 @@
</div>
<div id="user" class="col s12">
<h5>User</h5>
{{ user_form.hidden_tag() }}
<div class="row">
<h5>User</h5>
{{ user_form.hidden_tag() }}
{{ input(
label="Username",
id="user-form-username",
size="s12",
form_obj=user_form.username,
val=current_user.username
) }}
{{ input(
label="Username",
id="user-form-username",
size="s12",
form_obj=user_form.username,
val=current_user.username
) }}
{{ input(
label="Password",
id="user-form-password",
form_obj=user_form.password,
size="s12"
) }}
{{ input(
label="Password",
id="user-form-password",
form_obj=user_form.password,
size="s12"
) }}
{{ input(
label="Confirm Password",
id="user-form-confirm_password",
form_obj=user_form.confirm_password,
required='required',
size="s12"
) }}
{{ input(
label="Confirm Password",
id="user-form-confirm_password",
form_obj=user_form.confirm_password,
required='required',
size="s12"
) }}
{{ button(
icon="save",
float="left",
text="save"
) }}
</div>
<div class="row mt-4">
<h5>DashMachine</h5>
<p class="mb-2">version: {{ version }}</p>
{% if update_needed %}
{{ button(
float="left",
id="update-btn",
icon="system_update_alt",
data={"url": url_for('settings_system.update')},
text="update available"
) }}
{% endif %}
</div>
{{ button(
icon="save",
float="left",
text="save"
) }}
</div>
</div>

View File

@ -2,7 +2,32 @@ import os
import subprocess
from dashmachine.paths import root_folder
migrate_fn = os.path.join(root_folder, 'manage_db.py db migrate')
upgrade_fn = os.path.join(root_folder, 'manage_db.py db upgrade')
def update():
def check_needed():
subprocess.run("git remote update", shell=True)
out = subprocess.run(
"git status -uno", stdout=subprocess.PIPE, shell=True, encoding="utf-8"
)
if str(out.stdout).find("Your branch is up to date") > -1:
needed = False
return needed
elif str(out.stdout).find("Your branch is up-to-date") > -1:
needed = False
return needed
else:
needed = True
return needed
def update_dashmachine():
subprocess.run(
"git pull origin master", stdout=subprocess.PIPE, shell=True, encoding="utf-8"
)
migrate_cmd = "python " + os.path.join(root_folder, "manage_db.py db migrate")
subprocess.run(migrate_cmd, stderr=subprocess.PIPE, shell=True, encoding="utf-8")
upgrade_cmd = "python " + os.path.join(root_folder, "manage_db.py db upgrade")
subprocess.run(upgrade_cmd, stderr=subprocess.PIPE, shell=True, encoding="utf-8")

View File

@ -1 +1 @@
tcmachine_version = "v0.0"
version = "v0.1"