erp_app 3.1.13 → 3.1.14

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 (52) hide show
  1. data/app/controllers/erp_app/desktop/security_management/users_controller.rb +1 -1
  2. data/app/models/configuration.rb +7 -1
  3. data/lib/erp_app/version.rb +1 -1
  4. data/public/javascripts/erp_app/desktop/applications/security_management/capabilities_widget.js +1 -1
  5. data/public/javascripts/erp_app/desktop/applications/security_management/groups_widget.js +1 -1
  6. data/public/javascripts/erp_app/desktop/applications/security_management/roles_widget.js +1 -1
  7. data/public/javascripts/erp_app/desktop/applications/security_management/users_widget.js +1 -1
  8. data/public/javascripts/erp_app/shared/dynamic_editable_grid.js +1 -0
  9. data/public/javascripts/erp_app/shared/dynamic_editable_grid_loader_panel.js +1 -0
  10. data/public/javascripts/erp_app/shared/file_manager_tree.js +13 -14
  11. data/spec/dummy/db/data_migrations/20130422163128_add_usd_currency.erp_base_erp_svcs.rb +12 -0
  12. data/spec/dummy/db/data_migrations/20130422163129_add_iso_codes.erp_base_erp_svcs.rb +19 -0
  13. data/spec/dummy/db/data_migrations/20130422163130_setup_compass_ae_instance.erp_base_erp_svcs.rb +21 -0
  14. data/spec/dummy/db/data_migrations/20130422163131_upgrade_compass_ae_instances_data.erp_base_erp_svcs.rb +19 -0
  15. data/spec/dummy/db/data_migrations/20130422163132_add_guid_to_instances.erp_base_erp_svcs.rb +10 -0
  16. data/spec/dummy/db/data_migrations/20130422163133_create_capability_scope_types.erp_tech_svcs.rb +15 -0
  17. data/spec/dummy/db/data_migrations/20130422163134_schedule_delete_expired_sessions_job.erp_tech_svcs.rb +16 -0
  18. data/spec/dummy/db/data_migrations/20130422163135_setup_audit_log_types.erp_tech_svcs.rb +22 -0
  19. data/spec/dummy/db/data_migrations/20130422163136_create_group_relationship_and_role_types.erp_tech_svcs.rb +20 -0
  20. data/spec/dummy/db/data_migrations/20130422163137_note_capabilities.erp_tech_svcs.rb +24 -0
  21. data/spec/dummy/db/data_migrations/20130422163138_erp_app_setup.erp_app.rb +252 -0
  22. data/spec/dummy/db/data_migrations/20130422163139_update_preferences.erp_app.rb +53 -0
  23. data/spec/dummy/db/data_migrations/20130422163140_create_desktop_app_audit_log_viewer.erp_app.rb +24 -0
  24. data/spec/dummy/db/data_migrations/20130422163141_add_file_manager_application.erp_app.rb +32 -0
  25. data/spec/dummy/db/data_migrations/20130422163142_add_default_capabilities.erp_app.rb +23 -0
  26. data/spec/dummy/db/data_migrations/20130422163143_add_new_contact_widgets.erp_app.rb +42 -0
  27. data/spec/dummy/db/data_migrations/20130422163144_add_userinfo_widget.erp_app.rb +29 -0
  28. data/spec/dummy/db/data_migrations/20130422163145_create_party_and_role_type_for_communication_events.erp_app.rb +11 -0
  29. data/spec/dummy/db/data_migrations/20130422163146_create_user_management_mobile_application.erp_app.rb +17 -0
  30. data/spec/dummy/db/data_migrations/20130422163147_create_configuration_management_desktop_application.erp_app.rb +27 -0
  31. data/spec/dummy/db/data_migrations/20130422163148_create_job_tracker_desktop_application.erp_app.rb +23 -0
  32. data/spec/dummy/db/data_migrations/20130422163149_created_tracked_jobs.erp_app.rb +15 -0
  33. data/spec/dummy/db/data_migrations/20130422163150_upgrade_remove_system_mgmt_app.erp_app.rb +16 -0
  34. data/spec/dummy/db/data_migrations/20130422163151_create_security_management_desktop_application.erp_app.rb +29 -0
  35. data/spec/dummy/db/data_migrations/20130422163152_add_job_tracker_mobile_app.erp_app.rb +17 -0
  36. data/spec/dummy/db/migrate/20130422163121_base_erp_services.erp_base_erp_svcs.rb +486 -0
  37. data/spec/dummy/db/migrate/20130422163122_add_txn_status.erp_base_erp_svcs.rb +37 -0
  38. data/spec/dummy/db/migrate/20130422163123_upgrade_compass_ae_instances.erp_base_erp_svcs.rb +34 -0
  39. data/spec/dummy/db/migrate/20130422163124_add_uuid_compass_ae_instance.erp_base_erp_svcs.rb +17 -0
  40. data/spec/dummy/db/migrate/20130422163125_add_long_lat_to_address.erp_base_erp_svcs.rb +16 -0
  41. data/spec/dummy/db/migrate/20130422163126_base_tech_services.erp_tech_svcs.rb +271 -0
  42. data/spec/dummy/db/migrate/20130422163127_create_has_attribute_tables.erp_tech_svcs.rb +39 -0
  43. data/spec/dummy/db/migrate/20130422163128_create_groups.erp_tech_svcs.rb +19 -0
  44. data/spec/dummy/db/migrate/20130422163129_upgrade_security.erp_tech_svcs.rb +54 -0
  45. data/spec/dummy/db/migrate/20130422163130_upgrade_security2.erp_tech_svcs.rb +275 -0
  46. data/spec/dummy/db/migrate/20130422163131_add_queue_to_delayed_jobs.erp_tech_svcs.rb +14 -0
  47. data/spec/dummy/db/migrate/20130422163132_base_app_framework.erp_app.rb +276 -0
  48. data/spec/dummy/db/migrate/20130422163133_add_job_tracker.erp_app.rb +20 -0
  49. data/spec/dummy/db/migrate/20130422163134_update_mobile_application.erp_app.rb +28 -0
  50. data/spec/dummy/db/schema.rb +883 -0
  51. data/spec/dummy/db/spec.sqlite3 +0 -0
  52. metadata +85 -3
