rails_db_admin 2.0.4 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/app/models/report.rb +3 -0
  2. data/lib/rails_db_admin/connection_handler.rb +11 -13
  3. data/lib/rails_db_admin/version.rb +2 -2
  4. data/lib/tasks/rails_db_admin_tasks.rake +4 -4
  5. data/spec/controllers/rails_db_admin/erp_app/desktop/base_controller_spec.rb +8 -8
  6. data/spec/controllers/rails_db_admin/erp_app/desktop/queries_controller_spec.rb +4 -3
  7. data/spec/dummy/config/application.rb +6 -0
  8. data/spec/dummy/config/environments/spec.rb +3 -0
  9. data/spec/dummy/db/data_migrations/20110109173616_create_capability_scope_types.erp_tech_svcs.rb +15 -0
  10. data/spec/dummy/db/data_migrations/20110525001935_add_usd_currency.erp_base_erp_svcs.rb +12 -0
  11. data/spec/dummy/db/data_migrations/20110608185830_create_default_dynamic_models_and_forms.erp_forms.rb +33 -0
  12. data/spec/dummy/db/data_migrations/20110609150135_add_iso_codes.erp_base_erp_svcs.rb +19 -0
  13. data/spec/dummy/db/data_migrations/20110728201729_erp_app_setup.erp_app.rb +252 -0
  14. data/spec/dummy/db/data_migrations/20110728201733_update_preferences.erp_app.rb +53 -0
  15. data/spec/dummy/db/data_migrations/20110802200222_schedule_delete_expired_sessions_job.erp_tech_svcs.rb +16 -0
  16. data/spec/dummy/db/data_migrations/20110816005525_rails_db_admin_application.rails_db_admin.rb +32 -0
  17. data/spec/dummy/db/data_migrations/20110816161238_create_desktop_app_audit_log_viewer.erp_app.rb +21 -0
  18. data/spec/dummy/db/data_migrations/20110817160743_add_file_manager_application.erp_app.rb +32 -0
  19. data/spec/dummy/db/data_migrations/20110828190913_create_desktop_app_dynamic_forms.erp_forms.rb +19 -0
  20. data/spec/dummy/db/data_migrations/20110913145838_setup_compass_ae_instance.erp_base_erp_svcs.rb +12 -0
  21. data/spec/dummy/db/data_migrations/20111108183739_add_default_capabilities.erp_app.rb +23 -0
  22. data/spec/dummy/db/data_migrations/20111108183740_add_new_contact_widgets.erp_app.rb +42 -0
  23. data/spec/dummy/db/data_migrations/20111111144706_setup_audit_log_types.erp_tech_svcs.rb +22 -0
  24. data/spec/dummy/db/data_migrations/20120109173616_create_download_capability_type.erp_tech_svcs.rb +14 -0
  25. data/spec/dummy/db/data_migrations/20120229160222_add_userinfo_widget.erp_app.rb +29 -0
  26. data/spec/dummy/db/data_migrations/20120405193721_create_party_and_role_type_for_communication_events.erp_app.rb +11 -0
  27. data/spec/dummy/db/data_migrations/20120411180756_create_user_management_mobile_application.erp_app.rb +19 -0
  28. data/spec/dummy/db/data_migrations/20120418164215_create_configuration_management_desktop_application.erp_app.rb +23 -0
  29. data/spec/dummy/db/data_migrations/20120824013449_create_ticket_form.erp_forms.rb +67 -0
  30. data/spec/dummy/db/data_migrations/20121026013449_update_ticket_form.erp_forms.rb +65 -0
  31. data/spec/dummy/db/data_migrations/20121026191738_update_contact_form.erp_forms.rb +27 -0
  32. data/spec/dummy/db/data_migrations/20121116155018_create_group_relationship_and_role_types.erp_tech_svcs.rb +20 -0
  33. data/spec/dummy/db/data_migrations/20121130201859_upgrade_remove_system_mgmt_app.erp_app.rb +16 -0
  34. data/spec/dummy/db/data_migrations/20121130212146_note_capabilities.erp_tech_svcs.rb +24 -0
  35. data/spec/dummy/db/data_migrations/20121218175028_create_security_management_desktop_application.erp_app.rb +23 -0
  36. data/spec/dummy/db/migrate/20121219201515_base_erp_services.erp_base_erp_svcs.rb +461 -0
  37. data/spec/dummy/db/migrate/20121219201516_base_tech_services.erp_tech_svcs.rb +255 -0
  38. data/spec/dummy/db/migrate/20121219201517_create_has_attribute_tables.erp_tech_svcs.rb +39 -0
  39. data/spec/dummy/db/migrate/20121219201518_base_app_framework.erp_app.rb +276 -0
  40. data/spec/dummy/db/migrate/20121219201519_dynamic_forms.erp_forms.rb +95 -0
  41. data/spec/dummy/db/migrate/20121219201520_create_tickets.erp_forms.rb +19 -0
  42. data/spec/dummy/db/migrate/20121219201521_upgrade_dynamic_forms_table.erp_forms.rb +32 -0
  43. data/spec/dummy/db/migrate/20121227215524_add_reports.rails_db_admin.rb +21 -0
  44. data/spec/dummy/db/migrate/20130107181642_create_groups.erp_tech_svcs.rb +19 -0
  45. data/spec/dummy/db/migrate/20130107181643_upgrade_security.erp_tech_svcs.rb +54 -0
  46. data/spec/dummy/db/migrate/20130107181644_upgrade_security2.erp_tech_svcs.rb +270 -0
  47. data/spec/dummy/db/schema.rb +888 -0
  48. data/spec/dummy/db/spec.sqlite3 +0 -0
  49. data/spec/dummy/log/spec.log +38042 -0
  50. data/spec/lib/rails_db_admin/extjs/json_column_builder_spec.rb +2 -3
  51. data/spec/lib/rails_db_admin/table_support_spec.rb +1 -1
  52. data/spec/spec_helper.rb +18 -15
  53. metadata +107 -9
@@ -0,0 +1,53 @@
1
+ # This migration comes from erp_app (originally 20110728201733)
2
+ class UpdatePreferences
3
+
4
+ def self.up
5
+
6
+ truenorth_logo_po = PreferenceOption.where(:internal_identifier => 'truenorth_logo_background').first
7
+ if(truenorth_logo_po.value == 'truenorth.png')
8
+ #update background
9
+ truenorth_logo_po.value = 'truenorth_tech.png'
10
+ truenorth_logo_po.save
11
+
12
+ #remove backgrounds
13
+ %w{grey_gradient_desktop_background purple_desktop_background planet_desktop_background portablemind_desktop_background}.each do |background_iid|
14
+ pref_opt = PreferenceOption.find_by_internal_identifier(background_iid)
15
+ pref_opt.destroy unless pref_opt.nil?
16
+ end
17
+
18
+ #update themes
19
+ pref_opt = PreferenceOption.find_by_internal_identifier('access_extjs_theme')
20
+ pref_opt.value = 'extjs:ext-all-access'
21
+ pref_opt.save
22
+
23
+ pref_opt = PreferenceOption.find_by_internal_identifier('gray_extjs_theme')
24
+ pref_opt.value = 'extjs:ext-all-gray'
25
+ pref_opt.save
26
+
27
+ pref_opt = PreferenceOption.find_by_internal_identifier('blue_extjs_theme')
28
+ pref_opt.value = 'extjs:ext-all'
29
+ pref_opt.save
30
+
31
+ #add new themes
32
+ clifton_extjs_theme_po = PreferenceOption.create(:description => 'Clifton Default', :internal_identifier => 'clifton_extjs_theme', :value => 'clifton:clifton')
33
+ clifton_extjs_theme_green_po = PreferenceOption.create(:description => 'Clifton Green', :internal_identifier => 'clifton_extjs_theme', :value => 'clifton:clifton-green')
34
+ clifton_extjs_theme_yellow_po = PreferenceOption.create(:description => 'Clifton Yellow', :internal_identifier => 'clifton_extjs_theme', :value => 'clifton:clifton-yellow')
35
+ clifton_extjs_theme_pink_po = PreferenceOption.create(:description => 'Clifton Pink', :internal_identifier => 'clifton_extjs_theme', :value => 'clifton:clifton-pink')
36
+ clifton_extjs_theme_blue_po = PreferenceOption.create(:description => 'Clifton Blue', :internal_identifier => 'clifton_extjs_theme', :value => 'clifton:clifton-blue')
37
+
38
+ extjs_theme_pt = PreferenceType.find_by_internal_identifier('extjs_theme')
39
+ extjs_theme_pt.preference_options << clifton_extjs_theme_po
40
+ extjs_theme_pt.preference_options << clifton_extjs_theme_green_po
41
+ extjs_theme_pt.preference_options << clifton_extjs_theme_yellow_po
42
+ extjs_theme_pt.preference_options << clifton_extjs_theme_pink_po
43
+ extjs_theme_pt.preference_options << clifton_extjs_theme_blue_po
44
+ extjs_theme_pt.save
45
+ end
46
+
47
+ end
48
+
49
+ def self.down
50
+ #remove data here
51
+ end
52
+
53
+ 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,32 @@
1
+ # This migration comes from rails_db_admin (originally 20110816005525)
2
+ class RailsDbAdminApplication
3
+
4
+ def self.up
5
+ if DesktopApplication.find_by_internal_identifier('rails_db_admin').nil?
6
+ rails_db_admin_app = DesktopApplication.create(
7
+ :description => 'RailsDbAdmin',
8
+ :icon => 'icon-rails_db_admin',
9
+ :javascript_class_name => 'Compass.ErpApp.Desktop.Applications.RailsDbAdmin',
10
+ :internal_identifier => 'rails_db_admin',
11
+ :shortcut_id => 'rails_db_admin-win'
12
+ )
13
+
14
+ rails_db_admin_app.preference_types << PreferenceType.iid('desktop_shortcut')
15
+ rails_db_admin_app.preference_types << PreferenceType.iid('autoload_application')
16
+ rails_db_admin_app.save
17
+
18
+ admin_user = User.find_by_username('admin')
19
+ admin_user.desktop.applications << rails_db_admin_app
20
+ admin_user.save
21
+
22
+ truenorth_user = User.find_by_username('truenorth')
23
+ truenorth_user.desktop.applications << rails_db_admin_app
24
+ truenorth_user.save
25
+ end
26
+ end
27
+
28
+ def self.down
29
+ DesktopApplication.find_by_internal_identifier('rails_db_admin').destroy
30
+ end
31
+
32
+ end
@@ -0,0 +1,21 @@
1
+ # This migration comes from erp_app (originally 20110816161238)
2
+ class CreateDesktopAppAuditLogViewer
3
+ def self.up
4
+ app = DesktopApplication.create(
5
+ :description => 'Audit Log Viewer',
6
+ :icon => 'icon-history',
7
+ :javascript_class_name => 'Compass.ErpApp.Desktop.Applications.AuditLogViewer',
8
+ :internal_identifier => 'audit_log_viewer',
9
+ :shortcut_id => 'audit_log_viewer-win'
10
+ )
11
+
12
+ app.preference_types << PreferenceType.iid('desktop_shortcut')
13
+ app.preference_types << PreferenceType.iid('autoload_application')
14
+ app.save
15
+
16
+ end
17
+
18
+ def self.down
19
+ DesktopApplication.destroy_all(['internal_identifier = ?','audit_log_viewer'])
20
+ end
21
+ end
@@ -0,0 +1,32 @@
1
+ # This migration comes from erp_app (originally 20110817160743)
2
+ class AddFileManagerApplication
3
+
4
+ def self.up
5
+ if DesktopApplication.find_by_internal_identifier('file_manager').nil?
6
+ file_manager_app = DesktopApplication.create(
7
+ :description => 'File Manager',
8
+ :icon => 'icon-folders',
9
+ :javascript_class_name => 'Compass.ErpApp.Desktop.Applications.FileManager',
10
+ :internal_identifier => 'file_manager',
11
+ :shortcut_id => 'file_manager-win'
12
+ )
13
+
14
+ file_manager_app.preference_types << PreferenceType.iid('desktop_shortcut')
15
+ file_manager_app.preference_types << PreferenceType.iid('autoload_application')
16
+ file_manager_app.save
17
+
18
+ admin_user = User.find_by_username('admin')
19
+ admin_user.desktop.applications << file_manager_app
20
+ admin_user.save
21
+
22
+ truenorth_user = User.find_by_username('truenorth')
23
+ truenorth_user.desktop.applications << file_manager_app
24
+ truenorth_user.save
25
+ end
26
+ end
27
+
28
+ def self.down
29
+ DesktopApplication.find_by_internal_identifier('file_manager').destroy
30
+ end
31
+
32
+ end
@@ -0,0 +1,19 @@
1
+ # This migration comes from erp_forms (originally 20110828190913)
2
+ class CreateDesktopAppDynamicForms
3
+ def self.up
4
+ app = DesktopApplication.create(
5
+ :description => 'Dynamic Forms',
6
+ :icon => 'icon-document',
7
+ :javascript_class_name => 'Compass.ErpApp.Desktop.Applications.DynamicForms',
8
+ :internal_identifier => 'dynamic_forms',
9
+ :shortcut_id => 'dynamic_forms-win'
10
+ )
11
+ app.preference_types << PreferenceType.iid('desktop_shortcut')
12
+ app.preference_types << PreferenceType.iid('autoload_application')
13
+ app.save #probably redundant
14
+ end
15
+
16
+ def self.down
17
+ DesktopApplication.destroy_all(['internal_identifier = ?','dynamic_forms'])
18
+ end
19
+ end
@@ -0,0 +1,12 @@
1
+ # This migration comes from erp_base_erp_svcs (originally 20110913145838)
2
+ class SetupCompassAeInstance
3
+
4
+ def self.up
5
+ CompassAeInstance.create(version: 3.1)
6
+ end
7
+
8
+ def self.down
9
+ #remove data here
10
+ end
11
+
12
+ end
@@ -0,0 +1,23 @@
1
+ # This migration comes from erp_app (originally 20111108183739)
2
+ class AddDefaultCapabilities
3
+
4
+ def self.up
5
+ admin = SecurityRole.find_by_internal_identifier('admin')
6
+ employee = SecurityRole.find_by_internal_identifier('employee')
7
+
8
+ admin.add_capability('create', 'User')
9
+ admin.add_capability('delete', 'User')
10
+
11
+ admin.add_capability('create', 'Note')
12
+ employee.add_capability('create', 'Note')
13
+
14
+ admin.add_capability('view', 'Note')
15
+ employee.add_capability('view', 'Note')
16
+
17
+ admin.add_capability('delete', 'Note')
18
+ end
19
+
20
+ def self.down
21
+ end
22
+
23
+ end
@@ -0,0 +1,42 @@
1
+ # This migration comes from erp_app (originally 20111108183740)
2
+ class AddNewContactWidgets
3
+
4
+ def self.up
5
+ crm_app = OrganizerApplication.find_by_internal_identifier('crm')
6
+
7
+ unless crm_app.nil?
8
+ Widget.find_by_internal_identifier('party_contact_management').destroy
9
+
10
+ phone_number_managementt_widget = ::Widget.create(
11
+ :description => 'Phone Number Management',
12
+ :icon => 'icon-grid',
13
+ :xtype => 'phonenumbergrid',
14
+ :internal_identifier => 'phone_number_management'
15
+ )
16
+
17
+ email_address_management_widget = ::Widget.create(
18
+ :description => 'Email Address Management',
19
+ :icon => 'icon-grid',
20
+ :xtype => 'emailaddressgrid',
21
+ :internal_identifier => 'email_address_management'
22
+ )
23
+
24
+ postal_address_management_widget = ::Widget.create(
25
+ :description => 'Postal Address Management',
26
+ :icon => 'icon-grid',
27
+ :xtype => 'postaladdressgrid',
28
+ :internal_identifier => 'postal_address_management'
29
+ )
30
+
31
+ crm_app.widgets << phone_number_managementt_widget
32
+ crm_app.widgets << email_address_management_widget
33
+ crm_app.widgets << postal_address_management_widget
34
+ crm_app.save
35
+
36
+ end
37
+ end
38
+
39
+ def self.down
40
+ end
41
+
42
+ 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,14 @@
1
+ # This migration comes from erp_tech_svcs (originally 20120109173616)
2
+ class CreateDownloadCapabilityType
3
+
4
+ def self.up
5
+ CapabilityType.create(:internal_identifier => 'download', :description => 'Download')
6
+ Role.create(:description => 'File Downloader', :internal_identifier => 'file_downloader')
7
+ end
8
+
9
+ def self.down
10
+ CapabilityType.where("internal_identifier = 'download'").first.destroy unless Role.where("internal_identifier = 'download'").first.nil?
11
+ Role.where("internal_identifier = 'file_downloader'").first.destroy unless Role.where("internal_identifier = 'file_downloader'").first.nil?
12
+ end
13
+
14
+ end
@@ -0,0 +1,29 @@
1
+ # This migration comes from erp_app (originally 20120229160222)
2
+ class AddUserinfoWidget
3
+
4
+ def self.up
5
+ #insert data here
6
+ if Widget.find_by_internal_identifier('userinfo').nil?
7
+ app = Application.find_by_internal_identifier('crm')
8
+
9
+ user = Widget.create(
10
+ :description => 'User Info',
11
+ :internal_identifier => 'userinfo',
12
+ :icon => 'icon-user',
13
+ :xtype => 'userinfo'
14
+ )
15
+
16
+ unless app.nil?
17
+ app.widgets << user
18
+ app.save
19
+ end
20
+
21
+ end
22
+ end
23
+
24
+ def self.down
25
+ #remove data here
26
+ Widget.find_by_internal_identifier('userinfo').destroy
27
+ end
28
+
29
+ end
@@ -0,0 +1,11 @@
1
+ # This migration comes from erp_app (originally 20120405193721)
2
+ class CreatePartyAndRoleTypeForCommunicationEvents < ActiveRecord::Migration
3
+ def up
4
+ role_type = RoleType.find_or_create_by_description_and_internal_identifier('Application', 'application')
5
+ party = Party.find_or_create_by_description('Compass AE')
6
+ party.role_type << role_type
7
+ end
8
+
9
+ def down
10
+ end
11
+ end
@@ -0,0 +1,19 @@
1
+ # This migration comes from erp_app (originally 20120411180756)
2
+ class CreateUserManagementMobileApplication
3
+
4
+ def self.up
5
+ app = MobileApplication.create(
6
+ :description => 'User Management',
7
+ :icon => 'icon-user',
8
+ :internal_identifier => 'user_management',
9
+ :base_url => '/erp_app/mobile/user_management/index'
10
+ )
11
+
12
+ app.save
13
+ end
14
+
15
+ def self.down
16
+ MobileApplication.destroy_all("internal_identifier = 'user_management'")
17
+ end
18
+
19
+ end
@@ -0,0 +1,23 @@
1
+ # This migration comes from erp_app (originally 20120418164215)
2
+ class CreateConfigurationManagementDesktopApplication
3
+ def self.up
4
+ app = DesktopApplication.create(
5
+ :description => 'Configuration Management',
6
+ :icon => 'icon-grid',
7
+ :javascript_class_name => 'Compass.ErpApp.Desktop.Applications.ConfigurationManagement',
8
+ :internal_identifier => 'configuration_management',
9
+ :shortcut_id => 'configuration_management-win'
10
+ )
11
+ pt1 = PreferenceType.iid('desktop_shortcut')
12
+ pt1.preferenced_records << app
13
+ pt1.save
14
+
15
+ pt2 = PreferenceType.iid('autoload_application')
16
+ pt2.preferenced_records << app
17
+ pt2.save
18
+ end
19
+
20
+ def self.down
21
+ DesktopApplication.destroy_all(['internal_identifier = ?','configuration_management'])
22
+ end
23
+ end
@@ -0,0 +1,67 @@
1
+ # This migration comes from erp_forms (originally 20120824013449)
2
+ class CreateTicketForm
3
+
4
+ def self.up
5
+ #insert data here
6
+ fields = []
7
+
8
+ fields << DynamicFormField.textfield({:fieldLabel => 'Title', :name => 'title', :width => 250, :allowBlank => false })
9
+ fields << DynamicFormField.combobox([['Open', 'Open'],['Closed', 'Closed']],{:fieldLabel => 'Status', :name => 'status', :width => 175, :allowBlank => false })
10
+ fields << DynamicFormField.combobox([ ['Defect', 'Defect'],
11
+ ['Feature', 'Feature'],
12
+ ['Issue', 'Issue'],
13
+ ['Task', 'Task'],
14
+ ],{:fieldLabel => 'Type', :name => 'type', :width => 175, :allowBlank => false })
15
+ fields << DynamicFormField.combobox([['High', 'High'],['Medium', 'Medium'],['Low', 'Low']],{:fieldLabel => 'Priority', :name => 'priority', :width => 175, :allowBlank => false })
16
+ fields << DynamicFormField.combobox([ ['compass_ae_console', 'compass_ae_console'],
17
+ ['compass_ae_starter_kit', 'compass_ae_starter_kit'],
18
+ ['data_migrator', 'data_migrator'],
19
+ ['erp_agreements', 'erp_agreements'],
20
+ ['erp_app', 'erp_app'],
21
+ ['erp_base_erp_svcs', 'erp_base_erp_svcs'],
22
+ ['erp_commerce', 'erp_commerce'],
23
+ ['erp_communication_events', 'erp_communication_events'],
24
+ ['erp_dev_svcs', 'erp_dev_svcs'],
25
+ ['erp_financial_accounting', 'erp_financial_accounting'],
26
+ ['erp_forms', 'erp_forms'],
27
+ ['erp_inventory', 'erp_inventory'],
28
+ ['erp_invoicing', 'erp_invoicing'],
29
+ ['erp_offers', 'erp_offers'],
30
+ ['erp_orders', 'erp_orders'],
31
+ ['erp_products', 'erp_products'],
32
+ ['erp_rules', 'erp_rules'],
33
+ ['erp_search', 'erp_search'],
34
+ ['erp_tech_svcs', 'erp_tech_svcs'],
35
+ ['erp_txns_and_accts', 'erp_txns_and_accts'],
36
+ ['erp_work_effort', 'erp_work_effort'],
37
+ ['erp_workflow', 'erp_workflow'],
38
+ ['knitkit', 'knitkit'],
39
+ ['master_data_management', 'master_data_management'],
40
+ ['prismpay', 'prismpay'],
41
+ ['rails_db_admin', 'rails_db_admin'],
42
+ ['tenancy', 'tenancy'],
43
+ ['timeshare', 'timeshare']
44
+ ],
45
+ {:fieldLabel => 'Product', :name => 'product', :width => 270, :allowBlank => true })
46
+ fields << DynamicFormField.combobox([['None', 'None']],{:fieldLabel => 'Project', :name => 'project', :width => 175, :allowBlank => true })
47
+ fields << DynamicFormField.related_combobox('User','username',{:fieldLabel => 'Assigned To', :name => 'assigned_to_id', :width => 175, :allowBlank => true })
48
+ fields << DynamicFormField.textarea({:fieldLabel => 'Body', :name => 'body', :width => 400, :height => 300, :allowBlank => false, :display_in_grid => false })
49
+
50
+ d = DynamicForm.new
51
+ d.description = 'Ticket Form'
52
+ d.definition = fields.to_json
53
+ d.model_name = 'Ticket'
54
+ d.internal_identifier = 'ticket'
55
+ d.default = true
56
+ d.dynamic_form_model = DynamicFormModel.create(:model_name => 'Ticket')
57
+ d.msg_target = 'qtip'
58
+ d.save
59
+ end
60
+
61
+ def self.down
62
+ #remove data here
63
+ DynamicForm.find_by_internal_identifier('ticket').destroy
64
+ DynamicFormModel.find_by_model_name('Ticket').destroy
65
+ end
66
+
67
+ end