enju_event 0.3.4 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/event_import_results_controller.rb +3 -3
  3. data/app/controllers/events_controller.rb +1 -1
  4. data/app/controllers/places_controller.rb +1 -1
  5. data/app/models/event_import_file.rb +5 -9
  6. data/app/models/event_import_result.rb +6 -0
  7. data/app/views/event_categories/_form.html.erb +1 -1
  8. data/app/views/event_import_results/index.text.ruby +5 -0
  9. data/app/views/events/{index.txt.ruby → index.text.ruby} +0 -0
  10. data/config/brakeman.ignore +66 -0
  11. data/lib/enju_event/version.rb +1 -1
  12. data/spec/controllers/events_controller_spec.rb +2 -2
  13. data/spec/dummy/config/initializers/mime_types.rb +1 -0
  14. data/spec/dummy/db/migrate/20200425072340_create_manifestation_custom_properties.rb +12 -0
  15. data/spec/dummy/db/migrate/20200425072349_create_item_custom_properties.rb +12 -0
  16. data/spec/dummy/db/migrate/20200425074758_create_manifestation_custom_values.rb +12 -0
  17. data/spec/dummy/db/migrate/20200425074822_create_item_custom_values.rb +12 -0
  18. data/spec/dummy/db/schema.rb +36 -280
  19. data/spec/system/events_spec.rb +3 -3
  20. data/spec/views/event_import_results/index.text.ruby_spec.rb +22 -0
  21. metadata +296 -350
  22. data/app/views/event_import_results/index.txt.erb +0 -3
  23. data/app/views/events/index.txt.erb +0 -4
  24. data/spec/dummy/db/migrate/032_create_checkins.rb +0 -17
  25. data/spec/dummy/db/migrate/033_create_checkouts.rb +0 -25
  26. data/spec/dummy/db/migrate/035_create_reserves.rb +0 -26
  27. data/spec/dummy/db/migrate/121_create_checked_items.rb +0 -17
  28. data/spec/dummy/db/migrate/127_create_use_restrictions.rb +0 -16
  29. data/spec/dummy/db/migrate/129_create_item_has_use_restrictions.rb +0 -16
  30. data/spec/dummy/db/migrate/132_create_circulation_statuses.rb +0 -16
  31. data/spec/dummy/db/migrate/20081030023412_create_checkout_types.rb +0 -17
  32. data/spec/dummy/db/migrate/20081030023518_create_user_group_has_checkout_types.rb +0 -25
  33. data/spec/dummy/db/migrate/20081030023615_create_carrier_type_has_checkout_types.rb +0 -18
  34. data/spec/dummy/db/migrate/20081212075554_create_checkout_stat_has_manifestations.rb +0 -17
  35. data/spec/dummy/db/migrate/20081212080038_create_manifestation_checkout_stats.rb +0 -15
  36. data/spec/dummy/db/migrate/20081215094302_create_user_checkout_stats.rb +0 -15
  37. data/spec/dummy/db/migrate/20081215094955_create_checkout_stat_has_users.rb +0 -17
  38. data/spec/dummy/db/migrate/20081216190517_create_reserve_stat_has_manifestations.rb +0 -17
  39. data/spec/dummy/db/migrate/20081216190724_create_manifestation_reserve_stats.rb +0 -15
  40. data/spec/dummy/db/migrate/20081220023628_create_user_reserve_stats.rb +0 -15
  41. data/spec/dummy/db/migrate/20081220034117_create_reserve_stat_has_users.rb +0 -17
  42. data/spec/dummy/db/migrate/20090321130448_add_completed_at_to_user_checkout_stat.rb +0 -23
  43. data/spec/dummy/db/migrate/20110301134521_add_expire_date_to_reserve.rb +0 -9
  44. data/spec/dummy/db/migrate/20110328130826_add_current_checkout_count_to_user_group_has_checkout_type.rb +0 -9
  45. data/spec/dummy/db/migrate/20110621093332_remove_expire_date_from_reserve.rb +0 -9
  46. data/spec/dummy/db/migrate/20111217234412_add_save_checkout_history_to_user.rb +0 -5
  47. data/spec/dummy/db/migrate/20111218002349_add_checkout_icalendar_token_to_user.rb +0 -6
  48. data/spec/dummy/db/migrate/20120424103932_add_librarian_id_to_checked_item.rb +0 -5
  49. data/spec/dummy/db/migrate/20130303124821_add_retained_at_to_reserve.rb +0 -5
  50. data/spec/dummy/db/migrate/20130304015019_add_postponed_at_to_reserve.rb +0 -5
  51. data/spec/dummy/db/migrate/20130416054135_add_circulation_status_id_to_item.rb +0 -8
  52. data/spec/dummy/db/migrate/20130519065638_add_lock_version_to_reserve.rb +0 -5
  53. data/spec/dummy/db/migrate/20130519065837_add_lock_version_to_checkin.rb +0 -5
  54. data/spec/dummy/db/migrate/20140518050147_create_reserve_transitions.rb +0 -18
  55. data/spec/dummy/db/migrate/20140528045518_create_user_checkout_stat_transitions.rb +0 -18
  56. data/spec/dummy/db/migrate/20140528045539_create_user_reserve_stat_transitions.rb +0 -18
  57. data/spec/dummy/db/migrate/20140528045600_create_manifestation_checkout_stat_transitions.rb +0 -18
  58. data/spec/dummy/db/migrate/20140528045617_create_manifestation_reserve_stat_transitions.rb +0 -18
  59. data/spec/dummy/db/migrate/20140810061942_add_user_id_to_user_checkout_stat.rb +0 -12
  60. data/spec/dummy/db/migrate/20140810091231_add_checkout_icalendar_token_to_profile.rb +0 -6
  61. data/spec/dummy/db/migrate/20140810091417_add_save_checkout_history_to_profile.rb +0 -5
  62. data/spec/dummy/db/migrate/20141014065831_add_shelf_id_to_checkout.rb +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 86085078847539c062412610f95d4c641547b0d50a79e647f890b184f1493295
