# Développement custom

Si, pour les besoins de votre projet, vous avez besoin de customiser certaines parties du code, nous avons rendu cette opération-là plus simple possible. Pour arriver à cela, nous avons rendu possible le code custom. Cela vous permettra de développer du code spécifique sans tout perdre à chaque mise à jour.

{% hint style="warning" %}
Seuls les fichiers au niveau du backend sont modifiable. En effet, depuis la version 2.0 la partie frontend est gérée par Angular. Ce dernier nécessitant une compilation après chaque modification, la personnalisation n'est donc pas gérable.
{% endhint %}

## Ajout d'un nouveau custom

Voir la page spécifique : [Création d'instances supplémentaires](/open-capture/technique/installation/creation-dinstances-supplementaires.md)

## Création de l'arborescence

Après avoir activé le custom voulu, comme montré précédemment, il ne vous reste plus qu'à choisir les fichiers à modifier et à recréer leur arborescence. Pour la suite, nous allons nous baser sur l'exemple du custom `[votre_custom]`. Si jamais vous souhaitez modifier, par exemple, le fichier gérant les web services liés aux utilisateurs, vous devrez recréer l'arborescence dans le dossier `custom`, comme suit :

{% code title="Arborescence simplifié d" %}

```
├── bin
├── custom
   └── votre_custom
        └── src
           └── backend
               └── rest
                  └── user.py
├── dist
├── instance
└── src
    ├── assets
    ├── backend
       ├── classes
       ├── controllers
       ├── invoice_classification
       ├── models
       ├── process
       └── rest
    └── frontend
```

{% endcode %}

Après avoir rajouté vos fichiers customs, il est nécessaire de redémarrer différents services :

```
systemctl restart OCVerifier-worker_CUSTOMID
systemctl restart OCSplitter-worker_CUSTOMID
systemctl restart apache2
```

{% hint style="info" %}
À noter que tout développement custom peut éventuellement être intégré au code source d'**Open-Capture**, si celui-ci répond à une problématique générique et peut répondre à une demande de la communauté. Dans ce cas là, n'hésitez pas à créer un Pull Request sur le[ dépôt officiel d'**Open-Capture**](https://kutt.it/GithubPR).
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://edissyum.gitbook.io/open-capture/technique/developpement-custom.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
