erp_orders 3.0.6 → 3.1.0

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 (67) hide show
  1. data/app/models/charge_line.rb +20 -19
  2. data/app/models/charge_line_payment_txn.rb +2 -0
  3. data/app/models/line_item_role_type.rb +2 -0
  4. data/app/models/order_line_item.rb +1 -0
  5. data/app/models/order_line_item_pty_role.rb +8 -7
  6. data/app/models/order_line_item_type.rb +2 -0
  7. data/app/models/order_txn.rb +2 -0
  8. data/app/models/order_txn_type.rb +2 -0
  9. data/db/migrate/20080805000060_base_orders.rb +2 -0
  10. data/lib/erp_orders.rb +2 -0
  11. data/lib/erp_orders/version.rb +2 -2
  12. data/public/javascripts/erp_app/desktop/applications/order_manager/line_items_grid_panel.js +1 -1
  13. data/public/javascripts/erp_app/desktop/applications/order_manager/payments_grid_panel.js +1 -1
  14. data/public/javascripts/erp_app/organizer/applications/order_management/line_items_grid_panel.js +1 -1
  15. data/public/javascripts/erp_app/organizer/applications/order_management/payments_grid_panel.js +1 -1
  16. data/spec/dummy/config/application.rb +6 -0
  17. data/spec/dummy/config/environments/spec.rb +3 -0
  18. data/spec/dummy/db/data_migrations/20101011152441_payment_gateway_actions.erp_commerce.rb +28 -0
  19. data/spec/dummy/db/data_migrations/20101014142230_financial_txn_types.erp_txns_and_accts.rb +16 -0
  20. data/spec/dummy/db/data_migrations/20110109173616_create_capability_scope_types.erp_tech_svcs.rb +15 -0
  21. data/spec/dummy/db/data_migrations/20110324010232_product_role_types.erp_products.rb +24 -0
  22. data/spec/dummy/db/data_migrations/20110525001935_add_usd_currency.erp_base_erp_svcs.rb +12 -0
  23. data/spec/dummy/db/data_migrations/20110527160807_add_default_prod_avail_types.erp_products.rb +27 -0
  24. data/spec/dummy/db/data_migrations/20110605231556_create_order_party_roles.erp_orders.rb +24 -0
  25. data/spec/dummy/db/data_migrations/20110609150135_add_iso_codes.erp_base_erp_svcs.rb +19 -0
  26. data/spec/dummy/db/data_migrations/20110728201729_erp_app_setup.erp_app.rb +252 -0
  27. data/spec/dummy/db/data_migrations/20110728201730_create_desktop_app_product_manager.erp_products.rb +26 -0
  28. data/spec/dummy/db/data_migrations/20110728201731_create_desktop_app_order_manager.erp_orders.rb +26 -0
  29. data/spec/dummy/db/data_migrations/20110728201732_create_organizer_app_order_management.erp_orders.rb +15 -0
  30. data/spec/dummy/db/data_migrations/20110728201733_update_preferences.erp_app.rb +53 -0
  31. data/spec/dummy/db/data_migrations/20110802200222_schedule_delete_expired_sessions_job.erp_tech_svcs.rb +16 -0
  32. data/spec/dummy/db/data_migrations/20110816161238_create_desktop_app_audit_log_viewer.erp_app.rb +21 -0
  33. data/spec/dummy/db/data_migrations/20110817160743_add_file_manager_application.erp_app.rb +32 -0
  34. data/spec/dummy/db/data_migrations/20110913145838_setup_compass_ae_instance.erp_base_erp_svcs.rb +12 -0
  35. data/spec/dummy/db/data_migrations/20111108183739_add_default_capabilities.erp_app.rb +23 -0
  36. data/spec/dummy/db/data_migrations/20111108183740_add_new_contact_widgets.erp_app.rb +42 -0
  37. data/spec/dummy/db/data_migrations/20111111144706_setup_audit_log_types.erp_tech_svcs.rb +22 -0
  38. data/spec/dummy/db/data_migrations/20120109173616_create_download_capability_type.erp_tech_svcs.rb +14 -0
  39. data/spec/dummy/db/data_migrations/20120229160222_add_userinfo_widget.erp_app.rb +29 -0
  40. data/spec/dummy/db/data_migrations/20120229174343_add_orders_widget.erp_orders.rb +29 -0
  41. data/spec/dummy/db/data_migrations/20120405193721_create_party_and_role_type_for_communication_events.erp_app.rb +11 -0
  42. data/spec/dummy/db/data_migrations/20120411180756_create_user_management_mobile_application.erp_app.rb +19 -0
  43. data/spec/dummy/db/data_migrations/20120418164215_create_configuration_management_desktop_application.erp_app.rb +23 -0
  44. data/spec/dummy/db/data_migrations/20121116155018_create_group_relationship_and_role_types.erp_tech_svcs.rb +20 -0
  45. data/spec/dummy/db/data_migrations/20121130201859_upgrade_remove_system_mgmt_app.erp_app.rb +16 -0
  46. data/spec/dummy/db/data_migrations/20121130212146_note_capabilities.erp_tech_svcs.rb +24 -0
  47. data/spec/dummy/db/data_migrations/20121218175028_create_security_management_desktop_application.erp_app.rb +23 -0
  48. data/spec/dummy/db/migrate/20130107214803_base_erp_services.erp_base_erp_svcs.rb +461 -0
  49. data/spec/dummy/db/migrate/20130107214804_base_orders.erp_orders.rb +178 -0
  50. data/spec/dummy/db/migrate/20130107214805_base_tech_services.erp_tech_svcs.rb +271 -0
  51. data/spec/dummy/db/migrate/20130107214806_create_has_attribute_tables.erp_tech_svcs.rb +39 -0
  52. data/spec/dummy/db/migrate/20130107214807_create_groups.erp_tech_svcs.rb +19 -0
  53. data/spec/dummy/db/migrate/20130107214808_upgrade_security.erp_tech_svcs.rb +54 -0
  54. data/spec/dummy/db/migrate/20130107214809_upgrade_security2.erp_tech_svcs.rb +270 -0
  55. data/spec/dummy/db/migrate/20130107214810_base_products.erp_products.rb +234 -0
  56. data/spec/dummy/db/migrate/20130107214811_base_products_indexes.erp_products.rb +59 -0
  57. data/spec/dummy/db/migrate/20130107214812_base_txns_and_accts.erp_txns_and_accts.rb +364 -0
  58. data/spec/dummy/db/migrate/20130107214813_agreements_services.erp_agreements.rb +160 -0
  59. data/spec/dummy/db/migrate/20130107214814_agreements_services_indexes.erp_agreements.rb +52 -0
  60. data/spec/dummy/db/migrate/20130107214815_base_app_framework.erp_app.rb +276 -0
  61. data/spec/dummy/db/migrate/20130107214816_erp_commerce_base.erp_commerce.rb +442 -0
  62. data/spec/dummy/db/schema.rb +1821 -0
  63. data/spec/dummy/db/spec.sqlite3 +0 -0
  64. data/spec/dummy/log/spec.log +12158 -0
  65. data/spec/spec_helper.rb +11 -3
  66. metadata +128 -14
  67. data/db/migrate/20110602194707_update_order_txn_ship_to_bill_to.rb +0 -25