@@ -128,7 +128,7 @@ module ErpApp
128
128
  assign_to_id = params[:id]
129
129
  u = User.find(assign_to_id)
130
130
 
131
- render :json => {:success => true, :roles => u.all_roles, :capabilities => u.class_capabilities_to_hash }
131
+ render :json => {:success => true, :roles => u.all_uniq_roles, :capabilities => u.class_capabilities_to_hash }
132
132
  rescue Exception => e
133
133
  Rails.logger.error e.message
134
134
  Rails.logger.error e.backtrace.join("\n")
@@ -4,7 +4,13 @@ class Configuration < ActiveRecord::Base
4
4
  scope :templates, where('is_template = ?', true)
5
5
 
6
6
  validates :internal_identifier, :presence => true, :uniqueness => {:scope => [:id, :is_template]}
7
- validates :is_template, :uniqueness => {:scope => :internal_identifier}
7
+
8
+ validate :cannot_have_two_templates_per_iid
9
+ def cannot_have_two_templates_per_iid
10
+ unless Configuration.where('id != ?',self.id).where(:is_template => true).where(:internal_identifier => self.internal_identifier).first.nil?
11
+ errors.add(:is_template, "Cannot have more than one template per configuration")
12
+ end
13
+ end
8
14
 
9
15
  has_many :configuration_items, :dependent => :destroy do
10
16
  def by_category(category)
@@ -2,7 +2,7 @@ module ErpApp
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 3
4
4
  MINOR = 1
5
- TINY = 13
5
+ TINY = 14
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].compact.join('.')
8
8
  end
@@ -30,7 +30,7 @@ Ext.define("Compass.ErpApp.Desktop.Applications.SecurityManagement.CapabilitiesW
30
30
  available_grid.getStore().getProxy().extraParams = {};
31
31
  selected_grid.getStore().getProxy().extraParams = {};
32
32
  }
33
- }, 500 );
33
+ }, 900 );
34
34
  },
35
35
 
36
36
  constructor : function(config) {
@@ -30,7 +30,7 @@ Ext.define("Compass.ErpApp.Desktop.Applications.SecurityManagement.GroupsWidget"
30
30
  available_grid.getStore().getProxy().extraParams = {};
31
31
  selected_grid.getStore().getProxy().extraParams = {};
32
32
  }
33
- }, 500 );
33
+ }, 900 );
34
34
  },
35
35
 
36
36
  constructor : function(config) {
@@ -30,7 +30,7 @@ Ext.define("Compass.ErpApp.Desktop.Applications.SecurityManagement.RolesWidget",
30
30
  available_grid.getStore().getProxy().extraParams = {};
31
31
  selected_grid.getStore().getProxy().extraParams = {};
32
32
  }
33
- }, 500 );
33
+ }, 900 );
34
34
  },
35
35
 