4
- data.tar.gz: bfb76bb84ae941ac9edd410def82a3f73da7e94df75ae693019d71b9f6e0c925
3
+ metadata.gz: 27b0c9dc4dc6da8c3186d98a1f4c6c99b9f95e4305f8c96b50297a5e692e3d86
4
+ data.tar.gz: c5298009340080f52bce7d1f9a698cf10b5772071b8ca4348b9129c348127a1b
5
5
  SHA512:
6
- metadata.gz: 682305a24cc0e7a5b6a598c1b60a9698823ccf7ce6c84e0fd9e3652acaf1c3de0366d9f189ecc72d9f68f4db792441899caeb5c178977646ea307cb3f9c10415
7
- data.tar.gz: 666a769639a846b11a92d295a7e8aefb7fe21239a8f17d6bcffb63d5ee6274a90a65a1b92cdf2e3de35167925bb36e77e22df805a32d27f3b4557eaede220c42
6
+ metadata.gz: 63640ab077e20f166c74c854980d1e7763d9c985a725a2d5e1cedf10030808e14d4ce7c36d19f34224cae9e4e84e556f06c89eedd8637ad5f812a2592dc4c00f
7
+ data.tar.gz: f171242671fd67136c9a5e1fe83fb36cfc0a03a40c8b704ad45f4de63145f5ea84e1406087b230c4799d86038f42879cd723e7cc5ddcc40d1980bf31e73620da
@@ -5,9 +5,9 @@ class EventImportResultsController < ApplicationController
5
5
  # GET /event_import_results
6
6
  # GET /event_import_results.json
7
7
  def index
8
- @event_import_file = EventImportFile.where(id: params[:event_import_file_id]).first
8
+ @event_import_file = EventImportFile.find_by(id: params[:event_import_file_id])
9
9
  if @event_import_file
10
- @event_import_results = @event_import_file.event_import_results.order(created_at: :desc).page(params[:page])
10
+ @event_import_results = @event_import_file.event_import_results.order(created_at: :asc).page(params[:page])
11
11
  else
12
12
  @event_import_results = EventImportResult.order(created_at: :desc).page(params[:page])
13
13
  end
@@ -15,7 +15,7 @@ class EventImportResultsController < ApplicationController
15
15
  respond_to do |format|
16
16
  format.html # index.html.erb
17
17
  format.json { render json: @event_import_results }
18
- format.txt
18
+ format.text
19
19
  end
20
20
  end
21
21
 
@@ -52,7 +52,7 @@ class EventsController < ApplicationController
52
52
  format.html.phone
53
53
  format.json
54
54
  format.rss { render layout: false }
55
- format.txt
55
+ format.text
56
56
  format.atom
57
57
  format.ics
58
58
  end
@@ -50,7 +50,7 @@ class PlacesController < ApplicationController
50
50
  # Use callbacks to share common setup or constraints between actions.
51
51
  def set_place
52
52
  @place = Place.find(params[:id])
53
- autorize @place
53
+ authorize @place
54
54
  end
55
55
 
56
56
  def check_policy
