summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-04-08 17:24:27 -0300
committerDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-04-08 17:24:27 -0300
commitee497599cc69b126cc2e4a929f1799d3d3eb989d (patch)
tree07616b6ffaa63b5b93a61049f321547fc30ce593 /app
parent069724cef5873b83720004772d1e874030cc9fff (diff)
downloadgitlab-ce-ee497599cc69b126cc2e4a929f1799d3d3eb989d.tar.gz
Use default_value_for to set default NotificationSetting#level
Diffstat (limited to 'app')
-rw-r--r--app/controllers/projects_controller.rb1
-rw-r--r--app/models/notification_setting.rb14
2 files changed, 6 insertions, 9 deletions
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 41a4c41cf80..39f436f6f4e 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -106,7 +106,6 @@ class ProjectsController < Projects::ApplicationController
if @membership
@notification_setting = current_user.notification_settings.find_or_initialize_by(source: @project)
- @notification_setting.set_defaults unless @notification_setting.persisted?
end
end
diff --git a/app/models/notification_setting.rb b/app/models/notification_setting.rb
index 13a8995b036..d89194b5a12 100644
--- a/app/models/notification_setting.rb
+++ b/app/models/notification_setting.rb
@@ -1,4 +1,10 @@
class NotificationSetting < ActiveRecord::Base
+ # Notification level
+ # Note: When adding an option, it MUST go on the end of the array.
+ enum level: [:disabled, :participating, :watch, :global, :mention]
+
+ default_value_for :level, NotificationSetting.levels[:global]
+
belongs_to :user
belongs_to :source, polymorphic: true
@@ -8,9 +14,6 @@ class NotificationSetting < ActiveRecord::Base
validates :user_id, uniqueness: { scope: [:source_type, :source_id],
message: "already exists in source",
allow_nil: true }
- # Notification level
- # Note: When adding an option, it MUST go on the end of the array.
- enum level: [:disabled, :participating, :watch, :global, :mention]
scope :for_groups, -> { where(source_type: 'Namespace') }
scope :for_projects, -> { where(source_type: 'Project') }
@@ -19,14 +22,9 @@ class NotificationSetting < ActiveRecord::Base
setting = find_or_initialize_by(source: source)
unless setting.persisted?
- setting.set_defaults
setting.save
end
setting
end
-
- def set_defaults
- self.level = :global
- end
end