dorsale 3.6.1 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/app/controllers/concerns/dorsale/flyboy/tasks_summary_concern.rb +1 -2
  4. data/app/controllers/dorsale/customer_vault/activity_types_controller.rb +76 -0
  5. data/app/controllers/dorsale/customer_vault/origins_controller.rb +76 -0
  6. data/app/controllers/dorsale/customer_vault/people_controller.rb +2 -0
  7. data/app/controllers/dorsale/flyboy/task_comments_controller.rb +1 -1
  8. data/app/controllers/dorsale/flyboy/tasks_controller.rb +1 -1
  9. data/app/models/dorsale/alexandrie/attachment.rb +1 -1
  10. data/app/models/dorsale/comment.rb +1 -1
  11. data/app/models/dorsale/customer_vault/activity_type.rb +9 -0
  12. data/app/models/dorsale/customer_vault/individual.rb +7 -0
  13. data/app/models/dorsale/customer_vault/origin.rb +9 -0
  14. data/app/models/dorsale/customer_vault/person.rb +3 -0
  15. data/app/models/dorsale/flyboy/task.rb +1 -1
  16. data/app/models/dorsale/flyboy/task_comment.rb +1 -1
  17. data/app/policies/dorsale/customer_vault/activity_type_policy_helper.rb +7 -0
  18. data/app/policies/dorsale/customer_vault/origin_policy_helper.rb +7 -0
  19. data/app/policies/dorsale/flyboy/task_policy_helper.rb +1 -0
  20. data/app/policies/dorsale/policy_checker.rb +2 -0
  21. data/app/views/dorsale/customer_vault/activity_types/_form.html.slim +13 -0
  22. data/app/views/dorsale/customer_vault/activity_types/_index_actions.html.slim +2 -0
  23. data/app/views/dorsale/customer_vault/activity_types/_list.html.slim +17 -0
  24. data/app/views/dorsale/customer_vault/activity_types/edit.html.slim +1 -0
  25. data/app/views/dorsale/customer_vault/activity_types/index.html.slim +11 -0
  26. data/app/views/dorsale/customer_vault/activity_types/new.html.slim +1 -0
  27. data/app/views/dorsale/customer_vault/origins/_form.html.slim +13 -0
  28. data/app/views/dorsale/customer_vault/origins/_index_actions.html.slim +2 -0
  29. data/app/views/dorsale/customer_vault/origins/_list.html.slim +17 -0
  30. data/app/views/dorsale/customer_vault/origins/edit.html.slim +1 -0
  31. data/app/views/dorsale/customer_vault/origins/index.html.slim +11 -0
  32. data/app/views/dorsale/customer_vault/origins/new.html.slim +1 -0
  33. data/app/views/dorsale/customer_vault/people/_context_general.html.slim +2 -0
  34. data/app/views/dorsale/customer_vault/people/_form.html.slim +3 -0
  35. data/app/views/dorsale/flyboy/task_comments/_list.html.slim +10 -6
  36. data/app/views/dorsale/flyboy/tasks/_form.html.slim +1 -1
  37. data/config/locales/customer_vault.en.yml +26 -0
  38. data/config/locales/customer_vault.fr.yml +25 -0
  39. data/config/locales/dorsale.en.yml +2 -0
  40. data/config/locales/dorsale.fr.yml +2 -0
  41. data/config/locales/flyboy.en.yml +0 -1
  42. data/config/locales/flyboy.fr.yml +0 -1
  43. data/config/routes.rb +4 -0
  44. data/db/migrate/20170427082626_create_dorsale_customer_vault_origins.rb +8 -0
  45. data/db/migrate/20170427082920_create_dorsale_customer_vault_activity_types.rb +8 -0
  46. data/db/migrate/20170427083541_remove_useless_polymorphic_belongs_to.rb +9 -0
  47. data/db/migrate/20170427093507_add_origin_and_activity_type_to_customer_vault_people.rb +6 -0
  48. data/features/customer_vault_activity_types.feature +19 -0
  49. data/features/customer_vault_origins.feature +19 -0
  50. data/features/step_definitions/customer_vault_activity_types_steps.rb +42 -0
  51. data/features/step_definitions/customer_vault_origins_steps.rb +42 -0
  52. data/lib/dorsale/version.rb +1 -1
  53. data/spec/controllers/dorsale/flyboy/tasks_controller_spec.rb +4 -4
  54. data/spec/factories/customer_vault_activity_types.rb +5 -0
  55. data/spec/factories/customer_vault_corporations.rb +8 -6
  56. data/spec/factories/customer_vault_individuals.rb +1 -0
  57. data/spec/factories/customer_vault_origins.rb +5 -0
  58. data/spec/models/dorsale/customer_vault/activity_type_spec.rb +8 -0
  59. data/spec/models/dorsale/customer_vault/corporation_spec.rb +3 -0
  60. data/spec/models/dorsale/customer_vault/individual_spec.rb +24 -0
  61. data/spec/models/dorsale/customer_vault/origin_spec.rb +8 -0
  62. data/spec/routing/dorsale/customer_vault/activity_types_routing_spec.rb +40 -0
  63. data/spec/routing/dorsale/customer_vault/origins_routing_spec.rb +40 -0
  64. metadata +44 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6b1e9d0f347103fbdd22f9b4dcf92688e3c4f2dc