36
36
  constructor : function(config) {
@@ -30,7 +30,7 @@ Ext.define("Compass.ErpApp.Desktop.Applications.SecurityManagement.UsersWidget",
30
30
  available_grid.getStore().getProxy().extraParams = {};
31
31
  selected_grid.getStore().getProxy().extraParams = {};
32
32
  }
33
- }, 500 );
33
+ }, 900 );
34
34
  },
35
35
 
36
36
  constructor : function(config) {
@@ -36,6 +36,7 @@ Ext.define("Compass.ErpApp.Shared.DynamicEditableGrid",{
36
36
  }
37
37
  var store = Ext.create('Ext.data.Store', {
38
38
  model: ((config.editable) ? config.model : undefined),
39
+ listeners: config.store_listeners,
39
40
  fields:config['fields'],
40
41
  remoteSort:config['remoteSort'],
41
42
  autoSync: true,
@@ -28,6 +28,7 @@ Ext.define("Compass.ErpApp.Shared.DynamicEditableGridLoaderPanel",{
28
28
  validations:response.validations,
29
29
  proxy:config.proxy,
30
30
  listeners: config.grid_listeners,
31
+ store_listeners: config.grid_store_listeners,
31
32
  storeId: config['storeId'],
32
33
  selType: (config.selType || 'rowmodel'),
33
34
  multiSelect: (config.multiSelect || false),
@@ -153,8 +153,8 @@ Ext.define("Compass.ErpApp.Shared.FileManagerTree",{
153
153
  else
154
154
  if(btn == 'yes')
155
155
  {
156
- selectedNodes = self.getSelectionModel().getSelection();
157
-
156
+ selectedNodes = self.selectedNodes; // HACK: in ExtJS 4.2.1 self.getSelectionModel().getSelection(); returns an empty array in itemmove listener so we use a temp variable self.selectedNodes
157
+ self.selectedNodes = [];
158
158
  var msg = Ext.Msg.wait("Saving", "Saving move...");
159
159
  Ext.apply(self.extraPostData, {
160
160
  parent_node:newParent.data.id,
@@ -258,7 +258,10 @@ Ext.define("Compass.ErpApp.Shared.FileManagerTree",{
258
258
  if(record.data.height){
259
259
  details += '<br /> Height: '+record.data.height + ' px';
260
260
  }
261
- Ext.Msg.alert('Properties', details);
261
+ var messageBox = Ext.create('Ext.window.MessageBox',{
262
+ style: 'white-space:nowrap;'
263
+ });
264
+ messageBox.alert('Properties', details);
262
265
  }
263
266
  }
264
267
  });
@@ -676,18 +679,14 @@ Ext.define("Compass.ErpApp.Shared.FileManagerTree",{
676
679
  viewConfig: {
677
680
  loadMask: true,
678
681
  plugins: {
679
- ptype: 'treeviewdragdrop'
682
+ ptype: 'treeviewdragdrop'
683
+ },
684
+ listeners:{
685
+ 'beforedrop':function(node, data, overModel, dropPosition, dropHandlers, eOpts){
686
+ // HACK: in ExtJS 4.2.1 self.getSelectionModel().getSelection(); returns an empty array in itemmove listener so we set a temp variable self.selectedNodes here for use by itemmove
687
+ self.selectedNodes = self.getSelectionModel().getSelection();
688
+ }
680
689
  }
681
- // these events were throwing extjs errors when trying to move multiple files in file manager when hovering over drop node
682
- // Since they are not being used I am commenting them out
683
- // listeners:{
684
- // 'beforedrop':function(node, data, overModel, dropPosition,dropFunction,options){
685
- // self.fireEvent('beforedrop_view', node, data, overModel, dropPosition,dropFunction,options);
686
- // },
687
- // 'drop':function(node, data, overModel, dropPosition, options){
688
- // self.fireEvent('drop_view', node, data, overModel, dropPosition, options);
689
- // }
690
- // }
691
690
  }
692
691
  }, config);
693
692
 
@@ -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,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,21 @@
1
+ # This migration comes from erp_base_erp_svcs (originally 20110913145838)
2
+ class SetupCompassAeInstance
3
+
4
+ def self.up
5
+ c = CompassAeInstance.new
6
+ c.description = 'Base CompassAE Instance'
7
+ c.internal_identifier = 'base'
8
+ c.version = '3.1'
9
+ c.save
10
+
11
+ rt = RoleType.new
12
+ rt.description = 'CompassAE Instance Owner'
13
+ rt.internal_identifier = 'compass_ae_instance_owner'
14
+ rt.save
15
+ end
16
+
17
+ def self.down
18
+ #remove data here
19
+ end
20
+
21
+ end
@@ -0,0 +1,19 @@
1
+ # This migration comes from erp_base_erp_svcs (originally 20130211555555)
2
+ class UpgradeCompassAeInstancesData < ActiveRecord::Migration
3
+ def self.up
4
+ if CompassAeInstance.find_by_internal_identifier('base').nil?
5
+ c = CompassAeInstance.order('id ASC').first
6
+ c.description = 'Base CompassAE Instance'
7
+ c.internal_identifier = 'base'
8
+ c.schema = 'public'
9
+ c.save
10
+ end
11
+
12
+ if RoleType.find_by_internal_identifier('compass_ae_instance_owner').nil?
13
+ rt = RoleType.new
14
+ rt.description = 'CompassAE Instance Owner'
15
+ rt.internal_identifier = 'compass_ae_instance_owner'
16
+ rt.save
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,10 @@
1
+ # This migration comes from erp_base_erp_svcs (originally 20130404201756)
2
+ class AddGuidToInstances
3
+
4
+ def self.up
5
+ CompassAeInstance.all.each do |instance|
6
+ instance.setup_guid
7
+ end
8
+ end
9
+
10
+ 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,16 @@
1
+ # This migration comes from erp_tech_svcs (originally 20110802200222)
2
+ class ScheduleDeleteExpiredSessionsJob
3
+
4
+ def self.up
5
+ #insert data here
6
+ date = Date.tomorrow
7
+ start_time = DateTime.civil(date.year, date.month, date.day, 2, 0, 1, -(5.0/24.0))
8
+
9
+ ErpTechSvcs::Sessions::DeleteExpiredSessionsJob.schedule_job(start_time)
10
+ end
11
+
12
+ def self.down
13
+ #remove data here
14
+ end
15
+
16
+ end
@@ -0,0 +1,22 @@
1
+ # This migration comes from erp_tech_svcs (originally 20111111144706)
2
+ class SetupAuditLogTypes
3
+
4
+ def self.up
5
+ application_alt = AuditLogType.create(:description => 'Application', :internal_identifier => 'application')
6
+
7
+ [
8
+ {:description => 'Custom Message', :internal_identifier => 'custom_message'},
9
+ {:description => 'Successful Logout', :internal_identifier => 'successful_logout'},
10
+ {:description => 'Successful Login', :internal_identifier => 'successful_login'},
11
+ {:description => 'Accessed Area', :internal_identifier => 'accessed_area'},
12
+ {:description => 'Session Timeout', :internal_identifier => 'session_timeout'}
13
+ ].each do |alt_hash|
14
+ AuditLogType.create(alt_hash).move_to_child_of(application_alt)
15
+ end
16
+ end
17
+
18
+ def self.down
19
+ AuditLogType.destroy_all
20
+ end
21
+
22
+ end
@@ -0,0 +1,20 @@
1
+ # This migration comes from erp_tech_svcs (originally 20121116155018)
2
+ class CreateGroupRelationshipAndRoleTypes
3
+
4
+ def self.up
5
+ #insert data here
6
+ to_role = RoleType.create(:description => 'Security Group', :internal_identifier => 'group')
7
+ from_role = RoleType.create(:description => 'Security Group Member', :internal_identifier => 'group_member')
8
+ RelationshipType.create(:description => 'Security Group Membership',
9
+ :name => 'Group Membership',
10
+ :internal_identifier => 'group_membership',
11
+ :valid_from_role => from_role,
12
+ :valid_to_role => to_role
13
+ )
14
+ end
15
+
16
+ def self.down
17
+ #remove data here
18
+ end
19
+
20
+ end
@@ -0,0 +1,24 @@
1
+ # This migration comes from erp_tech_svcs (originally 20121130212146)
2
+ class NoteCapabilities
3
+
4
+ def self.up
5
+ #insert data here
6
+ admin = SecurityRole.find_or_create_by_description_and_internal_identifier(:description => 'Admin', :internal_identifier => 'admin')
7
+ employee = SecurityRole.find_or_create_by_description_and_internal_identifier(:description => 'Employee', :internal_identifier => 'employee')
8
+
9
+ admin.add_capability('create', 'Note')
10
+ admin.add_capability('delete', 'Note')
11
+ admin.add_capability('edit', 'Note')
12
+ admin.add_capability('view', 'Note')
13
+
14
+ employee.add_capability('create', 'Note')
15
+ employee.add_capability('delete', 'Note')
16
+ employee.add_capability('edit', 'Note')
17
+ employee.add_capability('view', 'Note')
18
+ end
19
+
20
+ def self.down
21
+ #remove data here
22
+ end
23
+
24
+ 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