@@ -1,22 +1,23 @@
1
1
  class ChargeLine < ActiveRecord::Base
2
-
3
- belongs_to :charged_item, :polymorphic => true
4
- belongs_to :money
5
- has_many :charge_line_payment_txns, :dependent => :destroy
6
- has_many :financial_txns, :through => :charge_line_payment_txns, :source => :financial_txn,
7
- :conditions => ["charge_line_payment_txns.payment_txn_type = ?", 'FinancialTxn']
8
-
9
- def payment_txns
10
- self.financial_txns
11
- end
12
-
13
- def add_payment_txn(payment_txn)
14
- charge_line_payment_txn = ChargeLinePaymentTxn.new
15
- charge_line_payment_txn.charge_line = self
16
- charge_line_payment_txn.payment_txn = payment_txn
17
- charge_line_payment_txn.save
18
- charge_line_payment_txns << charge_line_payment_txn
19
- self.save
20
- end
2
+ attr_protected :created_at, :updated_at
3
+
4
+ belongs_to :charged_item, :polymorphic => true
5
+ belongs_to :money
6
+ has_many :charge_line_payment_txns, :dependent => :destroy
7
+ has_many :financial_txns, :through => :charge_line_payment_txns, :source => :financial_txn,
8
+ :conditions => ["charge_line_payment_txns.payment_txn_type = ?", 'FinancialTxn']
9
+
10
+ def payment_txns
11
+ self.financial_txns
12
+ end
13
+
14
+ def add_payment_txn(payment_txn)
15
+ charge_line_payment_txn = ChargeLinePaymentTxn.new
16
+ charge_line_payment_txn.charge_line = self
17
+ charge_line_payment_txn.payment_txn = payment_txn
18
+ charge_line_payment_txn.save
19
+ charge_line_payment_txns << charge_line_payment_txn
20
+ self.save
21
+ end
21
22
 