4
- data.tar.gz: 65ea3dd53a8de8bb9fc4c7769d438a3d63711e22
3
+ metadata.gz: 523d3264e16c525112422f6ec7beb74c0c28a2e8
4
+ data.tar.gz: 5018061784efc57024e7787e055bb8f64ed6be2c
5
5
  SHA512:
6
- metadata.gz: a9d8a3a529b0353e2867e08daea7065d4053c3f9ddc333633a085c9a5b3c6e0068261b009b36fc2aabb0c61fb02e89993cae7334c690cd9117f6f7b1cb815355
7
- data.tar.gz: b11827ac3d227f2790eed5693491b0a7b23d62baa6cd344ae0a7fa8ec78e111a7f08318dcfd0433b54e9d83cb4360944ffbf8f71b16c772c24f689b8f58eb9c9
6
+ metadata.gz: 9497cb875ece483c790e5aae3a5c1661b3e9fade30246d9c9a269ea1239f642056c6898ba981197829eca38263cc9eb9452723a3e849c391e44e0983da0810bb
7
+ data.tar.gz: 16ecb86b3ad8dd7df1992bc507b091c479657dd4a3172a5ced80e1434051bbadb5b3656f4c3453f38a4ac36894ff488e7c7e34abbe1dfb628f21863bf1b4f8eb
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.7.0
4
+
5
+ - Remove some useless "polymorphic" belongs_to
6
+ - Add `comment?` action to task policy
7
+ - CustomerVault : origins and activity types
8
+
3
9
  ## 3.6.1
4
10
 
5
11
  - CSS fix
@@ -2,8 +2,7 @@ module Dorsale::Flyboy::TasksSummaryConcern
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  def setup_tasks_summary
5
- tasks = policy_scope(::Dorsale::Flyboy::Task)
6
- .where("(owner_id IS NULL and owner_type IS NULL) OR (owner_id = ? and owner_type = ?)", current_user.id, current_user.class)
5
+ tasks = policy_scope(::Dorsale::Flyboy::Task).where(owner: [current_user, nil])
7
6
 
8
7
  @delayed_tasks = tasks.delayed
9
8
  @today_tasks = tasks.today
