# Éditeur d'horaires d'ouverture OpenStreetMap

La spécification des horaires d'ouverture d'OpenStreetMap est assez compliquée et ne se prête pas directement à une interface utilisateur simple et intuitive.

Cependant, la plupart du temps vous n'utiliserez surement qu'une petite partie de la définition. L'éditeur prend cela en compte en essayant de cacher les possibilités les plus obscures dans les menus et réduit le travail normal à quelques personnalisations de modèles pré-définis.

Cette documentation est inachevée

## Utiliser l'éditeur d'horaires d'ouverture

Dans votre travail quotidien, l'objet que vous modifiez peut soit avoir déjà un attribut d'horaires d'ouverture (opening_hours, service_times ou collection_times) ou vous pouvez ré-appliquer le modèle d'attribut pour obtenir un attribut vide. Si vous avez besoin d'ajouter le champs manuellement et que vous utilisez Vespucci, vous pouvez saisir la clef sur la page de détails puis revenir sur le formulaire pour la modifier. Si vous pensez que l'attribut d'horaires d'ouverture aurait dû faire parti du modèle, ouvrez un rapport de bogue pour votre éditeur.

Si vous avez défini un modèle par défaut (pour cela, utilisez l'élément de menu « Gérer les modèles »), il sera chargé automatiquement au démarrage de l'éditeur avec une valeur vide. Vous pouvez charger n'importe quel modèle sauvegardé avec la fonctionnalité « Charger un modèle » et vous pouvez sauvegarder les valeurs actuelles dans un modèle avec « Enregistrer le modèle ». Vous pouvez définir des modèles et un modèle par défaut différents pour les attributs « opening_hours », « collection_times » et « service_times ».

Naturellement vous pouvez construire des horaires d'ouverture à partir de rien, mais nous recommandons d'utiliser l'un des modèles existants comme point de départ.

Si une valeur d'horaires d'ouverture existante est chargée, le logiciel tentera de la corriger automatiquement pour qu'elle soit conforme avec la spécification. Si cela n'est pas possible, l'emplacement approximatif où l'erreur a eu lieue sera surlignée dans l'affichage de la valeur brute et vous pourrez essayer de la corriger manuellement. Environ un quart des valeurs d'horaires d'ouverture ont des problèmes, mais moins de 10% ne peuvent pas être corrigées. Voir OpeningHoursParser pour plus d'information sur les déviations à la spécification qui sont tolérées.

### Bouton de menu principal

- Ajouter une règle : ajouter une nouvelle règle.
- Ajouter une règle pour les vacances : ajouter une nouvelle règle pour les vacances en même temps qu'un changement d'état.
- Ajouter une règle pour 24h/24 7j/7 : ajouter une règle pour un objet qui est tout le temps ouvert. La spécification n'accepte pas d'autre sous-valeurs pour 24h/24 7j/7 mais nous permettons l'ajout de sélecteurs de plus haut niveau (par exemple un intervalle d'années).
- Charger un modèle : charger un modèle existant.
- Enregistrer dans un modèle : sauvegarder la valeur actuelle des horaires d'ouverture comme un modèle pour pouvoir l'utiliser plus tard.
- Gérer les modèles : modifier, par exemple en changeant le nom, et supprimer des modèles existants.
- Rafraîchir : ré-analyser la valeur des horaires d'ouverture.
- Tout supprimer : Supprimer toutes les règles.

### Règles

Les règles par défaut sont ajoutées comme des règles normales, ce qui implique qu'elles annuleront les règles précédentes pour les mêmes jours. Ce peut être un problème pour spécifier des horaires étendues. Vous pouvez alors changer les règles en changeant l'élément de menu Montrer le type de règle en additif.

#### Menu des règles

