Setup service and add page to set/update service
This commit is contained in:
parent
4efcb7eb06
commit
0c9475013d
5 changed files with 107 additions and 23 deletions
|
@ -237,7 +237,9 @@ def lsdessert():
|
||||||
|
|
||||||
@socketio.on("list users")
|
@socketio.on("list users")
|
||||||
@authenticated_only
|
@authenticated_only
|
||||||
def lsusers(json):
|
def lsusers(json=None):
|
||||||
|
if json is None:
|
||||||
|
json = {}
|
||||||
users = User.query.all()
|
users = User.query.all()
|
||||||
users_list = []
|
users_list = []
|
||||||
for u in users:
|
for u in users:
|
||||||
|
@ -248,14 +250,45 @@ def lsusers(json):
|
||||||
|
|
||||||
@socketio.on("list service")
|
@socketio.on("list service")
|
||||||
@authenticated_only
|
@authenticated_only
|
||||||
def lsservice():
|
def lsservice(json=None, broadcast=False):
|
||||||
service = Service.query.filter_by(date=datetime.datetime.now().date()).first()
|
service = Service.query.filter_by(date=datetime.datetime.now().date()).first()
|
||||||
s = []
|
s = {}
|
||||||
if service:
|
if service:
|
||||||
for u in [service.sandwich1_id, service.sandwich2_id, service.sandwich3_id]:
|
for i in [["pc", service.pc_id], ["sandwich1", service.sandwich1_id], ["sandwich2", service.sandwich2_id],
|
||||||
try:
|
["sandwich3", service.sandwich3_id], ["commi1", service.commi1_id], ["commi2", service.commi2_id]]:
|
||||||
s.append([u, User.query.get(u).username])
|
s[i[0]] = User.query.get(i[1]).username
|
||||||
except AttributeError:
|
emit("list service", s, broadcast=broadcast)
|
||||||
s.append([])
|
|
||||||
|
|
||||||
emit("list service", {"list": s})
|
|
||||||
|
@socketio.on("set service")
|
||||||
|
@authenticated_only
|
||||||
|
def setservice(json):
|
||||||
|
service = Service.query.filter_by(date=datetime.datetime.now().date()).first()
|
||||||
|
if not service:
|
||||||
|
service = Service()
|
||||||
|
if all(i in json and json[i] for i in ["pc", "sandwich1", "sandwich2", "sandwich3", "commi1", "commi2"]):
|
||||||
|
for i in [["pc", "pc_id"], ["sandwich1", "sandwich1_id"], ["sandwich2", "sandwich2_id"],
|
||||||
|
["sandwich3", "sandwich3_id"], ["commi1", "commi1_id"], ["commi2", "commi2_id"]]:
|
||||||
|
setattr(service, i[1], User.query.filter_by(username=json[i[0]]).first().id)
|
||||||
|
else:
|
||||||
|
dummy = User.query.filter_by(username="dummy").first().id
|
||||||
|
for i in ["pc_id", "sandwich1_id","sandwich2_id", "sandwich3_id", "commi1_id", "commi2_id"]:
|
||||||
|
setattr(service, i[1], dummy)
|
||||||
|
service.sandwich1 = False
|
||||||
|
service.sandwich2 = False
|
||||||
|
service.sandwich3 = False
|
||||||
|
if not service.date:
|
||||||
|
db.session.add(service)
|
||||||
|
db.session.commit()
|
||||||
|
lsservice(broadcast=True)
|
||||||
|
|
||||||
|
|
||||||
|
@socketio.on("add user")
|
||||||
|
@authenticated_only
|
||||||
|
def adduser(json):
|
||||||
|
if all(i in json and json[i] for i in ["username", "firstname", "lastname"]):
|
||||||
|
u = User(username=json["username"], firstname=json["firstname"], lastname=json["lastname"])
|
||||||
|
if "password" in json:
|
||||||
|
u.set_password(json["password"])
|
||||||
|
db.session.add(u)
|
||||||
|
db.session.commit()
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
let socket = io();
|
let socket = io();
|
||||||
let service = [];
|
|
||||||
let WIP = document.getElementById("encours");
|
let WIP = document.getElementById("encours");
|
||||||
let done = document.getElementById("realisee");
|
let done = document.getElementById("realisee");
|
||||||
let waiting = document.getElementById("attente");
|
let waiting = document.getElementById("attente");
|
||||||
|
@ -73,8 +72,7 @@ socket.on("list command", data => {
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on("list service", data => {
|
socket.on("list service", data => {
|
||||||
service = data["list"];
|
if (Object.keys(data).length === 0)
|
||||||
if (service.length === 0)
|
|
||||||
alert("No service set !");
|
alert("No service set !");
|
||||||
else
|
else
|
||||||
socket.emit("list command");
|
socket.emit("list command");
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
let socket = io();
|
||||||
|
|
||||||
|
document.querySelectorAll("input[type='text']").forEach(e => {
|
||||||
|
e.addEventListener("keyup", ev => {hinter(ev)})
|
||||||
|
});
|
||||||
|
|
||||||
|
document.querySelector("button").addEventListener("click", ev => {
|
||||||
|
let users= {};
|
||||||
|
document.querySelectorAll("input[type='text']").forEach(e=> {
|
||||||
|
if (e.style.color)
|
||||||
|
socket.emit("add user", {"username": e.value, "firstname": prompt(`Prénom pour ${e.value}`), "lastname": prompt(`Nom pour ${e.value}`), "password": prompt(`MDP pour ${e.value}`)});
|
||||||
|
users[e.id] = e.value;
|
||||||
|
});
|
||||||
|
socket.emit("set service", users);
|
||||||
|
window.close();
|
||||||
|
});
|
||||||
|
|
||||||
|
function hinter(ev) {
|
||||||
|
let input = ev.target;
|
||||||
|
let min_characters = 0;
|
||||||
|
if (input.value.length < min_characters)
|
||||||
|
return;
|
||||||
|
socket.emit("list users");
|
||||||
|
}
|
||||||
|
|
||||||
|
socket.on("connect", data => {
|
||||||
|
if (data === "ok") {
|
||||||
|
socket.emit("list service");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
socket.on("list service", data => {
|
||||||
|
for (let s in data) {
|
||||||
|
document.getElementById(s).value = data[s]
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
socket.on("list users", data => {
|
||||||
|
let user_list = document.getElementById("user_list");
|
||||||
|
user_list.innerHTML = "";
|
||||||
|
for (let u of data["list"]) {
|
||||||
|
user_list.insertAdjacentHTML("beforeend", `<option value="${u}">`);
|
||||||
|
}
|
||||||
|
|
||||||
|
document.querySelectorAll("input[type='text']").forEach(e => {
|
||||||
|
if (data["list"].indexOf(e.value) === -1)
|
||||||
|
e.style.color = "red";
|
||||||
|
else {
|
||||||
|
e.style.color = "";
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
|
@ -3,7 +3,7 @@
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<nav>
|
<nav>
|
||||||
<ul>
|
<ul>
|
||||||
<a id="gobackpc" href="pc.html"><li>Retour au PC</li></a>
|
<a id="gobackpc" href="{{ url_for('pc') }}"><li>Retour au PC</li></a>
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
<div class="bg-contact2" id="main-container" style="background-image: url({{ url_for('static',filename='images/bg-01.jpg') }});">
|
<div class="bg-contact2" id="main-container" style="background-image: url({{ url_for('static',filename='images/bg-01.jpg') }});">
|
||||||
|
@ -11,30 +11,31 @@
|
||||||
<div id="equipes">
|
<div id="equipes">
|
||||||
<div id="equipePC">
|
<div id="equipePC">
|
||||||
<label for="pc">PC :</label>
|
<label for="pc">PC :</label>
|
||||||
<input type="text" id="pc">
|
<input list="user_list" type="text" id="pc">
|
||||||
</div>
|
</div>
|
||||||
<div id="sandwich">
|
<div id="sandwich">
|
||||||
<label for="sandwich1">Sandiwch 1 :</label>
|
<label for="sandwich1">Sandiwch 1 :</label>
|
||||||
<input type="text" id="sandwich1">
|
<input list="user_list" type="text" id="sandwich1">
|
||||||
|
|
||||||
<label for="sandwich2">Sandwich 2 :</label>
|
<label for="sandwich2">Sandwich 2 :</label>
|
||||||
<input type="text" id="sandwich2">
|
<input list="user_list" type="text" id="sandwich2">
|
||||||
|
|
||||||
<label for="sandwich3">Sandwich 3 :</label>
|
<label for="sandwich3">Sandwich 3 :</label>
|
||||||
<input type="text" id="sandwich3">
|
<input list="user_list" type="text" id="sandwich3">
|
||||||
</div>
|
</div>
|
||||||
<div id="commis">
|
<div id="commis">
|
||||||
<label for="commis1">Commis 1 :</label>
|
<label for="commi1">Commis 1 :</label>
|
||||||
<input type="text" id="commis1">
|
<input list="user_list" type="text" id="commi1">
|
||||||
|
|
||||||
<label for="commis2">Commis 2 :</label>
|
<label for="commi2">Commis 2 :</label>
|
||||||
<input type="text" id="commis2">
|
<input list="user_list" type="text" id="commi2">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="okequipe">
|
<div id="okequipe">
|
||||||
<button class="contact2-form-btn">Valider</button>
|
<button class="contact2-form-btn">Valider</button>
|
||||||
</div>
|
</div>
|
||||||
|
<datalist id="user_list">
|
||||||
|
</datalist>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js" integrity="sha256-yr4fRk/GU1ehYJPAs8P4JlTgu0Hdsp4ZKrx8bDEDC3I=" crossorigin="anonymous"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js" integrity="sha256-yr4fRk/GU1ehYJPAs8P4JlTgu0Hdsp4ZKrx8bDEDC3I=" crossorigin="anonymous"></script>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<ul>
|
<ul>
|
||||||
<a href="{{ url_for('stocks') }}"><li>Stocks</li></a>
|
<a href="{{ url_for('stocks') }}"><li>Stocks</li></a>
|
||||||
<a href="{{ url_for('menu') }}"><li>Menu</li></a>
|
<a href="{{ url_for('menu') }}"><li>Menu</li></a>
|
||||||
<a href="{{ url_for('service') }}"><li>Equipes</li></a>
|
<a href="{{ url_for('service') }}" target="popup"><li>Equipes</li></a>
|
||||||
<a href="#popup"><li id="deco">Se déconnecter</li></a>
|
<a href="#popup"><li id="deco">Se déconnecter</li></a>
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
Reference in a new issue