@@ -0,0 +1,76 @@
1
+ class Dorsale::CustomerVault::ActivityTypesController < ::Dorsale::CustomerVault::ApplicationController
2
+ before_action :set_objects, only: [:edit, :update]
3
+
4
+ def index
5
+ authorize model, :list?
6
+
7
+ @activity_types ||= scope.all
8
+ end
9
+
10
+ def new
11
+ @activity_type ||= scope.new
12
+
13
+ authorize @activity_type, :create?
14
+ end
15
+
16
+ def create
17
+ @activity_type ||= scope.new(activity_type_params_for_create)
18
+
19
+ authorize @activity_type, :create?
20
+
21
+ if @activity_type.save
22
+ flash[:notice] = t("messages.activity_types.create_ok")
23
+ redirect_to back_url
24
+ else
25
+ render action: :new
26
+ end
27
+ end
28
+
29
+ def edit
30
+ authorize @activity_type, :update?
31
+ end
32
+
33
+ def update
34
+ authorize @activity_type, :update?
35
+
36
+ if @activity_type.update(activity_type_params_for_update)
37
+ flash[:notice] = t("messages.activity_types.update_ok")
38
+ redirect_to back_url
39
+ else
40
+ render action: :edit
41
+ end
42
+ end
43
+
44
+ private
45
+
46
+ def set_objects
47
+ @activity_type ||= scope.find(params[:id])
48
+ end
49
+
50
+ def model
51
+ ::Dorsale::CustomerVault::ActivityType
52
+ end
53
+
54
+ def back_url
55
+ customer_vault_activity_types_path
56
+ end
57
+
58
+ def permitted_params
59
+ [
60
+ :name,
61
+ ]
62
+ end
63
+
64
+ def activity_type_params
65
+ params.fetch(:activity_type, {}).permit(permitted_params)
66
+ end
67
+
68
+ def activity_type_params_for_create
69
+ activity_type_params
70
+ end
71
+
72
+ def activity_type_params_for_update
73
+ activity_type_params
74
+ end
75
+
76
+ end
@@ -0,0 +1,76 @@
1
+ class Dorsale::CustomerVault::OriginsController < ::Dorsale::CustomerVault::ApplicationController
2
+ before_action :set_objects, only: [:edit, :update]
3
+
4
+ def index
5
+ authorize model, :list?
6
+
7
+ @origins ||= scope.all
8
+ end
9
+
10
+ def new
11
+ @origin ||= scope.new
12
+
13
+ authorize @origin, :create?
14
+ end
15
+
16
+ def create
17
+ @origin ||= scope.new(origin_params_for_create)
18
+
19
+ authorize @origin, :create?
20
+
21
+ if @origin.save
22
+ flash[:notice] = t("messages.origins.create_ok")
23
+ redirect_to back_url
24
+ else
25
+ render action: :new
26
+ end
27
+ end
28
+
29
+ def edit
30
+ authorize @origin, :update?
31
+ end
32
+
33
+ def update
34
+ authorize @origin, :update?
35
+
36
+ if @origin.update(origin_params_for_update)
37
+ flash[:notice] = t("messages.origins.update_ok")
38
+ redirect_to back_url
39
+ else
40
+ render action: :edit
41
+ end
42
+ end
43
+
44
+ private
45
+
46
+ def set_objects
47
+ @origin ||= scope.find(params[:id])
48
+ end
49
+
50
+ def model
51
+ ::Dorsale::CustomerVault::Origin
52
+ end
53
+
54
+ def back_url
55
+ customer_vault_origins_path
56
+ end
57
+
58
+ def permitted_params
59
+ [
60
+ :name,
61
+ ]
62
+ end
63
+
64
+ def origin_params
65
+ params.fetch(:origin, {}).permit(permitted_params)
66
+ end
67
+
68
+ def origin_params_for_create
69
+ origin_params
70
+ end
71
+
72
+ def origin_params_for_update
73
+ origin_params
74
+ end
75
+
76
+ end
@@ -153,6 +153,8 @@ class Dorsale::CustomerVault::PeopleController < ::Dorsale::CustomerVault::Appli
153
153
  :linkedin,
154
154
  :viadeo,
155
155
  :context,
156
+ :origin_id,
157
+ :activity_type_id,
156
158
  :tag_list => [],
157
159
  :address_attributes => [
158
160
  :street,
@@ -5,7 +5,7 @@ class Dorsale::Flyboy::TaskCommentsController < ::Dorsale::Flyboy::ApplicationCo
5
5
  @task_comment ||= model.new(task_comment_params_for_create)
6
6
  @task ||= @task_comment.task
7
7
 
8
- authorize @task, :update?
8
+ authorize @task, :comment?
9
9
 
10
10
  if @task_comment.save
11
11
  redirect_to @task
@@ -186,7 +186,7 @@ class Dorsale::Flyboy::TasksController < ::Dorsale::Flyboy::ApplicationControlle
186
186
  :reminder_date,
187
187
  :reminder_duration,
188
188
  :reminder_unit,
189
- :owner_guid,
189
+ :owner_id,
190
190
  ]