22
23
  end
@@ -1,4 +1,6 @@
1
1
  class ChargeLinePaymentTxn < ActiveRecord::Base
2
+ attr_protected :created_at, :updated_at
3
+
2
4
  belongs_to :charge_line
3
5
  belongs_to :payment_txn, :polymorphic => true
4
6
  belongs_to :financial_txn, :class_name => "FinancialTxn",:foreign_key => "payment_txn_id"
@@ -1,4 +1,6 @@
1
1
  class LineItemRoleType < ActiveRecord::Base
2
+ attr_protected :created_at, :updated_at
3
+
2
4
  acts_as_nested_set
3
5
  include ErpTechSvcs::Utils::DefaultNestedSetMethods
4
6
  end
@@ -1,4 +1,5 @@
1
1
  class OrderLineItem < ActiveRecord::Base
2
+ attr_protected :created_at, :updated_at
2
3
 
3
4
  belongs_to :order_txn, :class_name => 'OrderTxn'
4
5
  belongs_to :order_line_item_type
@@ -1,13 +1,14 @@
1
1
  class OrderLineItemPtyRole < ActiveRecord::Base
2
+ attr_protected :created_at, :updated_at
2
3
 
3
4
  #***************************************************************************
4
5
  # Who's booking? Who's staying? Who's paying? These role types can be
5
6
  # played by different people by implementing this structure
6
7
  #***************************************************************************
7
8
 
8
- belongs_to :order_line_item
9
- belongs_to :party
10
- belongs_to :line_item_role_type
9
+ belongs_to :order_line_item
10
+ belongs_to :party
11
+ belongs_to :line_item_role_type
11
12
 
12
13
  #***************************************************************************
13
14
  # The association of a transaction to an account happens in the context of
@@ -20,16 +21,16 @@ class OrderLineItemPtyRole < ActiveRecord::Base
20
21
  # In this case, we have an optional account reference here so that orders
21
22
  # can be split across accounts.
22
23
  #***************************************************************************
23
-
24
- belongs_to :bix_txn_acct_root
24
+
25
+ belongs_to :bix_txn_acct_root
25
26
 
26
27
  def to_label
27
28
  "#{party.description}"
28
29
  end
29
-
30
+
30
31
  def description
31
32
  "#{party.description}"
32
33
  end
33
-
34
+
34
35
 
35
36
  end
@@ -1,4 +1,6 @@
1
1
  class OrderLineItemType < ActiveRecord::Base
2
+ attr_protected :created_at, :updated_at
3
+
2
4
  acts_as_nested_set
3
5
  include ErpTechSvcs::Utils::DefaultNestedSetMethods
4
6
  end
@@ -1,4 +1,6 @@
1
1
  class OrderTxn < ActiveRecord::Base
2
+ attr_protected :created_at, :updated_at
3
+
2
4
  acts_as_biz_txn_event
3
5
 
4
6
  belongs_to :order_txn_record, :polymorphic => true
@@ -1,4 +1,6 @@
1
1
  class OrderTxnType < ActiveRecord::Base
2
+ attr_protected :created_at, :updated_at
3
+
2
4
  acts_as_nested_set
3
5
  include ErpTechSvcs::Utils::DefaultNestedSetMethods
4
6
  end
@@ -16,6 +16,8 @@ class BaseOrders < ActiveRecord::Migration
16
16
  t.column :ship_to_last_name, :string
17
17
  t.column :ship_to_address_line_1, :string
18
18
  t.column :ship_to_address_line_2, :string
19
+ t.column :bill_to_address_line_1, :string
20
+ t.column :bill_to_address_line_2, :string
19
21
  t.column :ship_to_city, :string
20
22
  t.column :ship_to_state, :string
21
23
  t.column :ship_to_postal_code, :string
data/lib/erp_orders.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require 'erp_base_erp_svcs'
2
+
1
3
  require "erp_orders/version"
