From e1799f43c3a2c2faaedaf9851ea8e13a9a92c1de Mon Sep 17 00:00:00 2001 From: bruhnild Date: Wed, 3 Jan 2024 11:42:59 +0100 Subject: [PATCH 1/2] update doc about suricate --- docs/changelog.rst | 1 + .../advanced-configuration/suricate.png | Bin 0 -> 54473 bytes docs/install/advanced-configuration.rst | 103 +++++++++++++++++- 3 files changed, 100 insertions(+), 4 deletions(-) create mode 100644 docs/images/advanced-configuration/suricate.png diff --git a/docs/changelog.rst b/docs/changelog.rst index be9c45f501..31ae033fff 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -21,6 +21,7 @@ CHANGELOG **Documentation** - Improve documentation for database restore +- Improve documentation aboute suricate's workflow (#3070) **Bug fixes** diff --git a/docs/images/advanced-configuration/suricate.png b/docs/images/advanced-configuration/suricate.png new file mode 100644 index 0000000000000000000000000000000000000000..a364112d9906511ae52304639a2155281e95cb2c GIT binary patch literal 54473 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 literal 0 HcmV?d00001 diff --git a/docs/install/advanced-configuration.rst b/docs/install/advanced-configuration.rst index 3375663dc6..11ed2b6bdd 100644 --- a/docs/install/advanced-configuration.rst +++ b/docs/install/advanced-configuration.rst @@ -694,9 +694,11 @@ If false, no email will be sent to the sender of any feedback on Geotrek-rando w Suricate support ~~~~~~~~~~~~~~~~ +Suricate is the French national database gathering such reports. It exposes an API for external software to connect to. For Geotrek to connect to Suricate, you need to request two pairs of API keys allowing access. + Geotrek reports can work together with Suricate API, using one of 3 modes. Proceed through a mode full configuration before proceeding to the next mode. -**1** - No Suricate (default) +**1 - No Suricate (default)** This mode sends no report data to Suricate. @@ -709,7 +711,7 @@ To initialize Report forms (Geotrek-admin, Geotrek-rando-v2, Geotrek-rando-v3) l To make these lists available for your Geotrek-rando-v2, run ``sync_rando`` (see :ref:`synchronization `) -**2** - Suricate Standard +**2 - Suricate Standard** This mode simply forwards all reports to Suricate, using the Standard API to post reports. @@ -726,10 +728,103 @@ Set your account settings in ``custom.py``: 'PRIVATE_KEY_SERVER_CLIENT': '', } -**3** - Suricate Management (Workflow) +**3 - Suricate Management (Workflow)** This mode allows to retrieve reports and related data directly from Suricate, using the Management API to get data. It is used to process and manage reports, using the Intervention module and following a predefined worklow, while sending all progress to Suricate. It implies enabling Suricate Report mode as well. -You can find a detailled explanation on the workflow here : https://github.com/GeotrekCE/Geotrek-admin/issues/2366#issuecomment-1113435035 + +.. image :: /images/advanced-configuration/suricate.png + +Suricate Workflow mode defines a strict process, composed of several steps representing the lifecycle of a user report, from creation to closing. A report is always characterized with a status, depicting how far in the process the report is, and displayed using a specific color on the map. + +**Reports** + +A report consists of the following information : + * A GPS position + * A message describing the problem + * A category : environment, security, usage conflit, signages + * A magnitude : usage is possible, difficult, or impossible + * A practice : trekking, cycling, horse-riding… + * Up to 3 pictures + +**Stakeholders and responsibility** + +This workflow defines three stakeholders categories : + + * The sentinel : the person who submitted the report. They do not have a Geotrek user account nor intervene in the workflow, but they are kept updated on the processing of their report via semi-automatic e-mails. + * Supervisors : they are assigned (a) report(s) for treatment. They are tasked with planning an Intervention on Geotrek and enter information about it. + * The manager : they maintain a global view of all reports on the territory, assign reports to supervisors, handle messaging to the sentinel, and confirm reports resolution. + +Any Geotrek user account can be used as a supervisor, as long as they have proper access and modification rights on both Report and Intervention modules. There can only be one Manager. + +**Report processing** + +Every night, Geotrek fetches new reports and updates through Suricate API. The manager receives an e-mail listing new reports (with “Filed” status). They can visualize them on Geotrek. + +**1** - Qualification + +The manager has three options when handling a newly filed report: + + * Classify : The report isn’t relevant. The manager sets the report to “Classified” and enters a message for the sentinel, explaining their choice. The report is considered closed. + * Reject treatment : The report does not involve an area or an equipment under responsibility of the workflow users, but could be handled by another member of the Suricate community. The report is excluded from Geotrek workflow but is still accessible to the community via other applications using Suricate API. + * Assignation : The manager selects a supervisor from a drop-down selector, and enters a message with instructions or further information. The supervisor receives an e-mail notifying them about the newly assigned report, along with the manager’s message. * The manager also enters a message destined to the sentinel, to notify them that the report is about to be handled. The report is set to status “Waiting”. Only after assignation can we proceed to the following steps. + + +**2** - Planification + +The supervisor logs onto Geotrek and creates an Intervention linked to the assigned report, with a planification date. The intervention has status “Plannified”. If too many days have passed between report assignation and intervention creation, the report is automatically set to “Late intervention” status, marked with color red, and the supervisor receives a reminder by e-mail. + +**3** - Resolution + +The supervisor sets their intervention to “Resolved” status. The manager receives an e-mail notifying that a report is ready to be closed. If too many days have passed between intervention creation and intervention resolution, the report is automatically set to “Late resolution” status, marked with color red, and the supervisor receives a reminder e-mail. + +**4** - Closing + +Following the intervention’s resolution, the manager has to confirm the report was handled and sets it to “Resolved”. They enter a message for the sentinel to inform them that the report’s processing is over. The report is considered closed. + +**5** - GPS relocalisation + +At any point, the manager or the supervisor can re-define GPS location for the report. Relocating it outside of the district marked as workflow responsibility area causes the treatment to be rejected (see part 1 Qualification). +Furthermore, it is now possible to display the report layer on other Geotrek modules, for instance to compare positions between reports and signages or treks. + +**6** - Reports visibility + +When a supervisor logs in to Geotrek, they can only see reports that are currently assigned to them. Both the manager and administrators can see all existing reports. + +**7** - Predefined messages + +As we have seen above, the manager enters messages destined to the sentinel or to supervisors. These messages can be predefined in the administration interface and picked from a drop-down selector, then modified before sending. It is possible to automatically retrieve in a message the intervention date and the username of the supervisor that handled it. + +**Workflow configuration** + +Even though the workflow is a strict process, the following items are customisable. +Through administration interface : + + * Colors for each status + * Selecting the manager + * Selecting the workflow responsibility area + * Predefined messages + +**Through application configuration**: + + * API keys to connect to Suricate + * Enabling of Workflow mode or any other mode + * Enabling/disabling status colors on map + * Duration of timers setting reports to “late” statuses + +**Synchronization and network losses** + +Communication between Suricate and Geotrek operates as follows : + + * Suricate to Geotrek : new information is fetched once a night + * Geotrek to Suricate : every report update on Geotrek is immediately forwarded to Suricate + +Maintaining synchronization between Suricate and Geotrek confronts us to the challenges of distributed software architecture. At any point, the connection between both applications can be lost, meaning that Suricate and Geotrek will no longer agree on a report’s status. Most of the time, this is simply due to temporary network failure. +A system is in place to compensate for such failures. If a request to Suricate API fails, it is stored in the database and resent a few hours later. In case of a long term loss of connection, Django commands are available for an administrator to run some connection tests and resend stored information once connection is recovered. + + +For technical documentation refer to : https://geotrek.ecrins-parcnational.fr/ressources/technique/2023-02-Geotrek-Suricate-configuration.pdf + +You can find the same detailled explanation on the workflow in this article in french : https://makina-corpus.com/geotrek/gestion-territoires-naturels-geotrek-traitement-signalements-suricate - Set your settings in ``custom.py`` : From bcc3737c78bdcedbc927c119d0d79ad72cac5e3f Mon Sep 17 00:00:00 2001 From: Chatewgne Date: Wed, 3 Jan 2024 12:15:35 +0100 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=93=9D=20[DOC]=20Update=20Suricate=20?= =?UTF-8?q?Doc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/install/advanced-configuration.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install/advanced-configuration.rst b/docs/install/advanced-configuration.rst index 11ed2b6bdd..6c2dbd2be8 100644 --- a/docs/install/advanced-configuration.rst +++ b/docs/install/advanced-configuration.rst @@ -874,7 +874,7 @@ To make these lists available for your Geotrek-rando, run ``sync_rando`` (see :r - Go to the Admin Site and - if you want to include the moderation steps (`SKIP_MANAGER_MODERATION = False`), select a user as Workflow Manager (`/admin/feedback/workflowmanager/`). Their role is to assign reports to other users. - select a district as Workflow District (`/admin/feedback/workflowdistrict/`). This zone defines the area of reponsibility for reports. Reports relocated outside of the district will be excluded from workflow. - - create predefined emails (`/admin/feedback/predefinedemail/`) to notify Suricate Sentinels and Administrators. You can use `##intervention_date##` and `##supervisor##` in the messages' body to automatically replace with the report's linked Intervention date and author. The Extended Username field will be dsiplayed (see User Profile under `/admin/auth/user/`). + - create predefined emails (`/admin/feedback/predefinedemail/`) to notify Suricate Sentinels and Administrators. You can use `##intervention_end_date##` and `##supervisor##` in the messages' body to automatically replace with the report's linked Intervention date and author. The Extended Username field will be dsiplayed (see User Profile under `/admin/auth/user/`). - make sure Users involved in the workflow have proper permissions to create and update Reports and Interventions (`/admin/auth/user/`) Be aware that, when enabling Suricate Management mode, Suricate becomes the master database for reports. This means **reports created in Geotrek-admin will not be saved to the database, they will only be sent to Suricate**. Reports are only saved when synchronized back from Suricate, when the synchronization command is run. Make sure to run these 3 commands daily to maintain synchronization and update reports (thanks to `cron` for instance) :