Loading back/myfab/api.py +4 −1 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ from myfab.queue import ( get_queue_by_id, delete_printer, pull_printers, get_printer_for_request, get_queue_element_pos ) Loading Loading @@ -135,7 +136,7 @@ def lookup_requests(author: str = None, status=None, req_id=None): req = ( PrintRequest.select() .join(User, on=(PrintRequest.author == User.username)) .limit(30) .limit(20) ) # .join(Queue, on=(PrintRequest.queue == Queue.id)) if len(where_req) > 0: req = req.where(*where_req) Loading Loading @@ -177,6 +178,7 @@ def loop_requests(reqs): for req in reqs: if get_access_level_to_request(req, current_user) == REQUEST_ACCESS_DENIED: continue p = get_printer_for_request(req) rqs.append( { "request_id": req.id, Loading @@ -194,6 +196,7 @@ def loop_requests(reqs): "queue": req.queue_element.queue.id if req.queue_element is not None else None, "queue_position": get_queue_element_pos(req.queue_element) if req.queue_element is not None else -1, "recup": req.recup_id, "progress": p.printer_state["job"] if p != None else None } ) return rqs Loading back/myfab/model.py +2 −2 Original line number Diff line number Diff line Loading @@ -93,7 +93,7 @@ class Message(Model): id = AutoField(primary_key=True) author = ForeignKeyField(User, null=False) text = TextField() creation = DateTimeField(default=datetime.datetime.now(), column_name="creation") creation = DateTimeField(default=datetime.datetime.now, column_name="creation") request = ForeignKeyField(PrintRequest) read = BooleanField(default=False) Loading @@ -101,7 +101,7 @@ class Message(Model): class Event(Model): # to form timeline request = ForeignKeyField(PrintRequest) description = CharField() date = DateTimeField(default=datetime.datetime.now()) date = DateTimeField(default=datetime.datetime.now) operartor = ForeignKeyField(User, null=True, default=None) Loading back/myfab/queue.py +7 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ from myfab.model import ( Event, User ) from typing import List from multiprocessing import Lock import time import requests as r Loading Loading @@ -106,6 +107,7 @@ def enqueue(req: PrintRequest, queue: Queue): elem: QueueElement = QueueElement.create(queue=queue) req.queue_element = elem req.save() add_request_event(req, "Enqueued request", None) return elem Loading Loading @@ -160,6 +162,11 @@ def get_queue_by_id(qid): # region PRINTER UTILS & class def get_printer_for_request(req: PrintRequest): for p in get_printers(): if p.current_print != None and p.current_print.id == req.id: return p return None def get_printers_from_db(): printers = [] Loading ui/src/components/ImpressionRequestCard.vue +20 −4 Original line number Diff line number Diff line Loading @@ -85,6 +85,16 @@ <span>Identifiant pour récupération</span> </v-tooltip> <v-tooltip left> <template v-slot:activator="{ on }"> <v-card-text align="left" v-show="show_print_state()" v-on="on"> <v-icon color="green">mdi-fingerprint</v-icon> {{ print_state() }} </v-card-text> </template> <span>État de l'impression</span> </v-tooltip> <v-card-subtitle> <!-- <div class="my-4 subtitle-1"> --> {{ description }} Loading Loading @@ -122,6 +132,7 @@ <script> import ImpressionRequestInfos from "./ImpressionRequestProcessComponent"; import { ModelStl } from "vue-3d-model"; import utils from '@/utils/utils.js' import axios from "axios"; import { status_to_text, status_to_icon_info } from "@/utils/utils"; Loading Loading @@ -186,11 +197,16 @@ export default { }, reject_message() { return this.base_infos.reject_message; }, convert_time(d) { return utils.secondsToHms(d) }, print_state() { if (Math.ceil(this.infos.printer_progress) <= 1) { return "??% - ?? h, ?? min, ?? sec" } return Math.floor(this.base_infos.progress['progress']) + "% " + this.convert_time(this.base_infos.progress["printTimeLeft"]) } /* print_prorgess */ }, methods: { download_file(url, filename) { Loading Loading
back/myfab/api.py +4 −1 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ from myfab.queue import ( get_queue_by_id, delete_printer, pull_printers, get_printer_for_request, get_queue_element_pos ) Loading Loading @@ -135,7 +136,7 @@ def lookup_requests(author: str = None, status=None, req_id=None): req = ( PrintRequest.select() .join(User, on=(PrintRequest.author == User.username)) .limit(30) .limit(20) ) # .join(Queue, on=(PrintRequest.queue == Queue.id)) if len(where_req) > 0: req = req.where(*where_req) Loading Loading @@ -177,6 +178,7 @@ def loop_requests(reqs): for req in reqs: if get_access_level_to_request(req, current_user) == REQUEST_ACCESS_DENIED: continue p = get_printer_for_request(req) rqs.append( { "request_id": req.id, Loading @@ -194,6 +196,7 @@ def loop_requests(reqs): "queue": req.queue_element.queue.id if req.queue_element is not None else None, "queue_position": get_queue_element_pos(req.queue_element) if req.queue_element is not None else -1, "recup": req.recup_id, "progress": p.printer_state["job"] if p != None else None } ) return rqs Loading
back/myfab/model.py +2 −2 Original line number Diff line number Diff line Loading @@ -93,7 +93,7 @@ class Message(Model): id = AutoField(primary_key=True) author = ForeignKeyField(User, null=False) text = TextField() creation = DateTimeField(default=datetime.datetime.now(), column_name="creation") creation = DateTimeField(default=datetime.datetime.now, column_name="creation") request = ForeignKeyField(PrintRequest) read = BooleanField(default=False) Loading @@ -101,7 +101,7 @@ class Message(Model): class Event(Model): # to form timeline request = ForeignKeyField(PrintRequest) description = CharField() date = DateTimeField(default=datetime.datetime.now()) date = DateTimeField(default=datetime.datetime.now) operartor = ForeignKeyField(User, null=True, default=None) Loading
back/myfab/queue.py +7 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ from myfab.model import ( Event, User ) from typing import List from multiprocessing import Lock import time import requests as r Loading Loading @@ -106,6 +107,7 @@ def enqueue(req: PrintRequest, queue: Queue): elem: QueueElement = QueueElement.create(queue=queue) req.queue_element = elem req.save() add_request_event(req, "Enqueued request", None) return elem Loading Loading @@ -160,6 +162,11 @@ def get_queue_by_id(qid): # region PRINTER UTILS & class def get_printer_for_request(req: PrintRequest): for p in get_printers(): if p.current_print != None and p.current_print.id == req.id: return p return None def get_printers_from_db(): printers = [] Loading
ui/src/components/ImpressionRequestCard.vue +20 −4 Original line number Diff line number Diff line Loading @@ -85,6 +85,16 @@ <span>Identifiant pour récupération</span> </v-tooltip> <v-tooltip left> <template v-slot:activator="{ on }"> <v-card-text align="left" v-show="show_print_state()" v-on="on"> <v-icon color="green">mdi-fingerprint</v-icon> {{ print_state() }} </v-card-text> </template> <span>État de l'impression</span> </v-tooltip> <v-card-subtitle> <!-- <div class="my-4 subtitle-1"> --> {{ description }} Loading Loading @@ -122,6 +132,7 @@ <script> import ImpressionRequestInfos from "./ImpressionRequestProcessComponent"; import { ModelStl } from "vue-3d-model"; import utils from '@/utils/utils.js' import axios from "axios"; import { status_to_text, status_to_icon_info } from "@/utils/utils"; Loading Loading @@ -186,11 +197,16 @@ export default { }, reject_message() { return this.base_infos.reject_message; }, convert_time(d) { return utils.secondsToHms(d) }, print_state() { if (Math.ceil(this.infos.printer_progress) <= 1) { return "??% - ?? h, ?? min, ?? sec" } return Math.floor(this.base_infos.progress['progress']) + "% " + this.convert_time(this.base_infos.progress["printTimeLeft"]) } /* print_prorgess */ }, methods: { download_file(url, filename) { Loading