191
191
  end
192
192
 
@@ -2,7 +2,7 @@ class Dorsale::Alexandrie::Attachment < ::Dorsale::ApplicationRecord
2
2
  self.table_name = "dorsale_alexandrie_attachments"
3
3
 
4
4
  belongs_to :attachable, polymorphic: true
5
- belongs_to :sender, polymorphic: true
5
+ belongs_to :sender, class_name: User
6
6
 
7
7
  belongs_to :attachment_type, required: false
8
8
 
@@ -1,5 +1,5 @@
1
1
  class Dorsale::Comment < ::Dorsale::ApplicationRecord
2
- belongs_to :author, polymorphic: true
2
+ belongs_to :author, class_name: User
3
3
  belongs_to :commentable, polymorphic: true
4
4
 
5
5
  validates :author, presence: true
@@ -0,0 +1,9 @@
1
+ class Dorsale::CustomerVault::ActivityType < ::Dorsale::ApplicationRecord
2
+ self.table_name = "dorsale_customer_vault_activity_types"
3
+
4
+ validates :name, presence: true
5
+
6
+ def to_s
7
+ name
8
+ end
9
+ end
@@ -14,6 +14,13 @@ class Dorsale::CustomerVault::Individual < Dorsale::CustomerVault::Person
14
14
  [self.last_name, self.first_name].join(", ")
15
15
  end
16
16
 
17
+ def activity_type
18
+ corporation.try(:activity_type)
19
+ end
20
+
17
21
  private def corporation_name; raise NoMethodError; end
18
22
  private def corporation_name=; raise NoMethodError; end
23
+ private def activity_type=; raise NoMethodError; end
24
+ private def activity_type_id; raise NoMethodError; end
25
+ private def activity_type_id=; raise NoMethodError; end
19
26
  end
@@ -0,0 +1,9 @@
1
+ class Dorsale::CustomerVault::Origin < ::Dorsale::ApplicationRecord
2
+ self.table_name = "dorsale_customer_vault_origins"
3
+
4
+ validates :name, presence: true
5
+
6
+ def to_s
7
+ name
8
+ end
9
+ end
@@ -27,6 +27,9 @@ class Dorsale::CustomerVault::Person < ::Dorsale::ApplicationRecord
27
27
  has_many :invoices, class_name: ::Dorsale::BillingMachine::Invoice, as: :customer
28
28
  accepts_nested_attributes_for :address, allow_destroy: true
29
29
 
30
+ belongs_to :activity_type, class_name: ::Dorsale::CustomerVault::ActivityType
31
+ belongs_to :origin, class_name: ::Dorsale::CustomerVault::Origin
32
+
30
33
  after_destroy :destroy_links
31
34
 
