mercator_legacy_importer 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +674 -0
  3. data/README.rdoc +6 -0
  4. data/Rakefile +34 -0
  5. data/app/assets/javascripts/mercator_legacy_importer/application.js +13 -0
  6. data/app/assets/stylesheets/mercator_legacy_importer/application.css +13 -0
  7. data/app/controllers/mercator_legacy_importer/application_controller.rb +4 -0
  8. data/app/helpers/mercator_legacy_importer/application_helper.rb +4 -0
  9. data/app/models/mercator_legacy_importer/asset.rb +4 -0
  10. data/app/models/mercator_legacy_importer/attachable.rb +6 -0
  11. data/app/models/mercator_legacy_importer/category.rb +10 -0
  12. data/app/models/mercator_legacy_importer/category_translation.rb +8 -0
  13. data/app/models/mercator_legacy_importer/cms_node.rb +7 -0
  14. data/app/models/mercator_legacy_importer/cms_node_translation.rb +8 -0
  15. data/app/models/mercator_legacy_importer/connector.rb +7 -0
  16. data/app/models/mercator_legacy_importer/content.rb +6 -0
  17. data/app/models/mercator_legacy_importer/content_item.rb +6 -0
  18. data/app/models/mercator_legacy_importer/country.rb +4 -0
  19. data/app/models/mercator_legacy_importer/page_template.rb +8 -0
  20. data/app/models/mercator_legacy_importer/product.rb +12 -0
  21. data/app/models/mercator_legacy_importer/product_overview_property.rb +4 -0
  22. data/app/models/mercator_legacy_importer/product_property.rb +7 -0
  23. data/app/models/mercator_legacy_importer/product_relation.rb +4 -0
  24. data/app/models/mercator_legacy_importer/product_supply.rb +4 -0
  25. data/app/models/mercator_legacy_importer/product_translation.rb +8 -0
  26. data/app/models/mercator_legacy_importer/property.rb +13 -0
  27. data/app/models/mercator_legacy_importer/property_translation.rb +8 -0
  28. data/app/models/mercator_legacy_importer/recommendation.rb +10 -0
  29. data/app/models/mercator_legacy_importer/recommendation_translation.rb +8 -0
  30. data/app/models/mercator_legacy_importer/user.rb +4 -0
  31. data/app/views/layouts/mercator_legacy_importer/application.html.erb +14 -0
  32. data/config/database.yml +13 -0
  33. data/config/routes.rb +2 -0
  34. data/db/migrate/20131202162757_add_legacy_ids.rb +21 -0
  35. data/db/migrate/20131202164442_products_add_legacy_id.rb +9 -0
  36. data/db/migrate/20140103154252_add_legacy_id_to_page.rb +9 -0
  37. data/db/migrate/20140103161205_add_legacy_id_to_page_template.rb +9 -0
  38. data/db/migrate/20140104094617_add_legacy_id_to_feature.rb +9 -0
  39. data/db/migrate/20140107090420_add_legacy_id_to_content_elements.rb +9 -0
  40. data/lib/mercator_legacy_importer/engine.rb +5 -0
  41. data/lib/mercator_legacy_importer/version.rb +3 -0
  42. data/lib/mercator_legacy_importer.rb +4 -0
  43. data/lib/tasks/categories.rb +32 -0
  44. data/lib/tasks/categorizations.rb +35 -0
  45. data/lib/tasks/category_images.rake +49 -0
  46. data/lib/tasks/cms_node_images.rake +91 -0
  47. data/lib/tasks/content_elements.rake +64 -0
  48. data/lib/tasks/countries.rake +14 -0
  49. data/lib/tasks/features.rake +21 -0
  50. data/lib/tasks/mercator_legacy_importer_tasks.rake +34 -0
  51. data/lib/tasks/page_template.rake +13 -0
  52. data/lib/tasks/pages.rake +27 -0
  53. data/lib/tasks/product_images.rake +26 -0
  54. data/lib/tasks/product_relations.rake +21 -0
  55. data/lib/tasks/products.rake +48 -0
  56. data/lib/tasks/properties.rake +45 -0
  57. data/lib/tasks/recommendations.rake +28 -0
  58. data/lib/tasks/remaining_assets.rake +37 -0
  59. data/lib/tasks/remaining_images.rake +38 -0
  60. data/lib/tasks/supply_relations.rake +21 -0
  61. data/lib/tasks/unlinked_content_elements.rake +60 -0
  62. data/lib/tasks/unlinked_content_items.rake +26 -0
  63. data/lib/tasks/users.rake +13 -0
  64. data/test/dummy/README.rdoc +28 -0
  65. data/test/dummy/Rakefile +6 -0
  66. data/test/dummy/app/assets/javascripts/application.js +13 -0
  67. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  68. data/test/dummy/app/controllers/application_controller.rb +5 -0
  69. data/test/dummy/app/helpers/application_helper.rb +2 -0
  70. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  71. data/test/dummy/bin/bundle +3 -0
  72. data/test/dummy/bin/rails +4 -0
  73. data/test/dummy/bin/rake +4 -0
  74. data/test/dummy/config/application.rb +23 -0
  75. data/test/dummy/config/boot.rb +5 -0
  76. data/test/dummy/config/database.yml +25 -0
  77. data/test/dummy/config/environment.rb +5 -0
  78. data/test/dummy/config/environments/development.rb +29 -0
  79. data/test/dummy/config/environments/production.rb +80 -0
  80. data/test/dummy/config/environments/test.rb +36 -0
  81. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  82. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  83. data/test/dummy/config/initializers/inflections.rb +16 -0
  84. data/test/dummy/config/initializers/mime_types.rb +5 -0
  85. data/test/dummy/config/initializers/secret_token.rb +12 -0
  86. data/test/dummy/config/initializers/session_store.rb +3 -0
  87. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  88. data/test/dummy/config/locales/en.yml +23 -0
  89. data/test/dummy/config/routes.rb +4 -0
  90. data/test/dummy/config.ru +4 -0
  91. data/test/dummy/public/404.html +58 -0
  92. data/test/dummy/public/422.html +58 -0
  93. data/test/dummy/public/500.html +57 -0
  94. data/test/dummy/public/favicon.ico +0 -0
  95. data/test/integration/navigation_test.rb +10 -0
  96. data/test/mercator_legacy_importer_test.rb +7 -0
  97. data/test/test_helper.rb +15 -0
  98. metadata +201 -0
