add folders structure
This commit is contained in:
@@ -17,7 +17,7 @@ class Account < ApplicationRecord
|
||||
has_many :account_configs, dependent: :destroy
|
||||
has_many :templates, dependent: :destroy
|
||||
has_many :template_folders, dependent: :destroy
|
||||
has_one :default_folder, -> { where(name: TemplateFolder::DEFAULT_NAME) },
|
||||
has_one :default_template_folder, -> { where(name: TemplateFolder::DEFAULT_NAME) },
|
||||
class_name: 'TemplateFolder', dependent: :destroy, inverse_of: :account
|
||||
has_many :submissions, through: :templates
|
||||
has_many :submitters, through: :submissions
|
||||
@@ -27,9 +27,8 @@ class Account < ApplicationRecord
|
||||
attribute :timezone, :string, default: 'UTC'
|
||||
attribute :locale, :string, default: 'en-US'
|
||||
|
||||
def default_folder
|
||||
super || template_folders.new(name: TemplateFolder::DEFAULT_NAME,
|
||||
author_id: users.minimum(:id))
|
||||
.tap(&:save!)
|
||||
def default_template_folder
|
||||
super || build_default_template_folder(name: TemplateFolder::DEFAULT_NAME,
|
||||
author_id: users.minimum(:id)).tap(&:save!)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -62,6 +62,6 @@ class Template < ApplicationRecord
|
||||
private
|
||||
|
||||
def maybe_set_default_folder
|
||||
self.folder ||= account.default_folder
|
||||
self.folder ||= account.default_template_folder
|
||||
end
|
||||
end
|
||||
|
||||
@@ -28,7 +28,13 @@ class TemplateFolder < ApplicationRecord
|
||||
belongs_to :author, class_name: 'User'
|
||||
belongs_to :account
|
||||
|
||||
has_many :templates, dependent: :destroy
|
||||
has_many :templates, dependent: :destroy, foreign_key: :folder_id, inverse_of: :folder
|
||||
has_many :active_templates, -> { where(deleted_at: nil) },
|
||||
class_name: 'Template', dependent: :destroy, foreign_key: :folder_id, inverse_of: :folder
|
||||
|
||||
scope :active, -> { where(deleted_at: nil) }
|
||||
|
||||
def default?
|
||||
name == DEFAULT_NAME
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user