.. _def-workflows-registration: =============================== Structure registration workflow =============================== Registration is not free, structure have to fill its informations then submit it to a validation from admins. Introduction ************ .. _def-workflows-registration-standard-form: Standard form ------------- User have to fill datas about: Account login * Username: Required, unique, only accepts letters, numbers and special characters ``@``, ``.``, ``+``, ``-`` and ``_``; * Password: Required; Identity * First name: Required; * Last name: Required; * Email: Required, unique; * Employment: Required; * Phone: Required; Structure * Name: Required; * Adress: Required; * Town: Required; * Zipcode: Required, have to be a valid full zipcode number; * SIRET number: Required, unique, have to be a valid SIRET number (validated from *Luhn* algorithm); * Network: Required, a multiple choices selection, **choice values are depending on plateforms**; * Structure approval: Required, a single choice selection. Not enabled on all plateforms **(actually only on Inserdiag)**; * Structure creation date: Required, a date with format ``DD/MM/YYYY``. Not enabled on all plateforms **(actually only on Culturdiag)**; * Wished guide: Optional, user can select a guide he wish to be accompanied by. Not enabled on all plateforms **(actually only on Inserdiag)**; * How did you know about Inserdiag: Required, a single choice selection.. Not enabled on all plateforms **(actually only on Inserdiag)**; And finally at the end of the form, there is a required checkbox input to validate user readed general terms. .. _def-workflows-registration-reclaim-form: Workbook reclaim form --------------------- An optional second way to register for Structures which wants to reclaim an allready existing workbooks that have been imported previously from archives. This is historically for Inserdiag only, after some existing workbooks archives were imported from a specific routine. It is similar to the standard form except some additional inputs where structure fill informations (a title and a comment) about its existing workbook. Admins will use these infos to retrieve the workbook and link it to the new structure when validating its registration. Also, this form does not display guide choice input (on plateform than implements it). .. NOTE:: Because imported workbooks are created with :ref:`def-workflows-workbooks-standard-process-status-11`, the structure will directly starts on :ref:`def-workbooks-simpliedmode`. .. _def-workflows-registration-validation: Validation ********** :ref:`def-accounts-structure` subscribe will go throught some status steps. .. _def-workflows-registration-status-1: Status #1 - En attente ---------------------- The first status when structure fill the registration form. It means the registration have not been validated yet by an admin. When admin will edit it, he will have some choices to change the registration status to: Validated Registration will go to the next status, selected :ref:`def-accounts-accompanists-guide` for accompanying will be informed with an email notification about new structure requiring him. During save, the :ref:`def-accounts-accompanists-supervisor` and :ref:`def-accounts-accompanists-dla` will be automatically assigned to the structure. Rejected Registration is rejected by admin, it will stays in this status forever without admin intervention. A rejected registration will stay archived in database to avoid user trying to register again and again after reject. Deleted Registration is rejected by admin and its datas will be directly deleted in database. :ref:`def-accounts-structure` will be able to fill again a registration with the same datas. Also, admin can : * Edit structure informations if needed; * Fill a comment about the registration, it will be used only for refused registrations within email notification; .. _def-workflows-registration-status-2: Status #2 - En cours de choix d'accompagnateur ---------------------------------------------- Used to enable selected guides during registration to accept or refuse its assignment to the structure. The :ref:`def-accounts-accompanists-guide` will have a form with a single choice to accept or refuse the assignment. Until the :ref:`def-accounts-accompanists-guide` has refused or accepted a registration, the structure account will not change. If the guide accept The structure account will be activated. The structure, all linked accompanists and admins will be notified about the validation; During save, the :ref:`def-accounts-accompanists-supervisor` and :ref:`def-accounts-accompanists-dla` will be automatically assigned to the structure. If the guide refuse The structure registration will still under this status but the :ref:`def-accounts-accompanists-guide` will be removed from registration. Admins can validate it, selecting a new :ref:`def-accounts-accompanists-guide` that will be automatically assigned to the structure without consent. At any time, an admin can validate this registration, forcing guide assignment and possibly edit :ref:`def-accounts-structure` datas, this will inherit from same behaviors of :ref:`def-accounts-accompanists-guide` accept. .. _def-workflows-registration-status-3: Status #3 - Activé ------------------ Account registration is validated, the structure can login and start to work. .. _def-workflows-registration-status-4: Status #4 - Désactivé --------------------- Account is disabled, the structure cannot login anymore and should not be visible from their accompanists. .. _def-workflows-registration-flow-chart: Flow chart ********** .. graphviz:: digraph Workflow { /* Define all the entities label */ structure_start [label="Anonymous", shape="invhouse"]; admin_start [label="Admin", shape="invhouse"]; guide_start [label="Guide", shape="invhouse"]; form [label="Registration form", shape=rectangle]; validation [label="Validation", shape="diamond", style="rounded"]; pending_registration [label="Status #1\nPending"]; waiting_guide_registration [label="Status #2\nWaiting guide"]; waiting_guide_validation [label=" Admin\nforce| Guide\naccept", shape="record"]; waiting_guide_refuse [label="Guide\nrefuse"]; waiting_guide_blanked [label="Guide is removed", shape="rectangle"]; account_enabled [label="Status #3\nEnabled", shape="egg"]; account_rejected [label="Status #4\nDisabled", shape="egg"]; account_deleted [label="Account deleted", shape="rectangle"]; /* Links */ subgraph cluster_user_kinds { style="rounded"; color="lightgrey"; fontcolor="lightslategray"; node [style="filled", color="white"]; label = "User kinds"; structure_start; admin_start; guide_start; } subgraph cluster_pending { style="rounded"; color="lightgrey"; fontcolor="lightslategray"; node [style="filled", color="white"]; label = "Pending state"; pending_registration; waiting_guide_registration; } subgraph cluster_result { style="rounded"; color="lightgrey"; fontcolor="lightslategray"; node [style="filled", color="white"]; label = "Final state"; account_enabled; account_rejected; account_deleted; } structure_start -> form; admin_start -> {pending_registration waiting_guide_registration}; guide_start -> waiting_guide_registration; form -> validation; validation -> form [taillabel=<Fail>, arrowhead="ediamond", dir="forward", headport="e", tailport="e"]; validation -> pending_registration [taillabel=<Success>, arrowhead="diamond", dir="forward", headport="w", tailport="s"]; pending_registration -> waiting_guide_registration [label="Accepted"]; pending_registration -> account_rejected [label="Rejected"]; pending_registration -> account_deleted [label="Deleted"]; waiting_guide_registration -> {waiting_guide_validation waiting_guide_refuse}; waiting_guide_validation -> account_enabled; waiting_guide_refuse -> waiting_guide_blanked; waiting_guide_blanked -> waiting_guide_registration; }