@@ -0,0 +1,64 @@
1
+ def import_content_elements
2
+ puts "\n\nContent Elements:"
3
+
4
+ @legacy_contents = []
5
+
6
+ # Legacy::CmsNode.where(name: "main").each do |legacy_cms_node|
7
+ # Legacy::CmsNode.where(name: "overview").each do |legacy_cms_node|
8
+ Legacy::CmsNode.where(name: "slogan").each do |legacy_cms_node|
9
+
10
+ page = Page.where(legacy_id: legacy_cms_node.parent_id).first
11
+
12
+ legacy_cms_node.connectors.each do |legacy_connector|
13
+ if legacy_connector.position != 1
14
+ @used_as = legacy_cms_node.name + legacy_connector.position.to_s
15
+ else
16
+ @used_as = legacy_cms_node.name
17
+ end
18
+
19
+ @locale = legacy_connector.locale
20
+
21
+ legacy_content = legacy_connector.content
22
+
23
+ legacy_id = legacy_cms_node.id
24
+
25
+ content_element = ContentElement.find_or_initialize_by(legacy_id: legacy_id)
26
+ content_element.markup = "html"
27
+ content_element.name_de = legacy_content.name if @locale == "de"
28
+ content_element.name_en = legacy_content.name if @locale == "en"
29
+
30
+ Legacy::ContentItem.where(content_id: legacy_content.id).each do |legacy_content_item|
31
+
32
+ debugger unless ["text", "slogan", "content"].include?(legacy_content_item.key)
33
+
34
+ content_element.content_de = legacy_content_item.value if @locale == "de"
35
+ content_element.content_en = legacy_content_item.value if @locale == "en"
36
+ legacy_content_item.delete()
37
+ end
38
+
39
+ if content_element.save
40
+ print "C"
41
+ else
42
+ puts "\nFAILURE: ContentElement: " + content_element.errors.first.to_s
43
+ end
44
+
45
+ pcea = PageContentElementAssignment.find_or_initialize_by(used_as: @used_as,
46
+ page_id: page.id,
47
+ content_element_id: content_element.id)
48
+ if pcea.save
49
+ print "A"
50
+ else
51
+ puts "\nFAILURE: PageContentElementAssignment: " + pcea.errors.first.to_s
52
+ end
53
+
54
+ @legacy_contents << legacy_content
55
+ legacy_connector.delete()
56
+ end
57
+ legacy_cms_node.delete()
58
+ end
59
+
60
+ @legacy_contents.each do |legacy_content|
61
+ legacy_content.delete()
62
+ end
63
+
64
+ end
@@ -0,0 +1,14 @@
1
+ def import_countries
2
+ puts "\n\nCountries:"
3
+
4
+ Legacy::Country.all.each do |legacy_country|
5
+ country = Country.find_or_initialize_by_name_de(legacy_country.country_name)
6
+ if country.update_attributes(name_en: legacy_country.country_name,
7
+ code: legacy_country.country_a2,
8
+ legacy_id: legacy_country.id)
9
+ print "C"
10
+ else
11
+ puts "\nFAILURE: Country: " + country.errors.first.to_s
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,21 @@
1
+ def import_features
2
+ puts "\n\nFeatures:"
3
+
4
+ n=1
5
+ Legacy::ProductOverviewProperty.all.each do |legacy_product_overview_property|
6
+ legacy_product = Product.find_by_legacy_id(legacy_product_overview_property.product_id)
7
+ unless legacy_product
8
+ puts "\nFAILURE: Product not found: " + legacy_product_overview_property.product_id.to_s
9
+ next
10
+ end
11
+ feature = Feature.create(text_de: legacy_product_overview_property.description,
12
+ position: ( legacy_product_overview_property.order || n = n + 1 ),
13
+ product_id: legacy_product.id,
14
+ legacy_id: legacy_product_overview_property.id)
15
+ if feature.save
16
+ print "F"
17
+ else
18
+ puts "\nFAILURE: Feature: " + feature.errors.first.to_s
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,34 @@
1
+ # encoding: utf-8
2
+ require 'faker'
3
+ require 'require_all'
4
+ $stdout.sync = true
5
+
6
+ namespace :import do
7
+ # starten als: 'bundle exec rake import:legacy
8
+ # in Produktivumgebungen: 'bundle exec rake import:legacy RAILS_ENV=production'
9
+ desc "Import from legacy webshop"
10
+ task :legacy => :environment do
11
+
12
+ require_rel "import"
13
+ # import_users()
14
+ # import_countries()
15
+ # import_categories()
16
+ # import_products()
17
+ # import_properties()
18
+ # import_features()
19
+ # import_categorizations()
20
+ # import_product_images()
21
+ # import_product_relations()
22
+ # import_supply_relations()
23
+ # import_recommendations()
24
+ # import_page_templates()
25
+ # import_pages()
26
+ # import_content_elements()
27
+ # import_category_images()
28
+ # import_cms_node_images()
29
+ # import_unlinked_content_items()
30
+ # import_remaining_images()
31
+ # import_remaining_assets()
32
+ puts
33
+ end
34
+ end
@@ -0,0 +1,13 @@
1
+ def import_page_templates
2
+ puts "\n\nPage Templates:"
3
+
4
+ Legacy::PageTemplate.all.each do |legacy_page_template|
5
+ if page_template = PageTemplate.create(name: legacy_page_template.name,
6
+ content: legacy_page_template.content,
7
+ legacy_id: legacy_page_template.id)
8
+ print "T"
9
+ else
10
+ puts "\nFAILURE: PageTemplate: " + page_template.errors.first.to_s
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,27 @@
1
+ def import_pages
2
+ puts "\n\nPages:"
3
+
4
+ Legacy::CmsNode.where(typus: "Page").each do |legacy_cms_node|
5
+ legacy_cms_node_de = legacy_cms_node.cms_node_translations.german.first
6
+ legacy_cms_node_en = legacy_cms_node.cms_node_translations.english.first
7
+
8
+ page_template = PageTemplate.where(legacy_id: legacy_cms_node.page_template_id).first
9
+ parent = Page.where(legacy_id: legacy_cms_node.parent_id).first
10
+
11
+ status = legacy_cms_node.state
12
+ status = "published_but_hidden" if legacy_cms_node.hide_from_menu? && legacy_cms_node.state == "published"
13
+ page = Page.new(title_de: ( legacy_cms_node_de.title.present? ? legacy_cms_node_de.title : legacy_cms_node.name ),
14
+ title_en: legacy_cms_node_en.title,
15
+ url: legacy_cms_node.url,
16
+ position: legacy_cms_node.position,
17
+ parent_id: ( parent.id if parent ),
18
+ page_template_id: page_template.id,
19
+ legacy_id: legacy_cms_node.id)
20
+ page.state = status
21
+ if page.save
22
+ print "P"
23
+ else
24
+ puts "\nFAILURE: Page: " + page.errors.first.to_s
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,26 @@
1
+ def import_product_images
2
+ require 'net/http'
3
+ puts "\n\nProduct Images:"
4
+
5
+ Net::HTTP.start("www.iv-shop.at") do |http|
6
+ Legacy::Product.all.each do |legacy_product|
7
+ if legacy_product.image_file_name || legacy_product.overview_file_name
8
+ product = Product.find_by_legacy_id(legacy_product.id)
9
+ filename = "/system/images/" + legacy_product.id.to_s +
10
+ "/original/" + legacy_product.image_file_name.presence ||
11
+ legacy_product.overview_file_name
12
+ data = StringIO.new(http.get(filename).body)
13
+ data.class.class_eval { attr_accessor :original_filename }
14
+ data.original_filename = legacy_product.image_file_name.presence || legacy_product.overview_file_name
15
+ product.photo = data
16
+ if product.save
17
+ print "P"
18
+ else
19
+ puts "\nFAILURE: Image: " + product.errors.first.to_s
20
+ end
21
+ else
22
+ print "."
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,21 @@
1
+ def import_product_relations
2
+ puts "\n\nProductRelations:"
3
+
4
+ Legacy::ProductRelation.all.each do |legacy_product_relation|
5
+ if product = Product.find_by(legacy_id: legacy_product_relation.product_id)
6
+ if related_product = Product.find_by(legacy_id: legacy_product_relation.related_product_id)
7
+
8
+ if productrelation = Productrelation.create(product_id: product.id,
9
+ related_product_id: related_product.id)
10
+ print "P"
11
+ else
12
+ puts "\nFAILURE: Productrelation: " + productrelation.errors.first.to_s
13
+ end
14
+ else
15
+ puts "\n FAIILURE: Product not found"
16
+ end
17
+ else
18
+ puts "\n FAIILURE: RelatedProduct not found"
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,48 @@
1
+ def import_products
2
+ puts "\n\nProducts:"
3
+ Product.all.each do |product|
4
+ product.delete
5
+ end
6
+ print "Products deleted."
7
+
8
+ Legacy::Product.all.each do |legacy_product|
9
+ legacy_product_de = legacy_product.product_translations.german.first
10
+ legacy_product_en = legacy_product.product_translations.english.first
11
+
12
+ if legacy_product_de && legacy_product_de.title.present?
13
+ name_de = legacy_product_de.title
14
+ else
15
+ name_de = legacy_product.name
16
+ end
17
+
18
+ if legacy_product_de && legacy_product_de.long_description.present?
19
+ description_de = legacy_product_de.long_description
20
+ else
21
+ description_de = "fehlt"
22
+ end
23
+
24
+ if legacy_product_en && legacy_product_en.title.present?
25
+ name_en = legacy_product_en.title
26
+ else
27
+ name_en = legacy_product.name
28
+ end
29
+
30
+ if legacy_product_en && legacy_product_en.long_description.present?
31
+ description_en = legacy_product_en.long_description
32
+ else
33
+ description_en = "missing"
34
+ end
35
+
36
+ product = Product.create(number: legacy_product.article_number,
37
+ name_de: name_de,
38
+ name_en: name_en,
39
+ description_de: description_de,
40
+ description_en: description_en,
41
+ legacy_id: legacy_product.id)
42
+ if product.save
43
+ print "P"
44
+ else
45
+ puts "\nFAILURE: Product: " + product.errors.first.to_s
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,45 @@
1
+ def import_properties
2
+ # puts "\n\nProperty Groups and Properties:"
3
+ # Property.all.each do |property|
4
+ # property.delete
5
+ # end
6
+ # print "Properties deleted."
7
+ # PropertyGroup.all.each do |property_group|
8
+ # property_group.delete
9
+ # end
10
+ # print "Property Groups deleted."
11
+
12
+ Legacy::Product.all.each do |legacy_product|
13
+ product = Product.find_by_legacy_id(legacy_product.id)
14
+ legacy_product.properties.each do |legacy_property|
15
+ # next if legacy_property.id < 21050
16
+ legacy_property_de = legacy_property.property_translations.german.first
17
+ legacy_property_en = legacy_property.property_translations.english.first
18
+
19
+ property_group =
20
+ PropertyGroup.find_or_initialize_by_name_de_and_product_id(
21
+ legacy_property_de.group.presence || legacy_property_de.name,
22
+ product.id)
23
+ if property_group.update_attributes(name_en: legacy_property_en.group.presence ||
24
+ legacy_property_en.name,
25
+ position: 1)
26
+ print "G"
27
+
28
+ property = Property.create(name_de: legacy_property_de.name,
29
+ property_group_id: property_group.id,
30
+ name_en: legacy_property_en.name,
31
+ description_de: legacy_property.presentation_value,
32
+ description_en: legacy_property.presentation_value,
33
+ position: 1,
34
+ legacy_id: legacy_property.id)
35
+ if property.save
36
+ print "p"
37
+ else
38
+ puts "\nFAILURE: Property: " + property.errors.first.to_s
39
+ end
40
+ else
41
+ puts "\nFAILURE: PropertyGroup: " + property_group.errors.first.to_s
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,28 @@
1
+ def import_recommendations
2
+ puts "\n\nRecommendations:"
3
+
4
+ Legacy::Recommendation.all.each do |legacy_recommendation|
5
+ legacy_reason_de = legacy_recommendation.recommendation_translations.german.first
6
+ legacy_reason_en = legacy_recommendation.recommendation_translations.english.first
7
+
8
+ next if legacy_recommendation.from_product_id.nil?
9
+ if product = Product.find_by(legacy_id: legacy_recommendation.from_product_id)
10
+ next if legacy_recommendation.for_product_id.blank?
11
+ if recommendation = Product.find_by(number: legacy_recommendation.for_product_id)
12
+
13
+ if recommendation = Recommendation.create(product_id: product.id,
14
+ recommended_product_id: recommendation.id,
15
+ reason_de: legacy_reason_de.description,
16
+ reason_en: legacy_reason_en.description)
17
+ print "R"
18
+ else
19
+ puts "\nFAILURE: Recommendation: " + recommendation.errors.first.to_s
20
+ end
21
+ else
22
+ puts "\n FAIILURE: Recommended product not found: " + legacy_recommendation.for_product_id
23
+ end
24
+ else
25
+ puts "\n FAIILURE: Product not found: " + legacy_recommendation.from_product_id.to_s
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,37 @@
1
+ def import_remaining_assets
2
+ require 'net/http'
3
+ puts "\n\nCMS Assets:"
4
+
5
+ Net::HTTP.start("www.iv-shop.at") do |http|
6
+ Legacy::Asset.where(data_content_type: "application/pdf").each do |legacy_asset|
7
+
8
+ if ContentElement.find_by(name_de: legacy_asset.data_file_name, markup: "html")
9
+ puts "\nFAILURE: Image exists " + legacy_asset.data_file_name
10
+ legacy_asset.delete()
11
+ next
12
+ end
13
+
14
+ content_element = ContentElement.new(name_de: legacy_asset.data_file_name, markup: "html")
15
+
16
+ filename = "/system/datas/" + legacy_asset.id.to_s + "/original/" + legacy_asset.data_file_name
17
+ data = StringIO.new(http.get(filename).body)
18
+ unless data
19
+ puts "\nFAILURE: Image not found " + filename
20
+ next
21
+ end
22
+
23
+ data.class.class_eval { attr_accessor :original_filename }
24
+ data.original_filename = legacy_asset.data_file_name
25
+
26
+ content_element.document = data
27
+
28
+ if content_element.save
29
+ print "C"
30
+ else
31
+ puts "\nFAILURE: ContentElement: " + content_element.errors.first.to_s
32
+ end
33
+
34
+ legacy_asset.delete()
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,38 @@
1
+ def import_remaining_images
2
+ require 'net/http'
3
+ puts "\n\nCMS Images:"
4
+
5
+ Net::HTTP.start("www.iv-shop.at") do |http|
6
+ Legacy::Content.where(typus: "ImageContent").each do |legacy_content|
7
+
8
+ content_element = ContentElement.new(name_de: legacy_content.name, markup: "html")
9
+
10
+ legacy_attachable = Legacy::Attachable.where(attachable_type: "Content", attachable_id: legacy_content.id).first
11
+ unless legacy_attachable
12
+ puts "\nFAILURE: Attachable not found " + legacy_content.id.to_s
13
+ next
14
+ end
15
+
16
+ filename = "/system/datas/" + legacy_attachable.asset_id.to_s + "/original/" + legacy_content.name
17
+ data = StringIO.new(http.get(filename).body)
18
+ unless data
19
+ puts "\nFAILURE: Image not found " + filename
20
+ next
21
+ end
22
+
23
+ data.class.class_eval { attr_accessor :original_filename }
24
+ data.original_filename = legacy_content.name
25
+
26
+ content_element.photo = data
27
+
28
+ if content_element.save
29
+ print "C"
30
+ else
31
+ puts "\nFAILURE: ContentElement: " + content_element.errors.first.to_s
32
+ end
33
+
34
+ legacy_content.delete()
35
+ legacy_attachable.delete()
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,21 @@
1
+ def import_supply_relations
2
+ puts "\n\nSupplyRelations:"
3
+
4
+ Legacy::ProductSupply.all.each do |legacy_product_supply|
5
+ if product = Product.find_by(legacy_id: legacy_product_supply.product_id)
6
+ if supply = Product.find_by(legacy_id: legacy_product_supply.supply_id)
7
+
8
+ if supplyrelation = Supplyrelation.create(product_id: product.id,
9
+ supply_id: supply.id)
10
+ print "S"
11
+ else
12
+ puts "\nFAILURE: Supplyrelation: " + supplyrelation.errors.first.to_s
13
+ end
14
+ else
15
+ puts "\n FAIILURE: Product not found"
16
+ end
17
+ else
18
+ puts "\n FAIILURE: Supply not found"
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,60 @@
1
+ def import_content_items
2
+ puts "\n\nUnlinked Content Elements:"
3
+
4
+ Legacy::content_itemsCmsNode.where(name: "slogan").each do |legacy_cms_node|
5
+
6
+ page = Page.where(legacy_id: legacy_cms_node.parent_id).first
7
+
8
+ legacy_cms_node.connectors.each do |legacy_connector|
9
+ if legacy_connector.position != 1
10
+ @used_as = legacy_cms_node.name + legacy_connector.position.to_s
11
+ else
12
+ @used_as = legacy_cms_node.name
13
+ end
14
+
15
+ @locale = legacy_connector.locale
16
+
17
+ legacy_content = legacy_connector.content
18
+
19
+ legacy_id = legacy_cms_node.id
20
+
21
+ content_element = ContentElement.find_or_initialize_by(legacy_id: legacy_id)
22
+ content_element.markup = "html"
23
+ content_element.name_de = legacy_content.name if @locale == "de"
24
+ content_element.name_en = legacy_content.name if @locale == "en"
25
+
26
+ Legacy::ContentItem.where(content_id: legacy_content.id).each do |legacy_content_item|
27
+
28
+ debugger unless ["text", "slogan", "content"].include?(legacy_content_item.key)
29
+
30
+ content_element.content_de = legacy_content_item.value if @locale == "de"
31
+ content_element.content_en = legacy_content_item.value if @locale == "en"
32
+ legacy_content_item.delete()
33
+ end
34
+
35
+ if content_element.save
36
+ print "C"
37
+ else
38
+ puts "\nFAILURE: ContentElement: " + content_element.errors.first.to_s
39
+ end
40
+
41
+ pcea = PageContentElementAssignment.find_or_initialize_by(used_as: @used_as,
42
+ page_id: page.id,
43
+ content_element_id: content_element.id)
44
+ if pcea.save
45
+ print "A"
46
+ else
47
+ puts "\nFAILURE: PageContentElementAssignment: " + pcea.errors.first.to_s
48
+ end
49
+
50
+ @legacy_contents << legacy_content
51
+ legacy_connector.delete()
52
+ end
53
+ legacy_cms_node.delete()
54
+ end
55
+
56
+ @legacy_contents.each do |legacy_content|
57
+ legacy_content.delete()
58
+ end
59
+
60
+ end
@@ -0,0 +1,26 @@
1
+ def import_unlinked_content_items
2
+ puts "\n\nUnlinked Content Elements:"
3
+
4
+ Legacy::ContentItem.where(typ: "text").each do |legacy_content_item|
5
+
6
+ content_element = ContentElement.find_or_initialize_by(content_de: legacy_content_item.value)
7
+
8
+ if legacy_content_item.content
9
+ name = legacy_content_item.content.name
10
+ else
11
+ name = "unbekannt"
12
+ end
13
+ content_element.name_de = name
14
+
15
+ content_element.markup = "html"
16
+
17
+ if content_element.save
18
+ print "C"
19
+ legacy_content_item.content.delete() if legacy_content_item.content
20
+ legacy_content_item.delete()
21
+ else
22
+ puts "\nFAILURE: ContentElement: " + content_element.errors.first.to_s
23
+ end
24
+
25
+ end
26
+ end
@@ -0,0 +1,13 @@
1
+ def import_users
2
+ puts "\nUsers:"
3
+
4
+ Legacy::User.all.each do |legacy_user|
5
+ user = User.find_or_initialize_by_name(legacy_user.name)
6
+ if user.update_attributes(email_address: legacy_user.email,
7
+ legacy_id: legacy_user.id)
8
+ print "U"
9
+ else
10
+ puts "\nFAILURE: User: " + user.errors.first.to_s
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,28 @@
1
+ == README
2
+
3
+ This README would normally document whatever steps are necessary to get the
4
+ application up and running.
5
+
6
+ Things you may want to cover:
7
+
8
+ * Ruby version
9
+
10
+ * System dependencies
11
+
12
+ * Configuration
13
+
14
+ * Database creation
15
+
16
+ * Database initialization
17
+
18
+ * How to run the test suite
19
+
20
+ * Services (job queues, cache servers, search engines, etc.)
21
+
22
+ * Deployment instructions
23
+
24
+ * ...
25
+
26
+
27
+ Please feel free to use a different markup language if you do not plan to run
28
+ <tt>rake doc:app</tt>.
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require File.expand_path('../config/application', __FILE__)
5
+
6
+ Dummy::Application.load_tasks
@@ -0,0 +1,13 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // compiled file.
9
+ //
10
+ // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
11
+ // about supported directives.
12
+ //
13
+ //= require_tree .
@@ -0,0 +1,13 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the top of the
9
+ * compiled file, but it's generally better to create a new file per style scope.
10
+ *
11
+ *= require_self
12
+ *= require_tree .
13
+ */
@@ -0,0 +1,5 @@
1
+ class ApplicationController < ActionController::Base
2
+ # Prevent CSRF attacks by raising an exception.
3
+ # For APIs, you may want to use :null_session instead.
4
+ protect_from_forgery with: :exception
5
+ end
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Dummy</title>
5
+ <%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
6
+ <%= javascript_include_tag "application", "data-turbolinks-track" => true %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+ <body>
10
+
11
+ <%= yield %>
12
+
13
+ </body>
14
+ </html>
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
3
+ load Gem.bin_path('bundler', 'bundle')
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
3
+ require_relative '../config/boot'
4
+ require 'rails/commands'
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require_relative '../config/boot'
3
+ require 'rake'
4
+ Rake.application.run