- Ajouter un modificateur ou un commentaire : changer l'effet de cette règle et ajouter un commentaire facultatif.
- Ajouter des jours fériés : ajouter un sélecteur pour les vacances publiques ou scolaires.
- Ajouter un intervalle de temps…
  - Heure fixe à heure fixe : une heure de début et de fin le même jour.
  - Heure fixe à heure fixe étendue : une heure de début et de fin le jour suivant (par exemple 26:00 est 02:00 (du matin) le jour suivant).
  - Heure variable à heure fixe : d'une heure variable (aube, crépuscule, levé du soleil ou couché du soleil) à une heure de fin le même jour.
  - Heure variable à heure fixe étendue : d'une heure de début variable à une heure de fin le jour suivant.
  - Heure fixe à heure variable : d'une heure de début à une heure de fin variable.
  - Heure variable à heure variable : d'une heure de début variable à une heure de fin variable.
  - Heure fixe : un point dans le temps.
  - Heure fixe à durée indéterminée : à partir d'un point dans le temps.
  - Heure variable : un point dans le temps variable.
  - Heure variable à durée indéterminée : à partir d'un point variable dans le temps.
- Ajouter un intervalle de jours de semaine : ajouter un sélecteur de jours de la semaine.
- Ajouter un intervalle de dates…
  - Date fixe à date fixe : d'une date de début (année, mois, jour) à une date de fin.
  - Date variable à data fixe : d'une date de début variable (actuellement la spécification ne définie que pâques) à une date de fin.
  - Date fixe à date variable : d'une date de début à une date de fin variable.
  - Date variable à date variable : d'une date de début variable à une date de fin variable.
  - Occurrence dans le mois à occurrence dans le mois : d'une occurrence d'un jour de la semaine à un autre.
  - Occurrence dans le mois à date fixe : d'une occurrence d'un jour de la semaine de début à une date de fin.
  - Date fixe à occurrence dans le mois : d'une date de début à une occurrence d'un jour de la semaine à la fin.
  - Occurrence dans le mois à date variable : d'une occurrence d'un jour de la semaine dans un mois à une date variable de fin.
  - Date variable à occurrence dans le mois : d'une date de début variable à une occurrence d'un jour de la semaine dans un mois.
  - Date fixe à durée indéterminée : à partir d'une date de début.
  - Date variable à durée indéterminée : à partir d'une date de début variable.
  - Occurrence dans le mois à durée indéterminée : à partir d'une occurrence d'un jour de la semaine dans un mois.
  - Avec décalages… : les mêmes entrées que précédemment, mais avec des décalages spécifiés (c'est rarement utile).
- Ajouter un intervalle d'années : ajouter un sélecteur d'années.
- Ajouter un intervalle de semaines : ajouter un sélecteur de numéro de semaine.
- Dupliquer : créer une copie de cette règle et l'insérer après la position actuelle.
- Montrer le type de règle : afficher et permettre de changer le type de règle entre normal, additif et par défaut (indisponible sur la première règle).
- Déplacer vers le haut : déplacer cette règle d'une position vers le haut (indisponible sur la première règle).
- Déplacer vers le bas : déplacer cette règle d'une position vers le bas.
- Supprimer : supprimer cette règle.

### Intervalles de temps

Pour rendre la modification d'intervalles de temps le plus simple possible, nous essayons de choisir un intervalle de temps optimal et une granularité pour la barre d'intervalle lors du chargement de valeurs existantes. Pour les nouveaux intervalles, la barre commence à 6:00 (du matin) avec des incrément de 15 minutes, ce qui peut se changer via le menu.

Cliquer sur la barre (mais pas sur les épingles) ouvrira le grand sélecteur d'heures, lorsqu'utiliser la barre directement est trop dur. Les sélecteurs d'heures vont jusqu'au jour suivant, donc c'est une manière simple d'augmenter un intervalle de temps sans avoir à supprimer et rajouter un intervalle.

#### Menu d'intervalle de temps

- Montrer le sélecteur d'heure: montrer un grand sélecteur d'heure pour sélectionner l'heure de début et de fin. C'est la méthode à privilégier sur les petits écrans pour changer les heures.
- Passer à des intervalles de 15 minutes : utiliser une granularité à 15 minutes sur la barre d'intervalle.
- Passer à des intervalles de 5 minutes : utiliser une granularité à 5 minutes sur la barre d'intervalle.
- Passer à des intervalles de 1 minutes : utiliser une granularité à 1 minutes sur la barre d'intervalle. C'est très difficile à utiliser sur un téléphone.
- Commencer à minuit : commencer la barre d'intervalle à minuit.
- Montrer l'intervalle : montrer le champ d'intervalle pour spécifier un intervalle en minutes.
- Effacer : supprimer cet intervalle de temps.