enju_event 0.1.17.pre18 → 0.1.17.pre19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/event_export_files_controller.rb +100 -0
- data/app/controllers/event_import_files_controller.rb +21 -12
- data/app/controllers/event_import_results_controller.rb +1 -1
- data/app/controllers/events_controller.rb +16 -16
- data/app/controllers/participates_controller.rb +8 -8
- data/app/models/enju_event/ability.rb +2 -0
- data/app/models/event.rb +36 -15
- data/app/models/event_category.rb +1 -1
- data/app/models/event_export_file.rb +51 -0
- data/app/models/event_export_file_state_machine.rb +15 -0
- data/app/models/event_export_file_transition.rb +20 -0
- data/app/models/event_import_file.rb +44 -45
- data/app/models/event_import_result.rb +2 -2
- data/app/models/participate.rb +2 -2
- data/app/views/calendar/index.html.erb +6 -6
- data/app/views/event_categories/edit.html.erb +1 -1
- data/app/views/event_categories/index.html.erb +3 -3
- data/app/views/event_categories/new.html.erb +1 -1
- data/app/views/event_categories/show.html.erb +1 -1
- data/app/views/event_export_files/_form.html.erb +22 -0
- data/app/views/event_export_files/edit.html.erb +6 -0
- data/app/views/event_export_files/index.html.erb +44 -0
- data/app/views/event_export_files/new.html.erb +16 -0
- data/app/views/event_export_files/show.html.erb +31 -0
- data/app/views/event_import_files/edit.html.erb +1 -1
- data/app/views/event_import_files/index.html.erb +30 -25
- data/app/views/event_import_files/new.html.erb +24 -12
- data/app/views/event_import_files/show.html.erb +14 -4
- data/app/views/event_import_results/index.html.erb +6 -6
- data/app/views/event_import_results/{index.tsv.erb → index.txt.erb} +1 -1
- data/app/views/event_import_results/show.html.erb +1 -1
- data/app/views/events/_form.html.erb +6 -6
- data/app/views/events/edit.html.erb +2 -2
- data/app/views/events/index.atom.builder +2 -2
- data/app/views/events/index.html.erb +22 -22
- data/app/views/events/index.mobile.erb +11 -11
- data/app/views/events/index.rss.builder +5 -5
- data/app/views/events/index.txt.erb +4 -0
- data/app/views/events/new.html.erb +1 -1
- data/app/views/events/show.html.erb +5 -5
- data/app/views/events/show.mobile.erb +4 -4
- data/app/views/layouts/calendar.html.erb +3 -3
- data/app/views/participates/edit.html.erb +1 -1
- data/app/views/participates/index.html.erb +3 -3
- data/app/views/participates/new.html.erb +1 -1
- data/app/views/participates/show.html.erb +1 -1
- data/app/workers/event_export_file_queue.rb +7 -0
- data/config/locales/translation_en.yml +10 -0
- data/config/locales/translation_ja.yml +11 -1
- data/config/routes.rb +4 -3
- data/db/migrate/113_create_events.rb +2 -2
- data/db/migrate/20140720192418_add_default_library_id_to_event_import_file.rb +5 -0
- data/db/migrate/20140812152348_create_event_export_files.rb +11 -0
- data/db/migrate/20140812153137_create_event_export_file_transitions.rb +14 -0
- data/db/migrate/20140814070854_add_default_event_category_id_to_event_import_file.rb +5 -0
- data/lib/enju_event/version.rb +1 -1
- data/spec/controllers/calendar_controller_spec.rb +2 -2
- data/spec/controllers/event_categories_controller_spec.rb +21 -21
- data/spec/controllers/event_export_files_controller_spec.rb +286 -0
- data/spec/controllers/event_import_files_controller_spec.rb +20 -60
- data/spec/controllers/event_import_results_controller_spec.rb +6 -18
- data/spec/controllers/events_controller_spec.rb +21 -63
- data/spec/controllers/participates_controller_spec.rb +21 -21
- data/spec/dummy/app/helpers/application_helper.rb +1 -0
- data/spec/dummy/app/models/user.rb +2 -84
- data/spec/dummy/config/environments/test.rb +6 -6
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/001_create_agents.rb +0 -1
- data/spec/dummy/db/migrate/{20111201155456_devise_create_users.rb → 002_devise_create_users.rb} +6 -2
- data/spec/dummy/db/migrate/005_create_manifestations.rb +7 -7
- data/spec/dummy/db/migrate/006_create_items.rb +0 -3
- data/spec/dummy/db/migrate/041_create_roles.rb +13 -0
- data/spec/dummy/db/migrate/080_create_library_groups.rb +0 -1
- data/spec/dummy/db/migrate/154_create_messages.rb +0 -1
- data/spec/dummy/db/migrate/20080819181903_create_message_requests.rb +0 -2
- data/spec/dummy/db/migrate/20081028083142_create_agent_import_files.rb +0 -2
- data/spec/dummy/db/migrate/20081028083208_create_resource_import_files.rb +1 -3
- data/spec/dummy/db/migrate/20081212080038_create_manifestation_checkout_stats.rb +0 -1
- data/spec/dummy/db/migrate/20081215094302_create_user_checkout_stats.rb +0 -1
- data/spec/dummy/db/migrate/20081216190724_create_manifestation_reserve_stats.rb +0 -1
- data/spec/dummy/db/migrate/20081220023628_create_user_reserve_stats.rb +0 -1
- data/spec/dummy/db/migrate/20090321130448_add_completed_at_to_user_checkout_stat.rb +0 -4
- data/spec/dummy/db/migrate/20100129142347_create_import_requests.rb +0 -1
- data/spec/dummy/db/migrate/{20111201163718_create_user_has_roles.rb → 20100606065209_create_user_has_roles.rb} +2 -0
- data/spec/dummy/db/migrate/20110627034940_create_series_statement_merge_lists.rb +9 -0
- data/spec/dummy/db/migrate/20110627035057_create_series_statement_merges.rb +12 -0
- data/spec/dummy/db/migrate/20121116031206_add_fulltext_content_to_manifestation.rb +5 -0
- data/spec/dummy/db/migrate/20130221154434_add_additional_attributes_to_user.rb +0 -10
- data/spec/dummy/db/migrate/20140110122216_create_user_import_files.rb +18 -0
- data/spec/dummy/db/migrate/20140110131010_create_user_import_results.rb +11 -0
- data/spec/dummy/db/migrate/20140122054321_create_profiles.rb +20 -0
- data/spec/dummy/db/migrate/20140518111006_create_message_transitions.rb +14 -0
- data/spec/dummy/db/migrate/20140518135713_create_message_request_transitions.rb +14 -0
- data/spec/dummy/db/migrate/20140519170214_create_resource_import_file_transitions.rb +14 -0
- data/spec/dummy/db/migrate/20140519171220_create_import_request_transitions.rb +14 -0
- data/spec/dummy/db/migrate/20140524020735_create_agent_import_file_transitions.rb +14 -0
- data/spec/dummy/db/migrate/20140524074813_create_user_import_file_transitions.rb +14 -0
- data/spec/dummy/db/migrate/20140528045518_create_user_checkout_stat_transitions.rb +14 -0
- data/spec/dummy/db/migrate/20140528045539_create_user_reserve_stat_transitions.rb +14 -0
- data/spec/dummy/db/migrate/20140528045600_create_manifestation_checkout_stat_transitions.rb +14 -0
- data/spec/dummy/db/migrate/20140528045617_create_manifestation_reserve_stat_transitions.rb +14 -0
- data/spec/dummy/db/migrate/20140614065404_create_resource_export_files.rb +11 -0
- data/spec/dummy/db/migrate/20140614141500_create_resource_export_file_transitions.rb +14 -0
- data/spec/dummy/db/migrate/20140628072217_add_user_encoding_to_user_import_file.rb +5 -0
- data/spec/dummy/db/migrate/20140628073524_add_user_encoding_to_agent_import_file.rb +5 -0
- data/spec/dummy/db/migrate/20140628073535_add_user_encoding_to_resource_import_file.rb +5 -0
- data/spec/dummy/db/migrate/20140709113413_create_user_export_files.rb +11 -0
- data/spec/dummy/db/migrate/20140709113905_create_user_export_file_transitions.rb +14 -0
- data/spec/dummy/db/migrate/20140720140916_add_binding_item_identifier_to_item.rb +8 -0
- data/spec/dummy/db/migrate/20140720170714_add_default_library_id_to_user_import_file.rb +5 -0
- data/spec/dummy/db/migrate/20140720170735_add_default_user_group_id_to_user_import_file.rb +5 -0
- data/spec/dummy/db/migrate/20140721151416_add_default_shelf_id_to_resource_import_file.rb +5 -0
- data/spec/dummy/db/migrate/20140802082007_add_manifestation_id_to_item.rb +6 -0
- data/spec/dummy/db/migrate/20140810061942_add_user_id_to_stat.rb +12 -0
- data/spec/dummy/db/migrate/20140810091231_add_checkout_icalendar_token_to_profile.rb +6 -0
- data/spec/dummy/db/migrate/20140810091417_add_save_checkout_history_to_profile.rb +5 -0
- data/spec/dummy/db/migrate/20140811031145_add_expired_at_to_profile.rb +5 -0
- data/spec/dummy/db/schema.rb +290 -165
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/private/system/event_import_files/event_imports/000/000/004/original/event_import51.txt +3 -0
- data/spec/dummy/private/system/event_import_files/event_imports/000/000/004/original/event_import_file_sample1.tsv +1 -1
- data/spec/dummy/solr/default/data/index/_1dz.fdt +0 -0
- data/spec/dummy/solr/default/data/index/{_b2.si → _1dz.si} +0 -0
- data/spec/dummy/solr/default/data/index/{_b2_Lucene41_0.tim → _1dz_Lucene41_0.tim} +0 -0
- data/spec/dummy/solr/default/data/index/_1e0.fdt +0 -0
- data/spec/dummy/solr/default/data/index/{_b3.fnm → _1e0.fnm} +0 -0
- data/spec/dummy/solr/default/data/index/{_b3.si → _1e0.si} +0 -0
- data/spec/dummy/solr/default/data/index/_1e0_Lucene41_0.pos +0 -0
- data/spec/dummy/solr/default/data/index/_1e0_Lucene41_0.tim +0 -0
- data/spec/dummy/solr/default/data/index/_1e0_Lucene41_0.tip +0 -0
- data/spec/dummy/solr/default/data/index/segments.gen +0 -0
- data/spec/dummy/solr/default/data/index/segments_1yj +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000002528 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000002529 +0 -0
- data/spec/dummy/solr/default/data/tlog/{tlog.0000000000000000632 → tlog.0000000000000002530} +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000002531 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000002532 +0 -0
- data/spec/dummy/solr/default/data/tlog/{tlog.0000000000000000635 → tlog.0000000000000002533} +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000002534 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000002535 +0 -0
- data/spec/dummy/solr/default/data/tlog/{tlog.0000000000000000638 → tlog.0000000000000002536} +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000002537 +0 -0
- data/spec/dummy/solr/test/data/index/_a.fdt +0 -0
- data/spec/dummy/solr/test/data/index/_a.fdx +0 -0
- data/spec/dummy/solr/test/data/index/_a.fnm +0 -0
- data/spec/dummy/solr/test/data/index/_a.nvd +0 -0
- data/spec/dummy/solr/test/data/index/_a.nvm +0 -0
- data/spec/dummy/solr/test/data/index/_a.si +0 -0
- data/spec/dummy/solr/test/data/index/_a_Lucene41_0.doc +0 -0
- data/spec/dummy/solr/test/data/index/_a_Lucene41_0.pos +0 -0
- data/spec/dummy/solr/test/data/index/_a_Lucene41_0.tim +0 -0
- data/spec/dummy/solr/test/data/index/_a_Lucene41_0.tip +0 -0
- data/spec/dummy/solr/test/data/index/segments.gen +0 -0
- data/spec/dummy/solr/test/data/index/segments_n +0 -0
- data/spec/dummy/solr/test/data/tlog/tlog.0000000000000000013 +0 -0
- data/spec/dummy/solr/test/data/tlog/tlog.0000000000000000014 +0 -0
- data/spec/dummy/solr/test/data/tlog/tlog.0000000000000000015 +0 -0
- data/spec/dummy/solr/test/data/tlog/tlog.0000000000000000016 +0 -0
- data/spec/dummy/solr/test/data/tlog/tlog.0000000000000000017 +0 -0
- data/spec/dummy/solr/test/data/tlog/tlog.0000000000000000018 +0 -0
- data/spec/dummy/solr/test/data/tlog/tlog.0000000000000000019 +0 -0
- data/spec/dummy/solr/test/data/tlog/tlog.0000000000000000020 +0 -0
- data/spec/dummy/solr/test/data/tlog/tlog.0000000000000000021 +0 -0
- data/spec/dummy/tmp/cache/stdout +27 -0
- data/spec/dummy/tmp/pids/redis-test.pid +1 -0
- data/spec/factories/event.rb +2 -0
- data/spec/factories/profile.rb +10 -0
- data/spec/factories/user.rb +21 -9
- data/spec/fixtures/event_categories.yml +8 -8
- data/spec/fixtures/event_export_files.yml +26 -0
- data/spec/fixtures/event_import_files.yml +2 -1
- data/spec/fixtures/events.yml +2 -3
- data/spec/fixtures/library_groups.yml +0 -2
- data/spec/fixtures/message_templates.yml +105 -0
- data/spec/fixtures/profiles.yml +98 -0
- data/spec/fixtures/user_groups.yml +3 -3
- data/spec/fixtures/users.yml +3 -21
- data/spec/models/event_export_file_spec.rb +31 -0
- data/spec/models/event_import_file_spec.rb +37 -11
- data/spec/models/event_spec.rb +2 -3
- data/spec/support/resque.rb +1 -0
- data/spec/views/event_export_files/edit.html.erb_spec.rb +16 -0
- data/spec/views/event_export_files/index.html.erb_spec.rb +17 -0
- data/spec/views/event_export_files/new.html.erb_spec.rb +16 -0
- data/spec/views/event_export_files/show.html.erb_spec.rb +13 -0
- metadata +222 -118
- data/app/views/events/index.csv.erb +0 -4
- data/spec/dummy/app/mailers/notifier.rb +0 -28
- data/spec/dummy/db/migrate/029_create_subjects.rb +0 -27
- data/spec/dummy/db/migrate/142_create_classifications.rb +0 -19
- data/spec/dummy/db/migrate/143_create_subject_has_classifications.rb +0 -16
- data/spec/dummy/db/migrate/144_create_classification_types.rb +0 -16
- data/spec/dummy/db/migrate/145_create_subject_heading_types.rb +0 -16
- data/spec/dummy/db/migrate/146_create_subject_types.rb +0 -16
- data/spec/dummy/db/migrate/20080606052544_create_work_has_subjects.rb +0 -18
- data/spec/dummy/db/migrate/20090208044541_create_subject_heading_type_has_subjects.rb +0 -16
- data/spec/dummy/db/migrate/20110425133109_add_issn_to_series_statement.rb +0 -9
- data/spec/dummy/db/migrate/20110618091240_add_periodical_to_series_statement.rb +0 -9
- data/spec/dummy/db/migrate/20110820131417_create_series_has_manifestations.rb +0 -13
- data/spec/dummy/db/migrate/20110913120629_add_lft_and_rgt_to_classification.rb +0 -11
- data/spec/dummy/db/migrate/20110916053430_rename_manifestation_number_list_to_number_string.rb +0 -13
- data/spec/dummy/db/migrate/20111009183423_add_ndc_to_manifestation.rb +0 -9
- data/spec/dummy/db/migrate/20111201121844_create_roles.rb +0 -12
- data/spec/dummy/db/migrate/20120406020752_add_url_to_subject.rb +0 -5
- data/spec/dummy/db/migrate/20120415060308_rename_resource_import_file_imported_at_to_executed_at.rb +0 -9
- data/spec/dummy/db/migrate/20130504133816_add_manifestation_id_to_subject.rb +0 -6
- data/spec/dummy/db/migrate/20130504143515_add_manifestation_id_to_classification.rb +0 -6
- data/spec/dummy/db/migrate/20130504195916_add_subject_heading_type_id_to_subject.rb +0 -5
- data/spec/dummy/solr/default/data/index/_b2.fdt +0 -0
- data/spec/dummy/solr/default/data/index/_b3.fdt +0 -0
- data/spec/dummy/solr/default/data/index/_b3_Lucene41_0.pos +0 -0
- data/spec/dummy/solr/default/data/index/_b3_Lucene41_0.tim +0 -0
- data/spec/dummy/solr/default/data/index/_b3_Lucene41_0.tip +0 -0
- data/spec/dummy/solr/default/data/index/segments_ht +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000000630 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000000631 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000000633 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000000634 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000000636 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000000637 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000000639 +0 -0
- data/spec/dummy/solr/test/data/index/segments_1 +0 -0
- /data/spec/dummy/solr/default/data/index/{_b2.fdx → _1dz.fdx} +0 -0
- /data/spec/dummy/solr/default/data/index/{_b2.fnm → _1dz.fnm} +0 -0
- /data/spec/dummy/solr/default/data/index/{_b2.nvd → _1dz.nvd} +0 -0
- /data/spec/dummy/solr/default/data/index/{_b2.nvm → _1dz.nvm} +0 -0
- /data/spec/dummy/solr/default/data/index/{_b2_Lucene41_0.doc → _1dz_Lucene41_0.doc} +0 -0
- /data/spec/dummy/solr/default/data/index/{_b2_Lucene41_0.pos → _1dz_Lucene41_0.pos} +0 -0
- /data/spec/dummy/solr/default/data/index/{_b2_Lucene41_0.tip → _1dz_Lucene41_0.tip} +0 -0
- /data/spec/dummy/solr/default/data/index/{_b3.fdx → _1e0.fdx} +0 -0
- /data/spec/dummy/solr/default/data/index/{_b3.nvd → _1e0.nvd} +0 -0
- /data/spec/dummy/solr/default/data/index/{_b3.nvm → _1e0.nvm} +0 -0
- /data/spec/dummy/solr/default/data/index/{_b3_Lucene41_0.doc → _1e0_Lucene41_0.doc} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 363a80afc5aa4dd9e672f1a6f5e3b892787688e9
|
4
|
+
data.tar.gz: 12ee593d3824d87cd5b8740e0d9dc55e39cc3230
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3da5de410c3b035d7a3b32b7078e5ed17a2c6818da98bc60f56df4bd6e94845c7fde1a835fa9010016b7b3c71bb6655bcd2dc74c7c93b9f35bcd8aaf62f031ac
|
7
|
+
data.tar.gz: c4496f7b6a4de8332a9b3e4336ea72feb9012c347a40693916b2f274eb57b83c2e21713714fd693cdd61727601ce5aa678b34a4e557753960e91dbd6dfdedb70
|
@@ -0,0 +1,100 @@
|
|
1
|
+
class EventExportFilesController < ApplicationController
|
2
|
+
load_and_authorize_resource
|
3
|
+
|
4
|
+
# GET /event_export_files
|
5
|
+
# GET /event_export_files.json
|
6
|
+
def index
|
7
|
+
@event_export_files = EventExportFile.order('id DESC').page(params[:page])
|
8
|
+
|
9
|
+
respond_to do |format|
|
10
|
+
format.html # index.html.erb
|
11
|
+
format.json { render json: @event_export_files }
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# GET /event_export_files/1
|
16
|
+
# GET /event_export_files/1.json
|
17
|
+
def show
|
18
|
+
if @event_export_file.event_export.path
|
19
|
+
unless Setting.uploaded_file.storage == :s3
|
20
|
+
file = @event_export_file.event_export.path
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
respond_to do |format|
|
25
|
+
format.html # show.html.erb
|
26
|
+
format.json { render json: @event_export_file }
|
27
|
+
format.download {
|
28
|
+
if Setting.uploaded_file.storage == :s3
|
29
|
+
redirect_to @event_export_file.event_export.expiring_url(10)
|
30
|
+
else
|
31
|
+
send_file file, filename: @event_export_file.event_export_file_name, type: 'application/octet-stream'
|
32
|
+
end
|
33
|
+
}
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# GET /event_export_files/new
|
38
|
+
# GET /event_export_files/new.json
|
39
|
+
def new
|
40
|
+
@event_export_file = EventExportFile.new
|
41
|
+
@event_export_file.user = current_user
|
42
|
+
|
43
|
+
respond_to do |format|
|
44
|
+
format.html # new.html.erb
|
45
|
+
format.json { render json: @event_export_file }
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
# GET /event_export_files/1/edit
|
50
|
+
def edit
|
51
|
+
end
|
52
|
+
|
53
|
+
# POST /event_export_files
|
54
|
+
# POST /event_export_files.json
|
55
|
+
def create
|
56
|
+
@event_export_file = EventExportFile.new(params[:event_export_file])
|
57
|
+
@event_export_file.user = current_user
|
58
|
+
|
59
|
+
respond_to do |format|
|
60
|
+
if @event_export_file.save
|
61
|
+
if @event_export_file.mode == 'export'
|
62
|
+
Resque.enqueue(EventExportFileQueue, @event_export_file.id)
|
63
|
+
end
|
64
|
+
format.html { redirect_to @event_export_file, notice: t('export.successfully_created', model: t('activerecord.models.event_export_file')) }
|
65
|
+
format.json { render json: @event_export_file, status: :created, location: @event_export_file }
|
66
|
+
else
|
67
|
+
format.html { render action: "new" }
|
68
|
+
format.json { render json: @event_export_file.errors, status: :unprocessable_entity }
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
# PUT /event_export_files/1
|
74
|
+
# PUT /event_export_files/1.json
|
75
|
+
def update
|
76
|
+
respond_to do |format|
|
77
|
+
if @event_export_file.update_attributes(params[:event_export_file])
|
78
|
+
if @event_export_file.mode == 'export'
|
79
|
+
EventExportFileQueue.perform(@event_export_file.id)
|
80
|
+
end
|
81
|
+
format.html { redirect_to @event_export_file, notice: t('controller.successfully_updated', model: t('activerecord.models.event_export_file')) }
|
82
|
+
format.json { head :no_content }
|
83
|
+
else
|
84
|
+
format.html { render action: "edit" }
|
85
|
+
format.json { render json: @event_export_file.errors, status: :unprocessable_entity }
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
# DELETE /event_export_files/1
|
91
|
+
# DELETE /event_export_files/1.json
|
92
|
+
def destroy
|
93
|
+
@event_export_file.destroy
|
94
|
+
|
95
|
+
respond_to do |format|
|
96
|
+
format.html { redirect_to event_export_files_url }
|
97
|
+
format.json { head :no_content }
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
class EventImportFilesController < ApplicationController
|
2
2
|
load_and_authorize_resource
|
3
|
+
before_filter :prepare_options, only: [:new, :edit]
|
3
4
|
|
4
5
|
# GET /event_import_files
|
5
6
|
# GET /event_import_files.json
|
@@ -8,7 +9,7 @@ class EventImportFilesController < ApplicationController
|
|
8
9
|
|
9
10
|
respond_to do |format|
|
10
11
|
format.html # index.html.erb
|
11
|
-
format.json { render :
|
12
|
+
format.json { render json: @event_import_files }
|
12
13
|
end
|
13
14
|
end
|
14
15
|
|
@@ -23,12 +24,12 @@ class EventImportFilesController < ApplicationController
|
|
23
24
|
|
24
25
|
respond_to do |format|
|
25
26
|
format.html # show.html.erb
|
26
|
-
format.json { render :
|
27
|
+
format.json { render json: @event_import_file }
|
27
28
|
format.download {
|
28
29
|
if Setting.uploaded_file.storage == :s3
|
29
30
|
redirect_to @event_import_file.event_import.expiring_url(10)
|
30
31
|
else
|
31
|
-
send_file file, :
|
32
|
+
send_file file, filename: @event_import_file.event_import_file_name, type: 'application/octet-stream'
|
32
33
|
end
|
33
34
|
}
|
34
35
|
end
|
@@ -38,10 +39,12 @@ class EventImportFilesController < ApplicationController
|
|
38
39
|
# GET /event_import_files/new.json
|
39
40
|
def new
|
40
41
|
@event_import_file = EventImportFile.new
|
42
|
+
@event_import_file.default_library = current_user.profile.library
|
43
|
+
@event_import_file.default_event_category = EventCategory.order(:position).first
|
41
44
|
|
42
45
|
respond_to do |format|
|
43
46
|
format.html # new.html.erb
|
44
|
-
format.json { render :
|
47
|
+
format.json { render json: @event_import_file }
|
45
48
|
end
|
46
49
|
end
|
47
50
|
|
@@ -60,12 +63,12 @@ class EventImportFilesController < ApplicationController
|
|
60
63
|
if @event_import_file.mode == 'import'
|
61
64
|
Resque.enqueue(EventImportFileQueue, @event_import_file.id)
|
62
65
|
end
|
63
|
-
|
64
|
-
format.
|
65
|
-
format.json { render :json => @event_import_file, :status => :created, :location => @event_import_file }
|
66
|
+
format.html { redirect_to @event_import_file, notice: t('import.successfully_created', model: t('activerecord.models.event_import_file')) }
|
67
|
+
format.json { render json: @event_import_file, status: :created, location: @event_import_file }
|
66
68
|
else
|
67
|
-
|
68
|
-
format.
|
69
|
+
prepare_options
|
70
|
+
format.html { render action: "new" }
|
71
|
+
format.json { render json: @event_import_file.errors, status: :unprocessable_entity }
|
69
72
|
end
|
70
73
|
end
|
71
74
|
end
|
@@ -78,11 +81,12 @@ class EventImportFilesController < ApplicationController
|
|
78
81
|
if @event_import_file.mode == 'import'
|
79
82
|
Resque.enqueue(EventImportFileQueue, @event_import_file.id)
|
80
83
|
end
|
81
|
-
format.html { redirect_to @event_import_file, :
|
84
|
+
format.html { redirect_to @event_import_file, notice: t('controller.successfully_updated', model: t('activerecord.models.event_import_file')) }
|
82
85
|
format.json { head :no_content }
|
83
86
|
else
|
84
|
-
|
85
|
-
format.
|
87
|
+
prepare_options
|
88
|
+
format.html { render action: "edit" }
|
89
|
+
format.json { render json: @event_import_file.errors, status: :unprocessable_entity }
|
86
90
|
end
|
87
91
|
end
|
88
92
|
end
|
@@ -97,4 +101,9 @@ class EventImportFilesController < ApplicationController
|
|
97
101
|
format.json { head :no_content }
|
98
102
|
end
|
99
103
|
end
|
104
|
+
|
105
|
+
def prepare_options
|
106
|
+
@libraries = Library.all
|
107
|
+
@event_categories = EventCategory.all
|
108
|
+
end
|
100
109
|
end
|
@@ -2,11 +2,11 @@
|
|
2
2
|
class EventsController < ApplicationController
|
3
3
|
load_and_authorize_resource
|
4
4
|
before_filter :get_library, :get_agent
|
5
|
-
before_filter :get_libraries, :
|
5
|
+
before_filter :get_libraries, except: :destroy
|
6
6
|
before_filter :prepare_options
|
7
|
-
before_filter :store_page, :
|
8
|
-
after_filter :solr_commit, :
|
9
|
-
after_filter :convert_charset, :
|
7
|
+
before_filter :store_page, only: :index
|
8
|
+
after_filter :solr_commit, only: [:create, :update, :destroy]
|
9
|
+
after_filter :convert_charset, only: :index
|
10
10
|
|
11
11
|
# GET /events
|
12
12
|
# GET /events.json
|
@@ -45,9 +45,9 @@ class EventsController < ApplicationController
|
|
45
45
|
|
46
46
|
respond_to do |format|
|
47
47
|
format.html # index.html.erb
|
48
|
-
format.json { render :
|
49
|
-
format.rss { render :
|
50
|
-
format.
|
48
|
+
format.json { render json: @events }
|
49
|
+
format.rss { render layout: false }
|
50
|
+
format.txt
|
51
51
|
format.atom
|
52
52
|
format.ics
|
53
53
|
end
|
@@ -60,7 +60,7 @@ class EventsController < ApplicationController
|
|
60
60
|
|
61
61
|
respond_to do |format|
|
62
62
|
format.html # show.html.erb
|
63
|
-
format.json { render :
|
63
|
+
format.json { render json: @event }
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
@@ -83,7 +83,7 @@ class EventsController < ApplicationController
|
|
83
83
|
|
84
84
|
respond_to do |format|
|
85
85
|
format.html # new.html.erb
|
86
|
-
format.json { render :
|
86
|
+
format.json { render json: @event }
|
87
87
|
end
|
88
88
|
end
|
89
89
|
|
@@ -101,13 +101,13 @@ class EventsController < ApplicationController
|
|
101
101
|
|
102
102
|
respond_to do |format|
|
103
103
|
if @event.save
|
104
|
-
flash[:notice] = t('controller.successfully_created', :
|
104
|
+
flash[:notice] = t('controller.successfully_created', model: t('activerecord.models.event'))
|
105
105
|
format.html { redirect_to(@event) }
|
106
|
-
format.json { render :
|
106
|
+
format.json { render json: @event, status: :created, location: @event }
|
107
107
|
else
|
108
108
|
prepare_options
|
109
|
-
format.html { render :
|
110
|
-
format.json { render :
|
109
|
+
format.html { render action: "new" }
|
110
|
+
format.json { render json: @event.errors, status: :unprocessable_entity }
|
111
111
|
end
|
112
112
|
end
|
113
113
|
end
|
@@ -121,13 +121,13 @@ class EventsController < ApplicationController
|
|
121
121
|
respond_to do |format|
|
122
122
|
if @event.update_attributes(params[:event])
|
123
123
|
|
124
|
-
flash[:notice] = t('controller.successfully_updated', :
|
124
|
+
flash[:notice] = t('controller.successfully_updated', model: t('activerecord.models.event'))
|
125
125
|
format.html { redirect_to(@event) }
|
126
126
|
format.json { head :no_content }
|
127
127
|
else
|
128
128
|
prepare_options
|
129
|
-
format.html { render :
|
130
|
-
format.json { render :
|
129
|
+
format.html { render action: "edit" }
|
130
|
+
format.json { render json: @event.errors, status: :unprocessable_entity }
|
131
131
|
end
|
132
132
|
end
|
133
133
|
end
|
@@ -8,7 +8,7 @@ class ParticipatesController < ApplicationController
|
|
8
8
|
|
9
9
|
respond_to do |format|
|
10
10
|
format.html # index.html.erb
|
11
|
-
format.json { render :
|
11
|
+
format.json { render json: @participates }
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
@@ -17,7 +17,7 @@ class ParticipatesController < ApplicationController
|
|
17
17
|
def show
|
18
18
|
respond_to do |format|
|
19
19
|
format.html # show.html.erb
|
20
|
-
format.json { render :
|
20
|
+
format.json { render json: @participate }
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
@@ -28,7 +28,7 @@ class ParticipatesController < ApplicationController
|
|
28
28
|
|
29
29
|
respond_to do |format|
|
30
30
|
format.html # new.html.erb
|
31
|
-
format.json { render :
|
31
|
+
format.json { render json: @participate }
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
@@ -45,10 +45,10 @@ class ParticipatesController < ApplicationController
|
|
45
45
|
if @participate.save
|
46
46
|
flash[:notice] = 'Participate was successfully created.'
|
47
47
|
format.html { redirect_to(@participate) }
|
48
|
-
format.json { render :
|
48
|
+
format.json { render json: @participate, status: :created, location: @participate }
|
49
49
|
else
|
50
|
-
format.html { render :
|
51
|
-
format.json { render :
|
50
|
+
format.html { render action: "new" }
|
51
|
+
format.json { render json: @participate.errors, status: :unprocessable_entity }
|
52
52
|
end
|
53
53
|
end
|
54
54
|
end
|
@@ -62,8 +62,8 @@ class ParticipatesController < ApplicationController
|
|
62
62
|
format.html { redirect_to(@participate) }
|
63
63
|
format.json { head :no_content }
|
64
64
|
else
|
65
|
-
format.html { render :
|
66
|
-
format.json { render :
|
65
|
+
format.html { render action: "edit" }
|
66
|
+
format.json { render json: @participate.errors, status: :unprocessable_entity }
|
67
67
|
end
|
68
68
|
end
|
69
69
|
end
|
@@ -12,6 +12,7 @@ module EnjuEvent
|
|
12
12
|
can :manage, [
|
13
13
|
Event,
|
14
14
|
EventImportFile,
|
15
|
+
EventExportFile,
|
15
16
|
Participate
|
16
17
|
]
|
17
18
|
can :read, EventImportResult
|
@@ -19,6 +20,7 @@ module EnjuEvent
|
|
19
20
|
can :manage, [
|
20
21
|
Event,
|
21
22
|
EventImportFile,
|
23
|
+
EventExportFile,
|
22
24
|
Participate
|
23
25
|
]
|
24
26
|
can :read, [
|
data/app/models/event.rb
CHANGED
@@ -9,11 +9,11 @@ class Event < ActiveRecord::Base
|
|
9
9
|
scope :upcoming, lambda {|datetime| where('start_at >= ?', Time.zone.parse(datetime).beginning_of_day)}
|
10
10
|
scope :at, lambda {|library| where(:library_id => library.id)}
|
11
11
|
|
12
|
-
belongs_to :event_category, :
|
13
|
-
belongs_to :library, :
|
14
|
-
has_many :picture_files, :
|
15
|
-
has_many :participates, :
|
16
|
-
has_many :agents, :
|
12
|
+
belongs_to :event_category, validate: true
|
13
|
+
belongs_to :library, validate: true
|
14
|
+
has_many :picture_files, as: :picture_attachable
|
15
|
+
has_many :participates, dependent: :destroy
|
16
|
+
has_many :agents, through: :participates
|
17
17
|
has_one :event_import_result
|
18
18
|
|
19
19
|
has_event_calendar
|
@@ -27,11 +27,11 @@ class Event < ActiveRecord::Base
|
|
27
27
|
time :end_at
|
28
28
|
end
|
29
29
|
|
30
|
-
validates_presence_of :name, :library, :event_category
|
30
|
+
validates_presence_of :name, :library, :event_category, :start_at, :end_at
|
31
31
|
validates_associated :library, :event_category
|
32
32
|
validate :check_date
|
33
33
|
before_validation :set_date
|
34
|
-
before_validation :set_display_name, :
|
34
|
+
before_validation :set_display_name, on: :create
|
35
35
|
|
36
36
|
paginates_per 10
|
37
37
|
|
@@ -42,12 +42,9 @@ class Event < ActiveRecord::Base
|
|
42
42
|
end
|
43
43
|
|
44
44
|
def set_all_day
|
45
|
-
|
46
|
-
|
47
|
-
if end_at
|
45
|
+
if start_at and end_at
|
46
|
+
self.start_at = start_at.beginning_of_day
|
48
47
|
self.end_at = end_at.end_of_day
|
49
|
-
else
|
50
|
-
self.end_at = start_at.end_of_day
|
51
48
|
end
|
52
49
|
end
|
53
50
|
|
@@ -63,6 +60,31 @@ class Event < ActiveRecord::Base
|
|
63
60
|
def set_display_name
|
64
61
|
self.display_name = name if display_name.blank?
|
65
62
|
end
|
63
|
+
|
64
|
+
def self.export(options = {format: :txt})
|
65
|
+
header = %w(
|
66
|
+
name
|
67
|
+
event_category
|
68
|
+
library
|
69
|
+
start_at
|
70
|
+
end_at
|
71
|
+
all_day
|
72
|
+
).join("\t")
|
73
|
+
events = Event.all.map{|e|
|
74
|
+
lines = []
|
75
|
+
lines << e.name
|
76
|
+
lines << e.event_category.name
|
77
|
+
lines << e.library.name
|
78
|
+
lines << e.start_at
|
79
|
+
lines << e.end_at
|
80
|
+
lines << e.all_day
|
81
|
+
}
|
82
|
+
if options[:format] == :txt
|
83
|
+
events.map{|e| e.join("\t")}.unshift(header).join("\r\n")
|
84
|
+
else
|
85
|
+
event
|
86
|
+
end
|
87
|
+
end
|
66
88
|
end
|
67
89
|
|
68
90
|
# == Schema Information
|
@@ -70,8 +92,8 @@ end
|
|
70
92
|
# Table name: events
|
71
93
|
#
|
72
94
|
# id :integer not null, primary key
|
73
|
-
# library_id :integer
|
74
|
-
# event_category_id :integer
|
95
|
+
# library_id :integer not null
|
96
|
+
# event_category_id :integer not null
|
75
97
|
# name :string(255)
|
76
98
|
# note :text
|
77
99
|
# start_at :datetime
|
@@ -82,4 +104,3 @@ end
|
|
82
104
|
# created_at :datetime not null
|
83
105
|
# updated_at :datetime not null
|
84
106
|
#
|
85
|
-
|
@@ -0,0 +1,51 @@
|
|
1
|
+
class EventExportFile < ActiveRecord::Base
|
2
|
+
include Statesman::Adapters::ActiveRecordModel
|
3
|
+
include ExportFile
|
4
|
+
enju_export_file_model
|
5
|
+
has_attached_file :event_export
|
6
|
+
validates_attachment_content_type :event_export, :content_type => /\Atext\/plain\Z/
|
7
|
+
has_many :event_export_file_transitions
|
8
|
+
|
9
|
+
def state_machine
|
10
|
+
EventExportFileStateMachine.new(self, transition_class: EventExportFileTransition)
|
11
|
+
end
|
12
|
+
|
13
|
+
delegate :can_transition_to?, :transition_to!, :transition_to, :current_state,
|
14
|
+
to: :state_machine
|
15
|
+
|
16
|
+
def export!
|
17
|
+
transition_to!(:started)
|
18
|
+
tempfile = Tempfile.new(['event_export_file_', '.txt'])
|
19
|
+
file = Event.export(format: :txt)
|
20
|
+
tempfile.puts(file)
|
21
|
+
tempfile.close
|
22
|
+
self.event_export = File.new(tempfile.path, "r")
|
23
|
+
if save
|
24
|
+
send_message
|
25
|
+
end
|
26
|
+
transition_to!(:completed)
|
27
|
+
rescue => e
|
28
|
+
transition_to!(:failed)
|
29
|
+
raise e
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
def self.transition_class
|
34
|
+
EventExportFileTransition
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# == Schema Information
|
39
|
+
#
|
40
|
+
# Table name: event_export_files
|
41
|
+
#
|
42
|
+
# id :integer not null, primary key
|
43
|
+
# user_id :integer
|
44
|
+
# event_export_file_name :string(255)
|
45
|
+
# event_export_content_type :string(255)
|
46
|
+
# event_export_file_size :integer
|
47
|
+
# event_export_updated_at :datetime
|
48
|
+
# executed_at :datetime
|
49
|
+
# created_at :datetime not null
|
50
|
+
# updated_at :datetime not null
|
51
|
+
#
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class EventExportFileStateMachine
|
2
|
+
include Statesman::Machine
|
3
|
+
|
4
|
+
state :pending, initial: true
|
5
|
+
state :started
|
6
|
+
state :completed
|
7
|
+
state :failed
|
8
|
+
|
9
|
+
transition from: :pending, to: :started
|
10
|
+
transition from: :started, to: [:completed, :failed]
|
11
|
+
|
12
|
+
after_transition(from: :pending, to: :started) do |event_export_file|
|
13
|
+
event_export_file.update_column(:executed_at, Time.zone.now)
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class EventExportFileTransition < ActiveRecord::Base
|
2
|
+
include Statesman::Adapters::ActiveRecordTransition
|
3
|
+
|
4
|
+
|
5
|
+
belongs_to :event_export_file, inverse_of: :event_export_file_transitions
|
6
|
+
attr_accessible :to_state, :sort_key, :metadata
|
7
|
+
end
|
8
|
+
|
9
|
+
# == Schema Information
|
10
|
+
#
|
11
|
+
# Table name: event_export_file_transitions
|
12
|
+
#
|
13
|
+
# id :integer not null, primary key
|
14
|
+
# to_state :string(255)
|
15
|
+
# metadata :text default("{}")
|
16
|
+
# sort_key :integer
|
17
|
+
# event_export_file_id :integer
|
18
|
+
# created_at :datetime not null
|
19
|
+
# updated_at :datetime not null
|
20
|
+
#
|