diff options
Diffstat (limited to 'config')
25 files changed, 318 insertions, 218 deletions
diff --git a/config/breadcrumbs.rb b/config/breadcrumbs.rb index adcbb0b6f..e57cbc4f2 100644 --- a/config/breadcrumbs.rb +++ b/config/breadcrumbs.rb @@ -111,13 +111,23 @@ crumb :imports do |workbench|    parent :workbench, workbench  end +crumb :exports do |workbench| +  link I18n.t('exports.index.title'), workbench_exports_path(workbench) +  parent :workbench, workbench +end +  crumb :import do |workbench, import|    link breadcrumb_name(import), workbench_import_path(workbench, import)    parent :imports, workbench  end +crumb :export do |workbench, export| +  link breadcrumb_name(export), workbench_export_path(workbench, export) +  parent :exports, workbench +end +  crumb :import_resources do |import, import_resources| -  link I18n.t('import_resources.index.title'), workbench_import_import_resources_path(import.workbench, import.parent) +  link I18n.t('import.resources.index.title'), workbench_import_import_resources_path(import.workbench, import.parent)    parent :import, import.workbench, import.parent  end diff --git a/config/database/ci.yml b/config/database/ci.yml new file mode 100644 index 000000000..44103454a --- /dev/null +++ b/config/database/ci.yml @@ -0,0 +1,11 @@ +test: +  adapter: <%= ENV.fetch 'RAILS_DB_ADAPTER', 'postgis' %> +  encoding: unicode +  pool: <%= ENV.fetch 'RAILS_DB_POOLSIZE', '5' %> +  host: <%= ENV.fetch 'RAILS_DB_HOST', 'localhost' %> +  port: <%= ENV.fetch 'RAILS_DB_PORT', '5432' %> +  schema_search_path: 'public,shared_extensions' +  postgis_schema: 'shared_extensions' +  database: <%= ENV.fetch 'RAILS_DB_NAME', 'stif_boiv_test' %> +  username: <%= ENV['RAILS_DB_USER'] || ENV['POSTGRESQL_ENV_POSTGRES_USER'] || 'jenkins' %> +  password: <%= ENV['RAILS_DB_PASSWORD'] || ENV['POSTGRESQL_ENV_POSTGRES_PASSWORD'] %> diff --git a/config/database/jenkins.yml b/config/database/jenkins.yml deleted file mode 100644 index 8b7a8ef2f..000000000 --- a/config/database/jenkins.yml +++ /dev/null @@ -1,8 +0,0 @@ -test: -  adapter: postgis -  encoding: unicode -  schema_search_path: 'public,shared_extensions' -  postgis_schema: 'shared_extensions' -  username: <%= ENV['POSTGRESQL_ENV_POSTGRES_USER'] || 'jenkins' %> -  password: <%= ENV['POSTGRESQL_ENV_POSTGRES_PASSWORD'] %> -  database: stif_boiv_test diff --git a/config/environments/development.rb b/config/environments/development.rb index 446e72190..7bd049979 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -1,3 +1,5 @@ +require Rails.root + 'config/middlewares/cachesettings' +  Rails.application.configure do    # Settings specified here will take precedence over those in config/application.rb. @@ -96,6 +98,13 @@ Rails.application.configure do    config.middleware.insert_after(ActionDispatch::Static, Rack::LiveReload) if ENV['LIVERELOAD']    config.middleware.use I18n::JS::Middleware +  config.middleware.use CacheSettings, { +    /\/assets\/.*/ => { +      cache_control: "max-age=86400, public", +      expires: 86400 +    } +  } +    config.development_toolbar = false    if ENV['TOOLBAR'] && File.exists?("config/development_toolbar.rb")      config.development_toolbar = OpenStruct.new diff --git a/config/environments/production.rb b/config/environments/production.rb index 9a699eb44..eb44e1ab1 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -1,3 +1,5 @@ +require Rails.root + 'config/middlewares/cachesettings' +  Rails.application.configure do    # Settings specified here will take precedence over those in config/application.rb. @@ -136,6 +138,12 @@ Rails.application.configure do    config.iev_url = ENV.fetch('IEV_URL',"http://iev:8080")    config.rails_host = ENV.fetch('RAILS_HOST','http://front:3000') +  config.middleware.use CacheSettings, { +    /\/assets\/.*/ => { +      cache_control: "max-age=#{1.year.to_i}, public", +      expires: 1.year.to_i +    } +  }    # Set node env for browserify-rails    # config.browserify_rails.node_env = "production"  end diff --git a/config/initializers/apartment.rb b/config/initializers/apartment.rb index f5fb8cd5e..6b817caed 100644 --- a/config/initializers/apartment.rb +++ b/config/initializers/apartment.rb @@ -18,72 +18,76 @@ Apartment.configure do |config|    # config.excluded_models = %w{Tenant}    #    config.excluded_models = [ -    'Referential', -    'ReferentialMetadata', -    'ReferentialSuite', -    'Organisation', -    'User',      'Api::V1::ApiKey', -    'StopAreaReferential', -    'StopAreaReferentialMembership', -    'StopAreaReferentialSync', -    'StopAreaReferentialSyncMessage', -    'Chouette::StopArea', -    'LineReferential', -    'LineReferentialMembership', -    'LineReferentialSync', -    'LineReferentialSyncMessage', -    'Chouette::Line', -    'Chouette::GroupOfLine', +    'Calendar',      'Chouette::Company', +    'Chouette::GroupOfLine', +    'Chouette::Line',      'Chouette::Network', -    'ReferentialCloning', -    'Workbench', -    'Workgroup', +    'Chouette::StopArea',      'CleanUp',      'CleanUpResult', -    'Calendar', -    'Import', -    'NetexImport', -    'WorkbenchImport', -    'ImportMessage', -    'ImportResource', +    'ComplianceCheck', +    'ComplianceCheckBlock', +    'ComplianceCheckMessage', +    'ComplianceCheckResource', +    'ComplianceCheckSet',      'ComplianceControl', +    'ComplianceControlBlock', +    'ComplianceControlSet', +    'CustomField', +    'Export::Base', +    'Export::Message', +    'Export::Resource',      'GenericAttributeControl::MinMax',      'GenericAttributeControl::Pattern',      'GenericAttributeControl::Uniqueness', +    'Import::Base', +    'Import::Gtfs', +    'Import::Message', +    'Import::Netex', +    'Import::Resource', +    'Import::Workbench',      'JourneyPatternControl::Duplicates',      'JourneyPatternControl::VehicleJourney',      'LineControl::Route', +    'LineReferential', +    'LineReferentialMembership', +    'LineReferentialSync', +    'LineReferentialSyncMessage', +    'Merge', +    'Organisation', +    'Referential', +    'ReferentialCloning', +    'ReferentialMetadata', +    'ReferentialSuite',      'RouteControl::Duplicates',      'RouteControl::JourneyPattern',      'RouteControl::MinimumLength',      'RouteControl::OmnibusJourneyPattern', -    'RouteControl::OppositeRouteTerminus',      'RouteControl::OppositeRoute', +    'RouteControl::OppositeRouteTerminus',      'RouteControl::StopPointsInJourneyPattern',      'RouteControl::UnactivatedStopPoint',      'RouteControl::ZDLStopArea',      'RoutingConstraintZoneControl::MaximumLength',      'RoutingConstraintZoneControl::MinimumLength',      'RoutingConstraintZoneControl::UnactivatedStopPoint', +    'SimpleExporter', +    'SimpleImporter', +    'SimpleInterface', +    'StopAreaReferential', +    'StopAreaReferentialMembership', +    'StopAreaReferentialSync', +    'StopAreaReferentialSyncMessage', +    'User',      'VehicleJourneyControl::Delta', -    'VehicleJourneyControl::WaitingTime',      'VehicleJourneyControl::Speed',      'VehicleJourneyControl::TimeTable',      'VehicleJourneyControl::VehicleJourneyAtStops', -    'ComplianceControlSet', -    'ComplianceControlBlock', -    'ComplianceCheck', -    'ComplianceCheckSet', -    'ComplianceCheckBlock', -    'ComplianceCheckResource', -    'ComplianceCheckMessage', -    'Merge', -    'CustomField', -    'SimpleInterface', -    'SimpleImporter', -    'SimpleExporter', +    'VehicleJourneyControl::WaitingTime', +    'Workbench', +    'Workgroup',    ]    # use postgres schemas? diff --git a/config/initializers/exporters.rb b/config/initializers/exporters.rb new file mode 100644 index 000000000..dfd82a54c --- /dev/null +++ b/config/initializers/exporters.rb @@ -0,0 +1,6 @@ +SimpleExporter.define :referential_companies do |config| +  config.separator = ";" +  config.encoding = 'ISO-8859-1' +  config.add_column :name +  config.add_column :registration_number +end diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 2f65b8800..a177e7091 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -14,8 +14,4 @@ Sidekiq.configure_client do |config|    config.redis = { url: ENV.fetch('SIDEKIQ_REDIS_URL', 'redis://localhost:6379/12') }  end -Sidekiq.configure_client do |config| -  config.redis = { url: ENV.fetch('SIDEKIQ_REDIS_URL', 'redis://localhost:6379/12') } -end -  Sidekiq.default_worker_options = { retry: false } diff --git a/config/initializers/stif.rb b/config/initializers/stif.rb index a73e4931b..2ddadbc7e 100644 --- a/config/initializers/stif.rb +++ b/config/initializers/stif.rb @@ -27,8 +27,6 @@ Rails.application.config.to_prepare do    Organisation.before_validation(on: :create) do |organisation|      organisation.custom_view = "stif"    end -end - -Rails.application.config.to_prepare do    Dashboard.default_class = Stif::Dashboard +  Chouette::VehicleJourneyAtStop.day_offset_max = 1  end diff --git a/config/locales/compliance_controls.fr.yml b/config/locales/compliance_controls.fr.yml index 44d01a973..78b92451f 100644 --- a/config/locales/compliance_controls.fr.yml +++ b/config/locales/compliance_controls.fr.yml @@ -191,7 +191,7 @@ fr:        vehicle_journey_control/speed:          one: "La vitesse entre deux arrêts doit être dans une fourchette paramétrable"        vehicle_journey_control/delta: -        one: "Les vitesses entre 2 arrêts doivent être similaires pour toutes les courses d’une même mission" +        one: "Les temps de parcours entre 2 arrêts doivent être similaires pour toutes les courses d’une même mission"        vehicle_journey_control/time_table:          one: "Une course doit avoir au moins un calendrier d’application"        vehicle_journey_control/vehicle_journey_at_stops: diff --git a/config/locales/export_messages.en.yml b/config/locales/export_messages.en.yml new file mode 100644 index 000000000..f7951a103 --- /dev/null +++ b/config/locales/export_messages.en.yml @@ -0,0 +1,3 @@ +en: +  export_messages: +    success: Success diff --git a/config/locales/export_messages.fr.yml b/config/locales/export_messages.fr.yml new file mode 100644 index 000000000..5c2191f35 --- /dev/null +++ b/config/locales/export_messages.fr.yml @@ -0,0 +1,3 @@ +fr: +  export_messages: +    success: Succès diff --git a/config/locales/exports.en.yml b/config/locales/exports.en.yml index 2a47fba54..88c1b99f8 100644 --- a/config/locales/exports.en.yml +++ b/config/locales/exports.en.yml @@ -1,25 +1,32 @@  en: -  exports: +  exports: &exports +    search_no_results: "No export matching your query" +    filters: +      referential: "Select data space..." +      name_or_creator_cont: "Select an export or creator name..." +      error_period_filter: "End date must be greater or equal than begin date"      actions:        new: "New export" +      create: "New export" +      show: "Export report" +      download: "Download original file"        destroy: "Destroy"        destroy_confirm: "Are you sure you want destroy this export?" -    new: -      title: "New export" -      all: "All" -      flash: "Export task on queue, refresh page to see progression"      index:        title: "Exports"        warning: "" +    new: +      title: "Generate a new export" +    create: +      title: "Generate a new export"      show: +      title: "Export %{name}"        report: "Report" -      exported_file: "Exported file" -    statuses: -      started: "Started"       -      scheduled: "Processing ..." -      terminated: "Completed" -      canceled: "Canceled" -      aborted: "Failed"     +      exported_file: "Original file" +      compliance_check: "Validation report" +      compliance_check_of: "Validation of export: " +      export_of_validation: "Export of the validation" +    compliance_check_task: "Validate Report"      severities:        info: "Information"        uncheck: "Unchecked" @@ -27,7 +34,13 @@ en:        warning: "Warning"        error: "Error"        fatal: "Fatal" -  activemodel: +  export: +    workgroup: Workgroup +    netex:     Netex +    referential_companies: Companies +    base: +      <<: *exports +  activerecord:      models:        export:          zero:  "export" @@ -37,6 +50,10 @@ en:          zero:  "export"          one:   "Neptune export"          other: "exports" +      csv_export: +        zero:  "export" +        one:   "CSV export" +        other: "exports"        gtfs_export:          zero:  "export"          one:   "GTFS export" @@ -44,4 +61,39 @@ en:        netex_export:          zero:  "export"          one:   "NeTEx export" -        other: "exports"
\ No newline at end of file +        other: "exports" +    errors: +      models: +        export: +          base: +            attributes: +              file: +                wrong_file_extension: "The exported file must be a zip file" +    attributes: +      attrs: &attrs +        resources: "File to export" +        created_at: "Created on" +        started_at: "Started at" +        name: "Name" +        status: "Status" +        creator: "Creator" +        references_type: "Data to be exported" +        no_save: "No save" +        object_id_prefix: "Neptune Id prefix" +        max_distance_for_commercial: "Max distance for commercial stop" +        max_distance_for_connection_link: "Max distance for connection link" +        ignore_last_word: "ignore last word" +        ignore_end_chars: "ignore last chars" +        parent: Parent +      export: +        <<: *attrs +        base: +          <<: *attrs +        workgroup: +          duration: Duration +        referential_companies: +          referential_id: Referential +  flash: +    exports: +      create: +        notice: "The export is in progress. Please wait and refresh the page in a few moments." diff --git a/config/locales/exports.fr.yml b/config/locales/exports.fr.yml index 2d7cc0259..fa3ac8fc7 100644 --- a/config/locales/exports.fr.yml +++ b/config/locales/exports.fr.yml @@ -1,33 +1,46 @@  fr: -  exports: +  exports: &exports +    search_no_results: "Aucun export ne correspond à votre recherche" +    filters: +      referential: "Sélectionnez un jeu de données..." +      name_or_creator_cont: "Indiquez un nom d'export ou d'opérateur..." +      error_period_filter: "La date de fin doit être supérieure ou égale à la date de début"      actions:        new: "Nouvel export" +      create: "Nouvel export" +      show: "Rapport d'export" +      download: "Téléch. fichier source"        destroy: "Supprimer cet export"        destroy_confirm: "Etes vous sûr de supprimer cet export ?" -    new: -      title: "Nouvel export" -      all: "Toutes" -      flash: "La demande d'export est mise en file d'attente, veuillez rafraichir régulièrement la page pour en suivre la progression"      index:        title: "Exports"        warning: "" +    new: +      title: "Générer un export" +    create: +      title: "Générer un export"      show: +      title: "Export %{name}"        report: "Rapport" -      exported_file: "Fichier exporté" -    statuses: -      started: "En file d'attente..." -      scheduled: "En cours..." -      terminated: "Achevé" -      canceled: "Annulé" -      aborted: "Echoué" +      exported_file: "Fichier source" +      compliance_check: "Test de conformité" +      compliance_check_of: "Validation de l'export : " +      export_of_validation: "L'export de la validation" +    compliance_check_task: "Validation"      severities:        info: "Information" -      uncheck: "Non disponible" +      uncheck: "Non testé"        ok: "Ok"        warning: "Alerte"        error: "Erreur"        fatal: "Fatal" -  activemodel: +  export: +    workgroup: Groupe de travail +    netex:     Netex +    referential_companies: Transporteurs +    base: +      <<: *exports +  activerecord:      models:        export:          zero:  "export" @@ -35,7 +48,11 @@ fr:          other: "exports"        neptune_export:          zero:  "export" -        one:   "export neptune" +        one:   "export Neptune" +        other: "exports" +      csv_export: +        zero:  "export" +        one:   "export CSV"          other: "exports"        gtfs_export:          zero:  "export" @@ -45,3 +62,40 @@ fr:          zero:  "export"          one:   "export NeTEx"          other: "exports" +    errors: +      models: +        export: +          base: +            attributes: +              file: +                wrong_file_extension: "Le fichier exporté doit être au format zip" +    attributes: +      attrs: &attrs +        resources: "Fichier à exporter" +        created_at: "Créé le" +        started_at: Démarrage +        name: "Nom de l'export" +        status: "Etat" +        creator: "Opérateur" +        no_save: "Pas de sauvegarde" +        references_type: "Données à exporter" +        object_id_prefix: "Préfixe d'identifiants" +        max_distance_for_commercial: "Distance max pour créer les zones" +        max_distance_for_connection_link: "Distance max pour créer les correspondances" +        ignore_last_word: "ignorer le dernier mot" +        ignore_end_chars: "ignorer les n derniers caractères" +        type: "Type d'export" +        file: "Résultat" +        parent: Parent +      export: +        <<: *attrs +        base: +          <<: *attrs +        workgroup: +          duration: Durée +        referential_companies: +          referential_id: Jeu de données +  flash: +    exports: +      create: +        notice: "L'export est en cours, veuillez patienter. Actualiser votre page si vous voulez voir l'avancement de votre traitement." diff --git a/config/locales/import_messages.en.yml b/config/locales/import_messages.en.yml index aad4fb772..bc06c46f0 100644 --- a/config/locales/import_messages.en.yml +++ b/config/locales/import_messages.en.yml @@ -1,5 +1,5 @@  en: -  import_messages: +  import_message:      corrupt_zip_file: "The zip file %{source_filename} is corrupted and cannot be read"      inconsistent_zip_file: "The zip file %{source_filename} contains unexpected directories: %{spurious_dirs}, which are ignored"      referential_creation: "Le référentiel n'a pas pu être créé car un référentiel existe déjà sur les mêmes périodes et lignes" @@ -50,4 +50,4 @@ en:      2_netexstif_servicejourneypattern_2: "%{source_filename}-Ligne %{source_line_number}-Colonne %{source_column_number} : l'objet ServiceJourneyPattern d'identifiant %{source_objectid} doit contenir au moins 2 StopPointInJourneyPattern"      2_netexstif_servicejourneypattern_3_1: "%{source_filename}-Ligne %{source_line_number}-Colonne %{source_column_number} : l'objet ServiceJourneyPattern d'identifiant %{source_objectid} n'a pas de valeur pour l'attribut ServiceJourneyPatternType"      2_netexstif_servicejourneypattern_3_2: "%{source_filename}-Ligne %{source_line_number}-Colonne %{source_column_number} : l'objet ServiceJourneyPattern d'identifiant %{source_objectid} a une valeur interdite %{error_value} pour l'attribut ServiceJourneyPatternType différente de 'passenger'" -    2_netexstif_servicejourneypattern_4: "%{source_filename}-Ligne %{source_line_number}-Colonne %{source_column_number}, objet ServiceJourneyPattern d'identifiant %{source_objectid} : les attributs 'order' des StopPointInJourneyPattern ne sont pas croissants."
\ No newline at end of file +    2_netexstif_servicejourneypattern_4: "%{source_filename}-Ligne %{source_line_number}-Colonne %{source_column_number}, objet ServiceJourneyPattern d'identifiant %{source_objectid} : les attributs 'order' des StopPointInJourneyPattern ne sont pas croissants." diff --git a/config/locales/import_resources.en.yml b/config/locales/import_resources.en.yml index 5f0f3213e..386039319 100644 --- a/config/locales/import_resources.en.yml +++ b/config/locales/import_resources.en.yml @@ -1,11 +1,14 @@  en: +  import: +    resources: &resources +      index: +        title: "NeTEx conformity" +        table_state: "%{lines_imported} line(s) imported on %{lines_in_zipfile} presents in zipfile" +        table_title: "Satus of anlyzed files" +        table_explanation: "When calendriers.xml and/or commun.xml are not imported, then all lines file are not processed." +        metrics: "%{ok_count} ok, %{error_count} errors, %{warning_count} warnings, %{uncheck_count} n/a"    import_resources: -    index: -      title: "NeTEx conformity" -      table_state: "%{lines_imported} line(s) imported on %{lines_in_zipfile} presents in zipfile" -      table_title: "Satus of anlyzed files" -      table_explanation: "When calendriers.xml and/or commun.xml are not imported, then all lines file are not processed." -      metrics: "%{ok_count} ok, %{error_count} errors, %{warning_count} warnings, %{uncheck_count} n/a" +    <<: *resources    activerecord:      models:        import_resource: @@ -14,5 +17,6 @@ en:          other: "netex conformities"      attributes:        import: -        name: "Filename" -        status: "Status" +        resource: +          name: "Filename" +          status: "Status" diff --git a/config/locales/import_resources.fr.yml b/config/locales/import_resources.fr.yml index a271ae1ca..50fb7f1ca 100644 --- a/config/locales/import_resources.fr.yml +++ b/config/locales/import_resources.fr.yml @@ -1,11 +1,14 @@  fr: +  import: +    resources: &resources +      index: +        title: "Rapport de conformité NeTEx" +        table_state: "%{lines_imported} ligne(s) importée(s) sur %{lines_in_zipfile} présente(s) dans l'archive" +        table_title: "Etat des fichiers analysés" +        table_explanation: "Dans le cas ou le(s) fichiers calendriers.xml et/ou commun.xml sont dans un état non importé, alors tous les fichiers lignes sont automatiquement dans un état non traité." +        metrics: "%{ok_count} ok, %{error_count} errors, %{warning_count} warnings, %{uncheck_count} n/a"    import_resources: -    index: -      title: "Rapport de conformité NeTEx" -      table_state: "%{lines_imported} ligne(s) importée(s) sur %{lines_in_zipfile} présente(s) dans l'archive" -      table_title: "Etat des fichiers analysés" -      table_explanation: "Dans le cas ou le(s) fichiers calendriers.xml et/ou commun.xml sont dans un état non importé, alors tous les fichiers lignes sont automatiquement dans un état non traité." -      metrics: "%{ok_count} ok, %{error_count} errors, %{warning_count} warnings, %{uncheck_count} n/a" +    <<: *resources    activerecord:      models:        import_resource: @@ -13,6 +16,7 @@ fr:          one:   "rapport de conformité Netex"          other: "rapports de conformité Netex"      attributes: -      import_resource: -        name: "Fichier" -        status: "Etat" +      import: +        resource: +          name: "Fichier" +          status: "Etat" diff --git a/config/locales/import_tasks.en.yml b/config/locales/import_tasks.en.yml deleted file mode 100644 index 34f7e6998..000000000 --- a/config/locales/import_tasks.en.yml +++ /dev/null @@ -1,52 +0,0 @@ -en: -  import_tasks: -    actions: -      new: "New import" -    new: -      title: "New import" -      all: "All" -      flash: "Import task on queue, refresh page to see progression" -  activemodel: -    models: -      import_task: -        zero:  "import" -        one:   "import" -        other: "imports" -      neptune_import: -        zero:  "import" -        one:   "Neptune import" -        other: "imports" -      gtfs_import: -        zero:  "import" -        one:   "GTFS import" -        other: "imports" -      netex_import: -        zero:  "import" -        one:   "NeTEx import" -        other: "imports" -    attributes: -      import_task: -        name: "Import name" -        no_save: "No save" -        resources: "File to import" -        references_type: "Data to be imported" -        object_id_prefix: "Neptune Id prefix" -        max_distance_for_commercial: "Max distance for commercial stop" -        max_distance_for_connection_link: "Max distance for connection link" -        ignore_last_word: "ignore last word" -        ignore_end_chars: "ignore last chars" -    errors: -      models: -        import_task: -          attributes: -            resources: -              maximum_file_size: "File should smaller than %{maximum_file_size} (%{file_size} sent)" -              invalid_mime_type: "File doesn't use the expected format (%{mime_type} sent)" -  formtastic: -    titles: -      import_task: -        max_distance_for_commercial: "Maximal distance to merge homonymous stops in commercial stop in meter" -        max_distance_for_connection_link: "Maximal distance to link stops by connection link stop in meter" -        ignore_last_word: "ignore last word on stop name in homonymous detection (inappliable when just one word occurs)" -        ignore_end_chars: "ignore some chars at the end of stop names in homonymous detection" -        references_type: "Filter on stop areas import only GTFS stops and transfers files, these may contain extra attributes" diff --git a/config/locales/import_tasks.fr.yml b/config/locales/import_tasks.fr.yml deleted file mode 100644 index 002ca03cb..000000000 --- a/config/locales/import_tasks.fr.yml +++ /dev/null @@ -1,53 +0,0 @@ -fr: -  import_tasks: -    actions: -      new: "Nouvel import" -    new: -      title: "Nouvel import" -      all: "Tout" -      flash: "La demande d'import est mise en file d'attente, veuillez rafraichir régulièrement la page pour en suivre la progression" -  activemodel: -    models: -      import_task: -        zero:  "import" -        one:   "import" -        other: "imports" -      neptune_import: -        zero:  "import" -        one:   "import Neptune" -        other: "imports" -      gtfs_import: -        zero:  "import" -        one:   "import GTFS" -        other: "imports" -      netex_import: -        zero:  "import" -        one:   "import NeTEx" -        other: "imports" -    attributes: -      import_task: -        name: "Nom de l'import" -        no_save: "Pas de sauvegarde" -        resources: "Fichier à importer" -        references_type: "Données à importer" -        object_id_prefix: "Préfixe d'identifiants" -        max_distance_for_commercial: "Distance max pour créer les zones" -        max_distance_for_connection_link: "Distance max pour créer les correspondances" -        ignore_last_word: "ignorer le dernier mot" -        ignore_end_chars: "ignorer les n derniers caractères" -    errors: -      models: -        import_task: -          attributes: -            resources: -              maximum_file_size: "Le fichier ne peut dépasser %{maximum_file_size} (%{file_size} soumis)" -              invalid_mime_type: "Le fichier n'utilise pas le format attendu (%{mime_type} soumis)" - -  formtastic: -    titles: -      import_task: -        max_distance_for_commercial: "Distance maximale entre deux arrêts homonymes pour créer les zones d'arrêt (en mètre)" -        max_distance_for_connection_link: "Distance maximale entre deux arrêts pour créer les correspondances (en mètre)" -        ignore_last_word: "Ignorer le dernier mot pour détecter l'homonymie des noms d'arrêt (inapplicable quand le nom ne comporte qu'un mot)" -        ignore_end_chars: "Ignorer les n derniers caractères du nom de l'arrêt pour détecter l'homonymie" -        references_type: "Le filtre sur arrêts importe uniquement les fichiers GTFS stops et transfers gtfs, ceux-ci pouvant contenir des attributs supplémentaires" diff --git a/config/locales/imports.en.yml b/config/locales/imports.en.yml index b0644acd3..d0db87fb1 100644 --- a/config/locales/imports.en.yml +++ b/config/locales/imports.en.yml @@ -59,11 +59,12 @@ en:      errors:        models:          import: -          attributes: -            file: -              wrong_file_extension: "The imported file must be a zip file" +          base: +            attributes: +              file: +                wrong_file_extension: "The imported file must be a zip file"      attributes: -      import: +      attrs: &attrs          resources: "File to import"          created_at: "Created on"          started_at: "Started at" @@ -77,6 +78,10 @@ en:          max_distance_for_connection_link: "Max distance for connection link"          ignore_last_word: "ignore last word"          ignore_end_chars: "ignore last chars" +      import: +        <<: *attrs +        base: +          <<: *attrs    flash:      imports:        create: diff --git a/config/locales/imports.fr.yml b/config/locales/imports.fr.yml index 2380eac45..40272889a 100644 --- a/config/locales/imports.fr.yml +++ b/config/locales/imports.fr.yml @@ -1,5 +1,5 @@  fr: -  imports: +  imports: &imports      search_no_results: "Aucun import ne correspond à votre recherche"      filters:        referential: "Sélectionnez un jeu de données..." @@ -34,6 +34,9 @@ fr:        warning: "Alerte"        error: "Erreur"        fatal: "Fatal" +  import: +    base: +      <<: *imports    activerecord:      models:        import: @@ -59,11 +62,12 @@ fr:      errors:        models:          import: -          attributes: -            file: -              wrong_file_extension: "Le fichier importé doit être au format zip" +          base: +            attributes: +              file: +                wrong_file_extension: "Le fichier importé doit être au format zip"      attributes: -      import: +      attrs: &attrs          resources: "Fichier à importer"          created_at: "Créé le"          started_at: Démarrage @@ -77,6 +81,12 @@ fr:          max_distance_for_connection_link: "Distance max pour créer les correspondances"          ignore_last_word: "ignorer le dernier mot"          ignore_end_chars: "ignorer les n derniers caractères" + +      import: +        <<: *attrs +        base: +          <<: *attrs +    flash:      imports:        create: diff --git a/config/locales/stop_areas.en.yml b/config/locales/stop_areas.en.yml index ac3dce280..33722b60b 100644 --- a/config/locales/stop_areas.en.yml +++ b/config/locales/stop_areas.en.yml @@ -5,6 +5,10 @@ en:      errors:        empty: Aucun stop_area_id        parent_area_type: can not be of type %{area_type} +      registration_number: +        already_taken: Already taken +        cannot_be_empty: This field is mandatory +        invalid: Incorrect value      default_geometry_success: "%{count} modified stop areas"      stop_area:        no_position: "No Position" @@ -148,6 +152,7 @@ en:        stop_area:          name: ""          registration_number: "only alphanumerical or underscore characters" +        registration_number_format: "authorized format : %{registration_number_format}"          objectid: "[prefix]:StopArea:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"          nearest_topic_name: ""          city_name: "" diff --git a/config/locales/stop_areas.fr.yml b/config/locales/stop_areas.fr.yml index f75c4ebe7..605e6158e 100644 --- a/config/locales/stop_areas.fr.yml +++ b/config/locales/stop_areas.fr.yml @@ -6,6 +6,10 @@ fr:        empty: Aucun stop_area_id        parent_area_type: ne peut être de type %{area_type}        incorrect_kind_area_type: Ce type d'arrêt est invalide pour cette catégorie +      registration_number: +        already_taken: Déjà utilisé +        cannot_be_empty: Ce champ est requis +        invalid: Valeur invalide      default_geometry_success: "%{count} arrêts édités"      stop_area:        no_position: "Pas de position" @@ -150,6 +154,7 @@ fr:        stop_area:          name: ""          registration_number: "caractères autorisés : alphanumériques et 'souligné'" +        registration_number_format: "format autorisé: %{registration_number_format}"          objectid: "[prefixe]:StopArea:[clé_unique]  caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"          nearest_topic_name: ""          city_name: "" diff --git a/config/middlewares/cachesettings.rb b/config/middlewares/cachesettings.rb new file mode 100644 index 000000000..8a122891f --- /dev/null +++ b/config/middlewares/cachesettings.rb @@ -0,0 +1,20 @@ +class CacheSettings +  def initialize app, pat +    @app = app +    @pat = pat +  end + +  def call env +    res = @app.call(env) +    path = env["REQUEST_PATH"] +    @pat.each do |pattern,data| +      if path =~ pattern +        res[1]["Cache-Control"] = data[:cache_control] if data.has_key?(:cache_control) +        res[1]["Expires"] = (Time.now + data[:expires]).utc.rfc2822 if data.has_key?(:expires) +        res[1]["X-Custom-Cache-Control"] = "yes" if Rails.env.development? +        return res +      end +    end +    res +  end +end diff --git a/config/routes.rb b/config/routes.rb index b6934936b..6313b5678 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -11,6 +11,12 @@ ChouetteIhm::Application.routes.draw do          resources :import_messages, only: [:index]        end      end +    resources :exports do +      post :upload, on: :member +      resources :export_resources, only: [:index] do +        resources :export_messages, only: [:index] +      end +    end      resources :compliance_check_sets, only: [:index, :show] do        get :executed, on: :member        resources :compliance_checks, only: [:show]  | 
