chouette Sprint 25

05/16/2019

Table of contents

Référentiel d'arrêts

Regroupe l'ensemble des tasks liées au système de référentiel d'arrêts

Configuration des informations présentées à la sélection d'un arrêt (REFLEX V2)

L'utilisateur autorisé peut définir les informations qui sont affichées pour chaque arrêt lors d'une sélection d'arrêt, dans l'ensemble du groupe de travail.

Cette sélection a lieu notamment :

  • dans l'édition des arrêts
  • dans l'édition d'itinéraires
  • dans l'édition d'interdiction de trafic entre arrêt
  • dans l'édition des fournisseurs d'arrêts
  • dans les filtres de recherche par arrêt (courses, arrêts, ITAs)

L'utilisation autorisé peut choisir d'afficher en plus du nom de l'arrêt :

  • le type d'arrêt
  • l'ID métier
  • le code postal de la commune
  • le nom de la commune
  • la région postale (le code INSEE dans le profil d'arrêts France/IdFM)
  • le pays

En plus du nom, ces informations seront présentées pour chaque arrêt dans la sélection.

Nouveau format d'identifiant métier 'ICAR' (REFLEX V2)

Chouette doit permettre aux identifiants métier d'un référential d'arrêts synchronisé avec ICAR de prendre une valeur ayant les formes suivantes :

Donnée Forme de l'identifiant NeTEx Exemple
Arrêt [Code PAYS]::[Type d’objet]:[ID]:[Code émetteur de l’identifiant] FR::Quay:50123420:FR1
Fournisseur d'arrêts FR1:OrganisationalUnit:[ID] FR1:OrganisationalUnit:8:

Correspondances entre arrêts

Les correspondances permettent de prédéfinir des temps de parcours piéton entre deux arrêts.

Gérer les correspondances entre arrêts

Création / édition

L'utilisateur peut créer une Correspondance entre Arrêts en indiquant :

  • les deux arrêts liés par la Correspondance (obligatoires)
  • si la correspondance couvre bien ou non les deux sens
  • les durées de marche entre les deux arrêts
    • pour un voyageur standard (valeur obligatoire)
    • pour un voyageur régulier (optionnelle)
    • pour un voyageur occasionnel (optionnelle)
    • pour un voyageur à mobilité réduite (optionnelle)
  • la distance (en mètre, optionnelle)
  • le type de correspondance : extérieure, couverte ou mixte
  • un nom (optionnel)
  • un commentaire (optionnel)

Chouette affiche autant de possible l'identifiant métier des arrêts liés à la Correspondance (les homonymes étant fréquent dans le cas d'une correspondance).

L'utilisateur peut recalculer les durées à partir de la distance indiquée. Chouette utilise les vitesses suivantes :

  • Voyageur standard : 4.8 km/h
  • Voyageur régulier : 6 km/h
  • Voyageur occasionnel : 3.5 km/h

Consultation

L'utilisateur peut consulter les correspondances existantes dans le référentiel d'arrêts.

Pour chaque correspondance, l'utilisateur dispose :

  • de l'ID et du nom des deux arrêts associés ("Premier" et "Deuxième" arrêts)
  • la durée "standard" de la correspondance
  • le sens de la correspondance
  • d'un menu permet d’accéder aux actions : Consulter, Éditer et Supprimer

L'utilisateur peut filtrer les correspondances :

  • en sélectionnant un arrêt, dans ce cas seules les correspondances associées s'affichent

