From 32fc26b5a465bf5c976d6cb93e54e3af8080555b Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Tue, 19 Aug 2014 13:43:01 +0300 Subject: [PATCH] Add statuses to domain --- app/models/domain.rb | 6 +++++ app/models/domain_status.rb | 4 ++++ app/models/setting_group.rb | 4 ++++ app/views/setting_groups/index.haml | 18 +++++++-------- .../20140819095802_create_domains_statuses.rb | 8 +++++++ ...20140819103517_populate_domain_statuses.rb | 23 +++++++++++++++++++ db/schema.rb | 7 +++++- 7 files changed, 60 insertions(+), 10 deletions(-) create mode 100644 app/models/domain_status.rb create mode 100644 db/migrate/20140819095802_create_domains_statuses.rb create mode 100644 db/migrate/20140819103517_populate_domain_statuses.rb diff --git a/app/models/domain.rb b/app/models/domain.rb index 551815de9..a420f19ee 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -25,6 +25,12 @@ class Domain < ActiveRecord::Base has_and_belongs_to_many :nameservers + has_many :domain_statuses + + has_many :statuses, -> { + where(setting_group: SettingGroup.domain_statuses) + }, through: :domain_statuses, source: :setting + delegate :code, to: :owner_contact, prefix: true delegate :name, to: :registrar, prefix: true diff --git a/app/models/domain_status.rb b/app/models/domain_status.rb new file mode 100644 index 000000000..d71e6be2d --- /dev/null +++ b/app/models/domain_status.rb @@ -0,0 +1,4 @@ +class DomainStatus < ActiveRecord::Base + belongs_to :domain + belongs_to :setting +end diff --git a/app/models/setting_group.rb b/app/models/setting_group.rb index 25b4a79cb..ace904acf 100644 --- a/app/models/setting_group.rb +++ b/app/models/setting_group.rb @@ -11,5 +11,9 @@ class SettingGroup < ActiveRecord::Base def domain_validation find_by(code: 'domain_validation') end + + def domain_statuses + find_by(code: 'domain_statuses') + end end end diff --git a/app/views/setting_groups/index.haml b/app/views/setting_groups/index.haml index 492d76d54..07bbdcafd 100644 --- a/app/views/setting_groups/index.haml +++ b/app/views/setting_groups/index.haml @@ -1,14 +1,14 @@ %h2= t('shared.setting_groups') %hr -- @setting_groups.each do |x| - .row - .col-md-12 - %table.table.table-striped.table-bordered - %tr - %th{class: 'col-xs-9'} - = t('.setting_group') - %th{class: 'col-xs-2'} - = t('shared.action') +.row + .col-md-12 + %table.table.table-striped.table-bordered + %tr + %th{class: 'col-xs-9'} + = t('.setting_group') + %th{class: 'col-xs-2'} + = t('shared.action') + - @setting_groups.each do |x| %tr %td= t("setting_groups.codes.#{x.code}") %td= link_to(t('.edit_settings'), setting_group_path(x), class: 'btn btn-primary btn-xs') diff --git a/db/migrate/20140819095802_create_domains_statuses.rb b/db/migrate/20140819095802_create_domains_statuses.rb new file mode 100644 index 000000000..90e4f1a22 --- /dev/null +++ b/db/migrate/20140819095802_create_domains_statuses.rb @@ -0,0 +1,8 @@ +class CreateDomainsStatuses < ActiveRecord::Migration + def change + create_table :domain_statuses do |t| + t.integer :domain_id + t.integer :setting_id + end + end +end diff --git a/db/migrate/20140819103517_populate_domain_statuses.rb b/db/migrate/20140819103517_populate_domain_statuses.rb new file mode 100644 index 000000000..0adfc67df --- /dev/null +++ b/db/migrate/20140819103517_populate_domain_statuses.rb @@ -0,0 +1,23 @@ +class PopulateDomainStatuses < ActiveRecord::Migration + def change + SettingGroup.create(code: 'domain_statuses', settings: [ + Setting.create(code: 'clientDeleteProhibited'.underscore, value: 'clientDeleteProhibited'), + Setting.create(code: 'serverDeleteProhibited'.underscore, value: 'serverDeleteProhibited'), + Setting.create(code: 'clientHold'.underscore, value: 'clientHold'), + Setting.create(code: 'serverHold'.underscore, value: 'serverHold'), + Setting.create(code: 'clientRenewProhibited'.underscore, value: 'clientRenewProhibited'), + Setting.create(code: 'serverRenewProhibited'.underscore, value: 'serverRenewProhibited'), + Setting.create(code: 'clientTransferProhibited'.underscore, value: 'clientTransferProhibited'), + Setting.create(code: 'serverTransferProhibited'.underscore, value: 'serverTransferProhibited'), + Setting.create(code: 'clientUpdateProhibited'.underscore, value: 'clientUpdateProhibited'), + Setting.create(code: 'serverUpdateProhibited'.underscore, value: 'serverUpdateProhibited'), + Setting.create(code: 'inactive', value: 'inactive'), + Setting.create(code: 'ok', value: 'ok'), + Setting.create(code: 'pendingCreate'.underscore, value: 'pendingCreate'), + Setting.create(code: 'pendingDelete'.underscore, value: 'pendingDelete'), + Setting.create(code: 'pendingRenew'.underscore, value: 'pendingRenew'), + Setting.create(code: 'pendingTransfer'.underscore, value: 'pendingTransfer'), + Setting.create(code: 'pendingUpdate'.underscore, value: 'pendingUpdate') + ]) + end +end diff --git a/db/schema.rb b/db/schema.rb index 71db15ed3..bef49d930 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20140815114000) do +ActiveRecord::Schema.define(version: 20140819103517) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -61,6 +61,11 @@ ActiveRecord::Schema.define(version: 20140815114000) do t.datetime "updated_at" end + create_table "domain_statuses", force: true do |t| + t.integer "domain_id" + t.integer "setting_id" + end + create_table "domains", force: true do |t| t.string "name" t.integer "registrar_id"