Avertissement si pas de mise à jour ou pb réseau
This commit is contained in:
parent
ede90c799d
commit
d1af865ebd
@ -56,7 +56,7 @@ def index_html(showcodes=0, showsemtable=0):
|
|||||||
H.append(sco_news.scolar_news_summary_html())
|
H.append(sco_news.scolar_news_summary_html())
|
||||||
|
|
||||||
# Avertissement de mise à jour:
|
# Avertissement de mise à jour:
|
||||||
H.append(sco_up_to_date.html_up_to_date_box())
|
H.append("""<div id="update_warning"></div>""")
|
||||||
|
|
||||||
# Liste de toutes les sessions:
|
# Liste de toutes les sessions:
|
||||||
sems = sco_formsemestre.do_formsemestre_list()
|
sems = sco_formsemestre.do_formsemestre_list()
|
||||||
|
@ -28,30 +28,61 @@
|
|||||||
|
|
||||||
""" Verification version logiciel vs version "stable" sur serveur
|
""" Verification version logiciel vs version "stable" sur serveur
|
||||||
N'effectue pas la mise à jour automatiquement, mais permet un affichage d'avertissement.
|
N'effectue pas la mise à jour automatiquement, mais permet un affichage d'avertissement.
|
||||||
|
|
||||||
Désactivé temporairement pour ScoDoc 9.
|
|
||||||
"""
|
"""
|
||||||
|
import json
|
||||||
|
import requests
|
||||||
|
import time
|
||||||
from flask import current_app
|
from flask import current_app
|
||||||
|
import app.scodoc.sco_utils as scu
|
||||||
|
from sco_version import SCOVERSION, SCONAME
|
||||||
|
|
||||||
|
|
||||||
def is_up_to_date():
|
def is_up_to_date() -> str:
|
||||||
"""True if up_to_date
|
"""Check installed version vs last release.
|
||||||
Returns status, message
|
Returns html message, empty of ok.
|
||||||
"""
|
"""
|
||||||
current_app.logger.debug("Warning: is_up_to_date not implemented for ScoDoc9")
|
diag = ""
|
||||||
return True, "unimplemented"
|
try:
|
||||||
|
response = requests.get(scu.SCO_UP2DATE)
|
||||||
|
except requests.exceptions.ConnectionError:
|
||||||
|
current_app.logger.debug("is_up_to_date: %s", diag)
|
||||||
|
return f"""<div>Attention: installation de {SCONAME} non fonctionnelle.</div>
|
||||||
|
<div>Détails: pas de connexion à {scu.SCO_WEBSITE}.
|
||||||
|
Vérifier paramètrages réseau,
|
||||||
|
<a href="https://scodoc.org/GuideInstallDebian11/#informations-sur-les-flux-reseau">voir la documentation</a>.
|
||||||
|
</div>
|
||||||
|
"""
|
||||||
|
except:
|
||||||
|
current_app.logger.debug("is_up_to_date: %s", diag)
|
||||||
|
return f"""<div>Attention: installation de {SCONAME} non fonctionnelle.</div>
|
||||||
|
<div>Détails: erreur inconnue lors de la connexion à {scu.SCO_WEBSITE}.
|
||||||
|
Vérifier paramètrages réseau,
|
||||||
|
<a href="https://scodoc.org/GuideInstallDebian11/#informations-sur-les-flux-reseau">voir la documentation</a>.
|
||||||
|
</div>
|
||||||
|
"""
|
||||||
|
|
||||||
|
if response.status_code != 200:
|
||||||
|
current_app.logger.debug(
|
||||||
|
f"is_up_to_date: invalid response code ({response.status_code})"
|
||||||
|
)
|
||||||
|
return f"""<div>Attention: réponse invalide de {scu.SCO_WEBSITE}</div>
|
||||||
|
<div>(erreur http {response.status_code}).</div>"""
|
||||||
|
|
||||||
def html_up_to_date_box():
|
try:
|
||||||
""""""
|
infos = json.loads(response.text)
|
||||||
status, msg = is_up_to_date()
|
except json.decoder.JSONDecodeError:
|
||||||
if status:
|
current_app.logger.debug(f"is_up_to_date: invalid response (json)")
|
||||||
return ""
|
return f"""<div>Attention: réponse invalide de {scu.SCO_WEBSITE}</div>
|
||||||
return (
|
<div>(erreur json).</div>"""
|
||||||
"""<div class="update_warning">
|
|
||||||
<span>Attention: cette installation de ScoDoc n'est pas à jour.</span>
|
# nb: si de nouveaux paquets sont publiés chaque jour, le décalage ne sera jamais signalé.
|
||||||
<div class="update_warning_sub">Contactez votre administrateur. %s</div>
|
# mais en régime "normal", on aura une alerte après 24h sans mise à jour.
|
||||||
</div>"""
|
days_since_last_package = (time.time() - infos["publication_time"]) / (24 * 60 * 60)
|
||||||
% msg
|
if (infos["version"] != SCOVERSION) and (days_since_last_package > 1.0):
|
||||||
)
|
return f"""<div>Attention: {SCONAME} version ({SCOVERSION}) non à jour
|
||||||
|
({infos["version"]} disponible).</div>
|
||||||
|
<div>Contacter votre administrateur système
|
||||||
|
(<a href="https://scodoc.org/MisesAJour/">documentation</a>).
|
||||||
|
</div>
|
||||||
|
"""
|
||||||
|
return "" # ok
|
||||||
|
@ -361,7 +361,7 @@ SCO_DEV_MAIL = "emmanuel.viennet@gmail.com" # SVP ne pas changer
|
|||||||
# Adresse pour l'envoi des dumps (pour assistance technnique):
|
# Adresse pour l'envoi des dumps (pour assistance technnique):
|
||||||
# ne pas changer (ou vous perdez le support)
|
# ne pas changer (ou vous perdez le support)
|
||||||
SCO_DUMP_UP_URL = "https://scodoc.org/scodoc-installmgr/upload-dump"
|
SCO_DUMP_UP_URL = "https://scodoc.org/scodoc-installmgr/upload-dump"
|
||||||
|
SCO_UP2DATE = "https://scodoc.org/scodoc-installmgr/last_stable_version"
|
||||||
CSV_FIELDSEP = ";"
|
CSV_FIELDSEP = ";"
|
||||||
CSV_LINESEP = "\n"
|
CSV_LINESEP = "\n"
|
||||||
CSV_MIMETYPE = "text/comma-separated-values"
|
CSV_MIMETYPE = "text/comma-separated-values"
|
||||||
|
@ -2883,7 +2883,8 @@ div.othersemlist input {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
div.update_warning {
|
div#update_warning {
|
||||||
|
/* display: none; */
|
||||||
border: 1px solid red;
|
border: 1px solid red;
|
||||||
background-color: rgb(250,220,220);
|
background-color: rgb(250,220,220);
|
||||||
margin: 3ex;
|
margin: 3ex;
|
||||||
@ -2891,11 +2892,11 @@ div.update_warning {
|
|||||||
padding-right: 1ex;
|
padding-right: 1ex;
|
||||||
padding-bottom: 1ex;
|
padding-bottom: 1ex;
|
||||||
}
|
}
|
||||||
div.update_warning span:before {
|
div#update_warning > div:first-child:before {
|
||||||
content: url(/ScoDoc/static/icons/warning_img.png);
|
content: url(/ScoDoc/static/icons/warning_img.png);
|
||||||
vertical-align: -80%;
|
vertical-align: -80%;
|
||||||
}
|
}
|
||||||
div.update_warning_sub {
|
div#update_warning > div:nth-child(2) {
|
||||||
font-size: 80%;
|
font-size: 80%;
|
||||||
padding-left: 8ex;
|
padding-left: 8ex;
|
||||||
}
|
}
|
||||||
|
@ -53,6 +53,13 @@ $(function () {
|
|||||||
);
|
);
|
||||||
$(".sco_dropdown_menu > li > a > span").switchClass("ui-icon-carat-1-e", "ui-icon-carat-1-s");
|
$(".sco_dropdown_menu > li > a > span").switchClass("ui-icon-carat-1-e", "ui-icon-carat-1-s");
|
||||||
|
|
||||||
|
/* up-to-date status */
|
||||||
|
var update_div = document.getElementById("update_warning");
|
||||||
|
if (update_div) {
|
||||||
|
fetch('install_info').then(
|
||||||
|
response => response.text()
|
||||||
|
).then(text => update_div.innerHTML = text);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
@ -54,6 +54,11 @@ from werkzeug.exceptions import BadRequest, NotFound
|
|||||||
|
|
||||||
from app import db
|
from app import db
|
||||||
from app.auth.models import User
|
from app.auth.models import User
|
||||||
|
from app.decorators import (
|
||||||
|
admin_required,
|
||||||
|
scodoc7func,
|
||||||
|
scodoc,
|
||||||
|
)
|
||||||
from app.forms.main import config_logos, config_main
|
from app.forms.main import config_logos, config_main
|
||||||
from app.forms.main.create_dept import CreateDeptForm
|
from app.forms.main.create_dept import CreateDeptForm
|
||||||
from app.forms.main.config_apo import CodesDecisionsForm
|
from app.forms.main.config_apo import CodesDecisionsForm
|
||||||
@ -63,14 +68,11 @@ from app.models import departements
|
|||||||
from app.models import FormSemestre, FormSemestreInscription
|
from app.models import FormSemestre, FormSemestreInscription
|
||||||
from app.models import ScoDocSiteConfig
|
from app.models import ScoDocSiteConfig
|
||||||
from app.models import UniteEns
|
from app.models import UniteEns
|
||||||
from app.scodoc import sco_codes_parcours, sco_logos
|
|
||||||
from app.scodoc import sco_find_etud
|
from app.scodoc import sco_find_etud
|
||||||
|
from app.scodoc import sco_logos
|
||||||
from app.scodoc import sco_utils as scu
|
from app.scodoc import sco_utils as scu
|
||||||
from app.decorators import (
|
|
||||||
admin_required,
|
|
||||||
scodoc7func,
|
|
||||||
scodoc,
|
|
||||||
)
|
|
||||||
from app.scodoc.sco_exceptions import AccessDenied
|
from app.scodoc.sco_exceptions import AccessDenied
|
||||||
from app.scodoc.sco_permissions import Permission
|
from app.scodoc.sco_permissions import Permission
|
||||||
from app.views import scodoc_bp as bp
|
from app.views import scodoc_bp as bp
|
||||||
|
@ -65,23 +65,18 @@ from app.scodoc.sco_exceptions import (
|
|||||||
ScoValueError,
|
ScoValueError,
|
||||||
)
|
)
|
||||||
from app.scodoc.TrivialFormulator import TrivialFormulator, tf_error_message
|
from app.scodoc.TrivialFormulator import TrivialFormulator, tf_error_message
|
||||||
import app
|
|
||||||
from app.scodoc.gen_tables import GenTable
|
from app.scodoc.gen_tables import GenTable
|
||||||
from app.scodoc import html_sco_header
|
from app.scodoc import html_sco_header
|
||||||
from app.scodoc import sco_import_etuds
|
from app.scodoc import sco_import_etuds
|
||||||
from app.scodoc import sco_abs
|
|
||||||
from app.scodoc import sco_archives_etud
|
from app.scodoc import sco_archives_etud
|
||||||
from app.scodoc import sco_codes_parcours
|
from app.scodoc import sco_codes_parcours
|
||||||
from app.scodoc import sco_cache
|
from app.scodoc import sco_cache
|
||||||
from app.scodoc import sco_debouche
|
from app.scodoc import sco_debouche
|
||||||
from app.scodoc import sco_dept
|
from app.scodoc import sco_dept
|
||||||
from app.scodoc import sco_dump_db
|
from app.scodoc import sco_dump_db
|
||||||
from app.scodoc import sco_edt_cal
|
from app.scodoc import sco_etud
|
||||||
from app.scodoc import sco_excel
|
|
||||||
from app.scodoc import sco_find_etud
|
from app.scodoc import sco_find_etud
|
||||||
from app.scodoc import sco_formations
|
|
||||||
from app.scodoc import sco_formsemestre
|
from app.scodoc import sco_formsemestre
|
||||||
from app.scodoc import sco_formsemestre_edit
|
|
||||||
from app.scodoc import sco_formsemestre_inscriptions
|
from app.scodoc import sco_formsemestre_inscriptions
|
||||||
from app.scodoc import sco_groups
|
from app.scodoc import sco_groups
|
||||||
from app.scodoc import sco_groups_edit
|
from app.scodoc import sco_groups_edit
|
||||||
@ -92,12 +87,10 @@ from app.scodoc import sco_permissions_check
|
|||||||
from app.scodoc import sco_photos
|
from app.scodoc import sco_photos
|
||||||
from app.scodoc import sco_portal_apogee
|
from app.scodoc import sco_portal_apogee
|
||||||
from app.scodoc import sco_preferences
|
from app.scodoc import sco_preferences
|
||||||
from app.scodoc import sco_report
|
|
||||||
from app.scodoc import sco_synchro_etuds
|
from app.scodoc import sco_synchro_etuds
|
||||||
from app.scodoc import sco_trombino
|
from app.scodoc import sco_trombino
|
||||||
from app.scodoc import sco_trombino_tours
|
from app.scodoc import sco_trombino_tours
|
||||||
from app.scodoc import sco_up_to_date
|
from app.scodoc import sco_up_to_date
|
||||||
from app.scodoc import sco_etud
|
|
||||||
|
|
||||||
|
|
||||||
def sco_publish(route, function, permission, methods=["GET"]):
|
def sco_publish(route, function, permission, methods=["GET"]):
|
||||||
@ -338,6 +331,14 @@ def index_html(showcodes=0, showsemtable=0):
|
|||||||
return sco_dept.index_html(showcodes=showcodes, showsemtable=showsemtable)
|
return sco_dept.index_html(showcodes=showcodes, showsemtable=showsemtable)
|
||||||
|
|
||||||
|
|
||||||
|
@bp.route("/install_info")
|
||||||
|
@scodoc
|
||||||
|
@permission_required(Permission.ScoView)
|
||||||
|
def install_info():
|
||||||
|
"""Information on install status (html str)"""
|
||||||
|
return sco_up_to_date.is_up_to_date()
|
||||||
|
|
||||||
|
|
||||||
sco_publish(
|
sco_publish(
|
||||||
"/trombino", sco_trombino.trombino, Permission.ScoView, methods=["GET", "POST"]
|
"/trombino", sco_trombino.trombino, Permission.ScoView, methods=["GET", "POST"]
|
||||||
)
|
)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# -*- mode: python -*-
|
# -*- mode: python -*-
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
SCOVERSION = "9.1.81"
|
SCOVERSION = "9.1.82"
|
||||||
|
|
||||||
SCONAME = "ScoDoc"
|
SCONAME = "ScoDoc"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user