diff options
| author | cedricnjanga | 2017-09-20 17:11:27 +0200 | 
|---|---|---|
| committer | cedricnjanga | 2017-09-20 17:11:27 +0200 | 
| commit | e62e1036eeeca9df7397f0dbd930ececc7297ec1 (patch) | |
| tree | 3bff5a676b9cd2a5cd8a6cb8ca1bccc017de24aa | |
| parent | 2ef17c0f8150d834fdf266c85a3caeed57987dd8 (diff) | |
| download | chouette-core-e62e1036eeeca9df7397f0dbd930ececc7297ec1.tar.bz2 | |
Add the rest of compliance control models
| -rw-r--r-- | app/models/generic_attribute_pattern.rb | 23 | ||||
| -rw-r--r-- | app/models/generic_attribute_uniqueness.rb | 23 | ||||
| -rw-r--r-- | app/models/journey_pattern_control/vehicle_journey.rb | 13 | ||||
| -rw-r--r-- | app/models/line_control/route.rb | 13 | ||||
| -rw-r--r-- | app/models/route_control/journey_pattern.rb | 13 | ||||
| -rw-r--r-- | app/models/route_control/opposite_route_terminus.rb | 13 | ||||
| -rw-r--r-- | app/models/routing_constaint_zone_control/maximum_length.rb | 13 | ||||
| -rw-r--r-- | app/models/routing_constaint_zone_control/minimum_length.rb | 13 | ||||
| -rw-r--r-- | config/locales/compliance_controls.en.yml | 61 | ||||
| -rw-r--r-- | config/locales/compliance_controls.fr.yml | 181 | 
10 files changed, 273 insertions, 93 deletions
| diff --git a/app/models/generic_attribute_pattern.rb b/app/models/generic_attribute_pattern.rb new file mode 100644 index 000000000..0043f1563 --- /dev/null +++ b/app/models/generic_attribute_pattern.rb @@ -0,0 +1,23 @@ +#module ComplianceControls + +  class GenericAttributePattern < ComplianceControl + +    hstore_accessor :control_attributes, value: :string, pattern: :string + +    @@default_criticity = :warning +    @@default_code = "3-Generic-3" + +    validate :pattern_match +    def pattern_match +      true +    end + +    after_initialize do +      self.name = 'GenericAttributeMinMax' +      self.code = @@default_code +      self.criticity = @@default_criticity +    end + +  end + +#end
\ No newline at end of file diff --git a/app/models/generic_attribute_uniqueness.rb b/app/models/generic_attribute_uniqueness.rb new file mode 100644 index 000000000..dcf4a16c2 --- /dev/null +++ b/app/models/generic_attribute_uniqueness.rb @@ -0,0 +1,23 @@ +#module ComplianceControls + +  class GenericAttributeUniqueness < ComplianceControl + +    hstore_accessor :control_attributes, name: :string + +    @@default_criticity = :warning +    @@default_code = "3-Generic-3" + +    validate :unique_values +    def unique_values +      true +    end + +    after_initialize do +      self.name = 'GenericAttributeMinMax' +      self.code = @@default_code +      self.criticity = @@default_criticity +    end + +  end + +#end
\ No newline at end of file diff --git a/app/models/journey_pattern_control/vehicle_journey.rb b/app/models/journey_pattern_control/vehicle_journey.rb new file mode 100644 index 000000000..a90c16138 --- /dev/null +++ b/app/models/journey_pattern_control/vehicle_journey.rb @@ -0,0 +1,13 @@ +module JourneyPatternControl +  class VehicleJourney < ComplianceControl + +    @@default_criticity = :warning +    @@default_code = "3-JourneyPattern-2" + +    after_initialize do +      self.name = self.class.name +      self.code = @@default_code +      self.criticity = @@default_criticity +    end +  end +end
\ No newline at end of file diff --git a/app/models/line_control/route.rb b/app/models/line_control/route.rb new file mode 100644 index 000000000..8ac13a080 --- /dev/null +++ b/app/models/line_control/route.rb @@ -0,0 +1,13 @@ +module LineControl +  class Route < ComplianceControl + +    @@default_criticity = :warning +    @@default_code = "3-Line-1" + +    after_initialize do +      self.name = self.class.name +      self.code = @@default_code +      self.criticity = @@default_criticity +    end +  end +end
\ No newline at end of file diff --git a/app/models/route_control/journey_pattern.rb b/app/models/route_control/journey_pattern.rb new file mode 100644 index 000000000..0559fac42 --- /dev/null +++ b/app/models/route_control/journey_pattern.rb @@ -0,0 +1,13 @@ +module RouteControl +  class JourneyPattern < ComplianceControl + +    @@default_criticity = :warning +    @@default_code = "3-Route-3" + +    after_initialize do +      self.name = self.class.name +      self.code = @@default_code +      self.criticity = @@default_criticity +    end +  end +end
\ No newline at end of file diff --git a/app/models/route_control/opposite_route_terminus.rb b/app/models/route_control/opposite_route_terminus.rb new file mode 100644 index 000000000..e72229ca3 --- /dev/null +++ b/app/models/route_control/opposite_route_terminus.rb @@ -0,0 +1,13 @@ +module RouteControl +  class OppositeRouteTerminus < ComplianceControl + +    @@default_criticity = :warning +    @@default_code = "3-Route-5" + +    after_initialize do +      self.name = self.class.name +      self.code = @@default_code +      self.criticity = @@default_criticity +    end +  end +end
\ No newline at end of file diff --git a/app/models/routing_constaint_zone_control/maximum_length.rb b/app/models/routing_constaint_zone_control/maximum_length.rb new file mode 100644 index 000000000..fd63ffeda --- /dev/null +++ b/app/models/routing_constaint_zone_control/maximum_length.rb @@ -0,0 +1,13 @@ +module RoutingConstaintZoneControl +  class MaximumLength < ComplianceControl + +    @@default_criticity = :warning +    @@default_code = "3-ITL-2" + +    after_initialize do +      self.name = self.class.name +      self.code = @@default_code +      self.criticity = @@default_criticity +    end +  end +end
\ No newline at end of file diff --git a/app/models/routing_constaint_zone_control/minimum_length.rb b/app/models/routing_constaint_zone_control/minimum_length.rb new file mode 100644 index 000000000..c17bbc834 --- /dev/null +++ b/app/models/routing_constaint_zone_control/minimum_length.rb @@ -0,0 +1,13 @@ +module RoutingConstaintZoneControl +  class MinimumLength < ComplianceControl + +    @@default_criticity = :warning +    @@default_code = "3-ITL-3" + +    after_initialize do +      self.name = self.class.name +      self.code = @@default_code +      self.criticity = @@default_criticity +    end +  end +end
\ No newline at end of file diff --git a/config/locales/compliance_controls.en.yml b/config/locales/compliance_controls.en.yml index d9dbc793d..8b52d31a1 100644 --- a/config/locales/compliance_controls.en.yml +++ b/config/locales/compliance_controls.en.yml @@ -1,27 +1,5 @@  en:    compliance_controls: -    actions: -      new: "Add a new compliance control" -      edit: "Edit this compliance control" -      destroy: "Remove this compliance control" -      destroy_confirm: "Are you sure you want destroy this compliance control?" -    show: -      title: "Compliance control" -    index: -      title: "Compliance control" -    new: -      title: "Add a new compliance control" -    edit: -      title: "Update compliance control" -  activerecord: -    models: -      compliance_control: "compliance control" -    attributes: -      compliance_control: -        name: "Name" -        criticity: "Criticity" -        comment: "Comment" -        code: "Code"    route:      zdl_stop_area:        messages: @@ -34,10 +12,18 @@ en:          "If the route has an opposite route, it must :            - reference the opposite route            - have an opposite route in relation with the tested route" +    journey_pattern: +      messages: +        3_route_3: "The route with % objectid doesn't have any journey pattern" +      description: "A route must have at least one journey pattern"      duplicates:        messages:          3_route_4: "The route with % objectid is identical with another route %"        description: "2 routes cannot connect the same stop points with the same order and the same boarding and alighting characteristics" +    opposite_route_terminus: +      messages: +        3_route_5: "The route with % objectid has a first stop from the % ZDL whereas its oppoite route's last stop is from the ZDL %" +      description: "Deux itinéraires en aller/retour doivent desservir les mêmes terminus"      minimum_length:        messages:          3_route_6: "The route with % objectid does not connect enough stop points (required 2 stop points)" @@ -55,6 +41,10 @@ en:        messages:          3_journeypattern_1: "The journey pattern with objectid % is identical with another one %"        description: "Two journey patterns belonging to the same line must not connect the same stop points in the same order" +    vehicle_journey: +      messages: +        3_journeypattern_2: "The journey pattern with % objectid doesn't have any vehicle journey" +      description: "A journey pattern must have at least one vehicle journey"    vehicle_journey:      waiting_time:        messages: @@ -83,3 +73,30 @@ en:        messages:          3_itl_1: "The Routing Constraint Zone % references an unactivated stop point (ZDEp) % (%)"        description: "The stop points of a Routing Constraint Zone must be activated" +    maximum_length: +      messages: +        3_itl_2: "The Routing Constraint Zone % covers all the stop points of its related route : % %." +      description: "A Routing Constraint Zone cannot cover all the stop points of a route" +    minimum_length: +      messages: +        3_itl_3: "The Routing Constraint Zone % has less than 2 stop points" +      description: "A Routing Constraint Zone must have at least 2 stop points" +  line: +    route: +      messages: +        3_line_1: "On line : % (%), no route has an opposite route" +      description: "The routes of a line must have an opposite route" +  generic: +    content: +      messages: +        3_generic_1: "% : the % attribute value (%) does not respect the following pattern : %" +      description: "The object attribute must respect a patten (regular expression)" +    min_max: +      messages: +        3_generic_2_1: "% : the % attributes's value (%) is greater than the authorized maximum value : %" +        3_generic_2_2: "% : the % attributes's value (%) is smaller than the authorized minimum value %" +      description: "The numeric value of an attribute must be contained between 2 values" +    uniqueness: +      messages: +        3_generic_3: "% : the % attribute's value (%) of % is in conflict with : %" +      description: "The attribute's value must be unique compared to the other objects ofthe same type (related to the same line)"
\ No newline at end of file diff --git a/config/locales/compliance_controls.fr.yml b/config/locales/compliance_controls.fr.yml index 40f758ee4..9a5400a5e 100644 --- a/config/locales/compliance_controls.fr.yml +++ b/config/locales/compliance_controls.fr.yml @@ -1,4 +1,13 @@  fr: +  activerecord: +    models: +      compliance_control: "Jeu de controle" +    attributes: +      compliance_control: +        name: "Nom" +        criticity: "Criticité" +        comment: "Commentaire" +        code: "Code"    compliance_controls:      actions:        new: "Ajouter un jeu de controle" @@ -12,74 +21,104 @@ fr:      new:        title: "Ajouter un jeu de controle"      edit: -      title: "Editer le jeu de controle" -  activerecord: -    models: -      compliance_control: "Jeu de controle" -    attributes: -      compliance_control: -        name: "Nom" -        criticity: "Criticité" -        comment: "Commentaire" -        code: "Code" -  route: -    zdl_stop_area: -      messages: -        3_route_1: "L'itinéraire % dessert successivement les arrêts % % et % % de la même zone de lieu" -      description: "Deux arrêts d’une même ZDL ne peuvent pas se succéder dans un itinéraire" -    opposite_route: -      messages: -        3_route_2: "L'itinéraire % référence un itinéraire retour % incohérent" -      description: | -        "Si l'itinéraire référence un itinéraire inverse, celui-ci doit : -          - référencer l'itinéraire inverse -          - avoir un sens opposé à l'itinéraire testé" -    duplicates: -      messages: -        3_route_4: "L'itinéraire % est identique à l'itinéraire %" -      description: "2 itinéraires ne doivent pas desservir strictement les mêmes arrêts dans le même ordre avec les mêmes critères de monté/descente" -    minimum_length: -      messages: -        3_route_6: "L'itinéraire % ne dessert pas assez d'arrêts (minimum 2 requis)" -      description: "Un itinéraire doit référencer au moins 2 arrêts" -    omnibus_journey_pattern: -      messages: -        3_route_9: "L'itinéraire % n'a aucune mission desservant l'ensemble de ses arrêts" -      description: "Une mission de l'itinéraire devrait desservir l'ensemble des arrêts de celui-ci" -    unactivated_stop_point: -      messages: -        3_route_10: "L'itinéraire % référence un arrêt (ZDEp) désactivé % (%)" -      description: "Les arrêts d'un itinéraire ne doivent pas être désactivés" -  journey_pattern: -    duplicates: -      messages: -        3_journeypattern_1: "La mission % est identique à la mission %" -      description: "Deux missions de la même ligne ne doivent pas desservir les mêmes arrêts dans le même ordre" -  vehicle_journey: -    waiting_time: -      messages: -        3_vehiclejourney_1: "Sur la course %, le temps d'attente % à l'arrêt % (%) est supérieur au seuil toléré (%)" -      description: "La durée d’attente à un arrêt ne doit pas être trop grande" -    speed: -      messages: -        3_vehiclejourney_2_1: "Sur la course %, la vitesse calculée % entre les arrêts % (%) et % (%) est supérieur au seuil toléré (%)" -        3_vehiclejourney_2_2: "Sur la course %, la vitesse calculée % entre les arrêts % (%) et % (%) est inférieur au seuil toléré (%)" -      description: "La vitesse entre deux arrêts doit être dans une fourchette paramétrable" -    delta: -      messages: -        3_vehiclejourney_3: "Le temps de parcours sur la course % entre les arrêts % (%) et % (% s'écarte de % du temps moyen constaté sur la mission" -      description: "Les temps de parcours entre 2 arrêts successifs doivent être similaires pour toutes les courses d’une même mission" -    time_table: -      messages: -        3_vehiclejourney_4: "La course % n'a pas de calendrier d'application" -      description: "Une course doit avoir au moins un calendrier d’application" -    vehicle_journey_at_stops: -      messages: -        3_vehiclejourney_5_1: "La course % a un horaire d'arrivé % supérieur à l'horaire de départ % à l'arrêt {nomArrêt} (%)" -        3_vehiclejourney_5_2: "La course % a un horaire de départ % à l'arrêt {nomArrêt} (%) supérieur à l'horaire d'arrivé % à l'arrêt suivant" -      description: "L'horaire d'arrivée à un arrêt doit être antérieur à l'horaire de départ de cet arrêt ET les horaires de départ aux arrêts doivent être dans l'ordre chronologique croissant." -  routing_constraint_zone: -    vehicle_journey_at_stops: -      messages: -        3_itl_1: "L'ITL % référence un arrêt (ZDEp) désactivé % (%)" -      description: "Les arrêts d'une ITL ne doivent pas être désactivés" +      title: "Editer le jeu de controle"   +    route: +      zdl_stop_area: +        messages: +          3_route_1: "L'itinéraire % dessert successivement les arrêts % % et % % de la même zone de lieu" +        description: "Deux arrêts d’une même ZDL ne peuvent pas se succéder dans un itinéraire" +      opposite_route: +        messages: +          3_route_2: "L'itinéraire % référence un itinéraire retour % incohérent" +        description: | +          "Si l'itinéraire référence un itinéraire inverse, celui-ci doit : +            - référencer l'itinéraire inverse +            - avoir un sens opposé à l'itinéraire testé" +      journey_pattern: +        messages: +          3_route_3: "L'itinéraire % n'a pas de mission" +        description: "Un itinéraire doit avoir au moins une mission" +      duplicates: +        messages: +          3_route_4: "L'itinéraire % est identique à l'itinéraire %" +        description: "2 itinéraires ne doivent pas desservir strictement les mêmes arrêts dans le même ordre avec les mêmes critères de monté/descente" +      opposite_route_terminus: +        messages: +          3_route_5: "L'itinéraire % dessert au départ un arrêt de la ZDL % alors que l'itinéraire inverse dessert à l'arrivée un arrêt de la ZDL %" +        description: "Deux itinéraires en aller/retour doivent desservir les mêmes terminus" +      minimum_length: +        messages: +          3_route_6: "L'itinéraire % ne dessert pas assez d'arrêts (minimum 2 requis)" +        description: "Un itinéraire doit référencer au moins 2 arrêts" +      omnibus_journey_pattern: +        messages: +          3_route_9: "L'itinéraire % n'a aucune mission desservant l'ensemble de ses arrêts" +        description: "Une mission de l'itinéraire devrait desservir l'ensemble des arrêts de celui-ci" +      unactivated_stop_point: +        messages: +          3_route_10: "L'itinéraire % référence un arrêt (ZDEp) désactivé % (%)" +        description: "Les arrêts d'un itinéraire ne doivent pas être désactivés" +    journey_pattern: +      duplicates: +        messages: +          3_journeypattern_1: "La mission % est identique à la mission %" +        description: "Deux missions de la même ligne ne doivent pas desservir les mêmes arrêts dans le même ordre" +      vehicle_journey: +        messages: +          3_journeypattern_2: "La mission % n'a pas de course" +        description: "Une mission doit avoir au moins une course" +    vehicle_journey: +      waiting_time: +        messages: +          3_vehiclejourney_1: "Sur la course %, le temps d'attente % à l'arrêt % (%) est supérieur au seuil toléré (%)" +        description: "La durée d’attente à un arrêt ne doit pas être trop grande" +      speed: +        messages: +          3_vehiclejourney_2_1: "Sur la course %, la vitesse calculée % entre les arrêts % (%) et % (%) est supérieur au seuil toléré (%)" +          3_vehiclejourney_2_2: "Sur la course %, la vitesse calculée % entre les arrêts % (%) et % (%) est inférieur au seuil toléré (%)" +        description: "La vitesse entre deux arrêts doit être dans une fourchette paramétrable" +      delta: +        messages: +          3_vehiclejourney_3: "Le temps de parcours sur la course % entre les arrêts % (%) et % (% s'écarte de % du temps moyen constaté sur la mission" +        description: "Les temps de parcours entre 2 arrêts successifs doivent être similaires pour toutes les courses d’une même mission" +      time_table: +        messages: +          3_vehiclejourney_4: "La course % n'a pas de calendrier d'application" +        description: "Une course doit avoir au moins un calendrier d’application" +      vehicle_journey_at_stops: +        messages: +          3_vehiclejourney_5_1: "La course % a un horaire d'arrivé % supérieur à l'horaire de départ % à l'arrêt {nomArrêt} (%)" +          3_vehiclejourney_5_2: "La course % a un horaire de départ % à l'arrêt {nomArrêt} (%) supérieur à l'horaire d'arrivé % à l'arrêt suivant" +        description: "L'horaire d'arrivée à un arrêt doit être antérieur à l'horaire de départ de cet arrêt ET les horaires de départ aux arrêts doivent être dans l'ordre chronologique croissant." +    routing_constraint_zone: +      vehicle_journey_at_stops: +        messages: +          3_itl_1: "L'ITL % référence un arrêt (ZDEp) désactivé % (%)" +        description: "Les arrêts d'une ITL ne doivent pas être désactivés" +      maximum_length: +        messages: +          3_itl_2: "L'ITL % couvre tous les arrêts de l'itinéraire %." +        description: "Une ITL ne peut pas couvrir l'ensemble des arrêts de l'itinéraire" +      minimum_length: +        messages: +          3_itl_3: "L'ITL % n'a pas suffisament d'arrêts (minimum 2 arrêts requis)" +        description: "Une ITL doit référencer au moins 2 arrêts" +    line: +      route: +        messages: +          3_line_1: "Sur la ligne % (%), aucun itinéraire n'a d'itinéraire inverse" +        description: "Les itinéraires d'une ligne doivent être associés en aller/retour" +    generic: +      content: +        messages: +          3_generic_1: "% : l'attribut % à une valeur % qui ne respecte pas le motif %" +        description: "l'attribut de l'objet doit respecter un motif (expression régulière)" +      min_max: +        messages: +          3_generic_2_1: "% : l'attribut % à une valeur % supérieure à la valeur maximale autorisée %" +          3_generic_2_2: "% : l'attribut % à une valeur % inférieure à la valeur minimale autorisée %" +        description: "La valeur numérique de l'attribut doit rester comprise entre 2 valeurs" +      uniqueness: +        messages: +          3_generic_3: "La valeur de l'attribut doit être unique au sein des objets de la ligne" +        description: "% : l'attribut % de % à une valeur % en conflit avec %"
\ No newline at end of file | 