Quand l'utilisateur consulte la correspondance, il dispose :

  • d'un bloc "Identification" avec :
    • l'identifiant métier (ID)
    • le Sens de la correspondance (Unique ou Double)
  • d'une carte montrant les deux arrêts
  • d'un bloc "Durées" avec les durées (ou - si la valeur n'est pas définie)
  • de deux blocs détaillant les arrêts associés
    • l'ID de l'arrêt
    • son Nom (avec un lien)
    • le Type d'Arrêt
  • d'un bloc "Général" avec :
    • le Type de Correspondance
    • le nom (ou - si la valeur n'est pas définie)
    • le commentaire associé (ou - si la valeur n'est pas définie)

Synchronisation du référentiel d’arrêts

Synchronisation des arrêts avec l'API de Reflex v2 (REFLEX V2)

Chouette récupère l'ensemble des arrêts définis dans ICAR / Reflex par son API. Pour chaque Quay et StopPlace, Chouette recherche une arrêt (StopArea) par identifiant métier (objectid) dans le référentiel d'arrêts synchronisé. Si l'arrêt n'existe pas, il est créée (avec cet identifiant).

Pour chaque arrêt (existant ou créé), les attributs NeTEx sont utilisées pour renseigner ainsi les champs de l'arrêt Chouette :

Attribut NeTEx Champ Chouette Commentaire
id objectid
version object_version
Name name
PostalAddress/Town city_name
PostalAddress/PostalRegion zipcode / postalregion selon développement associé
Centroid/Location/gml:pos longitude / latitude converti en WGS84

En l'absence de TypeOfPlaceRef, le type d'arrêt déterminé ainsi :

  • Arrêt Transporteur (ex. ZDEP), quand un Quay n'a pas la dataSourceRef "FR1-ARRET_AUTO"
  • Arrêt (ex. ZDER), quand un Quay a la dataSourceRef "FR1-ARRET_AUTO"
  • Zone d'Arrêts (ex. ZDLR), pour les StopPlaces dont l'id contient le type monomodalStopPlace
  • Zone de correspondance (ex. LDA), pour les StopPlaces dont l'id contient le type multimodalStopPlace

Le type est stocké dans l'arrêt (cf développements associés).

Chouette recherche un Fournisseur d'Arrêts à associer à l'arrêt synchronisé selon la valeur de l'attribut NeTEx dataSourceRef. Cette valeur doit correspondre à l'identifiant métier (objectid) du Fournisseur d'Arrêts.

Chouette applique également ces valeurs à tous les arrêts synchronisés :

Champ Chouette Valeur Commentaire
kind commercial
deleted_at nil
confirmed_at Time.now si l'arrêt est créé
created_at Time.now si l'arrêt est créé

Chouette capture l'ensemble de la balise NeTEx Quay ou StopPlace dans l'arrêt (dans le champ caché import_xml).

Les arrêts non présents dans Reflex sont désactivées dans le référentiel d'arrêts.

L'API de ICAR / Reflex v2 est accessible à l'URL (paramétrable) "https://reflex.stif.info/ws/rest/V2/getData?method=getAll" (ou pprod). Un fichier XML NeTEx est retourné directement (~150Mo en pré-production).

Précautions :

  • les certificats SSL ne sont pas forcément valides
  • le UserAgent est (parfois) filtré. La valeur « Ruby » fonctionne selon nos tests
curl --user-agent "Ruby" --insecure -o reflex-v2.xml "https://pprod.reflex.stif.info/ws/rest/V2/getData?method=getAll"

Exemple d'Arrêt Transporteur (ex. ZDEP) :

<Quay dataSourceRef="FR1:OrganisationalUnit:59:" version="944701-898170" created="2018-04-11T13:22:30Z" changed="2018-04-11T13:22:30Z" derivedFromObjectRef="FR::Quay:29924:FR1" id="FR::Quay:50123420:FR1">
 <keyList>
  <KeyValue typeOfKey="LOCATION">
   <Key>EPSG_27572</Key>
   <Value>613369.0 2435010.0</Value>
  </KeyValue>
 </keyList>
 <Name>GUTENBERG</Name>
 <PrivateCode>4107</PrivateCode>
 <Centroid>
  <Location>
   <gml:pos srsName="EPSG:2154">664730.0 6868242.0</gml:pos>
  </Location>
 </Centroid>
 <PostalAddress version="any" id="FR1:PostalAddress:50123420:">
  <Town>Livry-Gargan</Town>
  <PostalRegion>93046</PostalRegion>
 </PostalAddress>
 <AccessibilityAssessment version="any" id="FR1:AccessibilityAssessment:50123420:">
  <MobilityImpairedAccess>unknown</MobilityImpairedAccess>
  <limitations>
   <AccessibilityLimitation>
    <WheelchairAccess>unknown</WheelchairAccess>
    <AudibleSignalsAvailable>unknown</AudibleSignalsAvailable>
    <VisualSignsAvailable>unknown</VisualSignsAvailable>
   </AccessibilityLimitation>
  </limitations>
 </AccessibilityAssessment>
 <TransportMode>bus</TransportMode>
 <tariffZones>
  <TariffZoneRef ref="FR1:TariffZone:4:LOC"/>
 </tariffZones>
 <destinations>
  <DestinationDisplayView>
   <Name>234</Name>
   <PrivateCode>100100234</PrivateCode>
  </DestinationDisplayView>
 </destinations>
</Quay>

Exemple d'Arrêt (ex. ZDER) :

<Quay dataSourceRef="FR1-ARRET_AUTO" version="898170-898172" created="2014-12-28T23:00:00Z" changed="2018-06-14T13:35:35Z" id="FR::Quay:29924:FR1">
 <Name>Gutenberg</Name>
 <Centroid>
  <Location>
   <gml:pos srsName="EPSG:2154">664730.0 6868242.0</gml:pos>
  </Location>
 </Centroid>
 <ParentZoneRef ref="FR::monomodalStopPlace:51735:FR1"/>
 <PostalAddress version="any" id="FR1:PostalAddress:29924:">
  <Town>Livry-Gargan</Town>
  <PostalRegion>93046</PostalRegion>
 </PostalAddress>
 <AccessibilityAssessment version="any" id="FR1:AccessibilityAssessment:29924:">
  <MobilityImpairedAccess>unknown</MobilityImpairedAccess>
  <limitations>
   <AccessibilityLimitation>
    <WheelchairAccess>partial</WheelchairAccess>
    <AudibleSignalsAvailable>unknown</AudibleSignalsAvailable>
    <VisualSignsAvailable>unknown</VisualSignsAvailable>
   </AccessibilityLimitation>
  </limitations>
 </AccessibilityAssessment>
 <TransportMode>bus</TransportMode>
 <tariffZones>
  <TariffZoneRef ref="FR1:TariffZone:4:LOC"/>
 </tariffZones>
 <destinations>
  <DestinationDisplayView>
   <Name>234</Name>
   <PrivateCode>100100234</PrivateCode>
  </DestinationDisplayView>
 </destinations>
</Quay>

Exemple de Zone d'Arrêts (ex. ZDLR) :

<StopPlace dataSourceRef="FR1-ARRET_AUTO" version="898172-898173" created="2014-12-28T23:00:00Z" changed="2019-04-03T19:35:09Z" id="FR::monomodalStopPlace:51735:FR1">
 <Name>Gutenberg - Lycée Boulloche</Name>
 <Centroid>
  <Location>
   <gml:pos srsName="EPSG:2154">664694.0 6868200.5</gml:pos>
  </Location>
 </Centroid>
 <PostalAddress version="any" id="FR1:PostalAddress:51735:">
  <Town>Livry-Gargan</Town>
  <PostalRegion>93046</PostalRegion>
 </PostalAddress>
 <ParentSiteRef ref="FR::multimodalStopPlace:73376:FR1"/>
 <StopPlaceType>onstreetBus</StopPlaceType>
</StopPlace>

Exemple de Zone de Correspondance (ex. LDA) :

<StopPlace dataSourceRef="FR1-ARRET_AUTO" version="898173" created="2014-12-28T23:00:00Z" changed="2019-04-03T19:37:32Z" id="FR::multimodalStopPlace:73376:FR1">
 <Name>Gutenberg - Lycée Boulloche</Name>
 <Centroid>
  <Location>
   <gml:pos srsName="EPSG:2154">664694.0 6868200.5</gml:pos>
  </Location>
 </Centroid>
 <PostalAddress version="any" id="FR1:PostalAddress:73376:">
  <Town>Livry-Gargan</Town>
  <PostalRegion>93046</PostalRegion>
 </PostalAddress>
 <StopPlaceType>onstreetBus</StopPlaceType>
</StopPlace>

Synchronisation des fournisseurs d'arrêts avec l'API de Reflex v2 (REFLEX V2)

Chouette récupère via l'ensemble des OrganisationalUnits définis dans ICAR / Reflex par son API. Pour chaque OrganisationalUnit, Chouette recherche un Fournisseur d'Arrêts par identifiant métier (objectid) dans le référentiel d'arrêts synchronisé. Si le fournisseur n'existe pas, il est créée (avec cet identifiant).

Pour chaque fournisseur (existant ou créé), les attributs NeTEx sont utilisées pour renseigner ainsi les champs du Fournisseur d'Arrêts Chouette :

Attribut NeTEx Champ Chouette
Name name
<OrganisationalUnit version="any" id="FR1:OrganisationalUnit:8:">
 <Name>CIF 95 - GOUSSAINVILLE</Name>
 <TypeOfOrganisationPartRef ref="FR1-ARRET_Organisation"/>
</OrganisationalUnit>

Les fournisseurs non présents dans Reflex sont supprimés dans le référentiel d'arrêts.

Arrêts

Support de la région postale dans les arrêts (REFLEX V2)

L'utilisateur peut définir la région postale (PostalRegion NeTEx) d'un arrêt. Il s'agit d'une chaine de caractère libre, optionnelle.

Gestion des arrêts référents (REFLEX V2)

L'utilisateur peut définir qu'un arrêt sert de référent à un ou plusieurs autres arrêts.

Exemples d'usage :

  1. Quand plusieurs arrêts doivent être regroupés, un arrêt référent permet de ressembler les arrêts en question et de porter les informations communes.
  2. Quand le référentiel d'arrêts est alimenté par une source externe avec des arrêts disposant d'identifiants extérieurs et/ou d'informations partielles, des arrêts référents permettent de compléter un ou plusieurs arrêts initiaux avec des identifiants conformes au processus local, de nouvelles informations (localisation, noms corrects, etc.).

L'arrêt peut être :

  • soit associé à un arrêt référent
  • soit être lui même « Référent »

Quand l'utilisateur consulte les arrêts, il peut filtrer les arrêts Référent ou non.

Quand l'utilisateur consulte :

  • un arrêt associé à un arrêt référent, il peut y accéder directement.
  • un arrêt « Référent », il peut consulter tous les arrêts associés (et y accéder directement)

Nouvelle liste de types d'arrêts dans IBOO (REFLEX V2)

L'utilisateur d'IBOO dispose dans l'interface des types d'arrêts suivants :

  • Arrêt (ex ZDER ou ZDEP)
  • Zone d'Arrêts (ex ZDLR)
  • Zone de correspondance (ex LDA)
  • Pôle d’échanges (ex GDL)

Afficher une carte dans la page de vue d'un arrêt

L'utilisateur peut voir l'arrêt positionné sur une carte.

Si l'arrêt n'a pas de position géographique, la carte n’apparaît pas.

Référentiel de lignes

Regroupe toutes les tasks liées au référentiel des lignes

Nouveau format d'identifiant métier 'ILLICO' (CODIF V2)

Chouette permet aux identifiants métier d'un référentiel de lignes synchronisé avec ILICO de prendre une valeur ayant la forme suivante : [Code émetteur de l’identifiant]:[Type d’objet]:[ID]:[LOC ou non]

Exemples :

  • FR1:Line:C01128:
  • FR1:Network:98:LOC
  • FR1:Notice:C01712:
  • FR1:Operator:088:LOC

Notes de lignes

Les notes de lignes peuvent être utilisées pour alimenter les notes de bas de page associées à une course. Les notes de lignes sont associées à la ligne dans le référentiel de lignes Chouette (et ne dépendent pas d'un Jeu de Données).

Protection des Notes de Lignes associées à une course (CODIF V2)

L'utilisateur ou une synchronisation ne peut pas supprimer les notes de ligne utilisées en note de bas de page sur une ou des courses (dans un jeu de données, l'une des offres finalisées de l'espace de travail ou l'une des offres agrégées du groupe de travail).

Gestion des notes de lignes (CODIF V2)

L'utilisateur autorisé peut créer des Notes de Ligne dans le Référentiel de Ligne.

Chaque Note de Ligne est constituée :

  • d'un titre
  • d'un texte
  • d'une date de création et de modification
  • du créateur et de l'auteur de la dernière modification
  • d'un identifiant métier (généré par Chouette ou synchronisé)
  • d'un contenu XML importé (masqué à l'utilisateur)

A chaque Ligne, l'utilisateur peut associer plusieurs Notes de Ligne (parmi celles définies). Une même Note de Ligne peut être partagée par plusieurs Lignes.

Une Note de Ligne peut être modifiée ou supprimée (même lorsqu'elle est associée à une Ligne).

L'utilisateur peut consulter les notes de lignes définies dans le référentiel de lignes.

Pour chaque note de ligne, l'utilisateur dispose :

  • du titre
  • des premiers caractères du texte
  • des lignes associés ou de leur nombre si la liste est trop longue

L'utilisateur peut filtrer les notes de lignes :

  • par une chaîne de caractères présent dans le titre ou le texte de la note,
  • en sélectionnant une ligne, dans ce cas seules les notes associées à cette ligne s'affichent

Permissions

L'utilisateur doit disposer des permissions : line_notes.create, line_notes.edit, line_notes.destroy pour effectuer les actions de création, modification ou suppression sur les Notes de Lignes. WARNING : Côté BOIV, supprimer et éditer ne sont pas accessibles aux utilisateurs

Synchronisation du référentiel de lignes

Synchronisation des notes de ligne avec l'API de CodifLigne v2 (CODIF V2)

Pour chaque balise NeTEx Notice avec un TypeOfNoticeRef ref="LineNotice", Chouette recherche une Note de Ligne avec le même objectid (que l'id de la Notice NeTex).

Note : actuellement l’API de CodifLigne retourne des Notices vides (Title et Texte vides). Elles sont ignorées par IBOO.

Si aucune Note n'est trouvée, Chouette en créé une nouvelle avec :

  • l'objectid : l'id de la Notice NeTEx
  • Titre : le Name de la Notice
  • Texte : le Text de la Notice

Si une Note est trouvée, son titre et son texte sont mises à jour avec le contenu de la Notice NeTEx.

Toutes les Notes de Lignes non présentes dans la réponse NeTEx de CodifLigne doivent être supprimées du référentiel de lignes IBOO (sauf en cas d'erreur dans la réponse de CodifLigne).

Example de balise Notice NeTEx :

<Notice version="any" id="FR1:Notice:C01931:">
  <Name>Lorem ipsum dolor sit amet</Name>
  <Text>At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.</Text>
  <TypeOfNoticeRef ref="LineNotice" />
</Notice>

Synchronisation des réseaux avec l'API d'IILLICO v2 (CODIF V2)

IBOO récupère via son API l'ensemble des réseaux définis dans ILICO/Codifligne.

Pour chaque Network NeTEx, IBOO recherche un Réseau par « objectid » dans le référentiel de lignes synchronisé. Si le Réseau n'existe pas, il est créé (avec cet identifiant) dans le référentiel de ligne IBOO. Si le Réseau existe, les données sont mises à jour dans le référentiel de ligne IBOO.

Pour le réseau trouvé ou créé, les attributs NeTEx sont utilisés pour renseigner ainsi les champs du Transporteur IBOO.

Attribut NeTEx Champ Chouette Commentaire
Name name

IBOO capture l'ensemble de la balise NeTEx Network dans le Réseau (dans le champ caché import_xml).

Les réseaux non présents dans CodifLigne sont supprimés dans le référentiel de lignes IBOO.

Exemple de Network NeTEx retourné par CodifLigne v2 :

<Network version="any" id="FR1:Network:55:LOC">
  <Name>Noctilien</Name>
</Network>

Synchronisation des transporteurs avec l'API d'ILLICO v2 (CODIF V2)

IBOO récupère via son API l'ensemble des transporteurs définis dans ILICO/Codifligne.

Pour chaque Operator NeTEx, IBOO recherche un Transporteur par « objectid » dans le référentiel de lignes synchronisé. Si le Transporteur n'existe pas, il est créé (avec cet identifiant) dans le référentiel de ligne IBOO. Si le Transporteur existe, les données sont mises à jour dans le référentiel de ligne IBOO.

Pour le transporteur trouvé ou créé, les attributs NeTEx (le Name) sont utilisés pour renseigner ainsi les champs du Transporteur IBOO.

Attribut NeTEx Champ Chouette Commentaire
Name name
ContactDetails/ContactPerson Company#defaultcontactname
ContactDetails/Email Company#defaultcontactemail
ContactDetails/Phone Company#defaultcontactphone
ContactDetails/Url Company#defaultcontacturl
ContactDetails/FurtherDetails Company#defaultcontactmore
Address/HouseNumber Company#house_number
Address/AddressLine1 Company#addressline1
Address/Street Company#street
Address/Town Company#town
Address/PostCode Company#postcode
Address/PostCodeExtension Company#postcode_extension

IBOO capture l'ensemble de la balise NeTEx Operator dans le Transporteur (dans le champ caché import_xml).

Les transporteurs non présents dans CodifLigne sont supprimés dans le référentiel de lignes IBOO.

Exemple de Operator NeTEx retournée par CodifLigne v2 :

<Operator version="any" dataSourceRef="FR1:OrganisationalUnit::" id="FR1:Operator:210:LOC">
  <BrandingRef ref="" />
  <Name>CARS MOREAU</Name>
  <ContactDetails>
    <ContactPerson></ContactPerson>
    <Email></Email>
    <Phone></Phone>
    <Url></Url>
    <FurtherDetails></FurtherDetails>
  </ContactDetails>
  <Address>
    <HouseNumber></HouseNumber>
    <AddressLine1></AddressLine1>
    <Street></Street>
    <Town></Town>
    <PostCode></PostCode>
    <PostCodeExtension></PostCodeExtension>
  </Address>
</Operator>

Synchronisation des lignes avec l'API d'ILLICO v2 (CODIF V2)

IBOO récupère via son API l'ensemble des lignes définies dans ILICO/Codifligne. Pour chaque Line NeTEx, IBOO recherche une Ligne par « objectid » dans le référentiel de lignes IBOO. Si la ligne n'existe pas, elle est créée (avec cet identifiant) dans le référentiel de ligne IBOO. Si la ligne existe, les données sont mises à jour dans le référentiel de ligne IBOO.

Pour la ligne trouvée ou créée, les attributs NeTEx sont utilisés pour renseigner ainsi les champs de la Ligne IBOO :

Attribut NeTEx Champ Chouette Commentaire
Name name
ShortName number
TransportMode transport_mode
TransportSubmode transport_submode
OperatorRef company
additionalOperators/OperatorRef secondary_companies
RepresentedByGroupRef network
Colour color
TextColour text_color
PublicCode registration_number
TypeOfLineRef ref="SEASONALLINETYPE" seasonal vrai si présent
noticeAssignments/NoticeAssignment/NoticeRef line_notices

IBOO capture l'ensemble de la balise NeTEx Line dans la Ligne (dans le champ caché import_xml).

Période de validité : Si la balise ValidBetween n'est pas définie, la Ligne est active sans condition de date. Sinon les FromDate ou/et ToDate servent à renseigner la ou les dates d'activation de la Ligne.

Donc les lignes désactivées dans CodifLigne sont désactivées dans le référentiel de lignes IBOO.

Exemple de Line NeTEx retournée par CodifLigne v2 :

<Line version="any" dataSourceRef="FR1:OrganisationalUnit: :"
      created="2015-12-04T17:18:34Z" changed="2015-12-04T17:19:03Z" status="inactive" id="FR1:Line:C01931:">
  <ValidBetween>
    <FromDate>2015-12-04T00:00:00</FromDate>
    <ToDate>2019-02-01T00:00:00</ToDate>
  </ValidBetween>
  <Name>Ligne 3 : Boucle de Chevry</Name>
  <ShortName>Ligne 3 : Boucle de Chevry</ShortName>
  <TransportMode>bus</TransportMode>
  <TransportSubmode>
    <BusSubMode>demandAndResponseBus</BusSubMode>
  </TransportSubmode>
  <PrivateCode>210677013</PrivateCode>
  <OperatorRef version="any" ref="FR1:Operator:210:LOC" />
  <additionalOperators>
    <OperatorRef version="any" ref="FR1:Operator:210:LOC" />
  </additionalOperators>
  <TypeOfLineRef version="any" ref="SEASONAL_LINE_TYPE" />
  <Presentation>
    <Colour>aaaaaa</Colour>
    <ColourName>RGB:170 170 170</ColourName>
    <TextColour>000000</TextColour>
  </Presentation>
  <AlternativePresentation>
    <ColourName>CMYK:0 0 0 33</ColourName>
    <TextColour>000000</TextColour>
  </AlternativePresentation>
  <AccessibilityAssessment id="FR1:AccessibilityAssessment:C01931:" version="any">
    <MobilityImpairedAccess>false</MobilityImpairedAccess>
    <limitations>
      <AccessibilityLimitation>
        <WheelchairAccess>unknown</WheelchairAccess>
        <AudibleSignalsAvailable>unknown</AudibleSignalsAvailable>
        <VisualSignsAvailable>unknown</VisualSignsAvailable>
      </AccessibilityLimitation>
    </limitations>
  </AccessibilityAssessment>
  <noticeAssignments>
    <NoticeAssignment id="FR1:NoticeAssignment:C01931:" version="any" order="0">
      <NoticeRef version="any" ref="FR1:Notice:C01931:" />
    </NoticeAssignment>
  </noticeAssignments>
</Line>

Transporteurs

  • prise en compte des permissions sur les transporteurs
  • prise en compte du CRUD

Renseigner les contacts et l'adresse d'un Transporteur (CODIF V2)

L'utilisateur peut définir trois contacts dans un Transporteur :

  • un contact par défaut (ContactDetails NeTEx, considéré comme public)
  • un contact "Privé" (CustomerServiceContactDetails NeTex)
  • un contact "Service Client" (PrivateContactDetails NeTEx)

Si un type de contact n'est pas renseigné, le bloc correspondant n'est pas affiché.

Pour chaque Contact, l'utilisateur peut définir :

  • le nom d'une personne (ContactPerson NeTEx)
  • un email
  • un numéro de téléphone
  • une URL
  • des détails (texte libre, FurtherDetails NeTEx)

Les contacts sont optionnels et les attributs de chaque contact sont optionnels.

L'utilisateur peut aussi renseigner une adresse postale complète pour chaque Transporteur :

  • un numéro dans la rue (HouseNumber NeTEx)
  • une rue (Street NeTEx)
  • une ligne d'adresse 1 (AddressLine1 NeTEx)
  • une ligne d'adresse 2 (AddressLine2 NeTEx)
  • une ville (Town NeTEx)
  • un code postal (PostCode NeTEx)
  • un extension de code postal (PostCodeExtension NeTEx)
  • un pays

Les attributs de l'adresse sont optionnels.

Lors de l'édition, seul le contact par défaut est affiché. On peut en renseigner d'autres en cliquant sur un bouton qui permet de choisir le type de contact désiré. Il n'est possible d'éditer qu'un contact de chaque type. Si aucun champ du contact n'est renseigné, il n'est pas sauvegardé.

Lignes

Activation d'une Ligne selon la date courante (CODIF V2)

L'utilisateur peut gérer l'activation d'une Ligne selon ces modes :

  • Active sans condition de date
  • Active seulement quand la date courante est après une date
  • Active seulement quand la date courante est avant une date
  • Active seulement quand la date courante est entre deux dates
  • Désactivée sans condition de date

Par défaut, Chouette prend en compte la date courante pour juger de l'activation d'une ligne.

Dans la vue des lignes, on peut trier par dates

Tant qu'une case (activé ou désactivé) n'a pas été cochée, les sélecteurs de date sont grisés.

WARNING : Les utilisateurs d’IBOO ne peuvent pas modifier la période de validité des Lignes dans le référentiel de lignes IBOO. Ces actions sont masquées (et interdites) aux utilisateurs.

Consulter toutes les informations d'une Ligne (CODIF V2)

L'utilisateur peut consulter tous les champs décrivant une ligne.

Il dispose :

  • d'un bloc « Identification », avec :
    • l'ID
    • l'état
    • le nom de la ligne
    • le nom public
    • le nom court
    • le numéro
    • le mode de transport
    • le sous mode de transport
    • l'identifiant externe pérenne
  • d'un bloc « Localisation »
    • le réseau, avec un lien cliquable vers le réseau correspondant
    • le transporteur principal, avec un lien cliquable
    • les transporteurs secondaires
  • d'un bloc « Données de publication »
    • la couleur du tracé, en majuscules, avec le # devant, précédé par une pastille avec la couleur correspondante
    • la couleur du texte, au même format
    • la page web associée, avec un lien cliquable
  • d'un bloc « Général »
    • l'accessibilité PMR
    • le Transport à la Demande
    • la saisonnalité de la ligne
    • le commentaire associé à la ligne

L'état peut varier suivant les dates de validité : * "Désactivée depuis le 4 mars 2012" * "Désactivée jusqu'au 31 mars 2024" * "Activée depuis le 4 mars 2012" * "Activée jusqu'au 31 mars 2024" * "Activée depuis le 4 mars 2012 jusqu'au 31 mars 2024" * "Désactivée depuis le 4 mars 2012" pour une période s'étant terminée le 4 mars 2012 * "Désactivée jusqu'au 31 mars 2024" pour une période qui commence le 31 mars 2024

Associer des Notes de Ligne à une Ligne (CODIF V2)

L'utilisateur peut consulter les notes de ligne associées à une ligne.

Pour chaque note de ligne associée, l'utilisateur dispose :

  • du titre
  • des premiers caractères du texte
  • des lignes associés ou de leur nombre si la liste est trop longue

L'utilisateur peut filtrer les notes de la ligne :

  • par une chaîne de caractères présent dans le titre ou le texte de la note,

La roue dentée de chaque ligne du tableau permet de :

  • consulter la note de ligne
  • dés-associer la note de cette ligne (avec une confirmation)

L'utilisateur peut sélectionner parmi les Notes de Ligne existantes celles qui doivent être associées à la Ligne. Seules les notes de ligne pas encore associées à la Ligne sont présentées à l'utilisateur.

L'utilisateur peut créer une Note de Ligne qui sera directement associée à la Ligne.

Après une sélection et une création, l'utilisateur est redirigé dans la liste des notes de la ligne.

WARNING : Les utilisateurs d’IBOO ne sont pas autorisés à modifier les associations de Notes de Ligne dans le référentiel de lignes IBOO. Ces actions sont masquées (et interdites) aux utilisateurs.

Modifier la couleur d'une ligne finement à l'aide d'une valeur hexadécimale

L'utilisateur peut modifier la couleur d'une ligne et la couleur du texte associé à celle-ci en écrivant une valeur hexadécimale dans le formulaire d'édition. Il peut également sélectionner une couleur sur le color picker proposé par le champ.

Espace de travail

Jeux de données

Création d’un jeu de données contenant de l’offre urgente depuis une duplication de jeu de données

L'utilisateur peut créer un jeu de données contenant de l'offre urgente via la duplication d'un jeu de données déjà existant.

Purge des jeux de données inutiles

Chouette conserve dans chaque espace de travail les jeux de données :

  • les jeux de données en édition
  • Les jeux de données référencés par une des offres finalisées non purgées de l’espace de travail (la courante et les anciennes versions)
  • les 20 derniers jeux de données créés (quelque soit leur statut et leurs anciennetés)
  • les jeux de données archivés il y a moins d’un mois

Les autres jeux de données sont éligibles à une purge automatique réalisée par Chouette afin de conserver un espace de stockage raisonnable.

Finalisation de l'offre

Lancement d'une finalisation automatique après une finalisation en cours

Lorsque l'utilisateur demande une finalisation après un import, celle-ci est lancée après une éventuelle finalisation en cours (dans le même espace de travail).

Nettoyage du passé dans l’offre finalisée

L’offre avance avec le temps, et l’offre finalisée continue à s’enrichir dans le futur. L’utilisateur peut archiver l’offre passée, en définissant une période de conservation.

Après chaque finalisation, Chouette peut lancer un nettoyage de l’offre finalisée nouvellement créée pour ne conserver que l’offre datant de moins de N jours.

L’utilisateur autorisé peut configurer dans un espace de travail :

  • l’activation de ce nettoyage
  • la durée maximale de conservation de l’offre finalisée

Cette durée peut être de 0 jour, dans ce cas, seule l’offre finalisée future (jour courant inclus) est conservée.

Gestion de l’Offre

Courses

Confirmation à la fermeture de l'éditeur d'horaires avec des modifications en cours

Quand l'utilisateur a modifié des informations dans l'éditeur d'horaires, il est prévenu s'il ferme son navigateur / son onglet qu'il risque de perdre des informations.

Vous n'avez pas validé les modifications effectuées.
Etes vous sûr de vouloir abandonner vos modifications ?

Oui | Non

Visualiser et sélectionner les notes de bas de page d'une course (CODIF V2)

L'utilisateur peut visualiser les notes de bas de page associées à une course. Ces notes peuvent être :

  • des notes de bas de page gérées dans le Jeu de Données
  • des notes de ligne gérées dans le référentiel de lignes et associées à la ligne de la course

Les notes de ligne sont distinguées pour être reconnaissables par l'utilisateur.

L'utilisateur peut cliquer sur le titre de chaque Note pour accéder au détail de la note.

Sélection des notes

L'utilisateur peut :

  • rechercher de nouvelles notes par texte (les 10 premières notes ayant un titre ou un texte correspondant sont affichées).
  • dés-associer l'une des notes actuelles

La signature métier de la course inclut :

  • la signature métier de chaque note de bas de page
  • l'identifier métier de chaque note de ligne

Filtrer les interdictions de trafic entre arrêt proposés à l'exclusion

L'utilisateur ne peut exclure pour une course qu'une interdiction de trafic entre arrêt qui s'applique à deux arrêts de l'itinéraire de la course.

Imports

Import Neptune

L’import Neptune prend en charge les fichiers respectant le profil d’échange NEPTUNE tel que défini dans la mise à jour de septembre 2014.

Références :

Optimisation de l'import Neptune

Différentes optimisations ont été réalisées pour permettre à l'import Neptune d'être plus efficace et plus rapide. Comme c'était le cas pour le Sprint précédent avec l'import GTFS, des opérations ont été réarrangées pour faciliter l'écriture de l'offre en base de données.

Import GTFS

Importer les correspondances en GTFS

Chouette prend en compte chaque transfer défini dans le fichier transfers.txt possédant le transfer_type 2. Les autres transfers sont ignorés (sans message).

Pour chaque transfer, Chouette recherche une Correspondance existante :

  • associée aux deux arrêts du transfer (sans ordre dans les arrêts)
  • avec le Sens "Double"

Si une telle Correspondance existe :

  • sa durée "Voyageur Standard" est mise à jour avec la valeur de min_transfer_type.
  • si d'autres durées ont une valeur dans la Correspondance, elles sont conservées (avec un message de warning).

Sinon Chouette crée une Correspondance avec :

  • Première arrêt : fromstopid
  • Deuxième arrêt : tostopid
  • Durée "Voyageur Standard" : mintransfertype
  • Sens : Double

Les autres Correspondances déjà présentes dans le référentiel d'arrêts ne sont pas modifiées.

Exports

Regroupe l'ensemble des stories liés aux exports

Export Netex IDFM

Export NeTEx des courses avec une note de ligne associée (CODIF V2)

Pour chaque Note de Ligne associée à une course, Chouette publie dans l'export NeTEx IdFM une balise NoticeAssignment dans le ServiceJourney associé. Ces NoticeAssignments s'ajoutent à ceux publiant les notes de bas de page associées à la course.

<NoticeAssignment id="FR1:NoticeAssignment:C01931:" version="any" order="0">
  <NoticeRef version="any" ref="FR1:Notice:C01931:" />
</NoticeAssignment>

La balise NoticeRef fait référence à l'ID métier de la Note de Ligne. La balise NoticeAssignment utilise un id forgé à partir de l'ID métier de la Note de Ligne (Notice devient NoticeAssignment).

Example partiel d'un ServiceJourney avec une NoticeRef :

<ServiceJourney dataSourceRef="DATASOURCEREF_EDITION_BOIV" id="chouette:VehicleJourney:8660f47c-a1e2-495b-84c5-f11a7b1d9868:LOC" version="any">
  <Name>6817-13077-7</Name>

  <noticeAssignments>
    <NoticeAssignment id="FR1:NoticeAssignment:C01931:" version="any" order="0">
      <NoticeRef version="any" ref="FR1:Notice:C01931:" />
    </NoticeAssignment>
  </noticeAssignments>

  <dayTypes>
    <DayTypeRef ref="chouette:TimeTable:b33c4e30-a803-4a65-9a8b-8e66a381b12b:LOC">version="1"</DayTypeRef>
  </dayTypes>

  ...
</ServiceJourney>

Export NeTEx des lignes avec une note de ligne associée (CODIF V2)

Chouette publie les notes de lignes dans le fichier lignes.xml dans l'export NeTEx IDFM.

Pour chaque Note de Ligne associée à une ligne exportée, le fragment XML capturé à la synchronisation avec CodifLigne est ajouté comme une entrée de ServiceFrame > notices.

Exemple d'XML attendu :

<?xml version="1.0" encoding="UTF-8"?>
<PublicationDelivery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                     xsi:schemaLocation="http://www.netex.org.uk/netex"
                     xmlns="http://www.netex.org.uk/netex"
                     xmlns:xlink="http://www.w3.org/1999/xlink"
                     xmlns:ifopt="http://www.ifopt.org.uk/ifopt"
                     xmlns:gml="http://www.opengis.net/gml/3.2"
                     xmlns:core="http://www.govtalk.gov.uk/core"
                     xmlns:siri="http://www.siri.org.uk/siri"
                     version="1.04:FR100-NETEX-1.6-1.8">
  <PublicationTimestamp>2019-04-10T10:00:41Z</PublicationTimestamp>
  <ParticipantRef>FR100_OFFRE</ParticipantRef>
  <dataObjects>
    <CompositeFrame id="FR100:CompositeFrame:NETEX_IDF-20190410T100041Z:LOC" version="1.8" dataSourceRef="FR100-OFFRE_AUTO">
      <TypeOfFrameRef ref="FR100:TypeOfFrame:NETEX_IDF:"/>
      <frames>
        <ServiceFrame version="any" id="STIF:CODIFLIGNE:ServiceFrame:lineid">
          <lines>
            ...
          </lines>
          <notices>
            <Notice version="any" id="FR1:Notice:C01931:">
              <Name>Duis autem vel eum iriure dolor in hendrerit</Name>
              <Text>In vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</Text>
              <TypeOfNoticeRef ref="LineNotice" />
            </Notice>
          </notices>
        </ServiceFrame>
  ...

Export GTFS

Intégration des correspondances dans l'export GTFS

Chouette exporte dans le transfers.txt GTFS les correspondances présentes dans le référentiel d'arrêts si les arrêts correspondants sont exportés. Dans ce cas, le transfer_type est défini sur 2 et le min_transfer_time sur la durée standard, en secondes.

Un export GTFS qui ne contient pas de données est défini en "Echec"

Lors d'un export de type GTFS, si aucune donnée n'est exportée, l'export est défini en "Echec". La mention "L'export ne peut pas produire de résultat car il n'y a pas de données d'offre de transport pendant la période donnée" est affichée sur l'interface.

Validation des données

Criticités "Warning" et "Error" pour l'ensemble des contrôles

Chouette propose deux types de criticité pour l'ensemble des contrôles existant :

  • Warning (cette criticité ne bloque pas l'opération concernée)
  • Error (cette criticité bloque l'opération concernée)

Contrôles

Contrôle "Les lignes utilisées dans l'offre sont actives" (CODIF V2)

Un contrôle de lignes permet de s'assurer que les lignes présentes dans l'offre ne sont pas, ou ne seront pas dans un futur proche, désactivées.

L'utilisateur peut choisir que si le contrôle teste si les lignes sont valides : * à la date du lancement du contrôle * au moins dans les N jours après la date du lancement du contrôle

Groupes de Travail

L'utilisateur peut gérer, avec son compte Chouette relié à une organisation unique plusieurs groupes de travail.

Cette structure lui permet de travail sur des référentiels étanches, avec, à chaque fois :

  • un référentiel d'arrêt,
  • un référentiel de lignes,
  • une offre finalisée.

Cela permet de lancer des imports, de gérer des offres séparées dans des espaces séparés, tout en ayant accès à une même interface, pour un même compte. Cela correspond aux « Espaces de Données » présents dans Chouette Legacy.

Supprimer un groupe de travail

L’utilisateur autorisé peut supprimer un groupe de travail. L’utilisateur marque le groupe de travail comme “Supprimé”. L’accès au groupe de travail devient impossible (jeux de données, opérations, etc).

L’utilisateur peut revenir en arrière tant que le Groupe de Travail n’est pas supprimé effectivement par Chouette (communément dans la nuit).

Interface utilisateur

Regroupe toutes les stories / tasks / bugs liés au design général de l'IHM

Corrections de formulations dans l'interface lors du Sprint #25

Des corrections de formulation ont permis de mettre en valeur les concepts présent dans Chouette et de faciliter la compréhension par les utilisateurs. Sur le Sprint # 25, plusieurs pages ont été remaniées, notamment :

  • les pages liées à l'agrégation
  • les pages listants les imports du Groupe de Travail

Le nom de la page actuelle apparaît désormais dans le titre du navigateur ou de l'onglet. Cela permet notamment aux utilisateurs qui ouvrent plusieurs pages de Chouette simultanément de travailler plus efficacement.

Barre de progression des imports et exports

Lorsque l'utilisateur lance une opération d'import ou d'export, une barre de progression permet de suivre l'avancement de l'opération.

Cette barre est persistante. L'utilisateur peut cliquer sur la barre pour retourner sur les informations de l'opération en cours. L'utilisateur peut aussi fermer la barre (sans perturber l'opération).

Lien sur le Centre de Support dans l'interface utilisateur

L'utilisateur peut accéder au support via l'icône à côté de son nom.

Le lien de déconnexion et le changement de langue sont désormais dans le menu utilisateur.

Notifications

Un Gestionnaire de Notification est associé à chaque Espace de Travail. Il permet aux utilisateurs de définir leurs préférences concernant les notifications qui leur sont transmises au sein de cet Espace de Travail.

Il leur est possible notamment :

  • de désactiver certains notifications selon certains critères

Désactiver les notifications par type “Absence d’offre”

L’utilisateur peut ajouter une désactivation en sélectionnant le type “Absence d’offre”.

Dans ce cas, il doit :

  • définir une période
  • sélectionner une ligne associée à cette désactivation.

Les lignes présentées sont celles associées à son Espace de Travail.

Prise en compte

Quand un trou d'offre est détecté (à la finalisation de l'offre), si une désactivation est associée à la même ligne, et que sa période couvre complètement la période du trou, ce trou d'offre est ignoré.

Au final, si aucun trou n'est éligible, aucune notification ne doit être envoyée concernant ce trou.

Internationalisation

Localisation EN

Corrections de la version anglaise dans le sprint 25

Sur le Sprint 25, une douzaine de pages de l'application ont vu des corrections sur la version anglaise pour plus de cohérence pour les utilisateurs anglophones.

Technique

Mise à jour Ruby-on-Rails 5.2

Chouette fonctionne essentiellement sur des briques Ruby On Rails. Initialement ré-écrit en Rails 4.2, c'est la version qui correspond à nos premiers développement sur la nouvelle version de Chouette. Dans un soucis d'amélioration continue et d'enrichissement de notre produit Open Source, nous intégrons fréquemment des gems Ruby. Nous sommes passés à la version 5.2, la plus récente, qui nous permet d'améliorer nos performances et d'intégrer des gems plus récentes.

Ce changement de version n'est pas sans impact dans le développement de Chouette : c'est déjà plus de 2500 lignes qui ont été ré-écrites pour faire face à de nouvelles grammaires présentes dans cette version. Cette nouvelle version permet toutefois une syntaxe plus performante qui rend l'application plus puissante.

Infrastructure

Regroupe toutes les tasks liées à l'infra

Changement de domaine de Chouette vers enroute.mobi

On va passer de chouette-its.enroute.paris à chouette.enroute.mobi.