@@ -51,9 +51,7 @@ class EventImportFile < ApplicationRecord
51
51
  rows.each do |row|
52
52
  row_num += 1
53
53
  next if row['dummy'].to_s.strip.present?
54
- event_import_result = EventImportResult.new
55
- event_import_result.assign_attributes({ event_import_file_id: id, body: row.fields.join("\t") })
56
- event_import_result.save!
54
+ event_import_result = EventImportResult.new(event_import_file_id: id, body: row.fields.join("\t"))
57
55
 
58
56
  event = Event.new
59
57
  event.name = row['name'].to_s.strip
@@ -67,10 +65,10 @@ class EventImportFile < ApplicationRecord
67
65
  else
68
66
  event.all_day = false
69
67
  end
70
- library = Library.where(name: row['library']).first
68
+ library = Library.find_by(name: row['library'])
71
69
  library = default_library || Library.web if library.blank?
72
70
  event.library = library
73
- event_category = EventCategory.where(name: row['event_category']).first
71
+ event_category = EventCategory.find_by(name: row['event_category'])
74
72
  event_category = default_event_category if event_category.blank?
75
73
  event.event_category = event_category
76
74
 
@@ -113,7 +111,7 @@ class EventImportFile < ApplicationRecord
113
111
  event = Event.find(row['id'].to_s.strip)
114
112
  event_category = EventCategory.where(name: row['event_category'].to_s.strip).first
115
113
  event.event_category = event_category if event_category
116
- library = Library.where(name: row['library'].to_s.strip).first
114
+ library = Library.find_by(name: row['library'].to_s.strip)
117
115
  event.library = library if library
118
116
  event.name = row['name'] if row['name'].to_s.strip.present?
119
117
  event.start_at = Time.zone.parse(row['start_at']) if row['start_at'].present?
@@ -183,9 +181,7 @@ class EventImportFile < ApplicationRecord
183
181
 
184
182
  def open_import_file(tempfile)
185
183
  file = CSV.open(tempfile, col_sep: "\t")
186
- header_columns = %w(
187
- id name display_name library event_category start_at end_at all_day note dummy
188
- )
184
+ header_columns = EventImportResult.header
189
185
  header = file.first
190
186
  ignored_columns = header - header_columns
191
187
  unless ignored_columns.empty?
@@ -6,6 +6,12 @@ class EventImportResult < ApplicationRecord
6
6
  belongs_to :event, optional: true
7
7
 
8
8
  validates :event_import_file_id, presence: true
9
+
10
+ def self.header
11
+ %w(
12
+ id name display_name library event_category start_at end_at all_day note dummy
13
+ )
14
+ end
9
15
  end
10
16
 
11
17
  # == Schema Information
@@ -3,7 +3,7 @@
3
3
 
4
4
  <div class="field">
5
5
  <%= f.label :name %><br />
6
- <%= f.text_field :name %>
6
+ <%= f.text_field :name, required: true %>
7
7
  </div>
8
8
  <div class="field">
9
9
  <%= f.label :display_name %><br />
