Commit 824d1749 authored by Tiger Watson's avatar Tiger Watson

Merge branch 'disable-terms-and-conditions' into 'master'

Add ability to remove and disable terms and conditions

See merge request gitlab-org/gitlab!65007
parents f0861b8f 4df3e5c5
...@@ -3,12 +3,14 @@ ...@@ -3,12 +3,14 @@
class ApplicationSetting class ApplicationSetting
class Term < ApplicationRecord class Term < ApplicationRecord
include CacheMarkdownField include CacheMarkdownField
has_many :term_agreements include NullifyIfBlank
validates :terms, presence: true has_many :term_agreements
cache_markdown_field :terms cache_markdown_field :terms
nullify_if_blank :terms
def self.latest def self.latest
order(:id).last order(:id).last
end end
......
...@@ -67,10 +67,8 @@ module ApplicationSettings ...@@ -67,10 +67,8 @@ module ApplicationSettings
end end
def update_terms(terms) def update_terms(terms)
return unless terms.present?
# Avoid creating a new terms record if the text is exactly the same. # Avoid creating a new terms record if the text is exactly the same.
terms = terms.strip terms = terms&.strip
return if terms == @application_setting.terms return if terms == @application_setting.terms
ApplicationSetting::Term.create(terms: terms) ApplicationSetting::Term.create(terms: terms)
......
# frozen_string_literal: true
class RemoveNotNullConstraintFromTerms < ActiveRecord::Migration[6.1]
def up
change_column_null :application_setting_terms, :terms, true
end
def down
change_column_null :application_setting_terms, :terms, false
end
end
1367865e22f6129fa69f3c86dc72b88a9af0479a41f2029a446464aeeed9c18e
\ No newline at end of file
...@@ -9215,7 +9215,7 @@ ALTER SEQUENCE appearances_id_seq OWNED BY appearances.id; ...@@ -9215,7 +9215,7 @@ ALTER SEQUENCE appearances_id_seq OWNED BY appearances.id;
CREATE TABLE application_setting_terms ( CREATE TABLE application_setting_terms (
id integer NOT NULL, id integer NOT NULL,
cached_markdown_version integer, cached_markdown_version integer,
terms text NOT NULL, terms text,
terms_html text terms_html text
); );
...@@ -3,9 +3,7 @@ ...@@ -3,9 +3,7 @@
require 'spec_helper' require 'spec_helper'
RSpec.describe ApplicationSetting::Term do RSpec.describe ApplicationSetting::Term do
describe 'validations' do it { is_expected.to nullify_if_blank(:terms) }
it { is_expected.to validate_presence_of(:terms) }
end
describe '.latest' do describe '.latest' do
it 'finds the latest terms' do it 'finds the latest terms' do
......
...@@ -23,8 +23,8 @@ RSpec.describe ApplicationSettings::UpdateService do ...@@ -23,8 +23,8 @@ RSpec.describe ApplicationSettings::UpdateService do
context 'when the passed terms are blank' do context 'when the passed terms are blank' do
let(:params) { { terms: '' } } let(:params) { { terms: '' } }
it 'does not create terms' do it 'does create terms' do
expect { subject.execute }.not_to change { ApplicationSetting::Term.count } expect { subject.execute }.to change { ApplicationSetting::Term.count }.by(1)
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment