aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjpl2017-08-14 16:27:56 +0200
committerjpl2017-08-14 16:27:56 +0200
commit5fcf1824d56f965262d5df1ece582c129fbe806b (patch)
tree0ecde41ac478081d2956277c3cbd0352fdf39755
parent70c04d2727179308e98d704c78a668c425b223b9 (diff)
downloadchouette-core-5fcf1824d56f965262d5df1ece582c129fbe806b.tar.bz2
Refs #4256: starting with table_builder2 on imports#index
-rw-r--r--app/helpers/table_builder_helper/url.rb7
-rw-r--r--app/models/import.rb4
-rw-r--r--app/policies/import_policy.rb7
-rw-r--r--app/views/imports/index.html.slim61
-rw-r--r--config/locales/imports.en.yml3
-rw-r--r--config/locales/imports.fr.yml5
-rw-r--r--db/schema.rb4
7 files changed, 77 insertions, 14 deletions
diff --git a/app/helpers/table_builder_helper/url.rb b/app/helpers/table_builder_helper/url.rb
index 0894df0fe..f7ba703ae 100644
--- a/app/helpers/table_builder_helper/url.rb
+++ b/app/helpers/table_builder_helper/url.rb
@@ -12,7 +12,12 @@ module TableBuilderHelper
polymorph_url << item.stop_area if item.respond_to? :stop_area
polymorph_url << item if item.respond_to?(:stop_points) || item.is_a?(Chouette::TimeTable)
elsif item.respond_to? :referential
- polymorph_url << item.referential
+ if item.respond_to? :workbench
+ polymorph_url << item.workbench
+ polymorph_url << item
+ else
+ polymorph_url << item.referential
+ end
end
else
polymorph_url << item
diff --git a/app/models/import.rb b/app/models/import.rb
index f8702c115..17899cc82 100644
--- a/app/models/import.rb
+++ b/app/models/import.rb
@@ -13,6 +13,10 @@ class Import < ActiveRecord::Base
before_create :initialize_fields
+ def self.model_name
+ ActiveModel::Name.new Import, Import, "Import"
+ end
+
def self.failing_statuses
symbols_with_indifferent_access(%i(failed aborted canceled))
end
diff --git a/app/policies/import_policy.rb b/app/policies/import_policy.rb
new file mode 100644
index 000000000..9e1d99a66
--- /dev/null
+++ b/app/policies/import_policy.rb
@@ -0,0 +1,7 @@
+class ImportPolicy < ApplicationPolicy
+ class Scope < Scope
+ def resolve
+ scope
+ end
+ end
+end
diff --git a/app/views/imports/index.html.slim b/app/views/imports/index.html.slim
index 6e2d49f73..a3e06840f 100644
--- a/app/views/imports/index.html.slim
+++ b/app/views/imports/index.html.slim
@@ -1,12 +1,49 @@
-= title_tag t('.title')
-- @imports.each do |import|
- .import
- li = link_to import.name, workbench_import_path(@workbench, import)
- li = import.referential.name if import.referential
- li = link_to import.file.file.filename, import.file.url, target: :_blank
- hr
-
-.warning = t('.warning')
-- content_for :sidebar do
- ul.actions
- li = link_to t('imports.actions.new'), new_workbench_import_path(workbench_id: @workbench), class: 'add'
+/ PageHeader
+= pageheader 'map-marker',
+ t('.title'),
+ '',
+ '',
+ link_to(t('imports.actions.new'), new_workbench_import_path(workbench_id: @workbench), class: 'btn btn-primary')
+
+/ PageContent
+.page_content
+ .container-fluid
+ - if @imports.any?
+ .row
+ .col-lg-12
+ = table_builder_2 @imports,
+ [ \
+ TableBuilderHelper::Column.new( \
+ key: :status, \
+ attribute: 'status' \
+ ), \
+ TableBuilderHelper::Column.new( \
+ key: :started_at, \
+ attribute: 'started_at' \
+ ), \
+ TableBuilderHelper::Column.new( \
+ key: :name, \
+ attribute: 'name' \
+ ), \
+ # TableBuilderHelper::Column.new( \
+ # name: 'Opérateur', \
+ # attribute: '' \
+ # ) \
+ ],
+ links: [],
+ cls: 'table has-search'
+
+ / = new_pagination @imports, 'pull-right'
+
+ - unless @imports.any?
+ .row
+ .col-lg-12
+ = replacement_msg t('imports.search_no_results')
+
+ .separator
+
+ .alert.alert-info
+ - @imports.each do |import|
+ .import
+ li = link_to import.file.file.filename, import.file.url, target: '_blank'
+ hr
diff --git a/config/locales/imports.en.yml b/config/locales/imports.en.yml
index b20f0f1da..a841ac99c 100644
--- a/config/locales/imports.en.yml
+++ b/config/locales/imports.en.yml
@@ -1,5 +1,6 @@
en:
imports:
+ search_no_results: "No import matching your query"
actions:
new: "New import"
destroy: "Destroy"
@@ -50,6 +51,8 @@ en:
import:
resources: "File to import"
created_at: "Created on"
+ started_at: Started at
+ name: Name
status: "Status"
references_type: "Data to be imported"
no_save: "No save"
diff --git a/config/locales/imports.fr.yml b/config/locales/imports.fr.yml
index 933025c82..911dfc56a 100644
--- a/config/locales/imports.fr.yml
+++ b/config/locales/imports.fr.yml
@@ -1,5 +1,6 @@
fr:
imports:
+ search_no_results: "Aucun import ne correspond à votre recherche"
actions:
new: "Nouvel import"
destroy: "Supprimer cet import"
@@ -50,7 +51,9 @@ fr:
import:
resources: "Fichier à importer"
created_at: "Créé le"
- status: "Status"
+ started_at: Démarrage
+ name: "Nom de l'import"
+ status: "Statut"
no_save: "Pas de sauvegarde"
references_type: "Données à importer"
rule_parameter_set_id: "Jeu de paramètres pour validation"
diff --git a/db/schema.rb b/db/schema.rb
index 01ed67d77..3abb47e8c 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -852,6 +852,10 @@ ActiveRecord::Schema.define(version: 20170808110333) do
add_index "workbenches", ["organisation_id"], name: "index_workbenches_on_organisation_id", using: :btree
add_index "workbenches", ["stop_area_referential_id"], name: "index_workbenches_on_stop_area_referential_id", using: :btree
+ create_table "yyy", id: false, force: :cascade do |t|
+ t.text "value"
+ end
+
add_foreign_key "access_links", "access_points", name: "aclk_acpt_fkey"
add_foreign_key "group_of_lines_lines", "group_of_lines", name: "groupofline_group_fkey", on_delete: :cascade
add_foreign_key "journey_frequencies", "timebands", on_delete: :nullify