@@ -0,0 +1,5 @@
1
+ CSV.generate(col_sep: "\t", row_sep: "\r\n") do |csv|
2
+ @event_import_results.each do |result|
3
+ csv << result.body.split("\t")
4
+ end
5
+ end
@@ -0,0 +1,66 @@
1
+ {
2
+ "ignored_warnings": [
3
+ {
4
+ "warning_type": "File Access",
5
+ "warning_code": 16,
6
+ "fingerprint": "0cc99b4df61bb345104e86e3061a1d3e8f23a8385c02a3f65a31701d5dd6e6a6",
7
+ "check_name": "SendFile",
8
+ "message": "Model attribute used in file name",
9
+ "file": "app/controllers/event_import_files_controller.rb",
10
+ "line": 34,
11
+ "link": "https://brakemanscanner.org/docs/warning_types/file_access/",
12
+ "code": "send_file(EventImportFile.find(params[:id]).event_import.path, :filename => EventImportFile.find(params[:id]).event_import_file_name, :type => \"application/octet-stream\")",
13
+ "render_path": null,
14
+ "location": {
15
+ "type": "method",
16
+ "class": "EventImportFilesController",
17
+ "method": "show"
18
+ },
19
+ "user_input": "EventImportFile.find(params[:id]).event_import.path",
20
+ "confidence": "Medium",
21
+ "note": ""
22
+ },
23
+ {
24
+ "warning_type": "File Access",
25
+ "warning_code": 16,
26
+ "fingerprint": "43e943cb9bc901967fc76b8120d84c754d5872e0a955b507ef00d8f613342c86",
27
+ "check_name": "SendFile",
28
+ "message": "Model attribute used in file name",
29
+ "file": "app/controllers/event_export_files_controller.rb",
30
+ "line": 33,
31
+ "link": "https://brakemanscanner.org/docs/warning_types/file_access/",
32
+ "code": "send_file(EventExportFile.find(params[:id]).event_export.path, :filename => EventExportFile.find(params[:id]).event_export_file_name, :type => \"application/octet-stream\")",
33
+ "render_path": null,
34
+ "location": {
35
+ "type": "method",
36
+ "class": "EventExportFilesController",
37
+ "method": "show"
38
+ },
39
+ "user_input": "EventExportFile.find(params[:id]).event_export.path",
40
+ "confidence": "Medium",
41
+ "note": ""
42
+ },
43
+ {
44
+ "warning_type": "Redirect",
45
+ "warning_code": 18,
46
+ "fingerprint": "e304fcb4b88a6522a29c32c654cee5d0a59c5fcce2e0a9a8862768c237a8e72a",
47
+ "check_name": "Redirect",
48
+ "message": "Possible unprotected redirect",
49
+ "file": "app/controllers/event_import_files_controller.rb",
50
+ "line": 32,
51
+ "link": "https://brakemanscanner.org/docs/warning_types/redirect/",
52
+ "code": "redirect_to(EventImportFile.find(params[:id]).event_import.expiring_url(10))",
53
+ "render_path": null,
54
+ "location": {
55
+ "type": "method",
56
+ "class": "EventImportFilesController",
57
+ "method": "show"
58
+ },
59
+ "user_input": "EventImportFile.find(params[:id]).event_import.expiring_url(10)",
60
+ "confidence": "High",
61
+ "note": ""
62
+ }
63
+ ],
64
+ "updated": "2020-04-29 03:31:48 +0900",
65
+ "brakeman_version": "4.8.1"
66
+ }
@@ -1,3 +1,3 @@
1
1
  module EnjuEvent
2
- VERSION = "0.3.4"
2
+ VERSION = "0.3.5".freeze
3
3
  end
@@ -55,8 +55,8 @@ describe EventsController do
55
55
  assigns(:events).should_not be_nil
56
56
  end
57
57
 
58
- it "assigns all events as @events in txt format" do
59
- get :index, format: 'txt'
58
+ it "assigns all events as @events in text format" do
59
+ get :index, format: :text
60
60
  assigns(:events).should_not be_nil
61
61
  end
62
62
 
@@ -2,3 +2,4 @@
2
2
 
3
3
  # Add new mime types for use in respond_to blocks:
4
4
  # Mime::Type.register "text/richtext", :rtf
5
+ Mime::Type.register_alias "text/plain", :txt
@@ -0,0 +1,12 @@
1
+ class CreateManifestationCustomProperties < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :manifestation_custom_properties do |t|
4
+ t.string :name, null: false, comment: 'ラベル名', index: {unique: true}
5
+ t.text :display_name, null: false, comment: '表示名'
6
+ t.text :note, comment: '備考'
7
+ t.integer :position, default: 1, null: false
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ class CreateItemCustomProperties < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :item_custom_properties do |t|
4
+ t.string :name, null: false, comment: 'ラベル名', index: {unique: true}
5
+ t.text :display_name, null: false, comment: '表示名'
6
+ t.text :note, comment: '備考'
7
+ t.integer :position, default: 1, null: false
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ class CreateManifestationCustomValues < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :manifestation_custom_values do |t|
4
+ t.references :manifestation_custom_property, null: false, foreign_key: true, index: {name: 'index_manifestation_custom_values_on_custom_property_id'}
5
+ t.references :manifestation, null: false, foreign_key: true
6
+ t.text :value
7
+
8
+ t.timestamps
9
+ end
10
+ add_index :manifestation_custom_values, [:manifestation_custom_property_id, :manifestation_id], unique: true, name: 'index_manifestation_custom_values_on_property_manifestation'
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ class CreateItemCustomValues < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :item_custom_values do |t|
4
+ t.references :item_custom_property, null: false, foreign_key: true, index: {name: 'index_item_custom_values_on_custom_property_id'}
5
+ t.references :item, null: false, foreign_key: true
6
+ t.text :value
7
+
8
+ t.timestamps
9
+ end
10
+ add_index :item_custom_values, [:item_custom_property_id, :item_id], unique: true, name: 'index_item_custom_values_on_custom_item_property_and_item_id'
11
+ end
12
+ end