32
35
  default_scope -> {
@@ -9,7 +9,7 @@ class Dorsale::Flyboy::Task < ::Dorsale::ApplicationRecord
9
9
  paginates_per 50
10
10
 
11
11
  belongs_to :taskable, polymorphic: true, required: false
12
- belongs_to :owner, polymorphic: true
12
+ belongs_to :owner, class_name: User
13
13
  has_many :comments, class_name: ::Dorsale::Flyboy::TaskComment, inverse_of: :task, dependent: :destroy
14
14
 
15
15
  polymorphic_id_for :taskable
@@ -2,7 +2,7 @@ class Dorsale::Flyboy::TaskComment < ::Dorsale::ApplicationRecord
2
2
  self.table_name = "dorsale_flyboy_task_comments"
3
3
 
4
4
  belongs_to :task
5
- belongs_to :author, polymorphic: true
5
+ belongs_to :author, class_name: User
6
6
 
7
7
  validates :author, presence: true
8
8
  validates :task, presence: true
@@ -0,0 +1,7 @@
1
+ module Dorsale::CustomerVault::ActivityTypePolicyHelper
2
+ POLICY_METHODS = [
3
+ :list?,
4
+ :create?,
5
+ :update?,
6
+ ]
7
+ end
@@ -0,0 +1,7 @@
1
+ module Dorsale::CustomerVault::OriginPolicyHelper
2
+ POLICY_METHODS = [
3
+ :list?,
4
+ :create?,
5
+ :update?,
6
+ ]
7
+ end
@@ -4,6 +4,7 @@ module Dorsale::Flyboy::TaskPolicyHelper
4
4
  :export?,
5
5
  :create?,
6
6
  :read?,
7
+ :comment?,
7
8
  :update?,
8
9
  :delete?,
9
10
  :complete?,
@@ -16,6 +16,8 @@ class Dorsale::PolicyChecker
16
16
  check_policy! "Dorsale::CustomerVault::EventPolicy"
17
17
  check_policy! "Dorsale::CustomerVault::PersonPolicy"
18
18
  check_policy! "Dorsale::CustomerVault::LinkPolicy"
19
+ check_policy! "Dorsale::CustomerVault::OriginPolicy"
20
+ check_policy! "Dorsale::CustomerVault::ActivityTypePolicy"
19
21
  check_policy! "Dorsale::ExpenseGun::CategoryPolicy"
20
22
  check_policy! "Dorsale::ExpenseGun::ExpensePolicy"
21
23
  check_policy! "Dorsale::Flyboy::TaskPolicy"
@@ -0,0 +1,13 @@
1
+ .panel.panel-default
2
+ .panel-heading: .panel-title
3
+ - if @activity_type.new_record?
4
+ = t("customer_vault.activity_type.actions.create")
5
+ - else
6
+ = t("actions.update")
7
+ = " : "
8
+ = @activity_type
9
+
10
+ .panel-body
11
+ = horizontal_form_for @activity_type, as: :activity_type do |f|
12
+ = f.input :name
13
+ = form_buttons
@@ -0,0 +1,2 @@
1
+ - if policy(::Dorsale::CustomerVault::ActivityType).create?
2
+ = create_button new_customer_vault_activity_type_path, action: :create
@@ -0,0 +1,17 @@
1
+ table.table.default#activity_type
2
+ thead
3
+ tr
4
+ th.actions.activity_type-name
5
+ = ::Dorsale::CustomerVault::ActivityType.t(:name)
6
+ th.actions.activity_type-action
7
+ = "Action"
8
+
9
+ tbody
10
+ - @activity_types.each do |activity_type|
11
+ tr.actions.activity_type
12
+ td.actions.activity_type-name
13
+ = activity_type
14
+
15
+ td.actions.activity_type-action
16
+ - if policy(activity_type).create?
17
+ = update_button edit_customer_vault_activity_type_path(activity_type), id: "edit-#{activity_type.id}"
@@ -0,0 +1,11 @@
1
+ .customer_vault
2
+ - content_for :title
3
+ = ::Dorsale::CustomerVault::ActivityType.ts
4
+
5
+ - content_for :actions
6
+ = render "dorsale/customer_vault/activity_types/index_actions"
7
+
8
+ - content_for :table
9
+ = render "dorsale/customer_vault/activity_types/list", activity_types: @activity_types
10
+
11
+ = render_dorsale_page
@@ -0,0 +1 @@
1
+ = render "form"
@@ -0,0 +1,13 @@
1
+ .panel.panel-default
2
+ .panel-heading: .panel-title
3
+ - if @origin.new_record?
4
+ = t("customer_vault.origin.actions.create")
5
+ - else
6
+ = t("actions.update")
7
+ = " : "
8
+ = @origin
9
+
10
+ .panel-body
11
+ = horizontal_form_for @origin, as: :origin do |f|
12
+ = f.input :name
13
+ = form_buttons
@@ -0,0 +1,2 @@
1
+ - if policy(::Dorsale::CustomerVault::Origin).create?
2
+ = create_button new_customer_vault_origin_path, action: :create
@@ -0,0 +1,17 @@
1
+ table.table.default#origin
2
+ thead
3
+ tr
4
+ th.actions.origin-name
5
+ = ::Dorsale::CustomerVault::Origin.t(:name)
6
+ th.actions.origin-action
7
+ = "Action"
8
+
9
+ tbody
10
+ - @origins.each do |origin|
11
+ tr.actions.origin
12
+ td.actions.origin-name
13
+ = origin
14
+
15
+ td.actions.origin-action
16
+ - if policy(origin).create?
17
+ = update_button edit_customer_vault_origin_path(origin), id: "edit-#{origin.id}"
@@ -0,0 +1 @@
1
+ = render "form"
@@ -0,0 +1,11 @@
1
+ .customer_vault
2
+ - content_for :title
3
+ = ::Dorsale::CustomerVault::Origin.ts
4
+
5
+ - content_for :actions
6
+ = render "dorsale/customer_vault/origins/index_actions"
7
+
8
+ - content_for :table
9
+ = render "dorsale/customer_vault/origins/list", origins: @origins
10
+
11
+ = render_dorsale_page
@@ -0,0 +1 @@
1
+ = render "form"
@@ -1,5 +1,7 @@
1
1
  .sub-context
2
2
  = info person, :tags, tags(person)
3
+ = info person, :activity_type
4
+ = info person, :origin
3
5
 
4
6
  - if person.individual?
5
7
  = info person, :corporation, helper: :link_to_object
@@ -11,6 +11,9 @@
11
11
 
12
12
  = f.input :short_name
13
13
  = render "dorsale/forms/avatar", f: f
14
+ = f.association :origin, collection: policy_scope(Dorsale::CustomerVault::Origin), input_html: {class: 'select2'}
15
+ - if @person.corporation?
16
+ = f.association :activity_type, collection: policy_scope(Dorsale::CustomerVault::ActivityType), input_html: {class: 'select2'}
14
17
  = f.input :tag_list, collection: @tags, input_html: {multiple: true}
15
18
 
16
19
  .panel.panel-default
@@ -9,12 +9,12 @@
9
9
  = Dorsale::Flyboy::TaskComment.t(:description)
10
10
 
11
11
  tbody
12
- - if policy(@task).update?
12
+ - if policy(@task).comment?
13
13
  tr#new_task_comment_tr
14
14
  td.task_comment-progress
15
15
  = f.input :progress, label: false
16
16
 
17
- td.task_comment-description
17
+ td.task_comment-content
18
18
  = f.hidden_field :task_id
19
19
 
20
20
  .textarea-input-group
@@ -23,12 +23,16 @@
23
23
 
24
24
 
25
25
  - @task.reload.comments.map do |comment|
26
- tr
26
+ tr.task_comment
27
27
  td.task_comment-progress
28
28
  = progress_bar percentage: comment.progress, label: true
29
29
 
30
- td.task_comment-description
30
+ td.task_comment-content
31
31
  p: small
32
- span.date = date(comment.date)
32
+ span.task_comment-date = date(comment.date)
33
+ = " "
34
+ = comment.t(:written_by)
35
+ = " "
36
+ span.task_comment-author = comment.author
33
37
 
34
- p = text2html comment.description
38
+ p.task_comment-description = text2html comment.description
@@ -17,7 +17,7 @@
17
17
 
18
18
  .row
19
19
  .col-sm-8 = f.input :name
20
- .col-sm-4 = f.input :owner_guid, collection: @owners.map{ |e| [e.to_s, e.guid] }
20
+ .col-sm-4 = f.input :owner_id, collection: @owners
21
21
 
22
22
  = f.input :description, input_html: {rows: 5}
23
23
  = render "dorsale/flyboy/tasks/term_fields", f: f
@@ -7,6 +7,14 @@ en:
7
7
  address_informations: "Address informations"
8
8
  additional_informations: "Additional informations"
9
9
 
10
+ origin:
11
+ actions:
12
+ create: "New origin"
13
+
14
+ activity_type:
15
+ actions:
16
+ create: "New activity type"
17
+
10
18
  messages:
11
19
  no_people: "No people find."
12
20
  no_activity: "No recent activity."
@@ -29,6 +37,14 @@ en:
29
37
  delete_ok : "Link deleted."
30
38
  delete_error : "One error occurs, link not deleted."
31
39
 
40
+ origins:
41
+ create_ok : "Origin created."
42
+ update_ok : "Origin updated."
43
+
44
+ activity_types:
45
+ create_ok : "Activity created."
46
+ update_ok : "Activity updated."
47
+
32
48
  actions:
33
49
  new_individual: "New individual"
34
50
  new_corporation: "New corporation"
@@ -53,6 +69,13 @@ en:
53
69
  dorsale/customer_vault/event:
54
70
  one: "Event"
55
71
  other: "Events"
72
+ dorsale/customer_vault/origin:
73
+ one: "Origin"
74
+ other: "Origin"
75
+ dorsale/customer_vault/activity_type:
76
+ one: "Activity type"
77
+ other: "Activity types"
78
+
56
79
 
57
80
  attributes:
58
81
  dorsale/customer_vault/person: &customer_vault_person_attributes
@@ -72,6 +95,9 @@ en:
72
95
  person_type: "Type"
73
96
  title: "Title"
74
97
  individuals: "Individuals"
98
+ origin: "Origin"
99
+ activity_type: "Activity type"
100
+
75
101
  dorsale/customer_vault/individual:
76
102
  <<: *customer_vault_person_attributes
77
103
  dorsale/customer_vault/corporation:
@@ -7,6 +7,14 @@ fr:
7
7
  address_informations: "Adresse"
8
8
  additional_informations: "Informations complémentaires"
9
9
 
10
+ origin:
11
+ actions:
12
+ create: "Nouvelle origine"
13
+
14
+ activity_type:
15
+ actions:
16
+ create: "Nouveau type d'activité"
17
+
10
18
  messages:
11
19
  no_people: "Aucune personne trouvée."
12
20
  no_activity: "Aucune activité récente."
@@ -29,6 +37,14 @@ fr:
29
37
  delete_ok : "Le lien a été supprimé."
30
38
  delete_error : "Impossible de supprimer ce lien."
31
39
 
40
+ origins:
41
+ create_ok : "L'origine a été créée."
42
+ update_ok : "L'origine a été modifiée."
43
+
44
+ activity_types:
45
+ create_ok : "Le type d'activité a été créé."
46
+ update_ok : "Le type d'activité a été modifiée."
47
+
32
48
  actions:
33
49
  new_individual: "Nouvel individu"
34
50
  new_corporation: "Nouvelle entreprise"
@@ -53,6 +69,12 @@ fr:
53
69
  dorsale/customer_vault/event:
54
70
  one: "Événement"
55
71
  other: "Événements"
72
+ dorsale/customer_vault/origin:
73
+ one: "Origine du contact"
74
+ other: "Origines du contact"
75
+ dorsale/customer_vault/activity_type:
76
+ one: "Type d'activité"
77
+ other: "Type d'activité"
56
78
 
57
79
  attributes:
58
80
  dorsale/customer_vault/person: &customer_vault_person_attributes
@@ -72,6 +94,9 @@ fr:
72
94
  person_type: "Type"
73
95
  title: "Fonction"
74
96
  individuals: "Individus"
97
+ origin: "Origine"
98
+ activity_type: "Type d'activité"
99
+
75
100
  dorsale/customer_vault/individual:
76
101
  <<: *customer_vault_person_attributes
77
102
  dorsale/customer_vault/corporation:
@@ -8,12 +8,14 @@ en:
8
8
  update_error : "One error occurs, comment can't be updated."
9
9
  delete_ok : "Comment deleted."
10
10
  delete_error : "One error occurs, comment can't be deleted."
11
+
11
12
  users:
12
13
  inactive: "This account is inactive"
13
14
  create_ok : "User created."
14
15
  create_error : "One error occurs, user can't be created."
15
16
  update_ok : "User updated."
16
17
  update_error : "One error occurs, user can't be updated."
18
+
17
19
  emails:
18
20
  user:
19
21
  new_account:
@@ -8,12 +8,14 @@ fr:
8
8
  update_error : "Impossible de modifier le commentaire."
9
9
  delete_ok : "Le commentaire a été supprimé."
10
10
  delete_error : "Impossible de supprimer le commentaire."
11
+
11
12
  users:
12
13
  inactive: "Ce compte est inactif"
13
14
  create_ok : "L'utilisateur a été créé."
14
15
  create_error : "Impossible de créer l'utilisateur."
15
16
  update_ok : "L'utilisateur a été modifié."
16
17
  update_error : "Impossible de modifier l'utilisateur."
18
+
17
19
  emails:
18
20
  user:
19
21
  new_account: