fat_free_crm 0.11.1 → 0.11.2
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.
Potentially problematic release.
This version of fat_free_crm might be problematic. Click here for more details.
- data/Gemfile +30 -12
- data/Gemfile.lock +131 -119
- data/Procfile +1 -1
- data/README.md +1 -1
- data/app/assets/images/notifications.png +0 -0
- data/app/assets/javascripts/application.js.erb +3 -0
- data/app/assets/javascripts/crm_textarea_autocomplete.js +44 -0
- data/app/assets/stylesheets/application.css.erb +2 -0
- data/app/assets/stylesheets/common.scss +7 -11
- data/app/assets/stylesheets/textarea_autocomplete.scss +42 -0
- data/app/controllers/admin/application_controller.rb +5 -5
- data/app/controllers/admin/field_groups_controller.rb +11 -51
- data/app/controllers/admin/fields_controller.rb +13 -59
- data/app/controllers/admin/plugins_controller.rb +1 -4
- data/app/controllers/admin/settings_controller.rb +0 -4
- data/app/controllers/admin/tags_controller.rb +11 -66
- data/app/controllers/admin/users_controller.rb +20 -83
- data/app/controllers/application_controller.rb +83 -69
- data/app/controllers/comments_controller.rb +12 -29
- data/app/controllers/emails_controller.rb +1 -5
- data/app/controllers/entities/accounts_controller.rb +13 -32
- data/app/controllers/entities/campaigns_controller.rb +17 -32
- data/app/controllers/entities/contacts_controller.rb +20 -38
- data/app/controllers/entities/leads_controller.rb +33 -55
- data/app/controllers/entities/opportunities_controller.rb +26 -42
- data/app/controllers/entities_controller.rb +92 -83
- data/app/controllers/home_controller.rb +1 -10
- data/app/controllers/lists_controller.rb +1 -4
- data/app/controllers/{entities/tasks_controller.rb → tasks_controller.rb} +21 -32
- data/app/controllers/users_controller.rb +6 -5
- data/app/helpers/accounts_helper.rb +32 -9
- data/app/helpers/application_helper.rb +15 -1
- data/app/helpers/campaigns_helper.rb +1 -1
- data/app/helpers/comments_helper.rb +11 -1
- data/app/helpers/leads_helper.rb +1 -1
- data/app/helpers/opportunities_helper.rb +1 -1
- data/app/{models/mailers/notifier.rb → mailers/dropbox_mailer.rb} +5 -16
- data/app/mailers/subscription_mailer.rb +37 -0
- data/{lib/tasks/dropbox.rake → app/mailers/user_mailer.rb} +11 -13
- data/app/models/entities/account.rb +3 -1
- data/app/models/entities/campaign.rb +3 -1
- data/app/models/entities/contact.rb +3 -1
- data/app/models/entities/lead.rb +6 -5
- data/app/models/entities/opportunity.rb +3 -1
- data/app/models/fields/field.rb +1 -1
- data/app/models/polymorphic/comment.rb +34 -0
- data/app/models/{entities → polymorphic}/task.rb +16 -3
- data/app/models/setting.rb +15 -15
- data/app/models/users/ability.rb +12 -5
- data/app/models/users/user.rb +7 -2
- data/app/views/accounts/index.html.haml +1 -1
- data/app/views/accounts/index.js.rjs +1 -1
- data/app/views/admin/plugins/index.html.haml +1 -7
- data/app/views/{shared/auto_complete.html.haml → application/_auto_complete.html.haml} +0 -0
- data/app/views/{shared → application}/index.atom.builder +1 -1
- data/app/views/{shared → application}/index.rss.builder +1 -1
- data/app/views/campaigns/index.html.haml +1 -1
- data/app/views/campaigns/index.js.rjs +1 -1
- data/app/views/comments/_new.html.haml +6 -0
- data/app/views/comments/_subscription_links.html.haml +13 -0
- data/app/views/comments/new.js.rjs +2 -0
- data/app/views/contacts/_top_section.html.haml +3 -13
- data/app/views/contacts/index.html.haml +1 -1
- data/app/views/contacts/index.js.rjs +1 -1
- data/app/views/{notifier/dropbox_ack_notification.html.haml → dropbox_mailer/dropbox_notification.html.haml} +2 -2
- data/app/views/{shared → entities}/attach.js.rjs +1 -1
- data/app/views/entities/contacts.js.rjs +1 -1
- data/app/views/{shared/discard.rjs → entities/discard.js.rjs} +0 -0
- data/app/views/entities/leads.js.rjs +1 -1
- data/app/views/entities/opportunities.js.rjs +1 -1
- data/app/views/entities/subscription_update.js.rjs +4 -0
- data/app/views/entities/versions.js.rjs +1 -1
- data/app/views/layouts/_footer.html.haml +1 -1
- data/app/views/layouts/application.html.haml +3 -0
- data/app/views/leads/_contact.html.haml +1 -0
- data/app/views/leads/index.html.haml +1 -1
- data/app/views/leads/index.js.rjs +1 -1
- data/app/views/opportunities/_top_section.html.haml +4 -14
- data/app/views/opportunities/index.html.haml +1 -1
- data/app/views/opportunities/index.js.rjs +1 -1
- data/app/views/subscription_mailer/comment_notification.text.erb +7 -0
- data/app/views/{notifier → user_mailer}/password_reset_instructions.html.haml +0 -0
- data/config/application.rb +3 -1
- data/config/environments/development.rb +1 -1
- data/config/environments/test.rb +3 -0
- data/config/initializers/action_mailer.rb +8 -5
- data/config/initializers/cancan.rb +151 -0
- data/config/initializers/constants.rb +1 -0
- data/config/initializers/locale.rb +20 -0
- data/config/initializers/paper_trail.rb +4 -5
- data/config/initializers/relative_url_root.rb +0 -1
- data/config/initializers/squeel.rb +5 -0
- data/config/locales/cz_fat_free_crm.yml +3 -3
- data/config/locales/de.yml +2 -2
- data/config/locales/de_fat_free_crm.yml +651 -596
- data/config/locales/en-GB_fat_free_crm.yml +3 -3
- data/config/locales/en-US_fat_free_crm.yml +13 -3
- data/config/locales/es_fat_free_crm.yml +3 -3
- data/config/locales/fr-CA_fat_free_crm.yml +3 -3
- data/config/locales/fr_fat_free_crm.yml +3 -3
- data/config/locales/it_fat_free_crm.yml +3 -3
- data/config/locales/pl_fat_free_crm.yml +3 -3
- data/config/locales/pt-BR_fat_free_crm.yml +3 -3
- data/config/locales/ru_fat_free_crm.yml +3 -3
- data/config/locales/sv-SE_fat_free_crm.yml +3 -3
- data/config/locales/th_fat_free_crm.yml +3 -3
- data/config/routes.rb +10 -0
- data/config/settings.default.yml +29 -10
- data/config/unicorn.rb +4 -0
- data/db/migrate/20111201030535_add_field_groups_klass_name.rb +3 -1
- data/db/migrate/20120314080441_add_subscribed_users_to_entities.rb +23 -0
- data/db/migrate/20120405080727_change_subscribed_users_to_set.rb +24 -0
- data/db/migrate/20120405080742_change_further_subscribed_users_to_set.rb +27 -0
- data/db/migrate/20120413034923_add_index_on_versions_item_type.rb +5 -0
- data/db/schema.rb +109 -126
- data/fat_free_crm.gemspec +12 -18
- data/lib/fat_free_crm.rb +0 -1
- data/lib/fat_free_crm/core_ext/array.rb +1 -0
- data/lib/fat_free_crm/gem_dependencies.rb +1 -0
- data/lib/fat_free_crm/mail_processor/base.rb +226 -0
- data/lib/fat_free_crm/mail_processor/comment_replies.rb +86 -0
- data/lib/fat_free_crm/mail_processor/dropbox.rb +288 -0
- data/lib/fat_free_crm/permissions.rb +6 -19
- data/lib/fat_free_crm/renderers.rb +0 -8
- data/lib/fat_free_crm/tabs.rb +1 -1
- data/lib/fat_free_crm/version.rb +1 -1
- data/lib/plugins/country_select/lib/country_select.rb +2 -2
- data/lib/tasks/mail_processing.rake +60 -0
- data/spec/controllers/admin/users_controller_spec.rb +0 -2
- data/spec/controllers/{accounts_controller_spec.rb → entities/accounts_controller_spec.rb} +7 -9
- data/spec/controllers/{campaigns_controller_spec.rb → entities/campaigns_controller_spec.rb} +7 -7
- data/spec/controllers/{contacts_controller_spec.rb → entities/contacts_controller_spec.rb} +5 -9
- data/spec/controllers/{leads_controller_spec.rb → entities/leads_controller_spec.rb} +7 -9
- data/spec/controllers/{opportunities_controller_spec.rb → entities/opportunities_controller_spec.rb} +8 -15
- data/spec/controllers/tasks_controller_spec.rb +1 -5
- data/spec/controllers/users_controller_spec.rb +5 -9
- data/spec/factories/subscription_factories.rb +6 -0
- data/spec/lib/mail_processor/base_spec.rb +164 -0
- data/spec/lib/mail_processor/comment_replies_spec.rb +63 -0
- data/spec/lib/{dropbox_spec.rb → mail_processor/dropbox_spec.rb} +73 -181
- data/spec/lib/mail_processor/sample_emails/dropbox.rb +167 -0
- data/spec/mailers/subscription_mailer_spec.rb +17 -0
- data/spec/models/{base → entities}/account_contact_spec.rb +0 -0
- data/spec/models/{base → entities}/account_opportunity_spec.rb +0 -0
- data/spec/models/{base → entities}/account_spec.rb +4 -0
- data/spec/models/{base → entities}/campaign_spec.rb +4 -0
- data/spec/models/{base → entities}/contact_opportunity_spec.rb +0 -0
- data/spec/models/{base → entities}/contact_spec.rb +4 -0
- data/spec/models/{base → entities}/lead_spec.rb +4 -0
- data/spec/models/{base → entities}/opportunity_spec.rb +4 -0
- data/spec/models/polymorphic/comment_spec.rb +15 -0
- data/spec/models/{base → polymorphic}/task_spec.rb +124 -30
- data/spec/models/polymorphic/version_spec.rb +1 -1
- data/spec/shared/controllers.rb +5 -7
- data/spec/shared/models.rb +46 -0
- data/spec/spec_helper.rb +3 -4
- data/spec/support/mail_processor_mocks.rb +30 -0
- data/spec/support/uploaded_file.rb +3 -0
- data/spec/views/{common → application}/auto_complete.haml_spec.rb +1 -1
- data/vendor/assets/images/jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_flat_10_000000_40x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_222222_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_228ef1_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_ef8c08_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_ffd27a_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
- data/vendor/assets/javascripts/textarea_autocomplete.js +605 -0
- data/vendor/assets/stylesheets/jquery-ui.custom.css.erb +565 -0
- metadata +234 -154
- data/config/locales/simple_form.en.yml +0 -24
- data/lib/fat_free_crm/dropbox.rb +0 -439
- data/spec/lib/dropbox/email_samples.rb +0 -77
@@ -618,9 +618,9 @@ en-GB:
|
|
618
618
|
|
619
619
|
# Dropbox.
|
620
620
|
#----------------------------------------------------------------------------
|
621
|
-
|
622
|
-
|
623
|
-
|
621
|
+
dropbox_notification_subject: dropbox - Added email - %{subject}
|
622
|
+
dropbox_notification_intro: Succesfully added the email you sent to dropbox
|
623
|
+
dropbox_notification_to: Added to
|
624
624
|
subject: Subject
|
625
625
|
body: Body
|
626
626
|
|
@@ -607,6 +607,10 @@ en-US:
|
|
607
607
|
edit_comment: Editing comment
|
608
608
|
show: Show
|
609
609
|
update: Update
|
610
|
+
following_users_will_be_notified: The following users will be notified by email
|
611
|
+
notifications_tooltip: Subscribers will receive new comments via email
|
612
|
+
subscribe_via_email: Subscribe via email
|
613
|
+
disable_email_subscriptions: Disable email subscription
|
610
614
|
|
611
615
|
# Views -> Emails.
|
612
616
|
#----------------------------------------------------------------------------
|
@@ -668,12 +672,18 @@ en-US:
|
|
668
672
|
|
669
673
|
# Dropbox.
|
670
674
|
#----------------------------------------------------------------------------
|
671
|
-
|
672
|
-
|
673
|
-
|
675
|
+
dropbox_notification_subject: dropbox - Added email - %{subject}
|
676
|
+
dropbox_notification_intro: Succesfully added the email you sent to dropbox
|
677
|
+
dropbox_notification_to: Added to
|
674
678
|
subject: Subject
|
675
679
|
body: Body
|
676
680
|
|
681
|
+
# Comment Inbox
|
682
|
+
#----------------------------------------------------------------------------
|
683
|
+
comment_notification:
|
684
|
+
intro: "%{user_full_name} commented on %{entity_type}: %{entity_name}"
|
685
|
+
reply_instructions: "Reply to this email directly to add a new comment, or view the %{entity} online"
|
686
|
+
|
677
687
|
# Lists
|
678
688
|
#----------------------------------------------------------------------------
|
679
689
|
lists: Lists
|
@@ -595,9 +595,9 @@
|
|
595
595
|
|
596
596
|
# Dropbox.
|
597
597
|
#----------------------------------------------------------------------------
|
598
|
-
|
599
|
-
|
600
|
-
|
598
|
+
dropbox_notification_subject: dropbox - Añadido email - %{subject}
|
599
|
+
dropbox_notification_intro: Se ha añadido el email que envió al dropbox
|
600
|
+
dropbox_notification_to: Añadido a
|
601
601
|
subject: Asunto
|
602
602
|
body: Cuerpo
|
603
603
|
|
@@ -588,9 +588,9 @@ fr-CA:
|
|
588
588
|
|
589
589
|
# Dropbox.
|
590
590
|
#----------------------------------------------------------------------------
|
591
|
-
|
592
|
-
|
593
|
-
|
591
|
+
dropbox_notification_subject: dropbox - Ajouté email - %{subject}
|
592
|
+
dropbox_notification_intro: D'ajouter l'email que vous avez envoyé à la sélection
|
593
|
+
dropbox_notification_to: Ajoutés aux
|
594
594
|
subject: Sujet
|
595
595
|
body: Corps
|
596
596
|
|
@@ -669,9 +669,9 @@ fr:
|
|
669
669
|
|
670
670
|
# Dropbox.
|
671
671
|
#----------------------------------------------------------------------------
|
672
|
-
|
673
|
-
|
674
|
-
|
672
|
+
dropbox_notification_subject: dropbox - Email ajouté - %{subject}
|
673
|
+
dropbox_notification_intro: "a ajouté l'email que vous avez envoyé à la dropbox"
|
674
|
+
dropbox_notification_to: ajoutés aux
|
675
675
|
subject: Sujet
|
676
676
|
body: Corps
|
677
677
|
|
@@ -612,9 +612,9 @@ it:
|
|
612
612
|
|
613
613
|
# Dropbox.
|
614
614
|
#----------------------------------------------------------------------------
|
615
|
-
|
616
|
-
|
617
|
-
|
615
|
+
dropbox_notification_subject: dropbox - Aggiunta email - %{subject}
|
616
|
+
dropbox_notification_intro: Email inviata a dropbox aggiunta con successo
|
617
|
+
dropbox_notification_to: Aggiunto a
|
618
618
|
subject: Oggetto
|
619
619
|
body: Corpo
|
620
620
|
|
@@ -595,9 +595,9 @@ pl:
|
|
595
595
|
|
596
596
|
# Dropbox.
|
597
597
|
#----------------------------------------------------------------------------
|
598
|
-
|
599
|
-
|
600
|
-
|
598
|
+
dropbox_notification_subject: dropbox - E-mail Dodano - %{subject}
|
599
|
+
dropbox_notification_intro: Pomyślnie dodane e-mail wysłanych do DropBox
|
600
|
+
dropbox_notification_to: Dodano do
|
601
601
|
subject: Temat
|
602
602
|
body: Ciało
|
603
603
|
|
@@ -592,9 +592,9 @@ pt-BR:
|
|
592
592
|
|
593
593
|
# Dropbox.
|
594
594
|
#----------------------------------------------------------------------------
|
595
|
-
|
596
|
-
|
597
|
-
|
595
|
+
dropbox_notification_subject: dropbox - E-mail Added - %{subject}
|
596
|
+
dropbox_notification_intro: Adicionado com sucesso o e-mail que você enviou para dropbox
|
597
|
+
dropbox_notification_to: Adicionado a
|
598
598
|
subject: Assunto
|
599
599
|
body: Corpo
|
600
600
|
|
@@ -597,9 +597,9 @@ ru:
|
|
597
597
|
|
598
598
|
# Dropbox.
|
599
599
|
#----------------------------------------------------------------------------
|
600
|
-
|
601
|
-
|
602
|
-
|
600
|
+
dropbox_notification_subject: dropbox - Добавлено электронной почты - %{subject}
|
601
|
+
dropbox_notification_intro: Успешно добавлена электронной почты, который направлен Dropbox
|
602
|
+
dropbox_notification_to: В дополнение к
|
603
603
|
subject: Тема
|
604
604
|
body: Тело
|
605
605
|
|
@@ -588,9 +588,9 @@ sv-SE:
|
|
588
588
|
|
589
589
|
# Dropbox.
|
590
590
|
#----------------------------------------------------------------------------
|
591
|
-
|
592
|
-
|
593
|
-
|
591
|
+
dropbox_notification_subject: Dropbox - e-postadress tillagd - %{subject}
|
592
|
+
dropbox_notification_intro: E-postmeddelandet har lagts till i Dropbox
|
593
|
+
dropbox_notification_to: Lagts till
|
594
594
|
subject: Ämne
|
595
595
|
body: Text
|
596
596
|
|
@@ -596,9 +596,9 @@ th:
|
|
596
596
|
|
597
597
|
# Dropbox.
|
598
598
|
#----------------------------------------------------------------------------
|
599
|
-
|
600
|
-
|
601
|
-
|
599
|
+
dropbox_notification_subject: dropbox - อีเมล์ เพิ่ม - %{subject}
|
600
|
+
dropbox_notification_intro: สำเร็จ เพิ่ม อีเมล ที่ คุณ ส่ง ไป dropbox
|
601
|
+
dropbox_notification_to: เพิ่ม ลง ใน
|
602
602
|
subject: สาขา วิชา
|
603
603
|
body: ร่างกาย
|
604
604
|
|
data/config/routes.rb
CHANGED
@@ -34,6 +34,8 @@ Rails.application.routes.draw do
|
|
34
34
|
member do
|
35
35
|
put :attach
|
36
36
|
post :discard
|
37
|
+
post :subscribe
|
38
|
+
post :unsubscribe
|
37
39
|
get :contacts
|
38
40
|
get :opportunities
|
39
41
|
end
|
@@ -52,6 +54,8 @@ Rails.application.routes.draw do
|
|
52
54
|
member do
|
53
55
|
put :attach
|
54
56
|
post :discard
|
57
|
+
post :subscribe
|
58
|
+
post :unsubscribe
|
55
59
|
get :leads
|
56
60
|
get :opportunities
|
57
61
|
end
|
@@ -70,6 +74,8 @@ Rails.application.routes.draw do
|
|
70
74
|
member do
|
71
75
|
put :attach
|
72
76
|
post :discard
|
77
|
+
post :subscribe
|
78
|
+
post :unsubscribe
|
73
79
|
get :opportunities
|
74
80
|
end
|
75
81
|
end
|
@@ -87,6 +93,8 @@ Rails.application.routes.draw do
|
|
87
93
|
member do
|
88
94
|
get :convert
|
89
95
|
post :discard
|
96
|
+
post :subscribe
|
97
|
+
post :unsubscribe
|
90
98
|
put :attach
|
91
99
|
put :promote
|
92
100
|
put :reject
|
@@ -106,6 +114,8 @@ Rails.application.routes.draw do
|
|
106
114
|
member do
|
107
115
|
put :attach
|
108
116
|
post :discard
|
117
|
+
post :subscribe
|
118
|
+
post :unsubscribe
|
109
119
|
get :contacts
|
110
120
|
end
|
111
121
|
end
|
data/config/settings.default.yml
CHANGED
@@ -16,28 +16,29 @@
|
|
16
16
|
#------------------------------------------------------------------------------
|
17
17
|
|
18
18
|
# Fat Free CRM settings are stored in three places, and are loaded in the following order:
|
19
|
-
#
|
19
|
+
#
|
20
20
|
# 1) config/settings.default.yml
|
21
21
|
# 2) config/settings.yml (if exists)
|
22
22
|
# 3) 'settings' table in database (if exists)
|
23
23
|
#
|
24
24
|
# Any settings in `config/settings.yml` will override those in
|
25
25
|
# `config/settings.default.yml`, and settings in the database table have the highest priority.
|
26
|
-
#
|
26
|
+
#
|
27
27
|
# This settings arrangement offers a lot of flexibility:
|
28
28
|
#
|
29
29
|
# * Developers can add new settings to the application with default values,
|
30
30
|
# without requiring the user to manually update setting files or run tasks.
|
31
31
|
# * No manual configuration is required to start the application after installation
|
32
32
|
# * IT administrators can change the default configuration by adding 'settings.yml'
|
33
|
-
# to their git repo, or by running SQL that updates the 'settings' table in the database.
|
33
|
+
# to their git repo, or by running SQL that updates the 'settings' table in the database.
|
34
34
|
# * Admin users can change settings via the admin interface, without needing to edit YAML files.
|
35
35
|
#
|
36
|
-
# PLEASE DO NOT EDIT THE SETTINGS IN THIS FILE.
|
36
|
+
# PLEASE DO NOT EDIT THE SETTINGS IN THIS FILE.
|
37
37
|
# COPY THE SETTINGS THAT YOU WANT TO OVERRIDE INTO `config/settings.yml`
|
38
38
|
#
|
39
39
|
#------------------------------------------------------------------------------
|
40
40
|
|
41
|
+
|
41
42
|
# Host
|
42
43
|
#------------------------------------------------------------------------------
|
43
44
|
# Host for URLs when action mailer generates emails.
|
@@ -96,16 +97,34 @@
|
|
96
97
|
:user : "" # User to login to the IMAP server.
|
97
98
|
:password : "" # Password to login to the IMAP server.
|
98
99
|
:scan_folder : "" # Folder to scan for dropbox messages.
|
99
|
-
:attach_to_account : "" # Attach emails to contact's account, if any.
|
100
|
+
:attach_to_account : "" # Attach emails to contact's account, if any.
|
101
|
+
# (The rule above also applies to opportunities.)
|
102
|
+
# :address_aliases: # Optional: List any aliases that you also want to
|
103
|
+
# - example_alias@example.com # ignore when scanning recipients
|
104
|
+
# :move_to_folder : "" # Optional: folder to move processed messages to.
|
105
|
+
# :move_invalid_to_folder : "" # Optional: folder to move invalid messages to.
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
# Settings for 'Reply via email' inbox (IMAP)
|
110
|
+
#------------------------------------------------------------------------------
|
111
|
+
:email_comment_replies:
|
112
|
+
:server : "" # IMAP server name.
|
113
|
+
:port : "" # IMAP server port number.
|
114
|
+
:ssl : "" # True for secure IMAP connection, false othewise.
|
115
|
+
:address : "" # Comment reply email address.
|
116
|
+
:user : "" # User to login to the IMAP server.
|
117
|
+
:password : "" # Password to login to the IMAP server.
|
118
|
+
:scan_folder : "" # Folder to scan for comment replies.
|
100
119
|
# :move_to_folder : "" # Optional: folder to move processed messages to.
|
101
120
|
# :move_invalid_to_folder : "" # Optional: folder to move invalid messages to.
|
102
121
|
|
103
122
|
|
104
123
|
# Individual locales per user
|
105
124
|
#------------------------------------------------------------------------------
|
106
|
-
# To enable language selection in User/Profile set the following option to true.
|
125
|
+
# To enable language selection in User/Profile set the following option to true.
|
107
126
|
# By default, individual users can't pick their own locale and are presented
|
108
|
-
# with the default locale.
|
127
|
+
# with the default locale.
|
109
128
|
#
|
110
129
|
:per_user_locale: false
|
111
130
|
|
@@ -144,7 +163,7 @@
|
|
144
163
|
# The following setting controls whether to show time in dropdown calendar
|
145
164
|
# when scheduling a task for specific date.
|
146
165
|
# true -- allow selecting date and time. (default)
|
147
|
-
# false -- allow selecting date only.
|
166
|
+
# false -- allow selecting date only.
|
148
167
|
#
|
149
168
|
:task_calendar_with_time: true
|
150
169
|
|
@@ -170,7 +189,7 @@
|
|
170
189
|
|
171
190
|
# Background information
|
172
191
|
#------------------------------------------------------------------------------
|
173
|
-
# Specify model names that should have background information displayed.
|
192
|
+
# Specify model names that should have background information displayed.
|
174
193
|
# This field can be used when importing records from legacy databases,
|
175
194
|
# to display the 'background' of where they came from.
|
176
195
|
#
|
@@ -204,7 +223,7 @@
|
|
204
223
|
:admin_tabs: [
|
205
224
|
{ :active : true, :text : :admin_tab_users, :url : { :controller : "admin/users" } },
|
206
225
|
{ :active : false, :text : :admin_tab_fields, :url : { :controller : "admin/fields" } },
|
207
|
-
{ :active : false, :text : :admin_tab_tags, :url : { :controller : "admin/tags" } },
|
226
|
+
{ :active : false, :text : :admin_tab_tags, :url : { :controller : "admin/tags" } },
|
208
227
|
{ :active : false, :text : :admin_tab_settings, :url : { :controller : "admin/settings" } },
|
209
228
|
{ :active : false, :text : :admin_tab_plugins, :url : { :controller : "admin/plugins" } }
|
210
229
|
]
|
data/config/unicorn.rb
ADDED
@@ -4,7 +4,9 @@ class AddFieldGroupsKlassName < ActiveRecord::Migration
|
|
4
4
|
|
5
5
|
# Add a default field group for each model
|
6
6
|
Field::KLASSES.each do |klass|
|
7
|
-
field_group = FieldGroup.
|
7
|
+
field_group = FieldGroup.new
|
8
|
+
field_group.label, field_group.klass_name = 'Custom Fields', klass.name
|
9
|
+
field_group.save!
|
8
10
|
Field.update_all({:field_group_id => field_group.id}, {:field_group_id => nil, :klass_name => klass.name})
|
9
11
|
end
|
10
12
|
FieldGroup.update_all('klass_name = (SELECT MAX(klass_name) FROM fields WHERE field_group_id = field_groups.id)', {:klass_name => nil})
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class AddSubscribedUsersToEntities < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
%w(accounts campaigns contacts leads opportunities tasks).each do |table|
|
4
|
+
add_column table.to_sym, :subscribed_users, :text
|
5
|
+
# Reset the column information of each model
|
6
|
+
table.singularize.capitalize.constantize.reset_column_information
|
7
|
+
end
|
8
|
+
|
9
|
+
entity_subscribers = Hash.new(Set.new)
|
10
|
+
|
11
|
+
# Add comment's user to the entity's Set
|
12
|
+
Comment.all.each do |comment|
|
13
|
+
entity_subscribers[[comment.commentable_type, comment.commentable_id]] += [comment.user_id]
|
14
|
+
end
|
15
|
+
|
16
|
+
# Run as one atomic action.
|
17
|
+
ActiveRecord::Base.transaction do
|
18
|
+
entity_subscribers.each do |entity, user_ids|
|
19
|
+
connection.execute "UPDATE #{entity[0].tableize} SET subscribed_users = '#{user_ids.to_a.to_yaml}' WHERE id = #{entity[1]}"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
class ChangeSubscribedUsersToSet < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
contacts = connection.select_all %Q{
|
4
|
+
SELECT id, subscribed_users
|
5
|
+
FROM contacts
|
6
|
+
WHERE subscribed_users IS NOT NULL
|
7
|
+
}
|
8
|
+
|
9
|
+
puts "Converting #{contacts.size} subscribed_users arrays into sets..." unless contacts.empty?
|
10
|
+
|
11
|
+
# Run as one atomic action.
|
12
|
+
ActiveRecord::Base.transaction do
|
13
|
+
contacts.each do |contact|
|
14
|
+
subscribed_users_set = Set.new(YAML.load(contact["subscribed_users"]))
|
15
|
+
|
16
|
+
connection.execute %Q{
|
17
|
+
UPDATE contacts
|
18
|
+
SET subscribed_users = '#{subscribed_users_set.to_yaml}'
|
19
|
+
WHERE id = #{contact["id"]}
|
20
|
+
}
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class ChangeFurtherSubscribedUsersToSet < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
# Change the other tables that were missing from the previous migration
|
4
|
+
%w(campaigns opportunities leads tasks accounts).each do |table|
|
5
|
+
entities = connection.select_all %Q{
|
6
|
+
SELECT id, subscribed_users
|
7
|
+
FROM #{table}
|
8
|
+
WHERE subscribed_users IS NOT NULL
|
9
|
+
}
|
10
|
+
|
11
|
+
puts "#{table}: Converting #{entities.size} subscribed_users arrays into sets..." unless entities.empty?
|
12
|
+
|
13
|
+
# Run as one atomic action.
|
14
|
+
ActiveRecord::Base.transaction do
|
15
|
+
entities.each do |entity|
|
16
|
+
subscribed_users_set = Set.new(YAML.load(entity["subscribed_users"]))
|
17
|
+
|
18
|
+
connection.execute %Q{
|
19
|
+
UPDATE #{table}
|
20
|
+
SET subscribed_users = '#{subscribed_users_set.to_yaml}'
|
21
|
+
WHERE id = #{entity["id"]}
|
22
|
+
}
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/db/schema.rb
CHANGED
@@ -11,47 +11,41 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended to check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(:version =>
|
15
|
-
|
16
|
-
create_table "account_aliases", :force => true do |t|
|
17
|
-
t.integer "account_id"
|
18
|
-
t.integer "destroyed_account_id"
|
19
|
-
t.datetime "created_at"
|
20
|
-
t.datetime "updated_at"
|
21
|
-
end
|
14
|
+
ActiveRecord::Schema.define(:version => 20120413034923) do
|
22
15
|
|
23
16
|
create_table "account_contacts", :force => true do |t|
|
24
17
|
t.integer "account_id"
|
25
18
|
t.integer "contact_id"
|
26
19
|
t.datetime "deleted_at"
|
27
|
-
t.datetime "created_at"
|
28
|
-
t.datetime "updated_at"
|
20
|
+
t.datetime "created_at", :null => false
|
21
|
+
t.datetime "updated_at", :null => false
|
29
22
|
end
|
30
23
|
|
31
24
|
create_table "account_opportunities", :force => true do |t|
|
32
25
|
t.integer "account_id"
|
33
26
|
t.integer "opportunity_id"
|
34
27
|
t.datetime "deleted_at"
|
35
|
-
t.datetime "created_at"
|
36
|
-
t.datetime "updated_at"
|
28
|
+
t.datetime "created_at", :null => false
|
29
|
+
t.datetime "updated_at", :null => false
|
37
30
|
end
|
38
31
|
|
39
32
|
create_table "accounts", :force => true do |t|
|
40
33
|
t.integer "user_id"
|
41
34
|
t.integer "assigned_to"
|
42
|
-
t.string "name",
|
43
|
-
t.string "access",
|
44
|
-
t.string "website",
|
45
|
-
t.string "toll_free_phone",
|
46
|
-
t.string "phone",
|
47
|
-
t.string "fax",
|
35
|
+
t.string "name", :limit => 64, :default => "", :null => false
|
36
|
+
t.string "access", :limit => 8, :default => "Public"
|
37
|
+
t.string "website", :limit => 64
|
38
|
+
t.string "toll_free_phone", :limit => 32
|
39
|
+
t.string "phone", :limit => 32
|
40
|
+
t.string "fax", :limit => 32
|
48
41
|
t.datetime "deleted_at"
|
49
|
-
t.datetime "created_at"
|
50
|
-
t.datetime "updated_at"
|
51
|
-
t.string "email",
|
42
|
+
t.datetime "created_at", :null => false
|
43
|
+
t.datetime "updated_at", :null => false
|
44
|
+
t.string "email", :limit => 64
|
52
45
|
t.string "background_info"
|
53
46
|
t.integer "rating", :default => 0, :null => false
|
54
|
-
t.string "category",
|
47
|
+
t.string "category", :limit => 32
|
48
|
+
t.text "subscribed_users"
|
55
49
|
end
|
56
50
|
|
57
51
|
add_index "accounts", ["assigned_to"], :name => "index_accounts_on_assigned_to"
|
@@ -64,8 +58,8 @@ ActiveRecord::Schema.define(:version => 20120316045804) do
|
|
64
58
|
t.string "action", :limit => 32, :default => "created"
|
65
59
|
t.string "info", :default => ""
|
66
60
|
t.boolean "private", :default => false
|
67
|
-
t.datetime "created_at"
|
68
|
-
t.datetime "updated_at"
|
61
|
+
t.datetime "created_at", :null => false
|
62
|
+
t.datetime "updated_at", :null => false
|
69
63
|
end
|
70
64
|
|
71
65
|
add_index "activities", ["created_at"], :name => "index_activities_on_created_at"
|
@@ -82,20 +76,13 @@ ActiveRecord::Schema.define(:version => 20120316045804) do
|
|
82
76
|
t.string "address_type", :limit => 16
|
83
77
|
t.integer "addressable_id"
|
84
78
|
t.string "addressable_type"
|
85
|
-
t.datetime "created_at"
|
86
|
-
t.datetime "updated_at"
|
79
|
+
t.datetime "created_at", :null => false
|
80
|
+
t.datetime "updated_at", :null => false
|
87
81
|
t.datetime "deleted_at"
|
88
82
|
end
|
89
83
|
|
90
84
|
add_index "addresses", ["addressable_id", "addressable_type"], :name => "index_addresses_on_addressable_id_and_addressable_type"
|
91
85
|
|
92
|
-
create_table "application_accounts", :force => true do |t|
|
93
|
-
t.string "name"
|
94
|
-
t.string "single_access_token", :null => false
|
95
|
-
t.datetime "created_at"
|
96
|
-
t.datetime "updated_at"
|
97
|
-
end
|
98
|
-
|
99
86
|
create_table "avatars", :force => true do |t|
|
100
87
|
t.integer "user_id"
|
101
88
|
t.integer "entity_id"
|
@@ -103,8 +90,8 @@ ActiveRecord::Schema.define(:version => 20120316045804) do
|
|
103
90
|
t.integer "image_file_size"
|
104
91
|
t.string "image_file_name"
|
105
92
|
t.string "image_content_type"
|
106
|
-
t.datetime "created_at"
|
107
|
-
t.datetime "updated_at"
|
93
|
+
t.datetime "created_at", :null => false
|
94
|
+
t.datetime "updated_at", :null => false
|
108
95
|
end
|
109
96
|
|
110
97
|
create_table "campaigns", :force => true do |t|
|
@@ -124,9 +111,10 @@ ActiveRecord::Schema.define(:version => 20120316045804) do
|
|
124
111
|
t.date "ends_on"
|
125
112
|
t.text "objectives"
|
126
113
|
t.datetime "deleted_at"
|
127
|
-
t.datetime "created_at"
|
128
|
-
t.datetime "updated_at"
|
114
|
+
t.datetime "created_at", :null => false
|
115
|
+
t.datetime "updated_at", :null => false
|
129
116
|
t.string "background_info"
|
117
|
+
t.text "subscribed_users"
|
130
118
|
end
|
131
119
|
|
132
120
|
add_index "campaigns", ["assigned_to"], :name => "index_campaigns_on_assigned_to"
|
@@ -139,25 +127,18 @@ ActiveRecord::Schema.define(:version => 20120316045804) do
|
|
139
127
|
t.boolean "private"
|
140
128
|
t.string "title", :default => ""
|
141
129
|
t.text "comment"
|
142
|
-
t.datetime "created_at"
|
143
|
-
t.datetime "updated_at"
|
130
|
+
t.datetime "created_at", :null => false
|
131
|
+
t.datetime "updated_at", :null => false
|
144
132
|
t.string "state", :limit => 16, :default => "Expanded", :null => false
|
145
133
|
end
|
146
134
|
|
147
|
-
create_table "contact_aliases", :force => true do |t|
|
148
|
-
t.integer "contact_id"
|
149
|
-
t.integer "destroyed_contact_id"
|
150
|
-
t.datetime "created_at"
|
151
|
-
t.datetime "updated_at"
|
152
|
-
end
|
153
|
-
|
154
135
|
create_table "contact_opportunities", :force => true do |t|
|
155
136
|
t.integer "contact_id"
|
156
137
|
t.integer "opportunity_id"
|
157
138
|
t.string "role", :limit => 32
|
158
139
|
t.datetime "deleted_at"
|
159
|
-
t.datetime "created_at"
|
160
|
-
t.datetime "updated_at"
|
140
|
+
t.datetime "created_at", :null => false
|
141
|
+
t.datetime "updated_at", :null => false
|
161
142
|
end
|
162
143
|
|
163
144
|
create_table "contacts", :force => true do |t|
|
@@ -165,32 +146,33 @@ ActiveRecord::Schema.define(:version => 20120316045804) do
|
|
165
146
|
t.integer "lead_id"
|
166
147
|
t.integer "assigned_to"
|
167
148
|
t.integer "reports_to"
|
168
|
-
t.string "first_name",
|
169
|
-
t.string "last_name",
|
170
|
-
t.string "access",
|
171
|
-
t.string "title",
|
172
|
-
t.string "department",
|
173
|
-
t.string "source",
|
174
|
-
t.string "email",
|
175
|
-
t.string "alt_email",
|
176
|
-
t.string "phone",
|
177
|
-
t.string "mobile",
|
178
|
-
t.string "fax",
|
179
|
-
t.string "blog",
|
180
|
-
t.string "linkedin",
|
181
|
-
t.string "facebook",
|
182
|
-
t.string "twitter",
|
149
|
+
t.string "first_name", :limit => 64, :default => "", :null => false
|
150
|
+
t.string "last_name", :limit => 64, :default => "", :null => false
|
151
|
+
t.string "access", :limit => 8, :default => "Public"
|
152
|
+
t.string "title", :limit => 64
|
153
|
+
t.string "department", :limit => 64
|
154
|
+
t.string "source", :limit => 32
|
155
|
+
t.string "email", :limit => 64
|
156
|
+
t.string "alt_email", :limit => 64
|
157
|
+
t.string "phone", :limit => 32
|
158
|
+
t.string "mobile", :limit => 32
|
159
|
+
t.string "fax", :limit => 32
|
160
|
+
t.string "blog", :limit => 128
|
161
|
+
t.string "linkedin", :limit => 128
|
162
|
+
t.string "facebook", :limit => 128
|
163
|
+
t.string "twitter", :limit => 128
|
183
164
|
t.date "born_on"
|
184
|
-
t.boolean "do_not_call",
|
165
|
+
t.boolean "do_not_call", :default => false, :null => false
|
185
166
|
t.datetime "deleted_at"
|
186
|
-
t.datetime "created_at"
|
187
|
-
t.datetime "updated_at"
|
167
|
+
t.datetime "created_at", :null => false
|
168
|
+
t.datetime "updated_at", :null => false
|
188
169
|
t.string "background_info"
|
189
|
-
t.string "skype",
|
170
|
+
t.string "skype", :limit => 128
|
171
|
+
t.text "subscribed_users"
|
190
172
|
end
|
191
173
|
|
192
174
|
add_index "contacts", ["assigned_to"], :name => "index_contacts_on_assigned_to"
|
193
|
-
add_index "contacts", ["user_id", "last_name", "deleted_at"], :name => "
|
175
|
+
add_index "contacts", ["user_id", "last_name", "deleted_at"], :name => "id_last_name_deleted", :unique => true
|
194
176
|
|
195
177
|
create_table "emails", :force => true do |t|
|
196
178
|
t.string "imap_message_id", :null => false
|
@@ -207,8 +189,8 @@ ActiveRecord::Schema.define(:version => 20120316045804) do
|
|
207
189
|
t.datetime "sent_at"
|
208
190
|
t.datetime "received_at"
|
209
191
|
t.datetime "deleted_at"
|
210
|
-
t.datetime "created_at"
|
211
|
-
t.datetime "updated_at"
|
192
|
+
t.datetime "created_at", :null => false
|
193
|
+
t.datetime "updated_at", :null => false
|
212
194
|
t.string "state", :limit => 16, :default => "Expanded", :null => false
|
213
195
|
end
|
214
196
|
|
@@ -219,8 +201,8 @@ ActiveRecord::Schema.define(:version => 20120316045804) do
|
|
219
201
|
t.string "label", :limit => 128
|
220
202
|
t.integer "position"
|
221
203
|
t.string "hint"
|
222
|
-
t.datetime "created_at"
|
223
|
-
t.datetime "updated_at"
|
204
|
+
t.datetime "created_at", :null => false
|
205
|
+
t.datetime "updated_at", :null => false
|
224
206
|
t.integer "tag_id"
|
225
207
|
t.string "klass_name", :limit => 32
|
226
208
|
end
|
@@ -238,8 +220,8 @@ ActiveRecord::Schema.define(:version => 20120316045804) do
|
|
238
220
|
t.boolean "disabled"
|
239
221
|
t.boolean "required"
|
240
222
|
t.integer "maxlength"
|
241
|
-
t.datetime "created_at"
|
242
|
-
t.datetime "updated_at"
|
223
|
+
t.datetime "created_at", :null => false
|
224
|
+
t.datetime "updated_at", :null => false
|
243
225
|
end
|
244
226
|
|
245
227
|
add_index "fields", ["field_group_id"], :name => "index_fields_on_field_group_id"
|
@@ -249,29 +231,30 @@ ActiveRecord::Schema.define(:version => 20120316045804) do
|
|
249
231
|
t.integer "user_id"
|
250
232
|
t.integer "campaign_id"
|
251
233
|
t.integer "assigned_to"
|
252
|
-
t.string "first_name",
|
253
|
-
t.string "last_name",
|
254
|
-
t.string "access",
|
255
|
-
t.string "title",
|
256
|
-
t.string "company",
|
257
|
-
t.string "source",
|
258
|
-
t.string "status",
|
259
|
-
t.string "referred_by",
|
260
|
-
t.string "email",
|
261
|
-
t.string "alt_email",
|
262
|
-
t.string "phone",
|
263
|
-
t.string "mobile",
|
264
|
-
t.string "blog",
|
265
|
-
t.string "linkedin",
|
266
|
-
t.string "facebook",
|
267
|
-
t.string "twitter",
|
268
|
-
t.integer "rating",
|
269
|
-
t.boolean "do_not_call",
|
234
|
+
t.string "first_name", :limit => 64, :default => "", :null => false
|
235
|
+
t.string "last_name", :limit => 64, :default => "", :null => false
|
236
|
+
t.string "access", :limit => 8, :default => "Public"
|
237
|
+
t.string "title", :limit => 64
|
238
|
+
t.string "company", :limit => 64
|
239
|
+
t.string "source", :limit => 32
|
240
|
+
t.string "status", :limit => 32
|
241
|
+
t.string "referred_by", :limit => 64
|
242
|
+
t.string "email", :limit => 64
|
243
|
+
t.string "alt_email", :limit => 64
|
244
|
+
t.string "phone", :limit => 32
|
245
|
+
t.string "mobile", :limit => 32
|
246
|
+
t.string "blog", :limit => 128
|
247
|
+
t.string "linkedin", :limit => 128
|
248
|
+
t.string "facebook", :limit => 128
|
249
|
+
t.string "twitter", :limit => 128
|
250
|
+
t.integer "rating", :default => 0, :null => false
|
251
|
+
t.boolean "do_not_call", :default => false, :null => false
|
270
252
|
t.datetime "deleted_at"
|
271
|
-
t.datetime "created_at"
|
272
|
-
t.datetime "updated_at"
|
253
|
+
t.datetime "created_at", :null => false
|
254
|
+
t.datetime "updated_at", :null => false
|
273
255
|
t.string "background_info"
|
274
|
-
t.string "skype",
|
256
|
+
t.string "skype", :limit => 128
|
257
|
+
t.text "subscribed_users"
|
275
258
|
end
|
276
259
|
|
277
260
|
add_index "leads", ["assigned_to"], :name => "index_leads_on_assigned_to"
|
@@ -280,37 +263,38 @@ ActiveRecord::Schema.define(:version => 20120316045804) do
|
|
280
263
|
create_table "lists", :force => true do |t|
|
281
264
|
t.string "name"
|
282
265
|
t.text "url"
|
283
|
-
t.datetime "created_at"
|
284
|
-
t.datetime "updated_at"
|
266
|
+
t.datetime "created_at", :null => false
|
267
|
+
t.datetime "updated_at", :null => false
|
285
268
|
end
|
286
269
|
|
287
270
|
create_table "opportunities", :force => true do |t|
|
288
271
|
t.integer "user_id"
|
289
272
|
t.integer "campaign_id"
|
290
273
|
t.integer "assigned_to"
|
291
|
-
t.string "name",
|
292
|
-
t.string "access",
|
293
|
-
t.string "source",
|
294
|
-
t.string "stage",
|
274
|
+
t.string "name", :limit => 64, :default => "", :null => false
|
275
|
+
t.string "access", :limit => 8, :default => "Public"
|
276
|
+
t.string "source", :limit => 32
|
277
|
+
t.string "stage", :limit => 32
|
295
278
|
t.integer "probability"
|
296
|
-
t.decimal "amount",
|
297
|
-
t.decimal "discount",
|
279
|
+
t.decimal "amount", :precision => 12, :scale => 2
|
280
|
+
t.decimal "discount", :precision => 12, :scale => 2
|
298
281
|
t.date "closes_on"
|
299
282
|
t.datetime "deleted_at"
|
300
|
-
t.datetime "created_at"
|
301
|
-
t.datetime "updated_at"
|
283
|
+
t.datetime "created_at", :null => false
|
284
|
+
t.datetime "updated_at", :null => false
|
302
285
|
t.string "background_info"
|
286
|
+
t.text "subscribed_users"
|
303
287
|
end
|
304
288
|
|
305
289
|
add_index "opportunities", ["assigned_to"], :name => "index_opportunities_on_assigned_to"
|
306
|
-
add_index "opportunities", ["user_id", "name", "deleted_at"], :name => "
|
290
|
+
add_index "opportunities", ["user_id", "name", "deleted_at"], :name => "id_name_deleted", :unique => true
|
307
291
|
|
308
292
|
create_table "permissions", :force => true do |t|
|
309
293
|
t.integer "user_id"
|
310
294
|
t.integer "asset_id"
|
311
295
|
t.string "asset_type"
|
312
|
-
t.datetime "created_at"
|
313
|
-
t.datetime "updated_at"
|
296
|
+
t.datetime "created_at", :null => false
|
297
|
+
t.datetime "updated_at", :null => false
|
314
298
|
end
|
315
299
|
|
316
300
|
add_index "permissions", ["asset_id", "asset_type"], :name => "index_permissions_on_asset_id_and_asset_type"
|
@@ -320,8 +304,8 @@ ActiveRecord::Schema.define(:version => 20120316045804) do
|
|
320
304
|
t.integer "user_id"
|
321
305
|
t.string "name", :limit => 32, :default => "", :null => false
|
322
306
|
t.text "value"
|
323
|
-
t.datetime "created_at"
|
324
|
-
t.datetime "updated_at"
|
307
|
+
t.datetime "created_at", :null => false
|
308
|
+
t.datetime "updated_at", :null => false
|
325
309
|
end
|
326
310
|
|
327
311
|
add_index "preferences", ["user_id", "name"], :name => "index_preferences_on_user_id_and_name"
|
@@ -329,8 +313,8 @@ ActiveRecord::Schema.define(:version => 20120316045804) do
|
|
329
313
|
create_table "sessions", :force => true do |t|
|
330
314
|
t.string "session_id", :null => false
|
331
315
|
t.text "data"
|
332
|
-
t.datetime "created_at"
|
333
|
-
t.datetime "updated_at"
|
316
|
+
t.datetime "created_at", :null => false
|
317
|
+
t.datetime "updated_at", :null => false
|
334
318
|
end
|
335
319
|
|
336
320
|
add_index "sessions", ["session_id"], :name => "index_sessions_on_session_id"
|
@@ -339,8 +323,8 @@ ActiveRecord::Schema.define(:version => 20120316045804) do
|
|
339
323
|
create_table "settings", :force => true do |t|
|
340
324
|
t.string "name", :limit => 32, :default => "", :null => false
|
341
325
|
t.text "value"
|
342
|
-
t.datetime "created_at"
|
343
|
-
t.datetime "updated_at"
|
326
|
+
t.datetime "created_at", :null => false
|
327
|
+
t.datetime "updated_at", :null => false
|
344
328
|
end
|
345
329
|
|
346
330
|
add_index "settings", ["name"], :name => "index_settings_on_name"
|
@@ -359,28 +343,26 @@ ActiveRecord::Schema.define(:version => 20120316045804) do
|
|
359
343
|
add_index "taggings", ["taggable_id", "taggable_type", "context"], :name => "index_taggings_on_taggable_id_and_taggable_type_and_context"
|
360
344
|
|
361
345
|
create_table "tags", :force => true do |t|
|
362
|
-
t.string
|
363
|
-
t.datetime "created_at"
|
364
|
-
t.datetime "updated_at"
|
365
|
-
t.string "taggable_type"
|
346
|
+
t.string "name"
|
366
347
|
end
|
367
348
|
|
368
349
|
create_table "tasks", :force => true do |t|
|
369
350
|
t.integer "user_id"
|
370
351
|
t.integer "assigned_to"
|
371
352
|
t.integer "completed_by"
|
372
|
-
t.string "name",
|
353
|
+
t.string "name", :default => "", :null => false
|
373
354
|
t.integer "asset_id"
|
374
355
|
t.string "asset_type"
|
375
|
-
t.string "priority",
|
376
|
-
t.string "category",
|
377
|
-
t.string "bucket",
|
356
|
+
t.string "priority", :limit => 32
|
357
|
+
t.string "category", :limit => 32
|
358
|
+
t.string "bucket", :limit => 32
|
378
359
|
t.datetime "due_at"
|
379
360
|
t.datetime "completed_at"
|
380
361
|
t.datetime "deleted_at"
|
381
|
-
t.datetime "created_at"
|
382
|
-
t.datetime "updated_at"
|
362
|
+
t.datetime "created_at", :null => false
|
363
|
+
t.datetime "updated_at", :null => false
|
383
364
|
t.string "background_info"
|
365
|
+
t.text "subscribed_users"
|
384
366
|
end
|
385
367
|
|
386
368
|
add_index "tasks", ["assigned_to"], :name => "index_tasks_on_assigned_to"
|
@@ -411,8 +393,8 @@ ActiveRecord::Schema.define(:version => 20120316045804) do
|
|
411
393
|
t.string "current_login_ip"
|
412
394
|
t.integer "login_count", :default => 0, :null => false
|
413
395
|
t.datetime "deleted_at"
|
414
|
-
t.datetime "created_at"
|
415
|
-
t.datetime "updated_at"
|
396
|
+
t.datetime "created_at", :null => false
|
397
|
+
t.datetime "updated_at", :null => false
|
416
398
|
t.boolean "admin", :default => false, :null => false
|
417
399
|
t.datetime "suspended_at"
|
418
400
|
t.string "single_access_token"
|
@@ -437,5 +419,6 @@ ActiveRecord::Schema.define(:version => 20120316045804) do
|
|
437
419
|
end
|
438
420
|
|
439
421
|
add_index "versions", ["item_type", "item_id"], :name => "index_versions_on_item_type_and_item_id"
|
422
|
+
add_index "versions", ["whodunnit"], :name => "index_versions_on_whodunnit"
|
440
423
|
|
441
424
|
end
|