2
4
  require "erp_orders/extensions"
3
5
  require "erp_orders/engine"
@@ -1,8 +1,8 @@
1
1
  module ErpOrders
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 3
4
- MINOR = 0
5
- TINY = 6
4
+ MINOR = 1
5
+ TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].compact.join('.')
8
8
  end
@@ -34,7 +34,7 @@ Ext.define("Compass.ErpApp.Desktop.Applications.OrderManager.OrderLineItemsGridP
34
34
  'sku',
35
35
  {
36
36
  name:'price',
37
- type:'decimal'
37
+ type:'float'
38
38
  },
39
39
  'currency_display',
40
40
  'id'
@@ -32,7 +32,7 @@ Ext.define("Compass.ErpApp.Desktop.Applications.OrderManager.PaymentsGridPanel",
32
32
  'created_at',
33
33
  {
34
34
  name:'amount',
35
- type:'decimal'
35
+ type:'float'
36
36
  },
37
37
  'currency_display',
38
38
  'id',
@@ -33,7 +33,7 @@ Ext.define("Compass.ErpApp.Organizer.Applications.OrderManagement.OrderLineItems
33
33
  'sku',
34
34
  {
35
35
  name:'price',
36
- type:'decimal'
36
+ type:'float'
37
37
  },
38
38
  'currency_display',
39
39
  'id'
@@ -20,7 +20,7 @@ Ext.define("Compass.ErpApp.Organizer.Applications.OrderManagement.PaymentsGridPa
20
20
  'created_at',
21
21
  {
22
22
  name:'amount',
23
- type:'decimal'
23
+ type:'float'
24
24
  },
25
25
  'currency_display',
26
26
  'id',
@@ -44,6 +44,12 @@ module Dummy
44
44
 
45
45
  # Enable the asset pipeline
46
46
  config.assets.enabled = true
47
+
48
+ # Enforce whitelist mode for mass assignment.
49
+ # This will create an empty whitelist of attributes available for mass-assignment for all models
50
+ # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
51
+ # parameters by using an attr_accessible or attr_protected declaration.
52
+ config.active_record.whitelist_attributes = true
47
53
  end
48
54
  end
49
55
 
@@ -1,6 +1,9 @@
1
1
  Dummy::Application.configure do
2
2
  # Settings specified here will take precedence over those in config/application.rb
3
3
 
4
+ # Raise exception on mass assignment protection for Active Record models
5
+ config.active_record.mass_assignment_sanitizer = :strict
6
+
4
7
  # In the development environment your application's code is reloaded on
5
8
  # every request. This slows down response time but is perfect for development
6
9
  # since you don't have to restart the web server when you make code changes.
@@ -0,0 +1,28 @@
1
+ # This migration comes from erp_commerce (originally 20101011152441)
2
+ class PaymentGatewayActions
3
+
4
+ def self.up
5
+ PaymentGatewayAction.create(
6
+ :internal_identifier => 'capture',
7
+ :description => 'capture'
8
+ )
9
+
10
+ PaymentGatewayAction.create(
11
+ :internal_identifier => 'authorize',
12
+ :description => 'Authorize'
13
+ )
14
+
15
+ PaymentGatewayAction.create(
16
+ :internal_identifier => 'full_reverse_of_authorization',
17
+ :description => 'Full Reverse Of Authorization'
18
+ )
19
+ end
20
+
21
+ def self.down
22
+ ['sale','void_sale','authorize'].each do |iid|
23
+ type = PaymentGatewayAction.find_by_internal_identifier(iid)
24
+ type.destroy unless type.nil?
25
+ end
26
+ end
27
+
28
+ end
@@ -0,0 +1,16 @@
1
+ # This migration comes from erp_txns_and_accts (originally 20101014142230)
2
+ class FinancialTxnTypes
3
+
4
+ def self.up
5
+ BizTxnType.create(
6
+ :description => "Payment Transaction",
7
+ :internal_identifier => 'payment_txn'
8
+ )
9
+ end
10
+
11
+ def self.down
12
+ type = BizTxnType.iid('payment_txn')
13
+ type.destroy unless type.nil?
14
+ end
15
+
16
+ end
@@ -0,0 +1,15 @@
1
+ # This migration comes from erp_tech_svcs (originally 20110109173616)
2
+ class CreateCapabilityScopeTypes
3
+
4
+ def self.up
5
+ CapabilityType.create(:internal_identifier => 'download', :description => 'Download') if CapabilityType.where("internal_identifier = 'download'").first.nil?
6
+
7
+ ScopeType.create(:description => 'Instance', :internal_identifier => 'instance') if ScopeType.where("internal_identifier = 'instance'").first.nil?
8
+ ScopeType.create(:description => 'Class', :internal_identifier => 'class') if ScopeType.where("internal_identifier = 'class'").first.nil?
9
+ ScopeType.create(:description => 'Query', :internal_identifier => 'query') if ScopeType.where("internal_identifier = 'query'").first.nil?
10
+ end
11
+
12
+ def self.down
13
+ end
14
+
15
+ end
@@ -0,0 +1,24 @@
1
+ # This migration comes from erp_products (originally 20110324010232)
2
+ class ProductRoleTypes
3
+
4
+ def self.up
5
+ ProdTypeRelnType.create(:internal_identifier => 'product_type_package_reln', :description => 'Product Type Package Relationship')
6
+ ProdTypeRoleType.create(:internal_identifier => 'product_type_package', :description => 'Product Type Package')
7
+ ProdTypeRoleType.create(:internal_identifier => 'packaged_product_type', :description => 'Packaged Product Type')
8
+
9
+ ProdInstanceRelnType.create(:internal_identifier => 'product_instance_package_reln', :description => 'Product Instance Package Relantionship')
10
+ ProdInstanceRoleType.create(:internal_identifier => 'product_instance_package', :description => 'Product Instance Package')
11
+ ProdInstanceRoleType.create(:internal_identifier => 'packaged_product_instance', :description => 'Packaged Product Instance')
12
+ end
13
+
14
+ def self.down
15
+ ['product_type_package_reln','product_type_package','packaged_product_type'].each do |iid|
16
+ ProdTypeRelnType.iid(iid).destroy
17
+ end
18
+
19
+ ['product_instance_package_reln','product_instance_package','packaged_product_instance'].each do |iid|
20
+ ProdInstanceRoleType.iid(iid).destroy
21
+ end
22
+ end
23
+
24
+ end
@@ -0,0 +1,12 @@
1
+ # This migration comes from erp_base_erp_svcs (originally 20110525001935)
2
+ class AddUsdCurrency
3
+
4
+ def self.up
5
+ Currency.create(:name => 'US Dollar', :internal_identifier => 'USD', :major_unit_symbol => "$")
6
+ end
7
+
8
+ def self.down
9
+ Currency.usd.destroy
10
+ end
11
+
12
+ end
@@ -0,0 +1,27 @@
1
+ # This migration comes from erp_products (originally 20110527160807)
2
+ class AddDefaultProdAvailTypes
3
+
4
+ def self.up
5
+ ProdAvailabilityStatusType.create(
6
+ :description => 'Available',
7
+ :internal_identifier => 'available'
8
+ )
9
+
10
+ ProdAvailabilityStatusType.create(
11
+ :description => 'Sold',
12
+ :internal_identifier => 'sold'
13
+ )
14
+
15
+ ProdAvailabilityStatusType.create(
16
+ :description => 'Shipped',
17
+ :internal_identifier => 'shipped'
18
+ )
19
+ end
20
+
21
+ def self.down
22
+ %w(available sold shipped).each do |iid|
23
+ ProdAvailabilityStatusType.find_by_internal_identifier(iid).destroy
24
+ end
25
+ end
26
+
27
+ end
@@ -0,0 +1,24 @@
1
+ # This migration comes from erp_orders (originally 20110605231556)
2
+ class CreateOrderPartyRoles
3
+
4
+ def self.up
5
+ order_roles = BizTxnPartyRoleType.create(
6
+ :description => 'Order Roles',
7
+ :internal_identifier => 'order_roles'
8
+ )
9
+
10
+ buyor_role = BizTxnPartyRoleType.create(
11
+ :description => 'Payor',
12
+ :internal_identifier => 'payor'
13
+ )
14
+
15
+ buyor_role.move_to_child_of(order_roles)
16
+ buyor_role.save
17
+ end
18
+
19
+ def self.down
20
+ BizTxnPartyRoleType.find_by_internal_identifier('payor').destroy
21
+ BizTxnPartyRoleType.find_by_internal_identifier('order_roles').destroy
22
+ end
23
+
24
+ end
@@ -0,0 +1,19 @@
1
+ # This migration comes from erp_base_erp_svcs (originally 20110609150135)
2
+ require 'yaml'
3
+
4
+ class AddIsoCodes
5
+
6
+ def self.up
7
+ #find the erp_base_erp_svcs engine
8
+ engine_path = Rails::Application::Railties.engines.find{|item| item.engine_name == 'erp_base_erp_svcs'}.config.root.to_s
9
+
10
+ GeoCountry.load_from_file(File.join(engine_path,'db/data_sets/geo_countries.yml'))
11
+ GeoZone.load_from_file(File.join(engine_path,'db/data_sets/geo_zones.yml'))
12
+ end
13
+
14
+ def self.down
15
+ GeoCountry.delete_all
16
+ GeoZone.delete_all
17
+ end
18
+
19
+ end
@@ -0,0 +1,252 @@
1
+ # This migration comes from erp_app (originally 20110728201729)
2
+ class ErpAppSetup
3
+
4
+ def self.up
5
+ if(ContactPurpose.find_by_internal_identifier('default').nil?)
6
+
7
+ #######################################
8
+ #contact purposes
9
+ #######################################
10
+ [
11
+ {:description => 'Default', :internal_identifier => 'default'},
12
+ {:description => 'Home', :internal_identifier => 'home'},
13
+ {:description => 'Work', :internal_identifier => 'work'},
14
+ {:description => 'Billing', :internal_identifier => 'billing'},
15
+ {:description => 'Temporary', :internal_identifier => 'temporary'},
16
+ {:description => 'Tax Reporting', :internal_identifier => 'tax_reporting'},
17
+ {:description => 'Recruiting', :internal_identifier => 'recruiting'},
18
+ {:description => 'Employment Offer', :internal_identifier => 'employment_offer'},
19
+ {:description => 'Business', :internal_identifier => 'business'},
20
+ {:description => 'Personal', :internal_identifier => 'personal'},
21
+ {:description => 'Fax', :internal_identifier => 'fax'},
22
+ {:description => 'Mobile', :internal_identifier => 'mobile'},
23
+ {:description => 'Emergency', :internal_identifier => 'emergency'},
24
+ {:description => 'Shipping', :internal_identifier => 'shipping'},
25
+ {:description => 'Other', :internal_identifier => 'other'},
26
+ ].each do |item|
27
+ contact_purpose = ContactPurpose.find_by_internal_identifier(item[:internal_identifier])
28
+ ContactPurpose.create(:description => item[:description], :internal_identifier => item[:internal_identifier]) if contact_purpose.nil?
29
+ end
30
+
31
+ #######################################
32
+ #roles
33
+ #######################################
34
+ SecurityRole.create(:description => 'Admin', :internal_identifier => 'admin')
35
+ SecurityRole.create(:description => 'Employee', :internal_identifier => 'employee')
36
+
37
+ #######################################
38
+ #desktop setup
39
+ #######################################
40
+ #create preference types
41
+ desktop_backgroud_pt = PreferenceType.create(:description => 'Desktop Background', :internal_identifier => 'desktop_background')
42
+ extjs_theme_pt = PreferenceType.create(:description => 'Theme', :internal_identifier => 'extjs_theme')
43
+ desktop_shortcut_pt = PreferenceType.create(:description => 'Desktop Shortcut', :internal_identifier => 'desktop_shortcut')
44
+ auto_load_app_pt = PreferenceType.create(:description => 'Autoload Application', :internal_identifier => 'autoload_application')
45
+
46
+ #create preference options
47
+ #yes no options
48
+ yes_po = PreferenceOption.create(:description => 'Yes', :internal_identifier => 'yes', :value => 'yes')
49
+ no_po = PreferenceOption.create(:description => 'No', :internal_identifier => 'no', :value => 'no')
50
+
51
+ #desktop background options
52
+ truenorth_background_po = PreferenceOption.create(:description => 'TrueNorth Logo', :internal_identifier => 'truenorth_logo_background', :value => 'truenorth.png')
53
+ blue_background_po = PreferenceOption.create(:description => 'Blue', :internal_identifier => 'blue_desktop_background', :value => 'blue.gif')
54
+ gradient_background_po = PreferenceOption.create(:description => 'Grey Gradient', :internal_identifier => 'grey_gradient_desktop_background', :value => 'gradient.png')
55
+ purple_background_po = PreferenceOption.create(:description => 'Purple', :internal_identifier => 'purple_desktop_background', :value => 'purple.jpg')
56
+ planet_background_po = PreferenceOption.create(:description => 'Planet', :internal_identifier => 'planet_desktop_background', :value => 'planet.jpg')
57
+ portablemind_background_po = PreferenceOption.create(:description => 'Portablemind', :internal_identifier => 'portablemind_desktop_background', :value => 'portablemind.png')
58
+
59
+ #desktop theme options
60
+ access_extjs_theme_po = PreferenceOption.create(:description => 'Access', :internal_identifier => 'access_extjs_theme', :value => 'ext-all-access.css')
61
+ gray_extjs_theme_po = PreferenceOption.create(:description => 'Gray', :internal_identifier => 'gray_extjs_theme', :value => 'ext-all-gray.css')
62
+ blue_extjs_theme_po = PreferenceOption.create(:description => 'Blue', :internal_identifier => 'blue_extjs_theme', :value => 'ext-all.css')
63
+
64
+ #associate options
65
+ desktop_shortcut_pt.preference_options << yes_po
66
+ desktop_shortcut_pt.preference_options << no_po
67
+ desktop_shortcut_pt.default_preference_option = no_po
68
+ desktop_shortcut_pt.save
69
+
70
+ auto_load_app_pt.preference_options << yes_po
71
+ auto_load_app_pt.preference_options << no_po
72
+ auto_load_app_pt.default_preference_option = no_po
73
+ auto_load_app_pt.save
74
+
75
+ desktop_backgroud_pt.preference_options << blue_background_po
76
+ desktop_backgroud_pt.preference_options << truenorth_background_po
77
+ desktop_backgroud_pt.preference_options << gradient_background_po
78
+ desktop_backgroud_pt.preference_options << purple_background_po
79
+ desktop_backgroud_pt.preference_options << planet_background_po
80
+ desktop_backgroud_pt.preference_options << portablemind_background_po
81
+ desktop_backgroud_pt.default_preference_option = truenorth_background_po
82
+ desktop_backgroud_pt.save
83
+
84
+ extjs_theme_pt.preference_options << access_extjs_theme_po
85
+ extjs_theme_pt.preference_options << gray_extjs_theme_po
86
+ extjs_theme_pt.preference_options << blue_extjs_theme_po
87
+ extjs_theme_pt.default_preference_option = blue_extjs_theme_po
88
+ extjs_theme_pt.save
89
+
90
+ #######################################
91
+ #notes widget
92
+ #######################################
93
+ NoteType.create(:description => 'Basic Note', :internal_identifier => 'basic_note')
94
+
95
+ notes_grid = ::Widget.create(
96
+ :description => 'Notes',
97
+ :icon => 'icon-documents',
98
+ :xtype => 'shared_notesgrid',
99
+ :internal_identifier => 'shared_notes_grid'
100
+ )
101
+ notes_grid.save
102
+
103
+ #######################################
104
+ #user management app
105
+ #######################################
106
+ app_mgr = ::Widget.create(
107
+ :description => 'Application Management',
108
+ :icon => 'icon-user',
109
+ :xtype => 'controlpanel_userapplicationmgtpanel',
110
+ :internal_identifier => 'application_management'
111
+ )
112
+ app_mgr.save
113
+
114
+ role_mgr = ::Widget.create(
115
+ :description => 'Role Management',
116
+ :icon => 'icon-user',
117
+ :xtype => 'usermanagement_rolemanagementpanel',
118
+ :internal_identifier => 'role_management'
119
+ )
120
+ role_mgr.save
121
+
122
+ personal_info = ::Widget.create(
123
+ :description => 'User Personal Info',
124
+ :icon => 'icon-user',
125
+ :xtype => 'usermanagement_personalinfopanel',
126
+ :internal_identifier => 'user_personal_info'
127
+ )
128
+ personal_info.save
129
+
130
+ #create application and assign widgets
131
+ user_mgr_app = DesktopApplication.create(
132
+ :description => 'User Management',
133
+ :icon => 'icon-user',
134
+ :javascript_class_name => 'Compass.ErpApp.Desktop.Applications.UserManagement',
135
+ :internal_identifier => 'user_management',
136
+ :shortcut_id => 'user-management-win'
137
+ )
138
+
139
+ user_mgr_app.preference_types << desktop_shortcut_pt
140
+ user_mgr_app.preference_types << auto_load_app_pt
141
+
142
+ user_mgr_app.widgets << role_mgr
143
+ user_mgr_app.widgets << personal_info
144
+ user_mgr_app.widgets << app_mgr
145
+ user_mgr_app.widgets << notes_grid
146
+ user_mgr_app.save
147
+
148
+ #######################################
149
+ #scaffold app
150
+ #######################################
151
+ scaffold_app = DesktopApplication.create(
152
+ :description => 'Scaffold',
153
+ :icon => 'icon-data',
154
+ :javascript_class_name => 'Compass.ErpApp.Desktop.Applications.Scaffold',
155
+ :internal_identifier => 'scaffold',
156
+ :shortcut_id => 'scaffold-win'
157
+ )
158
+
159
+ scaffold_app.preference_types << PreferenceType.iid('desktop_shortcut')
160
+ scaffold_app.preference_types << PreferenceType.iid('autoload_application')
161
+ scaffold_app.save
162
+
163
+ #######################################
164
+ #organizer setup
165
+ #######################################
166
+
167
+ party_contact_mgm_widget = ::Widget.create(
168
+ :description => 'Party Contact Management',
169
+ :icon => 'icon-grid',
170
+ :xtype => 'contactmechanismgrid',
171
+ :internal_identifier => 'party_contact_management'
172
+ )
173
+ party_contact_mgm_widget.save
174
+
175
+ party_mgm_widget = ::Widget.create(
176
+ :description => 'Party Management',
177
+ :icon => 'icon-grid',
178
+ :xtype => 'partygrid',
179
+ :internal_identifier => 'party_management_widget'
180
+ )
181
+ party_mgm_widget.save
182
+
183
+ #create application
184
+ crm_app = OrganizerApplication.create(
185
+ :description => 'CRM',
186
+ :icon => 'icon-user',
187
+ :internal_identifier => 'crm'
188
+ )
189
+
190
+ crm_app.widgets << party_contact_mgm_widget
191
+ crm_app.widgets << party_mgm_widget
192
+ crm_app.widgets << notes_grid
193
+ crm_app.save
194
+
195
+ #######################################
196
+ #parties
197
+ #######################################
198
+
199
+ #Admins
200
+ Individual.create(:current_first_name => 'Admin',:current_last_name => 'Istrator',:gender => 'm')
201
+
202
+ #Organization
203
+ Organization.create(:description => 'TrueNorth')
204
+
205
+ #######################################
206
+ #users
207
+ #######################################
208
+ admin_indvidual = Individual.where('current_first_name = ?',"Admin").first
209
+ admin_user = User.create(
210
+ :username => "admin",
211
+ :email => "admin@portablemind.com"
212
+ )
213
+ admin_user.password = 'password'
214
+ admin_user.password_confirmation = 'password'
215
+ admin_user.party = admin_indvidual.party
216
+ admin_user.activate!
217
+ admin_user.save
218
+ admin_user.add_role('admin')
219
+ admin_user.save
220
+
221
+ truenorth = Organization.where('description = ?', 'TrueNorth').first
222
+ truenorth_user = User.create(
223
+ :username => truenorth.description.downcase,
224
+ :email => "#{truenorth.description.downcase}@gmail.com"
225
+ )
226
+ truenorth_user.password = 'password'
227
+ truenorth_user.password_confirmation = 'password'
228
+ truenorth_user.party = truenorth.party
229
+ truenorth_user.save
230
+ truenorth_user.activate!
231
+ truenorth_user.add_role('admin')
232
+ truenorth_user.save
233
+
234
+ admin_user.desktop.applications << user_mgr_app
235
+ admin_user.desktop.applications << scaffold_app
236
+ admin_user.desktop.save
237
+ admin_user.organizer.applications << crm_app
238
+ admin_user.organizer.save
239
+
240
+ truenorth_user.desktop.applications << user_mgr_app
241
+ truenorth_user.desktop.applications << scaffold_app
242
+ truenorth_user.desktop.save
243
+ truenorth_user.organizer.applications << crm_app
244
+ truenorth_user.organizer.save
245
+ end
246
+ end
247
+
248
+ def self.down
249
+ #remove data here
250
+ end
251
+
252
+ end