From f1ad0f4019a58ec2ff23a10eede465ba1b2b2a92 Mon Sep 17 00:00:00 2001 From: Sarah C Date: Fri, 16 Sep 2022 17:33:57 +0200 Subject: [PATCH 1/9] Fix merge --- Makefile | 2 +- frontend/package-lock.json | 2 +- frontend/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index ddde4e5e..d46db58d 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ SHELL := /bin/bash DOCKER := $(shell type -p docker) DC := $(shell type -p docker-compose) -TAG := 1.3 +TAG := 1.4 APP_NAME := basegun REG := ghcr.io ORG := datalab-mi diff --git a/frontend/package-lock.json b/frontend/package-lock.json index ec14f648..6a151824 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,6 +1,6 @@ { "name": "basegun", - "version": "1.3.5", + "version": "1.4.0", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/frontend/package.json b/frontend/package.json index 38ab71c1..fb7da454 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "basegun", - "version": "1.3.5", + "version": "1.4.0", "private": true, "scripts": { "serve": "vite preview", From 2103d336280d309fe426c90e991da102a561f63e Mon Sep 17 00:00:00 2001 From: Sarah C Date: Fri, 16 Sep 2022 18:25:10 +0200 Subject: [PATCH 2/9] Add device, user and app version to feedback logs --- backend/src/main.py | 36 +++++++++++++++++++++++++----------- backend/tests/test_api.py | 6 ++++++ 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/backend/src/main.py b/backend/src/main.py index beec278f..db9243ad 100644 --- a/backend/src/main.py +++ b/backend/src/main.py @@ -71,6 +71,19 @@ def setup_logs(log_dir: str) -> logging.Logger: return logger +def get_device(user_agent) -> str: + """Explicitly give the device of a user-agent object + """ + if user_agent.is_mobile: + return "mobile" + elif user_agent.is_pc: + return "pc" + elif user_agent.is_tablet: + return "tablet" + else: + return "other" + + #################### # SETUP # #################### @@ -219,18 +232,11 @@ async def imageupload( # prepare content logs user_agent = parse(request.headers.get("user-agent")) - device = "other" - if user_agent.is_mobile: - device = "mobile" - elif user_agent.is_pc: - device = "pc" - elif user_agent.is_tablet: - device = "tablet" extras_logging = { "bg_date": datetime.now().isoformat(), "bg_upload_time": round(time.time()-date, 2), "bg_geolocation": geolocation, - "bg_device": device, + "bg_device": get_device(user_agent), "bg_device_family": user_agent.device.family, "bg_device_os": user_agent.os.family, "bg_device_browser": user_agent.browser.family, @@ -282,15 +288,23 @@ async def imageupload( @app.post("/feedback") -async def log_feedback(request: Request): +async def log_feedback(request: Request, user_id: Union[str, None] = Cookie(None)): res = await request.json() + user_agent = parse(request.headers.get("user-agent")) + extras_logging = { "bg_date": datetime.now().isoformat(), "bg_image_url": res["image_url"], "bg_feedback_bool": res["feedback"], - "bg_confidence": res["confidence"], "bg_label": res["label"], - "bg_confidence_level": res["confidence_level"] + "bg_confidence": res["confidence"], + "bg_confidence_level": res["confidence_level"], + "bg_user_id": user_id, + "bg_device": get_device(user_agent), + "bg_device_family": user_agent.device.family, + "bg_device_os": user_agent.os.family, + "bg_device_browser": user_agent.browser.family, + "bg_version": APP_VERSION, } logger.info("Identification feedback", extra=extras_logging) return \ No newline at end of file diff --git a/backend/tests/test_api.py b/backend/tests/test_api.py index f07d158e..077f51a7 100644 --- a/backend/tests/test_api.py +++ b/backend/tests/test_api.py @@ -81,6 +81,12 @@ def test_feedback_and_logs(self): r = requests.get(self.url + "/logs") self.assertEqual(r.status_code, 200) log = r.json()[0] + self.assertEqual( + set(log.keys()), + set({'timestamp', '_bg_device', 'host', 'version', '_bg_device_os', '_bg_device_family', + 'short_message', '_bg_confidence', '_bg_confidence_level', '_bg_date', '_bg_user_id', '_bg_label', '_bg_image_url', + 'level', '_bg_device_browser', '_bg_version'}) + ) self.assertEqual(log["level"], 6) self.assertEqual(log["short_message"], "Identification feedback") self.assertEqual(log["_bg_image_url"], "test") From 8ba90da6978a63986c50c4037f99008f8487f9cd Mon Sep 17 00:00:00 2001 From: Sarah C Date: Fri, 16 Sep 2022 18:30:18 +0200 Subject: [PATCH 3/9] Fix text --- backend/tests/test_api.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/tests/test_api.py b/backend/tests/test_api.py index 077f51a7..68bd6132 100644 --- a/backend/tests/test_api.py +++ b/backend/tests/test_api.py @@ -83,7 +83,7 @@ def test_feedback_and_logs(self): log = r.json()[0] self.assertEqual( set(log.keys()), - set({'timestamp', '_bg_device', 'host', 'version', '_bg_device_os', '_bg_device_family', + set({'timestamp', '_bg_device', 'host', '_bg_feedback_bool', 'version', '_bg_device_os', '_bg_device_family', 'short_message', '_bg_confidence', '_bg_confidence_level', '_bg_date', '_bg_user_id', '_bg_label', '_bg_image_url', 'level', '_bg_device_browser', '_bg_version'}) ) From 23dd0180ea6c032287f7954a2f23aec853d95f8f Mon Sep 17 00:00:00 2001 From: Sarah C Date: Wed, 21 Sep 2022 15:48:23 +0200 Subject: [PATCH 4/9] Add legal mention to result --- frontend/src/components/ResultsComponent.vue | 46 ++++++++++++++------ 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/frontend/src/components/ResultsComponent.vue b/frontend/src/components/ResultsComponent.vue index 963f1b8b..123d2ee0 100644 --- a/frontend/src/components/ResultsComponent.vue +++ b/frontend/src/components/ResultsComponent.vue @@ -21,6 +21,7 @@

Catégorie {{ cleanCategory }}

Type d'arme : {{ cleanLabel }}

+

{{ cleanMention }}

@@ -54,43 +55,53 @@ results: { revolver: { displayLabel: "revolver", - category: "B ou D" + category: "B ou D", + mention: "Législation dépendant de la catégorie" }, pistolet_semi_auto_moderne: { displayLabel: "pistolet semi-automatique moderne", - category: "B" + category: "B", + mention: "Soumise à autorisation" }, pistolet_a_percussion_silex: { - displayLabel: "pistolet à percussion ou à silex", - category: "D" + displayLabel: "pistolet à mécanisme ancien", + category: "D", + mention: "Libre d'acquisition et de détention" }, autre_pistolet: { displayLabel: "pistolet divers", - category: "A, B ou D" + category: "A, B ou D", + mention: "Législation dépendant de la catégorie" }, epaule_a_percussion_silex: { - displayLabel: "arme d'épaule à percussion ou à silex", - category: "D" + displayLabel: "arme d'épaule à mécanisme ancien", + category: "D", + mention: "Libre d'acquisition et de détention" }, epaule_a_un_coup: { displayLabel: "arme d'épaule à un coup par canon", - category: "C" + category: "C", + mention: "Soumise à déclaration" }, epaule_a_levier_sous_garde: { displayLabel: "arme d'épaule à levier de sous-garde", - category: "B ou C" + category: "B ou C", + mention: "Législation dépendant de la catégorie" }, epaule_a_verrou: { displayLabel: "arme d'épaule à verrou", - category: "B ou C" + category: "B ou C", + mention: "Législation dépendant de la catégorie" }, epaule_a_pompe: { displayLabel: "arme d'épaule à pompe", - category: "B ou C" + category: "B ou C", + mention: "Législation dépendant de la catégorie" }, autre_epaule: { displayLabel: "arme d'épaule non manuelle", - category: "A, B ou C" + category: "A, B ou C", + mention: "Législation dépendant de la catégorie" } } } @@ -101,6 +112,9 @@ }, cleanCategory() { return this.results[`${store.label}`].category + }, + cleanMention() { + return this.results[`${store.label}`].mention } }, methods: { @@ -129,7 +143,6 @@ \ No newline at end of file From fead088d673c3d2eb0c009f9a39521ed7a01e1fc Mon Sep 17 00:00:00 2001 From: Sarah C Date: Mon, 26 Sep 2022 23:14:35 +0200 Subject: [PATCH 7/9] Change display for multiple categories legal mention --- frontend/src/components/ResultsComponent.vue | 18 ++++++++++-------- frontend/src/main.js | 1 - 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/frontend/src/components/ResultsComponent.vue b/frontend/src/components/ResultsComponent.vue index 123d2ee0..b50a10f1 100644 --- a/frontend/src/components/ResultsComponent.vue +++ b/frontend/src/components/ResultsComponent.vue @@ -21,16 +21,16 @@

Catégorie {{ cleanCategory }}

Type d'arme : {{ cleanLabel }}

-

{{ cleanMention }}

+

-

Cet avis n'emporte qu'une simple valeur de renseignement. Pour faire référence dans une procédure, il doit impérativement et réglementairement être validé par le biais d'un examen scientifique ou technique prévu par le code de procédure pénale.

+

Cet avis n'emporte qu'une simple valeur de renseignement. Pour faire référence dans une procédure, il doit impérativement et réglementairement être validé par le biais d'un examen scientifique ou technique prévu par le code de procédure pénale.