enju_event 0.3.4 → 0.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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